primeng 18.0.4-lts → 18.0.5-lts

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.
Files changed (62) hide show
  1. package/datepicker/datepicker.d.ts +1 -1
  2. package/esm2022/autocomplete/style/autocompletestyle.mjs +19 -6
  3. package/esm2022/button/button.mjs +11 -43
  4. package/esm2022/calendar/calendar.mjs +4 -4
  5. package/esm2022/confirmdialog/confirmdialog.mjs +34 -41
  6. package/esm2022/dataview/dataview.mjs +10 -35
  7. package/esm2022/datepicker/datepicker.mjs +60 -44
  8. package/esm2022/datepicker/style/datepickerstyle.mjs +14 -1
  9. package/esm2022/dialog/dialog.mjs +98 -108
  10. package/esm2022/drawer/drawer.mjs +2 -2
  11. package/esm2022/fieldset/style/fieldsetstyle.mjs +2 -1
  12. package/esm2022/iftalabel/style/iftalabelstyle.mjs +10 -4
  13. package/esm2022/inputnumber/style/inputnumberstyle.mjs +10 -1
  14. package/esm2022/multiselect/multiselect.mjs +20 -75
  15. package/esm2022/password/style/passwordstyle.mjs +2 -1
  16. package/esm2022/picklist/picklist.mjs +3 -1
  17. package/esm2022/splitter/splitter.mjs +3 -3
  18. package/esm2022/stepper/stepper.mjs +29 -57
  19. package/esm2022/table/table.interface.mjs +1 -1
  20. package/esm2022/table/table.mjs +81 -450
  21. package/esm2022/tree/tree.mjs +18 -88
  22. package/fesm2022/primeng-autocomplete.mjs +18 -5
  23. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  24. package/fesm2022/primeng-button.mjs +10 -42
  25. package/fesm2022/primeng-button.mjs.map +1 -1
  26. package/fesm2022/primeng-calendar.mjs +3 -3
  27. package/fesm2022/primeng-calendar.mjs.map +1 -1
  28. package/fesm2022/primeng-confirmdialog.mjs +33 -40
  29. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  30. package/fesm2022/primeng-dataview.mjs +9 -34
  31. package/fesm2022/primeng-dataview.mjs.map +1 -1
  32. package/fesm2022/primeng-datepicker.mjs +72 -43
  33. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  34. package/fesm2022/primeng-dialog.mjs +97 -107
  35. package/fesm2022/primeng-dialog.mjs.map +1 -1
  36. package/fesm2022/primeng-drawer.mjs +1 -1
  37. package/fesm2022/primeng-drawer.mjs.map +1 -1
  38. package/fesm2022/primeng-fieldset.mjs +1 -0
  39. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  40. package/fesm2022/primeng-iftalabel.mjs +9 -3
  41. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  42. package/fesm2022/primeng-inputnumber.mjs +9 -0
  43. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  44. package/fesm2022/primeng-multiselect.mjs +19 -74
  45. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  46. package/fesm2022/primeng-password.mjs +1 -0
  47. package/fesm2022/primeng-password.mjs.map +1 -1
  48. package/fesm2022/primeng-picklist.mjs +2 -0
  49. package/fesm2022/primeng-picklist.mjs.map +1 -1
  50. package/fesm2022/primeng-splitter.mjs +2 -2
  51. package/fesm2022/primeng-splitter.mjs.map +1 -1
  52. package/fesm2022/primeng-stepper.mjs +30 -58
  53. package/fesm2022/primeng-stepper.mjs.map +1 -1
  54. package/fesm2022/primeng-table.mjs +80 -449
  55. package/fesm2022/primeng-table.mjs.map +1 -1
  56. package/fesm2022/primeng-tree.mjs +17 -87
  57. package/fesm2022/primeng-tree.mjs.map +1 -1
  58. package/package.json +314 -314
  59. package/splitter/splitter.d.ts +2 -2
  60. package/stepper/stepper.d.ts +4 -3
  61. package/table/table.d.ts +11 -11
  62. package/table/table.interface.d.ts +13 -13
@@ -656,7 +656,7 @@ export declare class DatePicker extends BaseComponent implements OnInit, AfterCo
656
656
  getSundayIndex(): number;
657
657
  isSelected(dateMeta: any): boolean | undefined;
658
658
  isComparable(): boolean;
659
- isMonthSelected(month: number): boolean;
659
+ isMonthSelected(month: any): any;
660
660
  isMonthDisabled(month: number, year?: number): boolean;
661
661
  isYearDisabled(year: number): boolean;
662
662
  isYearSelected(year: number): boolean;
@@ -175,6 +175,10 @@ const theme = ({ dt }) => `
175
175
  background: ${dt('autocomplete.filled.focus.background')};
176
176
  }
177
177
 
178
+ .p-autocomplete.p-disabled {
179
+ opacity: 1;
180
+ }
181
+
178
182
  .p-autocomplete.p-disabled .p-autocomplete-input-multiple {
179
183
  opacity: 1;
180
184
  background: ${dt('autocomplete.disabled.background')};
@@ -267,21 +271,30 @@ const theme = ({ dt }) => `
267
271
  .p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-clear-icon {
268
272
  right: calc(${dt('autocomplete.padding.x')} + ${dt('autocomplete.dropdown.width')});
269
273
  }
270
-
274
+ p-autoComplete.ng-invalid.ng-dirty .p-autocomplete-input,
275
+ p-autoComplete.ng-invalid.ng-dirty .p-autocomplete-input-multiple,
276
+ p-auto-complete.ng-invalid.ng-dirty .p-autocomplete-input,
277
+ p-auto-complete.ng-invalid.ng-dirty .p-autocomplete-input-multiple
271
278
  p-autocomplete.ng-invalid.ng-dirty .p-autocomplete-input,
272
279
  p-autocomplete.ng-invalid.ng-dirty .p-autocomplete-input-multiple {
273
280
  border-color: ${dt('autocomplete.invalid.border.color')};
274
281
  }
275
-
282
+ p-autoComplete.ng-invalid.ng-dirty .p-autocomplete-input:enabled:focus,
283
+ p-autoComplete.ng-invalid.ng-dirty:not(.p-disabled).p-focus .p-autocomplete-input-multiple,
284
+ p-auto-complete.ng-invalid.ng-dirty .p-autocomplete-input:enabled:focus,
285
+ p-auto-complete.ng-invalid.ng-dirty:not(.p-disabled).p-focus .p-autocomplete-input-multiple,
276
286
  p-autocomplete.ng-invalid.ng-dirty .p-autocomplete-input:enabled:focus,
277
287
  p-autocomplete.ng-invalid.ng-dirty:not(.p-disabled).p-focus .p-autocomplete-input-multiple {
278
288
  border-color: ${dt('autocomplete.focus.border.color')};
279
289
  }
280
-
290
+ p-autoComplete.ng-invalid.ng-dirty .p-autocomplete-input-chip input::placeholder,
291
+ p-auto-complete.ng-invalid.ng-dirty .p-autocomplete-input-chip input::placeholder,
281
292
  p-autocomplete.ng-invalid.ng-dirty .p-autocomplete-input-chip input::placeholder {
282
293
  color: ${dt('autocomplete.invalid.placeholder.color')};
283
294
  }
284
295
 
296
+ p-autoComplete.ng-invalid.ng-dirty .p-autocomplete-input::placeholder,
297
+ p-auto-complete.ng-invalid.ng-dirty .p-autocomplete-input::placeholder,
285
298
  p-autocomplete.ng-invalid.ng-dirty .p-autocomplete-input::placeholder {
286
299
  color: ${dt('autocomplete.invalid.placeholder.color')};
287
300
  }`;
@@ -298,12 +311,12 @@ const classes = {
298
311
  'p-autocomplete-open': instance.overlayVisible,
299
312
  'p-autocomplete-clearable': instance.showClear && !instance.disabled,
300
313
  // 'p-invalid': instance.invalid,
301
- 'p-autocomplete-fluid': instance.hasFluid()
314
+ 'p-autocomplete-fluid': instance.hasFluid
302
315
  }),
303
316
  pcInput: 'p-autocomplete-input',
304
317
  inputMultiple: ({ instance }) => ({
305
318
  'p-autocomplete-input-multiple': true,
306
- 'p-variant-filled': instance.variant ? instance.variant === 'filled' : instance.config.inputStyle() === 'filled'
319
+ 'p-variant-filled': (instance.variant ?? (instance.config.inputStyle() || instance.config.inputVariant())) === 'filled'
307
320
  }),
308
321
  chipItem: ({ instance, i }) => [
309
322
  'p-autocomplete-chip-item',
@@ -406,4 +419,4 @@ export var AutoCompleteClasses;
406
419
  */
407
420
  AutoCompleteClasses["emptyMessage"] = "p-autocomplete-empty-message";
408
421
  })(AutoCompleteClasses || (AutoCompleteClasses = {}));
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N0eWxlL2F1dG9jb21wbGV0ZXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7Ozs7O3dCQVNGLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzs7Ozs2QkFJdkIsRUFBRSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxDQUFDLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2FBc0JuRixFQUFFLENBQUMsNkJBQTZCLENBQUM7K0JBQ2YsRUFBRSxDQUFDLHFDQUFxQyxDQUFDOzZCQUMzQyxFQUFFLENBQUMscUNBQXFDLENBQUM7a0JBQ3BELEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzt3QkFDaEMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDOzthQUVuRCxFQUFFLENBQUMsNkJBQTZCLENBQUM7NkJBQ2pCLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsa0NBQWtDLENBQUMsZ0JBQWdCLEVBQUUsQ0FDL08sa0NBQWtDLENBQ3JDOzs7OztrQkFLYSxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQzFDLEVBQUUsQ0FBQywwQ0FBMEMsQ0FBQzthQUNyRCxFQUFFLENBQUMsbUNBQW1DLENBQUM7Ozs7a0JBSWxDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztvQkFDM0MsRUFBRSxDQUFDLDJDQUEyQyxDQUFDO2FBQ3RELEVBQUUsQ0FBQyxvQ0FBb0MsQ0FB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a0VBQTJDLENBQUE7SUFDM0M7O09BRUc7SUFDSCx1REFBZ0MsQ0FBQTtJQUNoQzs7T0FFRztJQUNILG9FQUE2QyxDQUFBO0FBQ2pELENBQUMsRUF6RFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXlEOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuXG5jb25zdCB0aGVtZSA9ICh7IGR0IH0pID0+IGBcbi5wLWF1dG9jb21wbGV0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1sb2FkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGluc2V0LWlubGluZS1lbmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLngnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZTpoYXMoLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duKSAucC1hdXRvY29tcGxldGUtbG9hZGVyIHtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi53aWR0aCcpfSArICR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLngnKX0pO1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bikgLnAtYXV0b2NvbXBsZXRlLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB3aWR0aDogMSU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZTpoYXMoLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duKSAucC1hdXRvY29tcGxldGUtaW5wdXQsXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bikgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlIHtcbiAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDtcbiAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IDA7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1kcm9wZG93biB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi53aWR0aCcpfTtcbiAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmJvcmRlci5yYWRpdXMnKX07XG4gICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uYm9yZGVyLnJhZGl1cycpfTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uYmFja2dyb3VuZCcpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uYm9yZGVyLmNvbG9yJyl9O1xuICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IDAgbm9uZTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmNvbG9yJyl9O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3JkZXItY29sb3IgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIG91dGxpbmUtY29sb3IgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJveC1zaGFkb3cgJHtkdChcbiAgICAgICAgJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJ1xuICAgICl9O1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucC1hdXRvY29tcGxldGUtZHJvcGRvd246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5ob3Zlci5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmhvdmVyLmJvcmRlci5jb2xvcicpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmhvdmVyLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtZHJvcGRvd246bm90KDpkaXNhYmxlZCk6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uYWN0aXZlLmJhY2tncm91bmQnKX07XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uYWN0aXZlLmJvcmRlci5jb2xvcicpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmFjdGl2ZS5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5mb2N1cy5yaW5nLnNoYWRvdycpfTtcbiAgICBvdXRsaW5lOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uZm9jdXMucmluZy53aWR0aCcpfSAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uZm9jdXMucmluZy5zdHlsZScpfSAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uZm9jdXMucmluZy5jb2xvcicpfTtcbiAgICBvdXRsaW5lLW9mZnNldDogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmZvY3VzLnJpbmcub2Zmc2V0Jyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUgLnAtYXV0b2NvbXBsZXRlLW92ZXJsYXkge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vdmVybGF5LmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vdmVybGF5LmNvbG9yJyl9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ2F1dG9jb21wbGV0ZS5vdmVybGF5LmJvcmRlci5jb2xvcicpfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdhdXRvY29tcGxldGUub3ZlcmxheS5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vdmVybGF5LnNoYWRvdycpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWxpc3QtY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogJHtkdCgnYXV0b2NvbXBsZXRlLmxpc3QuZ2FwJyl9O1xuICAgIHBhZGRpbmc6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5saXN0LnBhZGRpbmcnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLnBhZGRpbmcnKX07XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uY29sb3InKX07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgY29sb3IgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJvcmRlci1jb2xvciAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLmJvcmRlci5yYWRpdXMnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1vcHRpb246bm90KC5wLWF1dG9jb21wbGV0ZS1vcHRpb24tc2VsZWN0ZWQpOm5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLmZvY3VzLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLnNlbGVjdGVkLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uc2VsZWN0ZWQuY29sb3InKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1vcHRpb24tc2VsZWN0ZWQucC1mb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5zZWxlY3RlZC5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLnNlbGVjdGVkLmZvY3VzLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5ncm91cC5wYWRkaW5nJyl9O1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLmdyb3VwLmNvbG9yJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uZ3JvdXAuYmFja2dyb3VuZCcpfTtcbiAgICBmb250LXdlaWdodDogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5ncm91cC5mb250LndlaWdodCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy55Jyl9IC8gMikgJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueCcpfTtcbiAgICBnYXA6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpO1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuY29sb3InKX07XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmJhY2tncm91bmQnKX07XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtkdCgnYXV0b2NvbXBsZXRlLmJvcmRlci5jb2xvcicpfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdhdXRvY29tcGxldGUuYm9yZGVyLnJhZGl1cycpfTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBjb2xvciAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm9yZGVyLWNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBvdXRsaW5lLWNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3gtc2hhZG93ICR7ZHQoXG4gICAgICAgICdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbidcbiAgICApfTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAke2R0KCdhdXRvY29tcGxldGUuc2hhZG93Jyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6bm90KC5wLWRpc2FibGVkKTpob3ZlciAucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmhvdmVyLmJvcmRlci5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOm5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyAucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLmJvcmRlci5jb2xvcicpfTtcbiAgICBib3gtc2hhZG93OiAke2R0KCdhdXRvY29tcGxldGUuZm9jdXMucmluZy5zaGFkb3cnKX07XG4gICAgb3V0bGluZTogJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLnJpbmcud2lkdGgnKX0gJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLnJpbmcuc3R5bGUnKX0gJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLnJpbmcuY29sb3InKX07XG4gICAgb3V0bGluZS1vZmZzZXQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5mb2N1cy5yaW5nLm9mZnNldCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLnAtaW52YWxpZCAucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmludmFsaWQuYm9yZGVyLmNvbG9yJyl9O1xufVxuXG4ucC12YXJpYW50LWZpbGxlZC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmZpbGxlZC5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6bm90KC5wLWRpc2FibGVkKTpob3ZlciAucC12YXJpYW50LWZpbGxlZC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmZpbGxlZC5ob3Zlci5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6bm90KC5wLWRpc2FibGVkKS5wLWZvY3VzIC5wLXZhcmlhbnQtZmlsbGVkLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlICB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmZpbGxlZC5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUucC1kaXNhYmxlZCAucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmRpc2FibGVkLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kaXNhYmxlZC5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWNoaXAucC1jaGlwIHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy55Jyl9IC8gMik7XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLmNoaXAuYm9yZGVyLnJhZGl1cycpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlOmhhcygucC1hdXRvY29tcGxldGUtY2hpcCkge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpO1xufVxuXG4ucC1hdXRvY29tcGxldGUtY2hpcC1pdGVtLnAtZm9jdXMgLnAtYXV0b2NvbXBsZXRlLWNoaXAge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5jaGlwLmZvY3VzLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5jaGlwLmZvY3VzLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy55Jyl9IC8gMik7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpO1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCBpbnB1dCB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgb3V0bGluZTogMCBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUucGxhY2Vob2xkZXIuY29sb3InKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1lbXB0eS1tZXNzYWdlIHtcbiAgICBwYWRkaW5nOiAke2R0KCdhdXRvY29tcGxldGUuZW1wdHkubWVzc2FnZS5wYWRkaW5nJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtZmx1aWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1mbHVpZDpoYXMoLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duKSAucC1hdXRvY29tcGxldGUtaW5wdXQge1xuICAgIHdpZHRoOiAxJTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOmhhcygucC1pbnB1dHRleHQtc20pIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93biB7XG4gICAgd2lkdGg6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5zbS53aWR0aCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOmhhcygucC1pbnB1dHRleHQtc20pIC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93biAucC1pY29uIHtcbiAgICBmb250LXNpemU6ICR7ZHQoJ2Zvcm0uZmllbGQuc20uZm9udC5zaXplJyl9O1xuICAgIHdpZHRoOiAke2R0KCdmb3JtLmZpZWxkLnNtLmZvbnQuc2l6ZScpfTtcbiAgICBoZWlnaHQ6ICR7ZHQoJ2Zvcm0uZmllbGQuc20uZm9udC5zaXplJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWlucHV0dGV4dC1sZykgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIHtcbiAgICB3aWR0aDogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmxnLndpZHRoJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWlucHV0dGV4dC1sZykgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIC5wLWljb24ge1xuICAgIGZvbnQtc2l6ZTogJHtkdCgnZm9ybS5maWVsZC5sZy5mb250LnNpemUnKX07XG4gICAgd2lkdGg6ICR7ZHQoJ2Zvcm0uZmllbGQubGcuZm9udC5zaXplJyl9O1xuICAgIGhlaWdodDogJHtkdCgnZm9ybS5maWVsZC5sZy5mb250LnNpemUnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1jbGVhci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcmlnaHQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLngnKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOmhhcygucC1hdXRvY29tcGxldGUtZHJvcGRvd24pIC5wLWF1dG9jb21wbGV0ZS1jbGVhci1pY29uIHtcbiAgICByaWdodDogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy54Jyl9ICsgJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLndpZHRoJyl9KTtcbn1cblxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQsXG5wLWF1dG9jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuaW52YWxpZC5ib3JkZXIuY29sb3InKX07XG59XG5cbnAtYXV0b2NvbXBsZXRlLm5nLWludmFsaWQubmctZGlydHkgLnAtYXV0b2NvbXBsZXRlLWlucHV0OmVuYWJsZWQ6Zm9jdXMsXG5wLWF1dG9jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5Om5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyAucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLmJvcmRlci5jb2xvcicpfTtcbn1cblxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuaW52YWxpZC5wbGFjZWhvbGRlci5jb2xvcicpfTtcbn1cblxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmludmFsaWQucGxhY2Vob2xkZXIuY29sb3InKX07XG59YDtcblxuY29uc3QgaW5saW5lU3R5bGVzID0ge1xuICAgIHJvb3Q6IHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfVxufTtcblxuY29uc3QgY2xhc3NlcyA9IHtcbiAgICByb290OiAoeyBpbnN0YW5jZSB9KSA9PiAoe1xuICAgICAgICAncC1hdXRvY29tcGxldGUgcC1jb21wb25lbnQgcC1pbnB1dHdyYXBwZXInOiB0cnVlLFxuICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLmRpc2FibGVkLFxuICAgICAgICAncC1mb2N1cyc6IGluc3RhbmNlLmZvY3VzZWQsXG4gICAgICAgICdwLWlucHV0d3JhcHBlci1maWxsZWQnOiBpbnN0YW5jZS5maWxsZWQsXG4gICAgICAgICdwLWlucHV0d3JhcHBlci1mb2N1cyc6IChpbnN0YW5jZS5mb2N1c2VkICYmICFpbnN0YW5jZS5kaXNhYmxlZCkgfHwgaW5zdGFuY2UuYXV0b2ZvY3VzIHx8IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1hdXRvY29tcGxldGUtb3Blbic6IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1hdXRvY29tcGxldGUtY2xlYXJhYmxlJzogaW5zdGFuY2Uuc2hvd0NsZWFyICYmICFpbnN0YW5jZS5kaXNhYmxlZCxcbiAgICAgICAgLy8gJ3AtaW52YWxpZCc6IGluc3RhbmNlLmludmFsaWQsXG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1mbHVpZCc6IGluc3RhbmNlLmhhc0ZsdWlkKClcbiAgICB9KSxcbiAgICBwY0lucHV0OiAncC1hdXRvY29tcGxldGUtaW5wdXQnLFxuICAgIGlucHV0TXVsdGlwbGU6ICh7IGluc3RhbmNlIH0pID0+ICh7XG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSc6IHRydWUsXG4gICAgICAgICdwLXZhcmlhbnQtZmlsbGVkJzogaW5zdGFuY2UudmFyaWFudCA/IGluc3RhbmNlLnZhcmlhbnQgPT09ICdmaWxsZWQnIDogaW5zdGFuY2UuY29uZmlnLmlucHV0U3R5bGUoKSA9PT0gJ2ZpbGxlZCdcbiAgICB9KSxcbiAgICBjaGlwSXRlbTogKHsgaW5zdGFuY2UsIGkgfSkgPT4gW1xuICAgICAgICAncC1hdXRvY29tcGxldGUtY2hpcC1pdGVtJyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtZm9jdXMnOiBpbnN0YW5jZS5mb2N1c2VkTXVsdGlwbGVPcHRpb25JbmRleCA9PT0gaVxuICAgICAgICB9XG4gICAgXSxcbiAgICBwY0NoaXA6ICdwLWF1dG9jb21wbGV0ZS1jaGlwJyxcbiAgICBjaGlwSWNvbjogJ3AtYXV0b2NvbXBsZXRlLWNoaXAtaWNvbicsXG4gICAgaW5wdXRDaGlwOiAncC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCcsXG4gICAgbG9hZGVyOiAncC1hdXRvY29tcGxldGUtbG9hZGVyJyxcbiAgICBkcm9wZG93bjogJ3AtYXV0b2NvbXBsZXRlLWRyb3Bkb3duJyxcbiAgICBvdmVybGF5OiAncC1hdXRvY29tcGxldGUtb3ZlcmxheSBwLWNvbXBvbmVudCcsXG4gICAgbGlzdDogJ3AtYXV0b2NvbXBsZXRlLWxpc3QnLFxuICAgIG9wdGlvbkdyb3VwOiAncC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwJyxcbiAgICBvcHRpb246ICh7IGluc3RhbmNlLCBvcHRpb24sIGksIGdldEl0ZW1PcHRpb25zIH0pID0+ICh7XG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1vcHRpb24nOiB0cnVlLFxuICAgICAgICAncC1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkJzogaW5zdGFuY2UuaXNTZWxlY3RlZChvcHRpb24pLFxuICAgICAgICAncC1mb2N1cyc6IGluc3RhbmNlLmZvY3VzZWRPcHRpb25JbmRleCA9PT0gaW5zdGFuY2UuZ2V0T3B0aW9uSW5kZXgoaSwgZ2V0SXRlbU9wdGlvbnMpLFxuICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLmlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVxuICAgIH0pLFxuICAgIGVtcHR5TWVzc2FnZTogJ3AtYXV0b2NvbXBsZXRlLWVtcHR5LW1lc3NhZ2UnXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlU3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge1xuICAgIG5hbWUgPSAnYXV0b2NvbXBsZXRlJztcblxuICAgIHRoZW1lID0gdGhlbWU7XG5cbiAgICBjbGFzc2VzID0gY2xhc3NlcztcblxuICAgIGlubGluZVN0eWxlcyA9IGlubGluZVN0eWxlcztcbn1cblxuLyoqXG4gKlxuICogQXV0b0NvbXBsZXRlIGlzIGFuIGlucHV0IGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIHJlYWwtdGltZSBzdWdnZXN0aW9ucyB3aGlsZSBiZWluZyB0eXBlZC5cbiAqXG4gKiBbTGl2ZSBEZW1vXShodHRwczovL3d3dy5wcmltZW5nLm9yZy9hdXRvY29tcGxldGUvKVxuICpcbiAqIEBtb2R1bGUgYXV0b2NvbXBsZXRlc3R5bGVcbiAqXG4gKi9cbmV4cG9ydCBlbnVtIEF1dG9Db21wbGV0ZUNsYXNzZXMge1xuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHJvb3QgZWxlbWVudFxuICAgICAqL1xuICAgIHJvb3QgPSAncC1hdXRvY29tcGxldGUnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBwY0lucHV0ID0gJ3AtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBpbnB1dCBtdWx0aXBsZSBlbGVtZW50XG4gICAgICovXG4gICAgaW5wdXRNdWx0aXBsZSA9ICdwLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZScsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgY2hpcCBpdGVtIGVsZW1lbnRcbiAgICAgKi9cbiAgICBjaGlwSXRlbSA9ICdwLWF1dG9jb21wbGV0ZS1jaGlwLWl0ZW0nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGNoaXAgZWxlbWVudFxuICAgICAqL1xuICAgIHBjQ2hpcCA9ICdwLWF1dG9jb21wbGV0ZS1jaGlwJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjaGlwIGljb24gZWxlbWVudFxuICAgICAqL1xuICAgIGNoaXBJY29uID0gJ3AtYXV0b2NvbXBsZXRlLWNoaXAtaWNvbicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgaW5wdXQgY2hpcCBlbGVtZW50XG4gICAgICovXG4gICAgaW5wdXRDaGlwID0gJ3AtYXV0b2NvbXBsZXRlLWlucHV0LWNoaXAnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxvYWRlciBlbGVtZW50XG4gICAgICovXG4gICAgbG9hZGVyID0gJ3AtYXV0b2NvbXBsZXRlLWxvYWRlcicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgZHJvcGRvd24gZWxlbWVudFxuICAgICAqL1xuICAgIGRyb3Bkb3duID0gJ3AtYXV0b2NvbXBsZXRlLWRyb3Bkb3duJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBwYW5lbCBlbGVtZW50XG4gICAgICovXG4gICAgcGFuZWwgPSAncC1hdXRvY29tcGxldGUtb3ZlcmxheScsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgbGlzdCBlbGVtZW50XG4gICAgICovXG4gICAgbGlzdCA9ICdwLWF1dG9jb21wbGV0ZS1saXN0JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBvcHRpb24gZ3JvdXAgZWxlbWVudFxuICAgICAqL1xuICAgIG9wdGlvbkdyb3VwID0gJ3AtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgb3B0aW9uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBvcHRpb24gPSAncC1hdXRvY29tcGxldGUtb3B0aW9uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBlbXB0eSBtZXNzYWdlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBlbXB0eU1lc3NhZ2UgPSAncC1hdXRvY29tcGxldGUtZW1wdHktbWVzc2FnZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvQ29tcGxldGVTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7fVxuIl19
422
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0b2NvbXBsZXRlL3N0eWxlL2F1dG9jb21wbGV0ZXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7Ozs7O3dCQVNGLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzs7Ozs2QkFJdkIsRUFBRSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxDQUFDLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2FBc0JuRixFQUFFLENBQUMsNkJBQTZCLENBQUM7K0JBQ2YsRUFBRSxDQUFDLHFDQUFxQyxDQUFDOzZCQUMzQyxFQUFFLENBQUMscUNBQXFDLENBQUM7a0JBQ3BELEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzt3QkFDaEMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDOzthQUVuRCxFQUFFLENBQUMsNkJBQTZCLENBQUM7NkJBQ2pCLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsa0NBQWtDLENBQUMsZ0JBQWdCLEVBQUUsQ0FDL08sa0NBQWtDLENBQ3JDOzs7OztrQkFLYSxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQzFDLEVBQUUsQ0FBQywwQ0FBMEMsQ0FBQzthQUNyRCxFQUFFLENBQUMsbUNBQW1DLENBQUM7Ozs7a0JBSWxDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztvQkFDM0MsRUFBRSxDQUFDLDJDQUEyQyxDQUFDO2FBQ3RELEVBQUUsQ0FBQyxvQ0FBb0MsQ0FB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Qjs7T0FFRztJQUNILGtFQUEyQyxDQUFBO0lBQzNDOztPQUVHO0lBQ0gsdURBQWdDLENBQUE7SUFDaEM7O09BRUc7SUFDSCxvRUFBNkMsQ0FBQTtBQUNqRCxDQUFDLEVBekRXLG1CQUFtQixLQUFuQixtQkFBbUIsUUF5RDlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy9iYXNlJztcblxuY29uc3QgdGhlbWUgPSAoeyBkdCB9KSA9PiBgXG4ucC1hdXRvY29tcGxldGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4ucC1hdXRvY29tcGxldGUtbG9hZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiAke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy54Jyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bikgLnAtYXV0b2NvbXBsZXRlLWxvYWRlciB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYygke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24ud2lkdGgnKX0gKyAke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy54Jyl9KTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOmhhcygucC1hdXRvY29tcGxldGUtZHJvcGRvd24pIC5wLWF1dG9jb21wbGV0ZS1pbnB1dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgd2lkdGg6IDElO1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bikgLnAtYXV0b2NvbXBsZXRlLWlucHV0LFxuLnAtYXV0b2NvbXBsZXRlOmhhcygucC1hdXRvY29tcGxldGUtZHJvcGRvd24pIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiAwO1xufVxuXG4ucC1hdXRvY29tcGxldGUtZHJvcGRvd24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24ud2lkdGgnKX07XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmJvcmRlci5yYWRpdXMnKX07XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmJhY2tncm91bmQnKX07XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmJvcmRlci5jb2xvcicpfTtcbiAgICBib3JkZXItaW5saW5lLXN0YXJ0OiAwIG5vbmU7XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5jb2xvcicpfTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBjb2xvciAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm9yZGVyLWNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBvdXRsaW5lLWNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3gtc2hhZG93ICR7ZHQoXG4gICAgICAgICdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbidcbiAgICApfTtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uaG92ZXIuYmFja2dyb3VuZCcpfTtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5ob3Zlci5ib3JkZXIuY29sb3InKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5ob3Zlci5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmFjdGl2ZS5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmFjdGl2ZS5ib3JkZXIuY29sb3InKX07XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5hY3RpdmUuY29sb3InKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bjpmb2N1cy12aXNpYmxlIHtcbiAgICBib3gtc2hhZG93OiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24uZm9jdXMucmluZy5zaGFkb3cnKX07XG4gICAgb3V0bGluZTogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmZvY3VzLnJpbmcud2lkdGgnKX0gJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmZvY3VzLnJpbmcuc3R5bGUnKX0gJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmZvY3VzLnJpbmcuY29sb3InKX07XG4gICAgb3V0bGluZS1vZmZzZXQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5kcm9wZG93bi5mb2N1cy5yaW5nLm9mZnNldCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlIC5wLWF1dG9jb21wbGV0ZS1vdmVybGF5IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUub3ZlcmxheS5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3ZlcmxheS5jb2xvcicpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2R0KCdhdXRvY29tcGxldGUub3ZlcmxheS5ib3JkZXIuY29sb3InKX07XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLm92ZXJsYXkuYm9yZGVyLnJhZGl1cycpfTtcbiAgICBib3gtc2hhZG93OiAke2R0KCdhdXRvY29tcGxldGUub3ZlcmxheS5zaGFkb3cnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1saXN0LWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5saXN0LmdhcCcpfTtcbiAgICBwYWRkaW5nOiAke2R0KCdhdXRvY29tcGxldGUubGlzdC5wYWRkaW5nJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtb3B0aW9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5wYWRkaW5nJyl9O1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLmNvbG9yJyl9O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGNvbG9yICR7ZHQoJ2F1dG9jb21wbGV0ZS50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3JkZXItY29sb3IgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX07XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5ib3JkZXIucmFkaXVzJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtb3B0aW9uOm5vdCgucC1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkKTpub3QoLnAtZGlzYWJsZWQpLnAtZm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uZm9jdXMuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5mb2N1cy5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5zZWxlY3RlZC5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLnNlbGVjdGVkLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkLnAtZm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uc2VsZWN0ZWQuZm9jdXMuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5zZWxlY3RlZC5mb2N1cy5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLW9wdGlvbi1ncm91cCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uZ3JvdXAucGFkZGluZycpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLm9wdGlvbi5ncm91cC5jb2xvcicpfTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUub3B0aW9uLmdyb3VwLmJhY2tncm91bmQnKX07XG4gICAgZm9udC13ZWlnaHQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5vcHRpb24uZ3JvdXAuZm9udC53ZWlnaHQnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBjdXJzb3I6IHRleHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpICR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLngnKX07XG4gICAgZ2FwOiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmNvbG9yJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ2F1dG9jb21wbGV0ZS5ib3JkZXIuY29sb3InKX07XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnYXV0b2NvbXBsZXRlLmJvcmRlci5yYWRpdXMnKX07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgY29sb3IgJHtkdCgnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJvcmRlci1jb2xvciAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgb3V0bGluZS1jb2xvciAke2R0KCdhdXRvY29tcGxldGUudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm94LXNoYWRvdyAke2R0KFxuICAgICAgICAnYXV0b2NvbXBsZXRlLnRyYW5zaXRpb24uZHVyYXRpb24nXG4gICAgKX07XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogJHtkdCgnYXV0b2NvbXBsZXRlLnNoYWRvdycpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOm5vdCgucC1kaXNhYmxlZCk6aG92ZXIgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5ob3Zlci5ib3JkZXIuY29sb3InKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZTpub3QoLnAtZGlzYWJsZWQpLnAtZm9jdXMgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5mb2N1cy5ib3JkZXIuY29sb3InKX07XG4gICAgYm94LXNoYWRvdzogJHtkdCgnYXV0b2NvbXBsZXRlLmZvY3VzLnJpbmcuc2hhZG93Jyl9O1xuICAgIG91dGxpbmU6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5mb2N1cy5yaW5nLndpZHRoJyl9ICR7ZHQoJ2F1dG9jb21wbGV0ZS5mb2N1cy5yaW5nLnN0eWxlJyl9ICR7ZHQoJ2F1dG9jb21wbGV0ZS5mb2N1cy5yaW5nLmNvbG9yJyl9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAke2R0KCdhdXRvY29tcGxldGUuZm9jdXMucmluZy5vZmZzZXQnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS5wLWludmFsaWQgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5pbnZhbGlkLmJvcmRlci5jb2xvcicpfTtcbn1cblxuLnAtdmFyaWFudC1maWxsZWQucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5maWxsZWQuYmFja2dyb3VuZCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOm5vdCgucC1kaXNhYmxlZCk6aG92ZXIgLnAtdmFyaWFudC1maWxsZWQucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5maWxsZWQuaG92ZXIuYmFja2dyb3VuZCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlOm5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyAucC12YXJpYW50LWZpbGxlZC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSAge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5maWxsZWQuZm9jdXMuYmFja2dyb3VuZCcpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLnAtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS5wLWRpc2FibGVkIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdhdXRvY29tcGxldGUuZGlzYWJsZWQuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRpc2FibGVkLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtY2hpcC5wLWNoaXAge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdhdXRvY29tcGxldGUuY2hpcC5ib3JkZXIucmFkaXVzJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1jaGlwKSB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueScpfSAvIDIpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy55Jyl9IC8gMik7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1jaGlwLWl0ZW0ucC1mb2N1cyAucC1hdXRvY29tcGxldGUtY2hpcCB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnYXV0b2NvbXBsZXRlLmNoaXAuZm9jdXMuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmNoaXAuZm9jdXMuY29sb3InKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1pbnB1dC1jaGlwIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYygke2R0KCdhdXRvY29tcGxldGUucGFkZGluZy55Jyl9IC8gMik7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1pbnB1dC1jaGlwIGlucHV0IHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1pbnB1dC1jaGlwIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5wbGFjZWhvbGRlci5jb2xvcicpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWVtcHR5LW1lc3NhZ2Uge1xuICAgIHBhZGRpbmc6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5lbXB0eS5tZXNzYWdlLnBhZGRpbmcnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZS1mbHVpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWZsdWlkOmhhcygucC1hdXRvY29tcGxldGUtZHJvcGRvd24pIC5wLWF1dG9jb21wbGV0ZS1pbnB1dCB7XG4gICAgd2lkdGg6IDElO1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWlucHV0dGV4dC1zbSkgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIHtcbiAgICB3aWR0aDogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLnNtLndpZHRoJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWlucHV0dGV4dC1zbSkgLnAtYXV0b2NvbXBsZXRlLWRyb3Bkb3duIC5wLWljb24ge1xuICAgIGZvbnQtc2l6ZTogJHtkdCgnZm9ybS5maWVsZC5zbS5mb250LnNpemUnKX07XG4gICAgd2lkdGg6ICR7ZHQoJ2Zvcm0uZmllbGQuc20uZm9udC5zaXplJyl9O1xuICAgIGhlaWdodDogJHtkdCgnZm9ybS5maWVsZC5zbS5mb250LnNpemUnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZTpoYXMoLnAtaW5wdXR0ZXh0LWxnKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24ge1xuICAgIHdpZHRoOiAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24ubGcud2lkdGgnKX07XG59XG5cbi5wLWF1dG9jb21wbGV0ZTpoYXMoLnAtaW5wdXR0ZXh0LWxnKSAucC1hdXRvY29tcGxldGUtZHJvcGRvd24gLnAtaWNvbiB7XG4gICAgZm9udC1zaXplOiAke2R0KCdmb3JtLmZpZWxkLmxnLmZvbnQuc2l6ZScpfTtcbiAgICB3aWR0aDogJHtkdCgnZm9ybS5maWVsZC5sZy5mb250LnNpemUnKX07XG4gICAgaGVpZ2h0OiAke2R0KCdmb3JtLmZpZWxkLmxnLmZvbnQuc2l6ZScpfTtcbn1cblxuLnAtYXV0b2NvbXBsZXRlLWNsZWFyLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICByaWdodDogJHtkdCgnYXV0b2NvbXBsZXRlLnBhZGRpbmcueCcpfTtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmRyb3Bkb3duLmNvbG9yJyl9O1xufVxuXG4ucC1hdXRvY29tcGxldGU6aGFzKC5wLWF1dG9jb21wbGV0ZS1kcm9wZG93bikgLnAtYXV0b2NvbXBsZXRlLWNsZWFyLWljb24ge1xuICAgIHJpZ2h0OiBjYWxjKCR7ZHQoJ2F1dG9jb21wbGV0ZS5wYWRkaW5nLngnKX0gKyAke2R0KCdhdXRvY29tcGxldGUuZHJvcGRvd24ud2lkdGgnKX0pO1xufVxucC1hdXRvQ29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQsXG5wLWF1dG9Db21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSxcbnAtYXV0by1jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dCxcbnAtYXV0by1jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZVxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQsXG5wLWF1dG9jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuaW52YWxpZC5ib3JkZXIuY29sb3InKX07XG59XG5wLWF1dG9Db21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dDplbmFibGVkOmZvY3VzLFxucC1hdXRvQ29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eTpub3QoLnAtZGlzYWJsZWQpLnAtZm9jdXMgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlLFxucC1hdXRvLWNvbXBsZXRlLm5nLWludmFsaWQubmctZGlydHkgLnAtYXV0b2NvbXBsZXRlLWlucHV0OmVuYWJsZWQ6Zm9jdXMsXG5wLWF1dG8tY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eTpub3QoLnAtZGlzYWJsZWQpLnAtZm9jdXMgLnAtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlLFxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQ6ZW5hYmxlZDpmb2N1cyxcbnAtYXV0b2NvbXBsZXRlLm5nLWludmFsaWQubmctZGlydHk6bm90KC5wLWRpc2FibGVkKS5wLWZvY3VzIC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1tdWx0aXBsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdhdXRvY29tcGxldGUuZm9jdXMuYm9yZGVyLmNvbG9yJyl9O1xufVxucC1hdXRvQ29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCBpbnB1dDo6cGxhY2Vob2xkZXIsXG5wLWF1dG8tY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCBpbnB1dDo6cGxhY2Vob2xkZXIsXG5wLWF1dG9jb21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dC1jaGlwIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7ZHQoJ2F1dG9jb21wbGV0ZS5pbnZhbGlkLnBsYWNlaG9sZGVyLmNvbG9yJyl9O1xufVxuXG5wLWF1dG9Db21wbGV0ZS5uZy1pbnZhbGlkLm5nLWRpcnR5IC5wLWF1dG9jb21wbGV0ZS1pbnB1dDo6cGxhY2Vob2xkZXIsXG5wLWF1dG8tY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQ6OnBsYWNlaG9sZGVyLFxucC1hdXRvY29tcGxldGUubmctaW52YWxpZC5uZy1kaXJ0eSAucC1hdXRvY29tcGxldGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtkdCgnYXV0b2NvbXBsZXRlLmludmFsaWQucGxhY2Vob2xkZXIuY29sb3InKX07XG59YDtcblxuY29uc3QgaW5saW5lU3R5bGVzID0ge1xuICAgIHJvb3Q6IHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfVxufTtcblxuY29uc3QgY2xhc3NlcyA9IHtcbiAgICByb290OiAoeyBpbnN0YW5jZSB9KSA9PiAoe1xuICAgICAgICAncC1hdXRvY29tcGxldGUgcC1jb21wb25lbnQgcC1pbnB1dHdyYXBwZXInOiB0cnVlLFxuICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLmRpc2FibGVkLFxuICAgICAgICAncC1mb2N1cyc6IGluc3RhbmNlLmZvY3VzZWQsXG4gICAgICAgICdwLWlucHV0d3JhcHBlci1maWxsZWQnOiBpbnN0YW5jZS5maWxsZWQsXG4gICAgICAgICdwLWlucHV0d3JhcHBlci1mb2N1cyc6IChpbnN0YW5jZS5mb2N1c2VkICYmICFpbnN0YW5jZS5kaXNhYmxlZCkgfHwgaW5zdGFuY2UuYXV0b2ZvY3VzIHx8IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1hdXRvY29tcGxldGUtb3Blbic6IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1hdXRvY29tcGxldGUtY2xlYXJhYmxlJzogaW5zdGFuY2Uuc2hvd0NsZWFyICYmICFpbnN0YW5jZS5kaXNhYmxlZCxcbiAgICAgICAgLy8gJ3AtaW52YWxpZCc6IGluc3RhbmNlLmludmFsaWQsXG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1mbHVpZCc6IGluc3RhbmNlLmhhc0ZsdWlkXG4gICAgfSksXG4gICAgcGNJbnB1dDogJ3AtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgICBpbnB1dE11bHRpcGxlOiAoeyBpbnN0YW5jZSB9KSA9PiAoe1xuICAgICAgICAncC1hdXRvY29tcGxldGUtaW5wdXQtbXVsdGlwbGUnOiB0cnVlLFxuICAgICAgICAncC12YXJpYW50LWZpbGxlZCc6IChpbnN0YW5jZS52YXJpYW50ID8/IChpbnN0YW5jZS5jb25maWcuaW5wdXRTdHlsZSgpIHx8IGluc3RhbmNlLmNvbmZpZy5pbnB1dFZhcmlhbnQoKSkpID09PSAnZmlsbGVkJ1xuICAgIH0pLFxuICAgIGNoaXBJdGVtOiAoeyBpbnN0YW5jZSwgaSB9KSA9PiBbXG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1jaGlwLWl0ZW0nLFxuICAgICAgICB7XG4gICAgICAgICAgICAncC1mb2N1cyc6IGluc3RhbmNlLmZvY3VzZWRNdWx0aXBsZU9wdGlvbkluZGV4ID09PSBpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHBjQ2hpcDogJ3AtYXV0b2NvbXBsZXRlLWNoaXAnLFxuICAgIGNoaXBJY29uOiAncC1hdXRvY29tcGxldGUtY2hpcC1pY29uJyxcbiAgICBpbnB1dENoaXA6ICdwLWF1dG9jb21wbGV0ZS1pbnB1dC1jaGlwJyxcbiAgICBsb2FkZXI6ICdwLWF1dG9jb21wbGV0ZS1sb2FkZXInLFxuICAgIGRyb3Bkb3duOiAncC1hdXRvY29tcGxldGUtZHJvcGRvd24nLFxuICAgIG92ZXJsYXk6ICdwLWF1dG9jb21wbGV0ZS1vdmVybGF5IHAtY29tcG9uZW50JyxcbiAgICBsaXN0OiAncC1hdXRvY29tcGxldGUtbGlzdCcsXG4gICAgb3B0aW9uR3JvdXA6ICdwLWF1dG9jb21wbGV0ZS1vcHRpb24tZ3JvdXAnLFxuICAgIG9wdGlvbjogKHsgaW5zdGFuY2UsIG9wdGlvbiwgaSwgZ2V0SXRlbU9wdGlvbnMgfSkgPT4gKHtcbiAgICAgICAgJ3AtYXV0b2NvbXBsZXRlLW9wdGlvbic6IHRydWUsXG4gICAgICAgICdwLWF1dG9jb21wbGV0ZS1vcHRpb24tc2VsZWN0ZWQnOiBpbnN0YW5jZS5pc1NlbGVjdGVkKG9wdGlvbiksXG4gICAgICAgICdwLWZvY3VzJzogaW5zdGFuY2UuZm9jdXNlZE9wdGlvbkluZGV4ID09PSBpbnN0YW5jZS5nZXRPcHRpb25JbmRleChpLCBnZXRJdGVtT3B0aW9ucyksXG4gICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pXG4gICAgfSksXG4gICAgZW1wdHlNZXNzYWdlOiAncC1hdXRvY29tcGxldGUtZW1wdHktbWVzc2FnZSdcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdhdXRvY29tcGxldGUnO1xuXG4gICAgdGhlbWUgPSB0aGVtZTtcblxuICAgIGNsYXNzZXMgPSBjbGFzc2VzO1xuXG4gICAgaW5saW5lU3R5bGVzID0gaW5saW5lU3R5bGVzO1xufVxuXG4vKipcbiAqXG4gKiBBdXRvQ29tcGxldGUgaXMgYW4gaW5wdXQgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgcmVhbC10aW1lIHN1Z2dlc3Rpb25zIHdoaWxlIGJlaW5nIHR5cGVkLlxuICpcbiAqIFtMaXZlIERlbW9dKGh0dHBzOi8vd3d3LnByaW1lbmcub3JnL2F1dG9jb21wbGV0ZS8pXG4gKlxuICogQG1vZHVsZSBhdXRvY29tcGxldGVzdHlsZVxuICpcbiAqL1xuZXhwb3J0IGVudW0gQXV0b0NvbXBsZXRlQ2xhc3NlcyB7XG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgcm9vdCA9ICdwLWF1dG9jb21wbGV0ZScsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAqL1xuICAgIHBjSW5wdXQgPSAncC1hdXRvY29tcGxldGUtaW5wdXQnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGlucHV0IG11bHRpcGxlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBpbnB1dE11bHRpcGxlID0gJ3AtYXV0b2NvbXBsZXRlLWlucHV0LW11bHRpcGxlJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjaGlwIGl0ZW0gZWxlbWVudFxuICAgICAqL1xuICAgIGNoaXBJdGVtID0gJ3AtYXV0b2NvbXBsZXRlLWNoaXAtaXRlbScsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgY2hpcCBlbGVtZW50XG4gICAgICovXG4gICAgcGNDaGlwID0gJ3AtYXV0b2NvbXBsZXRlLWNoaXAnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGNoaXAgaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgY2hpcEljb24gPSAncC1hdXRvY29tcGxldGUtY2hpcC1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBpbnB1dCBjaGlwIGVsZW1lbnRcbiAgICAgKi9cbiAgICBpbnB1dENoaXAgPSAncC1hdXRvY29tcGxldGUtaW5wdXQtY2hpcCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgbG9hZGVyIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsb2FkZXIgPSAncC1hdXRvY29tcGxldGUtbG9hZGVyJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBkcm9wZG93biBlbGVtZW50XG4gICAgICovXG4gICAgZHJvcGRvd24gPSAncC1hdXRvY29tcGxldGUtZHJvcGRvd24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHBhbmVsIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwYW5lbCA9ICdwLWF1dG9jb21wbGV0ZS1vdmVybGF5JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBsaXN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBsaXN0ID0gJ3AtYXV0b2NvbXBsZXRlLWxpc3QnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIG9wdGlvbiBncm91cCBlbGVtZW50XG4gICAgICovXG4gICAgb3B0aW9uR3JvdXAgPSAncC1hdXRvY29tcGxldGUtb3B0aW9uLWdyb3VwJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBvcHRpb24gZWxlbWVudFxuICAgICAqL1xuICAgIG9wdGlvbiA9ICdwLWF1dG9jb21wbGV0ZS1vcHRpb24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGVtcHR5IG1lc3NhZ2UgZWxlbWVudFxuICAgICAqL1xuICAgIGVtcHR5TWVzc2FnZSA9ICdwLWF1dG9jb21wbGV0ZS1lbXB0eS1tZXNzYWdlJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Db21wbGV0ZVN0eWxlIGV4dGVuZHMgQmFzZVN0eWxlIHt9XG4iXX0=
@@ -104,14 +104,7 @@ function Button_p_badge_6_Template(rf, ctx) { if (rf & 1) {
104
104
  const ctx_r0 = i0.ɵɵnextContext();
105
105
  i0.ɵɵproperty("value", ctx_r0.badge)("severity", ctx_r0.badgeSeverity);
106
106
  } }
107
- const INTERNAL_BUTTON_CLASSES = {
108
- button: 'p-button',
109
- component: 'p-component',
110
- iconOnly: 'p-button-icon-only',
111
- disabled: 'p-disabled',
112
- loading: 'p-button-loading',
113
- labelOnly: 'p-button-loading-label-only'
114
- };
107
+ const INTERNAL_BUTTON_CLASSES = { button: 'p-button', component: 'p-component', iconOnly: 'p-button-icon-only', disabled: 'p-disabled', loading: 'p-button-loading', labelOnly: 'p-button-loading-label-only' };
115
108
  export class ButtonLabel extends BaseComponent {
116
109
  _componentStyle = inject(ButtonStyle);
117
110
  static ɵfac = /*@__PURE__*/ (() => { let ɵButtonLabel_BaseFactory; return function ButtonLabel_Factory(__ngFactoryType__) { return (ɵButtonLabel_BaseFactory || (ɵButtonLabel_BaseFactory = i0.ɵɵgetInheritedFactory(ButtonLabel)))(__ngFactoryType__ || ButtonLabel); }; })();
@@ -121,14 +114,7 @@ export class ButtonLabel extends BaseComponent {
121
114
  }
122
115
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonLabel, [{
123
116
  type: Directive,
124
- args: [{
125
- selector: '[pButtonLabel]',
126
- providers: [ButtonStyle],
127
- standalone: true,
128
- host: {
129
- '[class.p-button-label]': 'true'
130
- }
131
- }]
117
+ args: [{ selector: '[pButtonLabel]', providers: [ButtonStyle], standalone: true, host: { '[class.p-button-label]': 'true' } }]
132
118
  }], null, null); })();
133
119
  export class ButtonIcon extends BaseComponent {
134
120
  _componentStyle = inject(ButtonStyle);
@@ -139,14 +125,7 @@ export class ButtonIcon extends BaseComponent {
139
125
  }
140
126
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonIcon, [{
141
127
  type: Directive,
142
- args: [{
143
- selector: '[pButtonIcon]',
144
- providers: [ButtonStyle],
145
- standalone: true,
146
- host: {
147
- '[class.p-button-icon]': 'true'
148
- }
149
- }]
128
+ args: [{ selector: '[pButtonIcon]', providers: [ButtonStyle], standalone: true, host: { '[class.p-button-icon]': 'true' } }]
150
129
  }], null, null); })();
151
130
  /**
152
131
  * Button directive is an extension to button component.
@@ -446,15 +425,7 @@ export class ButtonDirective extends BaseComponent {
446
425
  }
447
426
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonDirective, [{
448
427
  type: Directive,
449
- args: [{
450
- selector: '[pButton]',
451
- standalone: true,
452
- providers: [ButtonStyle],
453
- host: {
454
- '[class.p-button-icon-only]': 'isIconOnly()',
455
- '[class.p-button-text]': 'isTextButton()'
456
- }
457
- }]
428
+ args: [{ selector: '[pButton]', standalone: true, providers: [ButtonStyle], host: { '[class.p-button-icon-only]': 'isIconOnly()', '[class.p-button-text]': 'isTextButton()' } }]
458
429
  }], null, { iconPos: [{
459
430
  type: Input
460
431
  }], loadingIcon: [{
@@ -688,16 +659,16 @@ export class Button extends BaseComponent {
688
659
  this.templates?.forEach((item) => {
689
660
  switch (item.getType()) {
690
661
  case 'content':
691
- this.contentTemplate = item.template;
662
+ this._contentTemplate = item.template;
692
663
  break;
693
664
  case 'icon':
694
- this.iconTemplate = item.template;
665
+ this._iconTemplate = item.template;
695
666
  break;
696
667
  case 'loadingicon':
697
- this.loadingIconTemplate = item.template;
668
+ this._loadingIconTemplate = item.template;
698
669
  break;
699
670
  default:
700
- this.contentTemplate = item.template;
671
+ this._contentTemplate = item.template;
701
672
  break;
702
673
  }
703
674
  });
@@ -730,7 +701,7 @@ export class Button extends BaseComponent {
730
701
  get buttonClass() {
731
702
  return {
732
703
  'p-button p-component': true,
733
- 'p-button-icon-only': (this.icon || this.iconTemplate || this.loadingIcon || this.loadingIconTemplate || this._loadingIconTemplate) && !this.label,
704
+ 'p-button-icon-only': (this.icon || this.iconTemplate || this._iconTemplate || this.loadingIcon || this.loadingIconTemplate || this._loadingIconTemplate) && !this.label,
734
705
  'p-button-vertical': (this.iconPos === 'top' || this.iconPos === 'bottom') && this.label,
735
706
  'p-button-loading': this.loading,
736
707
  'p-button-loading-label-only': this.loading && !this.icon && this.label && !this.loadingIcon && this.iconPos === 'left',
@@ -914,10 +885,7 @@ export class ButtonModule {
914
885
  }
915
886
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonModule, [{
916
887
  type: NgModule,
917
- args: [{
918
- imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon],
919
- exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule]
920
- }]
888
+ args: [{ imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon], exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule] }]
921
889
  }], null, null); })();
922
890
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ButtonModule, { imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon], exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule] }); })();
923
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixlQUFlLEVBRWYsTUFBTSxFQUlOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0lBa2F0Qyx3QkFBcUY7OztJQUc3RSwwQkFBMEg7OztJQUFoRyw0Q0FBdUI7Ozs7SUFDakQsaUNBQXFKOzs7SUFBakYsQUFBbEMsc0RBQWlDLGNBQWM7Ozs7SUFGckYsNkJBQW9FO0lBRWhFLEFBREEsdUZBQW1ILHdGQUNrQzs7OztJQUQ5SSxjQUFpQjtJQUFqQix5Q0FBaUI7SUFDVixjQUFrQjtJQUFsQiwwQ0FB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Z0JBQ3ZGLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUM7YUFDNUU7O3dGQUNZLFlBQVksY0FIWCxZQUFZLEVBeHBCYixlQUFlLEVBcVlmLE1BQU0sRUFtUmtDLFlBQVksRUFwckJwRCxXQUFXLEVBWVgsVUFBVSxhQWdCVixlQUFlLEVBcVlmLE1BQU0sRUFqYU4sV0FBVyxFQVlYLFVBQVUsRUF5cUJ5QyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ2xhc3MsIGZpbmRTaW5nbGUsIGlzRW1wdHkgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQXV0b0ZvY3VzIH0gZnJvbSAncHJpbWVuZy9hdXRvZm9jdXMnO1xuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL2JhZGdlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckljb24gfSBmcm9tICdwcmltZW5nL2ljb25zJztcbmltcG9ydCB7IFJpcHBsZSB9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7IEJ1dHRvblByb3BzIH0gZnJvbSAnLi9idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJ1dHRvblN0eWxlIH0gZnJvbSAnLi9zdHlsZS9idXR0b25zdHlsZSc7XG5cbnR5cGUgQnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbmNvbnN0IElOVEVSTkFMX0JVVFRPTl9DTEFTU0VTID0ge1xuICAgIGJ1dHRvbjogJ3AtYnV0dG9uJyxcbiAgICBjb21wb25lbnQ6ICdwLWNvbXBvbmVudCcsXG4gICAgaWNvbk9ubHk6ICdwLWJ1dHRvbi1pY29uLW9ubHknLFxuICAgIGRpc2FibGVkOiAncC1kaXNhYmxlZCcsXG4gICAgbG9hZGluZzogJ3AtYnV0dG9uLWxvYWRpbmcnLFxuICAgIGxhYmVsT25seTogJ3AtYnV0dG9uLWxvYWRpbmctbGFiZWwtb25seSdcbn0gYXMgY29uc3Q7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3BCdXR0b25MYWJlbF0nLFxuICAgIHByb3ZpZGVyczogW0J1dHRvblN0eWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLWJ1dHRvbi1sYWJlbF0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkxhYmVsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEJ1dHRvblN0eWxlKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcEJ1dHRvbkljb25dJyxcbiAgICBwcm92aWRlcnM6IFtCdXR0b25TdHlsZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1idXR0b24taWNvbl0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkljb24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQnV0dG9uU3R5bGUpO1xufVxuLyoqXG4gKiBCdXR0b24gZGlyZWN0aXZlIGlzIGFuIGV4dGVuc2lvbiB0byBidXR0b24gY29tcG9uZW50LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcEJ1dHRvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbQnV0dG9uU3R5bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLWJ1dHRvbi1pY29uLW9ubHldJzogJ2lzSWNvbk9ubHkoKScsXG4gICAgICAgICdbY2xhc3MucC1idXR0b24tdGV4dF0nOiAnaXNUZXh0QnV0dG9uKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25EaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZGVwcmVjYXRlZCB1dGlsaXplIHBCdXR0b25JY29uIGFuZCBwQnV0dG9uTGFiZWwgZGlyZWN0aXZlcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uUG9zOiBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgLyoqXG4gICAgICogVXNlcyB0byBwYXNzIGF0dHJpYnV0ZXMgdG8gdGhlIGxvYWRpbmcgaWNvbidzIERPTSBlbGVtZW50LlxuICAgICAqIEBkZXByZWNhdGVkIHV0aWxpemUgcEJ1dG9uSWNvbiBpbnN0ZWFkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxvYWRpbmdJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzZXQgbGFiZWwodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2YWw7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFiZWwoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZUNsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQgaWNvbih2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pY29uID0gdmFsO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3R5bGVDbGFzcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBpcyBpbiBsb2FkaW5nIHN0YXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWw7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZUNsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2J1dHRvblByb3BzITogQnV0dG9uUHJvcHM7XG5cbiAgICBwcml2YXRlIGljb25TaWduYWwgPSBjb250ZW50Q2hpbGQoQnV0dG9uSWNvbik7XG5cbiAgICBwcml2YXRlIGxhYmVsU2lnbmFsID0gY29udGVudENoaWxkKEJ1dHRvbkxhYmVsKTtcblxuICAgIGlzSWNvbk9ubHkgPSBjb21wdXRlZCgoKSA9PiAhISghdGhpcy5sYWJlbFNpZ25hbCgpICYmIHRoaXMuaWNvblNpZ25hbCgpKSk7XG5cbiAgICBzZXQgYnV0dG9uUHJvcHModmFsOiBCdXR0b25Qcm9wcykge1xuICAgICAgICB0aGlzLl9idXR0b25Qcm9wcyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbCkuZm9yRWFjaCgoW2ssIHZdKSA9PiB0aGlzW2BfJHtrfWBdICE9PSB2ICYmICh0aGlzW2BfJHtrfWBdID0gdikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0eWxlIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V2ZXJpdHk6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInIHwgJ2hlbHAnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnY29udHJhc3QnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBzaGFkb3cgdG8gaW5kaWNhdGUgZWxldmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYWlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBjaXJjdWxhciBib3JkZXIgcmFkaXVzIHRvIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvdW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0ZXh0OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgYm9yZGVyIGNsYXNzIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGluaXRpYWxseS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3V0bGluZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCB1bmRlZmluZWQgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBwbGFpbiB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSB2YXJpYW50IHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBsYWluOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU3BhbnMgMTAwJSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHdoZW4gZW5hYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmx1aWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgX2ljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGluaXRpYWxpemVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgcHJpdmF0ZSBnZXQgaHRtbEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ludGVybmFsQ2xhc3Nlczogc3RyaW5nW10gPSBPYmplY3QudmFsdWVzKElOVEVSTkFMX0JVVFRPTl9DTEFTU0VTKTtcblxuICAgIGlzVGV4dEJ1dHRvbiA9IGNvbXB1dGVkKCgpID0+ICEhKCF0aGlzLmljb25TaWduYWwoKSAmJiB0aGlzLmxhYmVsU2lnbmFsKCkgJiYgdGhpcy50ZXh0KSk7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IG9mIHRoZSBidXR0b24uXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIHBCdXR0b25MYWJlbCBkaXJlY3RpdmUgaW5zdGVhZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBpY29uLlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwQnV0dG9uSWNvbiBkaXJlY3RpdmUgaW5zdGVhZFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICAgICAqIEBkZXByZWNhdGVkIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IGJ1dHRvblByb3BzKCk6IEJ1dHRvblByb3BzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2J1dHRvblByb3BzO1xuICAgIH1cblxuICAgIHNwaW5uZXJJY29uID0gYDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwicC1pY29uLXNwaW5cIj5cbiAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MTdfMjE0MDgpXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNi45OTcwMSAxNEM1Ljg1NDQxIDEzLjk5OSA0LjcyOTM5IDEzLjcxODYgMy43MjAxMiAxMy4xODMyQzIuNzEwODQgMTIuNjQ3OCAxLjg0Nzk1IDExLjg3MzcgMS4yMDY3MyAxMC45Mjg0QzAuNTY1NTA0IDkuOTgzMDUgMC4xNjU0MjQgOC44OTUyNiAwLjA0MTM4NyA3Ljc1OTg5Qy0wLjA4MjY0OTYgNi42MjQ1MyAwLjA3MzEyNSA1LjQ3NjA3IDAuNDk1MTIyIDQuNDE0N0MwLjkxNzExOSAzLjM1MzMzIDEuNTkyNTIgMi40MTEzIDIuNDYyNDEgMS42NzA3N0MzLjMzMjI5IDAuOTMwMjQ3IDQuMzcwMjQgMC40MTM3MjkgNS40ODU3IDAuMTY2Mjc1QzYuNjAxMTcgLTAuMDgxMTc5NiA3Ljc2MDI2IC0wLjA1MjA1MzUgOC44NjE4OCAwLjI1MTExMkM5Ljk2MzUgMC41NTQyNzggMTAuOTc0MiAxLjEyMjI3IDExLjgwNTcgMS45MDU1NUMxMS45MTUgMi4wMTQ5MyAxMS45NzY0IDIuMTYzMTkgMTEuOTc2NCAyLjMxNzc4QzExLjk3NjQgMi40NzIzNiAxMS45MTUgMi42MjA2MiAxMS44MDU3IDIuNzNDMTEuNzUyMSAyLjc4NTAzIDExLjY4OCAyLjgyODc3IDExLjYxNzEgMi44NTg2NEMxMS41NDYzIDIuODg4NSAxMS40NzAyIDIuOTAzODkgMTEuMzkzMyAyLjkwMzg5QzExLjMxNjUgMi45MDM4OSAxMS4yNDA0IDIuODg4NSAxMS4xNjk1IDIuODU4NjRDMTEuMDk4NyAyLjgyODc3IDExLjAzNDYgMi43ODUwMyAxMC45ODA5IDIuNzNDOS45OTk4IDEuODEyNzMgOC43MzI0NiAxLjI2MTM4IDcuMzkyMjYgMS4xNjg3NkM2LjA1MjA2IDEuMDc2MTUgNC43MjA4NiAxLjQ0Nzk0IDMuNjIyNzkgMi4yMjE1MkMyLjUyNDcxIDIuOTk1MTEgMS43MjY4MyA0LjEyMzI1IDEuMzYzNDUgNS40MTYwMkMxLjAwMDA4IDYuNzA4NzkgMS4wOTM0MiA4LjA4NzIzIDEuNjI3NzUgOS4zMTkyNkMyLjE2MjA5IDEwLjU1MTMgMy4xMDQ3OCAxMS41NjE3IDQuMjk3MTMgMTIuMTgwM0M1LjQ4OTQ3IDEyLjc5ODkgNi44NTg2NSAxMi45ODggOC4xNzQxNCAxMi43MTU3QzkuNDg5NjMgMTIuNDQzNSAxMC42NzExIDExLjcyNjQgMTEuNTE5NiAxMC42ODU0QzEyLjM2ODEgOS42NDQzMiAxMi44MzE5IDguMzQyODIgMTIuODMyOCA3QzEyLjgzMjggNi44NDUyOSAxMi44OTQzIDYuNjk2OTIgMTMuMDAzOCA2LjU4NzUyQzEzLjExMzIgNi40NzgxMiAxMy4yNjE2IDYuNDE2NjcgMTMuNDE2NCA2LjQxNjY3QzEzLjU3MTIgNi40MTY2NyAxMy43MTk2IDYuNDc4MTIgMTMuODI5MSA2LjU4NzUyQzEzLjkzODUgNi42OTY5MiAxNCA2Ljg0NTI5IDE0IDdDMTQgOC44NTY1MSAxMy4yNjIyIDEwLjYzNyAxMS45NDg5IDExLjk0OTdDMTAuNjM1NiAxMy4yNjI1IDguODU0MzIgMTQgNi45OTcwMSAxNFpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQxN18yMTQwOFwiPlxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICA8L2RlZnM+XG4gICAgPC9zdmc+YDtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCdXR0b25TdHlsZSk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBhZGRDbGFzcyh0aGlzLmh0bWxFbGVtZW50LCB0aGlzLmdldFN0eWxlQ2xhc3MoKS5qb2luKCcgJykpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlSWNvbigpO1xuICAgICAgICB0aGlzLmNyZWF0ZUxhYmVsKCk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBidXR0b25Qcm9wcyB9ID0gc2ltcGxlQ2hhbmdlcztcblxuICAgICAgICBpZiAoYnV0dG9uUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gYnV0dG9uUHJvcHMuY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcm9wZXJ0eV0gPSBwcm9wc1twcm9wZXJ0eV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTdHlsZUNsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgc3R5bGVDbGFzczogc3RyaW5nW10gPSBbSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMuYnV0dG9uLCBJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5jb21wb25lbnRdO1xuXG4gICAgICAgIGlmICh0aGlzLmljb24gJiYgIXRoaXMubGFiZWwgJiYgaXNFbXB0eSh0aGlzLmh0bWxFbGVtZW50LnRleHRDb250ZW50KSkge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKElOVEVSTkFMX0JVVFRPTl9DTEFTU0VTLmljb25Pbmx5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaChJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5kaXNhYmxlZCwgSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMubG9hZGluZyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pY29uICYmIHRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMubGFiZWxPbmx5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdGhpcy5sYWJlbCAmJiAhaXNFbXB0eSh0aGlzLmh0bWxFbGVtZW50LnRleHRDb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaChJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5pY29uT25seSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50ZXh0KSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goJ3AtYnV0dG9uLXRleHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNldmVyaXR5KSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goYHAtYnV0dG9uLSR7dGhpcy5zZXZlcml0eX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBsYWluKSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goJ3AtYnV0dG9uLXBsYWluJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yYWlzZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tcmFpc2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goYHAtYnV0dG9uLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3V0bGluZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tb3V0bGluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJvdW5kZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tcm91bmRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ3NtYWxsJykge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKCdwLWJ1dHRvbi1zbScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2xhcmdlJykge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKCdwLWJ1dHRvbi1sZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRmx1aWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tZmx1aWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZUNsYXNzO1xuICAgIH1cblxuICAgIGdldCBoYXNGbHVpZCgpIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZmx1aWRDb21wb25lbnQgPSBuYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3AtZmx1aWQnKTtcblxuICAgICAgICByZXR1cm4gaXNFbXB0eSh0aGlzLmZsdWlkKSA/ICEhZmx1aWRDb21wb25lbnQgOiB0aGlzLmZsdWlkO1xuICAgIH1cblxuICAgIHNldFN0eWxlQ2xhc3MoKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlQ2xhc3MgPSB0aGlzLmdldFN0eWxlQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5odG1sRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLnRoaXMuX2ludGVybmFsQ2xhc3Nlcyk7XG4gICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5zdHlsZUNsYXNzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVMYWJlbCgpIHtcbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IGZpbmRTaW5nbGUodGhpcy5odG1sRWxlbWVudCwgJy5wLWJ1dHRvbi1sYWJlbCcpO1xuICAgICAgICBpZiAoIWNyZWF0ZWQgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgbGV0IGxhYmVsRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGxhYmVsRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWxFbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1sYWJlbCc7XG4gICAgICAgICAgICBsYWJlbEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmxhYmVsKSk7XG5cbiAgICAgICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuYXBwZW5kQ2hpbGQobGFiZWxFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUljb24oKSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBmaW5kU2luZ2xlKHRoaXMuaHRtbEVsZW1lbnQsICcucC1idXR0b24taWNvbicpO1xuICAgICAgICBpZiAoIWNyZWF0ZWQgJiYgKHRoaXMuaWNvbiB8fCB0aGlzLmxvYWRpbmcpKSB7XG4gICAgICAgICAgICBsZXQgaWNvbkVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uJztcbiAgICAgICAgICAgIGljb25FbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgbGV0IGljb25Qb3NDbGFzcyA9IHRoaXMubGFiZWwgPyAncC1idXR0b24taWNvbi0nICsgdGhpcy5pY29uUG9zIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKGljb25Qb3NDbGFzcykge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGljb25FbGVtZW50LCBpY29uUG9zQ2xhc3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgaWNvbkNsYXNzID0gdGhpcy5nZXRJY29uQ2xhc3MoKTtcblxuICAgICAgICAgICAgaWYgKGljb25DbGFzcykge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGljb25FbGVtZW50LCBpY29uQ2xhc3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMubG9hZGluZ0ljb24gJiYgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgaWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zcGlubmVySWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5pbnNlcnRCZWZvcmUoaWNvbkVsZW1lbnQsIHRoaXMuaHRtbEVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVMYWJlbCgpIHtcbiAgICAgICAgbGV0IGxhYmVsRWxlbWVudCA9IGZpbmRTaW5nbGUodGhpcy5odG1sRWxlbWVudCwgJy5wLWJ1dHRvbi1sYWJlbCcpO1xuXG4gICAgICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgbGFiZWxFbGVtZW50ICYmIHRoaXMuaHRtbEVsZW1lbnQucmVtb3ZlQ2hpbGQobGFiZWxFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsRWxlbWVudCA/IChsYWJlbEVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmxhYmVsKSA6IHRoaXMuY3JlYXRlTGFiZWwoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVJY29uKCkge1xuICAgICAgICBsZXQgaWNvbkVsZW1lbnQgPSBmaW5kU2luZ2xlKHRoaXMuaHRtbEVsZW1lbnQsICcucC1idXR0b24taWNvbicpO1xuICAgICAgICBsZXQgbGFiZWxFbGVtZW50ID0gZmluZFNpbmdsZSh0aGlzLmh0bWxFbGVtZW50LCAnLnAtYnV0dG9uLWxhYmVsJyk7XG5cbiAgICAgICAgaWYgKHRoaXMubG9hZGluZyAmJiAhdGhpcy5sb2FkaW5nSWNvbiAmJiBpY29uRWxlbWVudCkge1xuICAgICAgICAgICAgaWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zcGlubmVySWNvbjtcbiAgICAgICAgfSBlbHNlIGlmIChpY29uRWxlbWVudD8uaW5uZXJIVE1MKSB7XG4gICAgICAgICAgICBpY29uRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpY29uRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaWNvblBvcykge1xuICAgICAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uICcgKyAobGFiZWxFbGVtZW50ID8gJ3AtYnV0dG9uLWljb24tJyArIHRoaXMuaWNvblBvcyA6ICcnKSArICcgJyArIHRoaXMuZ2V0SWNvbkNsYXNzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uICcgKyB0aGlzLmdldEljb25DbGFzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJY29uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJY29uQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmcgPyAncC1idXR0b24tbG9hZGluZy1pY29uICcgKyAodGhpcy5sb2FkaW5nSWNvbiA/IHRoaXMubG9hZGluZ0ljb24gOiAncC1pY29uJykgOiB0aGlzLmljb24gfHwgJ3AtaGlkZGVuJztcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbi8qKlxuICogQnV0dG9uIGlzIGFuIGV4dGVuc2lvbiB0byBzdGFuZGFyZCBidXR0b24gZWxlbWVudCB3aXRoIGljb25zIGFuZCB0aGVtaW5nLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWJ1dHRvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSaXBwbGUsIEF1dG9Gb2N1cywgU3Bpbm5lckljb24sIEJhZGdlTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIididXR0b24nXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgW3BBdXRvRm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZSB8fCBfY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ0ljb25UZW1wbGF0ZSAmJiAhX2xvYWRpbmdJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsb2FkaW5nSWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzcygpXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbG9hZGluZ2ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8U3Bpbm5lckljb24gKm5nSWY9XCIhbG9hZGluZ0ljb25cIiBbc3R5bGVDbGFzc109XCJzcGlubmVySWNvbkNsYXNzKClcIiBbc3Bpbl09XCJ0cnVlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbG9hZGluZ2ljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwibG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfbG9hZGluZ0ljb25UZW1wbGF0ZVwiICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfbG9hZGluZ0ljb25UZW1wbGF0ZTsgY29udGV4dDogeyBjbGFzczogaWNvbkNsYXNzKCkgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbiAmJiAhaWNvblRlbXBsYXRlICYmICFfaWNvblRlbXBsYXRlXCIgW2NsYXNzXT1cImljb25cIiBbbmdDbGFzc109XCJpY29uQ2xhc3MoKVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpY29uICYmIChpY29uVGVtcGxhdGUgfHwgX2ljb25UZW1wbGF0ZSlcIiAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZSB8fCBfaWNvblRlbXBsYXRlOyBjb250ZXh0OiB7IGNsYXNzOiBpY29uQ2xhc3MoKSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWJ1dHRvbi1sYWJlbFwiIFthdHRyLmFyaWEtaGlkZGVuXT1cImljb24gJiYgIWxhYmVsXCIgKm5nSWY9XCIhY29udGVudFRlbXBsYXRlICYmICFfY29udGVudFRlbXBsYXRlICYmIGxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxwLWJhZGdlICpuZ0lmPVwiIWNvbnRlbnRUZW1wbGF0ZSAmJiAhX2NvbnRlbnRUZW1wbGF0ZSAmJiBiYWRnZVwiIFt2YWx1ZV09XCJiYWRnZVwiIFtzZXZlcml0eV09XCJiYWRnZVNldmVyaXR5XCI+PC9wLWJhZGdlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQnV0dG9uU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBUeXBlIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ2J1dHRvbic7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvblBvczogQnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBiYWRnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFVzZXMgdG8gcGFzcyBhdHRyaWJ1dGVzIHRvIHRoZSBsYWJlbCdzIERPTSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIGlzIGluIGxvYWRpbmcgc3RhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJY29uIHRvIGRpc3BsYXkgaW4gbG9hZGluZyBzdGF0ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsb2FkaW5nSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIHNoYWRvdyB0byBpbmRpY2F0ZSBlbGV2YXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJhaXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIGNpcmN1bGFyIGJvcmRlciByYWRpdXMgdG8gdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIHRleHR1YWwgY2xhc3MgdG8gdGhlIGJ1dHRvbiB3aXRob3V0IGEgYmFja2dyb3VuZCBpbml0aWFsbHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBwbGFpbiB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSB2YXJpYW50IHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBsYWluOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgc3R5bGUgb2YgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIGJvcmRlciBjbGFzcyB3aXRob3V0IGEgYmFja2dyb3VuZCBpbml0aWFsbHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG91dGxpbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgbGluayBzdHlsZSB0byB0aGUgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBsaW5rOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgdGFiaW5kZXggdG8gdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHNpemUgb2YgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnc21hbGwnIHwgJ2xhcmdlJyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHZhcmlhbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2YXJpYW50OiAnb3V0bGluZWQnIHwgJ3RleHQnIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGJhZGdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqIEBkZXByZWNhdGVkIHVzZSBiYWRnZVNldmVyaXR5IGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNldmVyaXR5IHR5cGUgb2YgdGhlIGJhZGdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqIEBkZWZhdWx0VmFsdWUgc2Vjb25kYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VTZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsIHwgdW5kZWZpbmVkID0gJ3NlY29uZGFyeSc7XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBkZWZpbmUgYSBzdHJpbmcgdGhhdCBhdXRvY29tcGxldGUgYXR0cmlidXRlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvZm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BhbnMgMTAwJSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHdoZW4gZW5hYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmx1aWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgICAqIFRoaXMgZXZlbnQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSA8cC1idXR0b24+IGNvbXBvbmVudC4gVXNpbmcgYSByZWd1bGFyIDxidXR0b24+IGVsZW1lbnQsIHVzZSAoY2xpY2spLlxuICAgICAqIEBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnQgLSBNb3VzZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiBidXR0b24gaXMgZm9jdXNlZC5cbiAgICAgKiBUaGlzIGV2ZW50IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgPHAtYnV0dG9uPiBjb21wb25lbnQuIFVzaW5nIGEgcmVndWxhciA8YnV0dG9uPiBlbGVtZW50LCB1c2UgKGZvY3VzKS5cbiAgICAgKiBAcGFyYW0ge0ZvY3VzRXZlbnR9IGV2ZW50IC0gRm9jdXMgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBleGVjdXRlIHdoZW4gYnV0dG9uIGxvc2VzIGZvY3VzLlxuICAgICAqIFRoaXMgZXZlbnQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSA8cC1idXR0b24+IGNvbXBvbmVudC4gVXNpbmcgYSByZWd1bGFyIDxidXR0b24+IGVsZW1lbnQsIHVzZSAoYmx1cikuXG4gICAgICogQHBhcmFtIHtGb2N1c0V2ZW50fSBldmVudCAtIEZvY3VzIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvZiB0aGUgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb2YgdGhlIGxvYWRpbmcuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqKi9cbiAgICBAQ29udGVudENoaWxkKCdsb2FkaW5nJykgbG9hZGluZ0ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ljb24nKSBpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfYnV0dG9uUHJvcHM6IGFueSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBidXR0b25Qcm9wcygpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uUHJvcHM7XG4gICAgfVxuICAgIHNldCBidXR0b25Qcm9wcyh2YWw6IGFueSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9idXR0b25Qcm9wcyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbCkuZm9yRWFjaCgoW2ssIHZdKSA9PiB0aGlzW2BfJHtrfWBdICE9PSB2ICYmICh0aGlzW2BfJHtrfWBdID0gdikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZsdWlkKCkge1xuICAgICAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBmbHVpZENvbXBvbmVudCA9IG5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgncC1mbHVpZCcpO1xuXG4gICAgICAgIHJldHVybiBpc0VtcHR5KHRoaXMuZmx1aWQpID8gISFmbHVpZENvbXBvbmVudCA6IHRoaXMuZmx1aWQ7XG4gICAgfVxuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEJ1dHRvblN0eWxlKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9sb2FkaW5nSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdsb2FkaW5naWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0ljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBidXR0b25Qcm9wcyB9ID0gc2ltcGxlQ2hhbmdlcztcblxuICAgICAgICBpZiAoYnV0dG9uUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gYnV0dG9uUHJvcHMuY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcm9wZXJ0eV0gPSBwcm9wc1twcm9wZXJ0eV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzcGlubmVySWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLmljb25DbGFzcygpKVxuICAgICAgICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiAhIXZhbHVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBba2V5XSkgPT4gYWNjICsgYCAke2tleX1gLCAncC1idXR0b24tbG9hZGluZy1pY29uJyk7XG4gICAgfVxuXG4gICAgaWNvbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2BwLWJ1dHRvbi1sb2FkaW5nLWljb24gcGktc3BpbiAke3RoaXMubG9hZGluZ0ljb24gPz8gJyd9YF06IHRoaXMubG9hZGluZyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWxlZnQnOiB0aGlzLmljb25Qb3MgPT09ICdsZWZ0JyAmJiB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tcmlnaHQnOiB0aGlzLmljb25Qb3MgPT09ICdyaWdodCcgJiYgdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLXRvcCc6IHRoaXMuaWNvblBvcyA9PT0gJ3RvcCcgJiYgdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWJvdHRvbSc6IHRoaXMuaWNvblBvcyA9PT0gJ2JvdHRvbScgJiYgdGhpcy5sYWJlbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBidXR0b25DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLWJ1dHRvbiBwLWNvbXBvbmVudCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24taWNvbi1vbmx5JzogKHRoaXMuaWNvbiB8fCB0aGlzLmljb25UZW1wbGF0ZSB8fCB0aGlzLmxvYWRpbmdJY29uIHx8IHRoaXMubG9hZGluZ0ljb25UZW1wbGF0ZSB8fCB0aGlzLl9sb2FkaW5nSWNvblRlbXBsYXRlKSAmJiAhdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi12ZXJ0aWNhbCc6ICh0aGlzLmljb25Qb3MgPT09ICd0b3AnIHx8IHRoaXMuaWNvblBvcyA9PT0gJ2JvdHRvbScpICYmIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAncC1idXR0b24tbG9hZGluZyc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1sb2FkaW5nLWxhYmVsLW9ubHknOiB0aGlzLmxvYWRpbmcgJiYgIXRoaXMuaWNvbiAmJiB0aGlzLmxhYmVsICYmICF0aGlzLmxvYWRpbmdJY29uICYmIHRoaXMuaWNvblBvcyA9PT0gJ2xlZnQnLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLWxpbmsnOiB0aGlzLmxpbmssXG4gICAgICAgICAgICBbYHAtYnV0dG9uLSR7dGhpcy5zZXZlcml0eX1gXTogdGhpcy5zZXZlcml0eSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0aGlzLnJhaXNlZCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdGhpcy5yb3VuZGVkLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0aGlzLnRleHQgfHwgdGhpcy52YXJpYW50ID09ICd0ZXh0JyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRoaXMub3V0bGluZWQgfHwgdGhpcy52YXJpYW50ID09ICdvdXRsaW5lZCcsXG4gICAgICAgICAgICAncC1idXR0b24tc20nOiB0aGlzLnNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICAgICAncC1idXR0b24tbGcnOiB0aGlzLnNpemUgPT09ICdsYXJnZScsXG4gICAgICAgICAgICAncC1idXR0b24tcGxhaW4nOiB0aGlzLnBsYWluLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLWZsdWlkJzogdGhpcy5oYXNGbHVpZCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnN0eWxlQ2xhc3N9YF06IHRoaXMuc3R5bGVDbGFzc1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25EaXJlY3RpdmUsIEJ1dHRvbiwgU2hhcmVkTW9kdWxlLCBCdXR0b25MYWJlbCwgQnV0dG9uSWNvbl0sXG4gICAgZXhwb3J0czogW0J1dHRvbkRpcmVjdGl2ZSwgQnV0dG9uLCBCdXR0b25MYWJlbCwgQnV0dG9uSWNvbiwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Nb2R1bGUge31cbiJdfQ==
891
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixlQUFlLEVBRWYsTUFBTSxFQUlOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0lBcVl0Qyx3QkFBcUY7OztJQUc3RSwwQkFBMEg7OztJQUFoRyw0Q0FBdUI7Ozs7SUFDakQsaUNBQXFKOzs7SUFBakYsQUFBbEMsc0RBQWlDLGNBQWM7Ozs7SUFGckYsNkJBQW9FO0lBRWhFLEFBREEsdUZBQW1ILHdGQUNrQzs7OztJQUQ5SSxjQUFpQjtJQUFqQix5Q0FBaUI7SUFDVixjQUFrQjtJQUFsQiwwQ0FB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QUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLEVBQUU7O3dGQUNuSyxZQUFZLGNBREgsWUFBWSxFQXZwQnJCLGVBQWUsRUFxWWYsTUFBTSxFQWtSMEMsWUFBWSxFQXBxQjVELFdBQVcsRUFLWCxVQUFVLGFBUVYsZUFBZSxFQXFZZixNQUFNLEVBbFpOLFdBQVcsRUFLWCxVQUFVLEVBK3BCMEksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZENsYXNzLCBmaW5kU2luZ2xlLCBpc0VtcHR5IH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEF1dG9Gb2N1cyB9IGZyb20gJ3ByaW1lbmcvYXV0b2ZvY3VzJztcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9iYWRnZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IFNwaW5uZXJJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBCdXR0b25Qcm9wcyB9IGZyb20gJy4vYnV0dG9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCdXR0b25TdHlsZSB9IGZyb20gJy4vc3R5bGUvYnV0dG9uc3R5bGUnO1xuXG50eXBlIEJ1dHRvbkljb25Qb3NpdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nO1xuXG5jb25zdCBJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUyA9IHsgYnV0dG9uOiAncC1idXR0b24nLCBjb21wb25lbnQ6ICdwLWNvbXBvbmVudCcsIGljb25Pbmx5OiAncC1idXR0b24taWNvbi1vbmx5JywgZGlzYWJsZWQ6ICdwLWRpc2FibGVkJywgbG9hZGluZzogJ3AtYnV0dG9uLWxvYWRpbmcnLCBsYWJlbE9ubHk6ICdwLWJ1dHRvbi1sb2FkaW5nLWxhYmVsLW9ubHknIH0gYXMgY29uc3Q7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1twQnV0dG9uTGFiZWxdJywgcHJvdmlkZXJzOiBbQnV0dG9uU3R5bGVdLCBzdGFuZGFsb25lOiB0cnVlLCBob3N0OiB7ICdbY2xhc3MucC1idXR0b24tbGFiZWxdJzogJ3RydWUnIH0gfSlcbmV4cG9ydCBjbGFzcyBCdXR0b25MYWJlbCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCdXR0b25TdHlsZSk7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1twQnV0dG9uSWNvbl0nLCBwcm92aWRlcnM6IFtCdXR0b25TdHlsZV0sIHN0YW5kYWxvbmU6IHRydWUsIGhvc3Q6IHsgJ1tjbGFzcy5wLWJ1dHRvbi1pY29uXSc6ICd0cnVlJyB9IH0pXG5leHBvcnQgY2xhc3MgQnV0dG9uSWNvbiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCdXR0b25TdHlsZSk7XG59XG4vKipcbiAqIEJ1dHRvbiBkaXJlY3RpdmUgaXMgYW4gZXh0ZW5zaW9uIHRvIGJ1dHRvbiBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbcEJ1dHRvbl0nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtCdXR0b25TdHlsZV0sIGhvc3Q6IHsgJ1tjbGFzcy5wLWJ1dHRvbi1pY29uLW9ubHldJzogJ2lzSWNvbk9ubHkoKScsICdbY2xhc3MucC1idXR0b24tdGV4dF0nOiAnaXNUZXh0QnV0dG9uKCknIH0gfSlcbmV4cG9ydCBjbGFzcyBCdXR0b25EaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZGVwcmVjYXRlZCB1dGlsaXplIHBCdXR0b25JY29uIGFuZCBwQnV0dG9uTGFiZWwgZGlyZWN0aXZlcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uUG9zOiBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgLyoqXG4gICAgICogVXNlcyB0byBwYXNzIGF0dHJpYnV0ZXMgdG8gdGhlIGxvYWRpbmcgaWNvbidzIERPTSBlbGVtZW50LlxuICAgICAqIEBkZXByZWNhdGVkIHV0aWxpemUgcEJ1dG9uSWNvbiBpbnN0ZWFkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxvYWRpbmdJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzZXQgbGFiZWwodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2YWw7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFiZWwoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZUNsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQgaWNvbih2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pY29uID0gdmFsO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3R5bGVDbGFzcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBpcyBpbiBsb2FkaW5nIHN0YXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWw7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZUNsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2J1dHRvblByb3BzITogQnV0dG9uUHJvcHM7XG5cbiAgICBwcml2YXRlIGljb25TaWduYWwgPSBjb250ZW50Q2hpbGQoQnV0dG9uSWNvbik7XG5cbiAgICBwcml2YXRlIGxhYmVsU2lnbmFsID0gY29udGVudENoaWxkKEJ1dHRvbkxhYmVsKTtcblxuICAgIGlzSWNvbk9ubHkgPSBjb21wdXRlZCgoKSA9PiAhISghdGhpcy5sYWJlbFNpZ25hbCgpICYmIHRoaXMuaWNvblNpZ25hbCgpKSk7XG5cbiAgICBzZXQgYnV0dG9uUHJvcHModmFsOiBCdXR0b25Qcm9wcykge1xuICAgICAgICB0aGlzLl9idXR0b25Qcm9wcyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbCkuZm9yRWFjaCgoW2ssIHZdKSA9PiB0aGlzW2BfJHtrfWBdICE9PSB2ICYmICh0aGlzW2BfJHtrfWBdID0gdikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0eWxlIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V2ZXJpdHk6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInIHwgJ2hlbHAnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnY29udHJhc3QnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBzaGFkb3cgdG8gaW5kaWNhdGUgZWxldmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYWlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBjaXJjdWxhciBib3JkZXIgcmFkaXVzIHRvIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvdW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0ZXh0OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgYm9yZGVyIGNsYXNzIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGluaXRpYWxseS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3V0bGluZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCB1bmRlZmluZWQgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBwbGFpbiB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSB2YXJpYW50IHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBsYWluOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU3BhbnMgMTAwJSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHdoZW4gZW5hYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmx1aWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgX2ljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGluaXRpYWxpemVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgcHJpdmF0ZSBnZXQgaHRtbEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ludGVybmFsQ2xhc3Nlczogc3RyaW5nW10gPSBPYmplY3QudmFsdWVzKElOVEVSTkFMX0JVVFRPTl9DTEFTU0VTKTtcblxuICAgIGlzVGV4dEJ1dHRvbiA9IGNvbXB1dGVkKCgpID0+ICEhKCF0aGlzLmljb25TaWduYWwoKSAmJiB0aGlzLmxhYmVsU2lnbmFsKCkgJiYgdGhpcy50ZXh0KSk7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IG9mIHRoZSBidXR0b24uXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIHBCdXR0b25MYWJlbCBkaXJlY3RpdmUgaW5zdGVhZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBpY29uLlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwQnV0dG9uSWNvbiBkaXJlY3RpdmUgaW5zdGVhZFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICAgICAqIEBkZXByZWNhdGVkIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IGJ1dHRvblByb3BzKCk6IEJ1dHRvblByb3BzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2J1dHRvblByb3BzO1xuICAgIH1cblxuICAgIHNwaW5uZXJJY29uID0gYDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwicC1pY29uLXNwaW5cIj5cbiAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MTdfMjE0MDgpXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNi45OTcwMSAxNEM1Ljg1NDQxIDEzLjk5OSA0LjcyOTM5IDEzLjcxODYgMy43MjAxMiAxMy4xODMyQzIuNzEwODQgMTIuNjQ3OCAxLjg0Nzk1IDExLjg3MzcgMS4yMDY3MyAxMC45Mjg0QzAuNTY1NTA0IDkuOTgzMDUgMC4xNjU0MjQgOC44OTUyNiAwLjA0MTM4NyA3Ljc1OTg5Qy0wLjA4MjY0OTYgNi42MjQ1MyAwLjA3MzEyNSA1LjQ3NjA3IDAuNDk1MTIyIDQuNDE0N0MwLjkxNzExOSAzLjM1MzMzIDEuNTkyNTIgMi40MTEzIDIuNDYyNDEgMS42NzA3N0MzLjMzMjI5IDAuOTMwMjQ3IDQuMzcwMjQgMC40MTM3MjkgNS40ODU3IDAuMTY2Mjc1QzYuNjAxMTcgLTAuMDgxMTc5NiA3Ljc2MDI2IC0wLjA1MjA1MzUgOC44NjE4OCAwLjI1MTExMkM5Ljk2MzUgMC41NTQyNzggMTAuOTc0MiAxLjEyMjI3IDExLjgwNTcgMS45MDU1NUMxMS45MTUgMi4wMTQ5MyAxMS45NzY0IDIuMTYzMTkgMTEuOTc2NCAyLjMxNzc4QzExLjk3NjQgMi40NzIzNiAxMS45MTUgMi42MjA2MiAxMS44MDU3IDIuNzNDMTEuNzUyMSAyLjc4NTAzIDExLjY4OCAyLjgyODc3IDExLjYxNzEgMi44NTg2NEMxMS41NDYzIDIuODg4NSAxMS40NzAyIDIuOTAzODkgMTEuMzkzMyAyLjkwMzg5QzExLjMxNjUgMi45MDM4OSAxMS4yNDA0IDIuODg4NSAxMS4xNjk1IDIuODU4NjRDMTEuMDk4NyAyLjgyODc3IDExLjAzNDYgMi43ODUwMyAxMC45ODA5IDIuNzNDOS45OTk4IDEuODEyNzMgOC43MzI0NiAxLjI2MTM4IDcuMzkyMjYgMS4xNjg3NkM2LjA1MjA2IDEuMDc2MTUgNC43MjA4NiAxLjQ0Nzk0IDMuNjIyNzkgMi4yMjE1MkMyLjUyNDcxIDIuOTk1MTEgMS43MjY4MyA0LjEyMzI1IDEuMzYzNDUgNS40MTYwMkMxLjAwMDA4IDYuNzA4NzkgMS4wOTM0MiA4LjA4NzIzIDEuNjI3NzUgOS4zMTkyNkMyLjE2MjA5IDEwLjU1MTMgMy4xMDQ3OCAxMS41NjE3IDQuMjk3MTMgMTIuMTgwM0M1LjQ4OTQ3IDEyLjc5ODkgNi44NTg2NSAxMi45ODggOC4xNzQxNCAxMi43MTU3QzkuNDg5NjMgMTIuNDQzNSAxMC42NzExIDExLjcyNjQgMTEuNTE5NiAxMC42ODU0QzEyLjM2ODEgOS42NDQzMiAxMi44MzE5IDguMzQyODIgMTIuODMyOCA3QzEyLjgzMjggNi44NDUyOSAxMi44OTQzIDYuNjk2OTIgMTMuMDAzOCA2LjU4NzUyQzEzLjExMzIgNi40NzgxMiAxMy4yNjE2IDYuNDE2NjcgMTMuNDE2NCA2LjQxNjY3QzEzLjU3MTIgNi40MTY2NyAxMy43MTk2IDYuNDc4MTIgMTMuODI5MSA2LjU4NzUyQzEzLjkzODUgNi42OTY5MiAxNCA2Ljg0NTI5IDE0IDdDMTQgOC44NTY1MSAxMy4yNjIyIDEwLjYzNyAxMS45NDg5IDExLjk0OTdDMTAuNjM1NiAxMy4yNjI1IDguODU0MzIgMTQgNi45OTcwMSAxNFpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQxN18yMTQwOFwiPlxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICA8L2RlZnM+XG4gICAgPC9zdmc+YDtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCdXR0b25TdHlsZSk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBhZGRDbGFzcyh0aGlzLmh0bWxFbGVtZW50LCB0aGlzLmdldFN0eWxlQ2xhc3MoKS5qb2luKCcgJykpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlSWNvbigpO1xuICAgICAgICB0aGlzLmNyZWF0ZUxhYmVsKCk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBidXR0b25Qcm9wcyB9ID0gc2ltcGxlQ2hhbmdlcztcblxuICAgICAgICBpZiAoYnV0dG9uUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gYnV0dG9uUHJvcHMuY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcm9wZXJ0eV0gPSBwcm9wc1twcm9wZXJ0eV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTdHlsZUNsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgc3R5bGVDbGFzczogc3RyaW5nW10gPSBbSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMuYnV0dG9uLCBJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5jb21wb25lbnRdO1xuXG4gICAgICAgIGlmICh0aGlzLmljb24gJiYgIXRoaXMubGFiZWwgJiYgaXNFbXB0eSh0aGlzLmh0bWxFbGVtZW50LnRleHRDb250ZW50KSkge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKElOVEVSTkFMX0JVVFRPTl9DTEFTU0VTLmljb25Pbmx5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaChJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5kaXNhYmxlZCwgSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMubG9hZGluZyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pY29uICYmIHRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goSU5URVJOQUxfQlVUVE9OX0NMQVNTRVMubGFiZWxPbmx5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdGhpcy5sYWJlbCAmJiAhaXNFbXB0eSh0aGlzLmh0bWxFbGVtZW50LnRleHRDb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaChJTlRFUk5BTF9CVVRUT05fQ0xBU1NFUy5pY29uT25seSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50ZXh0KSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goJ3AtYnV0dG9uLXRleHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNldmVyaXR5KSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goYHAtYnV0dG9uLSR7dGhpcy5zZXZlcml0eX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBsYWluKSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goJ3AtYnV0dG9uLXBsYWluJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yYWlzZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tcmFpc2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBzdHlsZUNsYXNzLnB1c2goYHAtYnV0dG9uLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3V0bGluZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tb3V0bGluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJvdW5kZWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tcm91bmRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ3NtYWxsJykge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKCdwLWJ1dHRvbi1zbScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2xhcmdlJykge1xuICAgICAgICAgICAgc3R5bGVDbGFzcy5wdXNoKCdwLWJ1dHRvbi1sZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRmx1aWQpIHtcbiAgICAgICAgICAgIHN0eWxlQ2xhc3MucHVzaCgncC1idXR0b24tZmx1aWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZUNsYXNzO1xuICAgIH1cblxuICAgIGdldCBoYXNGbHVpZCgpIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZmx1aWRDb21wb25lbnQgPSBuYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3AtZmx1aWQnKTtcblxuICAgICAgICByZXR1cm4gaXNFbXB0eSh0aGlzLmZsdWlkKSA/ICEhZmx1aWRDb21wb25lbnQgOiB0aGlzLmZsdWlkO1xuICAgIH1cblxuICAgIHNldFN0eWxlQ2xhc3MoKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlQ2xhc3MgPSB0aGlzLmdldFN0eWxlQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5odG1sRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLnRoaXMuX2ludGVybmFsQ2xhc3Nlcyk7XG4gICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5zdHlsZUNsYXNzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVMYWJlbCgpIHtcbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IGZpbmRTaW5nbGUodGhpcy5odG1sRWxlbWVudCwgJy5wLWJ1dHRvbi1sYWJlbCcpO1xuICAgICAgICBpZiAoIWNyZWF0ZWQgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgbGV0IGxhYmVsRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGxhYmVsRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWxFbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1sYWJlbCc7XG4gICAgICAgICAgICBsYWJlbEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmxhYmVsKSk7XG5cbiAgICAgICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuYXBwZW5kQ2hpbGQobGFiZWxFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUljb24oKSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBmaW5kU2luZ2xlKHRoaXMuaHRtbEVsZW1lbnQsICcucC1idXR0b24taWNvbicpO1xuICAgICAgICBpZiAoIWNyZWF0ZWQgJiYgKHRoaXMuaWNvbiB8fCB0aGlzLmxvYWRpbmcpKSB7XG4gICAgICAgICAgICBsZXQgaWNvbkVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uJztcbiAgICAgICAgICAgIGljb25FbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgbGV0IGljb25Qb3NDbGFzcyA9IHRoaXMubGFiZWwgPyAncC1idXR0b24taWNvbi0nICsgdGhpcy5pY29uUG9zIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKGljb25Qb3NDbGFzcykge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGljb25FbGVtZW50LCBpY29uUG9zQ2xhc3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgaWNvbkNsYXNzID0gdGhpcy5nZXRJY29uQ2xhc3MoKTtcblxuICAgICAgICAgICAgaWYgKGljb25DbGFzcykge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGljb25FbGVtZW50LCBpY29uQ2xhc3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMubG9hZGluZ0ljb24gJiYgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgaWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zcGlubmVySWNvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5pbnNlcnRCZWZvcmUoaWNvbkVsZW1lbnQsIHRoaXMuaHRtbEVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVMYWJlbCgpIHtcbiAgICAgICAgbGV0IGxhYmVsRWxlbWVudCA9IGZpbmRTaW5nbGUodGhpcy5odG1sRWxlbWVudCwgJy5wLWJ1dHRvbi1sYWJlbCcpO1xuXG4gICAgICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgbGFiZWxFbGVtZW50ICYmIHRoaXMuaHRtbEVsZW1lbnQucmVtb3ZlQ2hpbGQobGFiZWxFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsRWxlbWVudCA/IChsYWJlbEVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmxhYmVsKSA6IHRoaXMuY3JlYXRlTGFiZWwoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVJY29uKCkge1xuICAgICAgICBsZXQgaWNvbkVsZW1lbnQgPSBmaW5kU2luZ2xlKHRoaXMuaHRtbEVsZW1lbnQsICcucC1idXR0b24taWNvbicpO1xuICAgICAgICBsZXQgbGFiZWxFbGVtZW50ID0gZmluZFNpbmdsZSh0aGlzLmh0bWxFbGVtZW50LCAnLnAtYnV0dG9uLWxhYmVsJyk7XG5cbiAgICAgICAgaWYgKHRoaXMubG9hZGluZyAmJiAhdGhpcy5sb2FkaW5nSWNvbiAmJiBpY29uRWxlbWVudCkge1xuICAgICAgICAgICAgaWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zcGlubmVySWNvbjtcbiAgICAgICAgfSBlbHNlIGlmIChpY29uRWxlbWVudD8uaW5uZXJIVE1MKSB7XG4gICAgICAgICAgICBpY29uRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpY29uRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaWNvblBvcykge1xuICAgICAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uICcgKyAobGFiZWxFbGVtZW50ID8gJ3AtYnV0dG9uLWljb24tJyArIHRoaXMuaWNvblBvcyA6ICcnKSArICcgJyArIHRoaXMuZ2V0SWNvbkNsYXNzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdwLWJ1dHRvbi1pY29uICcgKyB0aGlzLmdldEljb25DbGFzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJY29uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJY29uQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmcgPyAncC1idXR0b24tbG9hZGluZy1pY29uICcgKyAodGhpcy5sb2FkaW5nSWNvbiA/IHRoaXMubG9hZGluZ0ljb24gOiAncC1pY29uJykgOiB0aGlzLmljb24gfHwgJ3AtaGlkZGVuJztcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbi8qKlxuICogQnV0dG9uIGlzIGFuIGV4dGVuc2lvbiB0byBzdGFuZGFyZCBidXR0b24gZWxlbWVudCB3aXRoIGljb25zIGFuZCB0aGVtaW5nLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWJ1dHRvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSaXBwbGUsIEF1dG9Gb2N1cywgU3Bpbm5lckljb24sIEJhZGdlTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIididXR0b24nXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgW3BBdXRvRm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZSB8fCBfY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ0ljb25UZW1wbGF0ZSAmJiAhX2xvYWRpbmdJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsb2FkaW5nSWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzcygpXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbG9hZGluZ2ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8U3Bpbm5lckljb24gKm5nSWY9XCIhbG9hZGluZ0ljb25cIiBbc3R5bGVDbGFzc109XCJzcGlubmVySWNvbkNsYXNzKClcIiBbc3Bpbl09XCJ0cnVlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbG9hZGluZ2ljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwibG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfbG9hZGluZ0ljb25UZW1wbGF0ZVwiICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfbG9hZGluZ0ljb25UZW1wbGF0ZTsgY29udGV4dDogeyBjbGFzczogaWNvbkNsYXNzKCkgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbiAmJiAhaWNvblRlbXBsYXRlICYmICFfaWNvblRlbXBsYXRlXCIgW2NsYXNzXT1cImljb25cIiBbbmdDbGFzc109XCJpY29uQ2xhc3MoKVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpY29uICYmIChpY29uVGVtcGxhdGUgfHwgX2ljb25UZW1wbGF0ZSlcIiAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZSB8fCBfaWNvblRlbXBsYXRlOyBjb250ZXh0OiB7IGNsYXNzOiBpY29uQ2xhc3MoKSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWJ1dHRvbi1sYWJlbFwiIFthdHRyLmFyaWEtaGlkZGVuXT1cImljb24gJiYgIWxhYmVsXCIgKm5nSWY9XCIhY29udGVudFRlbXBsYXRlICYmICFfY29udGVudFRlbXBsYXRlICYmIGxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxwLWJhZGdlICpuZ0lmPVwiIWNvbnRlbnRUZW1wbGF0ZSAmJiAhX2NvbnRlbnRUZW1wbGF0ZSAmJiBiYWRnZVwiIFt2YWx1ZV09XCJiYWRnZVwiIFtzZXZlcml0eV09XCJiYWRnZVNldmVyaXR5XCI+PC9wLWJhZGdlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQnV0dG9uU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBUeXBlIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ2J1dHRvbic7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvblBvczogQnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBiYWRnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFVzZXMgdG8gcGFzcyBhdHRyaWJ1dGVzIHRvIHRoZSBsYWJlbCdzIERPTSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIGlzIGluIGxvYWRpbmcgc3RhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJY29uIHRvIGRpc3BsYXkgaW4gbG9hZGluZyBzdGF0ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsb2FkaW5nSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIHNoYWRvdyB0byBpbmRpY2F0ZSBlbGV2YXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJhaXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIGNpcmN1bGFyIGJvcmRlciByYWRpdXMgdG8gdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIHRleHR1YWwgY2xhc3MgdG8gdGhlIGJ1dHRvbiB3aXRob3V0IGEgYmFja2dyb3VuZCBpbml0aWFsbHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBwbGFpbiB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSB2YXJpYW50IHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBsYWluOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgc3R5bGUgb2YgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIGJvcmRlciBjbGFzcyB3aXRob3V0IGEgYmFja2dyb3VuZCBpbml0aWFsbHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG91dGxpbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgbGluayBzdHlsZSB0byB0aGUgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBsaW5rOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgdGFiaW5kZXggdG8gdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHNpemUgb2YgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnc21hbGwnIHwgJ2xhcmdlJyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHZhcmlhbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2YXJpYW50OiAnb3V0bGluZWQnIHwgJ3RleHQnIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGJhZGdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqIEBkZXByZWNhdGVkIHVzZSBiYWRnZVNldmVyaXR5IGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNldmVyaXR5IHR5cGUgb2YgdGhlIGJhZGdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqIEBkZWZhdWx0VmFsdWUgc2Vjb25kYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VTZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsIHwgdW5kZWZpbmVkID0gJ3NlY29uZGFyeSc7XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBkZWZpbmUgYSBzdHJpbmcgdGhhdCBhdXRvY29tcGxldGUgYXR0cmlidXRlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvZm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BhbnMgMTAwJSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHdoZW4gZW5hYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmx1aWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgICAqIFRoaXMgZXZlbnQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSA8cC1idXR0b24+IGNvbXBvbmVudC4gVXNpbmcgYSByZWd1bGFyIDxidXR0b24+IGVsZW1lbnQsIHVzZSAoY2xpY2spLlxuICAgICAqIEBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnQgLSBNb3VzZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiBidXR0b24gaXMgZm9jdXNlZC5cbiAgICAgKiBUaGlzIGV2ZW50IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgPHAtYnV0dG9uPiBjb21wb25lbnQuIFVzaW5nIGEgcmVndWxhciA8YnV0dG9uPiBlbGVtZW50LCB1c2UgKGZvY3VzKS5cbiAgICAgKiBAcGFyYW0ge0ZvY3VzRXZlbnR9IGV2ZW50IC0gRm9jdXMgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBleGVjdXRlIHdoZW4gYnV0dG9uIGxvc2VzIGZvY3VzLlxuICAgICAqIFRoaXMgZXZlbnQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSA8cC1idXR0b24+IGNvbXBvbmVudC4gVXNpbmcgYSByZWd1bGFyIDxidXR0b24+IGVsZW1lbnQsIHVzZSAoYmx1cikuXG4gICAgICogQHBhcmFtIHtGb2N1c0V2ZW50fSBldmVudCAtIEZvY3VzIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvZiB0aGUgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb2YgdGhlIGxvYWRpbmcuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqKi9cbiAgICBAQ29udGVudENoaWxkKCdsb2FkaW5nJykgbG9hZGluZ0ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ljb24nKSBpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfYnV0dG9uUHJvcHM6IGFueSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBidXR0b25Qcm9wcygpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uUHJvcHM7XG4gICAgfVxuICAgIHNldCBidXR0b25Qcm9wcyh2YWw6IGFueSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9idXR0b25Qcm9wcyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbCkuZm9yRWFjaCgoW2ssIHZdKSA9PiB0aGlzW2BfJHtrfWBdICE9PSB2ICYmICh0aGlzW2BfJHtrfWBdID0gdikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZsdWlkKCkge1xuICAgICAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBmbHVpZENvbXBvbmVudCA9IG5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgncC1mbHVpZCcpO1xuXG4gICAgICAgIHJldHVybiBpc0VtcHR5KHRoaXMuZmx1aWQpID8gISFmbHVpZENvbXBvbmVudCA6IHRoaXMuZmx1aWQ7XG4gICAgfVxuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEJ1dHRvblN0eWxlKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9sb2FkaW5nSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvYWRpbmdpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZ0ljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgYnV0dG9uUHJvcHMgfSA9IHNpbXBsZUNoYW5nZXM7XG5cbiAgICAgICAgaWYgKGJ1dHRvblByb3BzKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IGJ1dHRvblByb3BzLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBwcm9wcykge1xuICAgICAgICAgICAgICAgIHRoaXNbcHJvcGVydHldID0gcHJvcHNbcHJvcGVydHldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3Bpbm5lckljb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5pY29uQ2xhc3MoKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gISF2YWx1ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2tleV0pID0+IGFjYyArIGAgJHtrZXl9YCwgJ3AtYnV0dG9uLWxvYWRpbmctaWNvbicpO1xuICAgIH1cblxuICAgIGljb25DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgcC1idXR0b24tbG9hZGluZy1pY29uIHBpLXNwaW4gJHt0aGlzLmxvYWRpbmdJY29uID8/ICcnfWBdOiB0aGlzLmxvYWRpbmcsXG4gICAgICAgICAgICAncC1idXR0b24taWNvbic6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24taWNvbi1sZWZ0JzogdGhpcy5pY29uUG9zID09PSAnbGVmdCcgJiYgdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLXJpZ2h0JzogdGhpcy5pY29uUG9zID09PSAncmlnaHQnICYmIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAncC1idXR0b24taWNvbi10b3AnOiB0aGlzLmljb25Qb3MgPT09ICd0b3AnICYmIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAncC1idXR0b24taWNvbi1ib3R0b20nOiB0aGlzLmljb25Qb3MgPT09ICdib3R0b20nICYmIHRoaXMubGFiZWxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgYnV0dG9uQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAncC1idXR0b24gcC1jb21wb25lbnQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tb25seSc6ICh0aGlzLmljb24gfHwgdGhpcy5pY29uVGVtcGxhdGUgfHwgdGhpcy5faWNvblRlbXBsYXRlIHx8IHRoaXMubG9hZGluZ0ljb24gfHwgdGhpcy5sb2FkaW5nSWNvblRlbXBsYXRlIHx8IHRoaXMuX2xvYWRpbmdJY29uVGVtcGxhdGUpICYmICF0aGlzLmxhYmVsLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXZlcnRpY2FsJzogKHRoaXMuaWNvblBvcyA9PT0gJ3RvcCcgfHwgdGhpcy5pY29uUG9zID09PSAnYm90dG9tJykgJiYgdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1sb2FkaW5nJzogdGhpcy5sb2FkaW5nLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLWxvYWRpbmctbGFiZWwtb25seSc6IHRoaXMubG9hZGluZyAmJiAhdGhpcy5pY29uICYmIHRoaXMubGFiZWwgJiYgIXRoaXMubG9hZGluZ0ljb24gJiYgdGhpcy5pY29uUG9zID09PSAnbGVmdCcsXG4gICAgICAgICAgICAncC1idXR0b24tbGluayc6IHRoaXMubGluayxcbiAgICAgICAgICAgIFtgcC1idXR0b24tJHt0aGlzLnNldmVyaXR5fWBdOiB0aGlzLnNldmVyaXR5LFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRoaXMucmFpc2VkLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0aGlzLnJvdW5kZWQsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRoaXMudGV4dCB8fCB0aGlzLnZhcmlhbnQgPT0gJ3RleHQnLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdGhpcy5vdXRsaW5lZCB8fCB0aGlzLnZhcmlhbnQgPT0gJ291dGxpbmVkJyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1zbSc6IHRoaXMuc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1sZyc6IHRoaXMuc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1wbGFpbic6IHRoaXMucGxhaW4sXG4gICAgICAgICAgICAncC1idXR0b24tZmx1aWQnOiB0aGlzLmhhc0ZsdWlkLFxuICAgICAgICAgICAgW2Ake3RoaXMuc3R5bGVDbGFzc31gXTogdGhpcy5zdHlsZUNsYXNzXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoeyBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25EaXJlY3RpdmUsIEJ1dHRvbiwgU2hhcmVkTW9kdWxlLCBCdXR0b25MYWJlbCwgQnV0dG9uSWNvbl0sIGV4cG9ydHM6IFtCdXR0b25EaXJlY3RpdmUsIEJ1dHRvbiwgQnV0dG9uTGFiZWwsIEJ1dHRvbkljb24sIFNoYXJlZE1vZHVsZV0gfSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Nb2R1bGUge31cbiJdfQ==