@ng-nest/ui 15.0.8 → 15.0.10

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 (76) hide show
  1. package/base-form/base-form.property.d.ts +2 -2
  2. package/core/config/config.d.ts +4 -0
  3. package/date-picker/date-picker.component.d.ts +5 -1
  4. package/date-picker/date-picker.module.d.ts +6 -5
  5. package/date-picker/date-picker.property.d.ts +139 -9
  6. package/date-picker/date-range-portal.component.d.ts +20 -13
  7. package/date-picker/date-range.component.d.ts +14 -4
  8. package/date-picker/picker-month.component.d.ts +15 -4
  9. package/date-picker/picker-year.component.d.ts +15 -5
  10. package/esm2020/base-form/base-form.property.mjs +1 -1
  11. package/esm2020/core/config/config.mjs +1 -1
  12. package/esm2020/date-picker/date-picker-portal.component.mjs +8 -7
  13. package/esm2020/date-picker/date-picker.component.mjs +32 -10
  14. package/esm2020/date-picker/date-picker.module.mjs +5 -1
  15. package/esm2020/date-picker/date-picker.property.mjs +178 -15
  16. package/esm2020/date-picker/date-range-portal.component.mjs +123 -52
  17. package/esm2020/date-picker/date-range.component.mjs +99 -34
  18. package/esm2020/date-picker/picker-date.component.mjs +4 -4
  19. package/esm2020/date-picker/picker-month.component.mjs +151 -11
  20. package/esm2020/date-picker/picker-year.component.mjs +151 -13
  21. package/esm2020/i18n/i18n.property.mjs +1 -1
  22. package/esm2020/i18n/languages/en_GB.mjs +11 -2
  23. package/esm2020/i18n/languages/en_US.mjs +11 -2
  24. package/esm2020/i18n/languages/zh_CN.mjs +11 -2
  25. package/esm2020/i18n/languages/zh_TW.mjs +11 -2
  26. package/esm2020/link/link.component.mjs +19 -5
  27. package/esm2020/link/link.property.mjs +10 -4
  28. package/esm2020/slider/slider.component.mjs +3 -3
  29. package/esm2020/time-picker/time-picker-frame.component.mjs +28 -11
  30. package/esm2020/time-picker/time-picker-portal.component.mjs +2 -2
  31. package/esm2020/tree/tree-node.component.mjs +6 -2
  32. package/esm2020/tree/tree.component.mjs +14 -1
  33. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  34. package/fesm2015/ng-nest-ui-core.mjs +1 -0
  35. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  36. package/fesm2015/ng-nest-ui-date-picker.mjs +726 -123
  37. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  38. package/fesm2015/ng-nest-ui-i18n.mjs +40 -4
  39. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  40. package/fesm2015/ng-nest-ui-link.mjs +28 -8
  41. package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
  42. package/fesm2015/ng-nest-ui-slider.mjs +2 -2
  43. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  44. package/fesm2015/ng-nest-ui-switch.mjs +1 -0
  45. package/fesm2015/ng-nest-ui-table.mjs +1 -0
  46. package/fesm2015/ng-nest-ui-time-picker.mjs +28 -11
  47. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  48. package/fesm2015/ng-nest-ui-tree.mjs +18 -2
  49. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  50. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  51. package/fesm2020/ng-nest-ui-core.mjs +1 -0
  52. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  53. package/fesm2020/ng-nest-ui-date-picker.mjs +727 -128
  54. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  55. package/fesm2020/ng-nest-ui-i18n.mjs +40 -4
  56. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  57. package/fesm2020/ng-nest-ui-link.mjs +27 -8
  58. package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
  59. package/fesm2020/ng-nest-ui-slider.mjs +2 -2
  60. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  61. package/fesm2020/ng-nest-ui-switch.mjs +1 -0
  62. package/fesm2020/ng-nest-ui-table.mjs +1 -0
  63. package/fesm2020/ng-nest-ui-time-picker.mjs +28 -11
  64. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  65. package/fesm2020/ng-nest-ui-tree.mjs +18 -2
  66. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  67. package/i18n/i18n.property.d.ts +9 -0
  68. package/i18n/languages/en_GB.d.ts +9 -0
  69. package/i18n/languages/en_US.d.ts +9 -0
  70. package/i18n/languages/zh_CN.d.ts +9 -0
  71. package/i18n/languages/zh_TW.d.ts +9 -0
  72. package/link/link.component.d.ts +5 -2
  73. package/link/link.property.d.ts +6 -1
  74. package/package.json +1 -1
  75. package/time-picker/time-picker-frame.component.d.ts +8 -6
  76. package/tree/tree.component.d.ts +1 -0
@@ -93,11 +93,6 @@ export class XDateRangeProperty extends XControlValueAccessor {
93
93
  * @en_US Select type
94
94
  */
95
95
  this.type = 'date';
96
- /**
97
- * @zh_CN 快捷选择按钮,支持今天,昨天,明天
98
- * @en_US Quick selection button, support today, yesterday, tomorrow
99
- */
100
- this.preset = [];
101
96
  /**
102
97
  * @zh_CN 节点点击的事件
103
98
  * @en_US Node click event
@@ -106,7 +101,7 @@ export class XDateRangeProperty extends XControlValueAccessor {
106
101
  }
107
102
  }
108
103
  /** @nocollapse */ XDateRangeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
- /** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", preset: "preset" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
104
+ /** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", placeholder: "placeholder" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
110
105
  __decorate([
111
106
  XWithConfig(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd')
112
107
  ], XDateRangeProperty.prototype, "format", void 0);
@@ -122,11 +117,8 @@ __decorate([
122
117
  ], XDateRangeProperty.prototype, "size", void 0);
123
118
  __decorate([
124
119
  XInputBoolean(),
125
- XWithConfig(X_CONFIG_RANGE_NAME, true)
120
+ XWithConfig(X_CONFIG_NAME, true)
126
121
  ], XDateRangeProperty.prototype, "bordered", void 0);
127
- __decorate([
128
- XDataConvert()
129
- ], XDateRangeProperty.prototype, "preset", void 0);
130
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, decorators: [{
131
123
  type: Component,
132
124
  args: [{ template: '' }]
@@ -142,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
142
134
  type: Input
143
135
  }], bordered: [{
144
136
  type: Input
145
- }], preset: [{
137
+ }], placeholder: [{
146
138
  type: Input
147
139
  }], nodeEmit: [{
148
140
  type: Output
@@ -206,6 +198,11 @@ export class XPickerDateProperty extends XProperty {
206
198
  * @en_US Next month
207
199
  */
208
200
  this.nextMonthBtn = true;
201
+ /**
202
+ * @zh_CN 范围 hover 效果
203
+ * @en_US Range hover style
204
+ */
205
+ this.rangeHover = true;
209
206
  /**
210
207
  * @zh_CN 范围日期
211
208
  * @en_US Range date
@@ -259,7 +256,7 @@ export class XPickerDateProperty extends XProperty {
259
256
  }
260
257
  }
261
258
  /** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
262
- /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
259
+ /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeHover: "rangeHover", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
263
260
  __decorate([
264
261
  XInputBoolean()
265
262
  ], XPickerDateProperty.prototype, "showHeader", void 0);
@@ -278,6 +275,9 @@ __decorate([
278
275
  __decorate([
279
276
  XInputBoolean()
280
277
  ], XPickerDateProperty.prototype, "nextMonthBtn", void 0);
278
+ __decorate([
279
+ XInputBoolean()
280
+ ], XPickerDateProperty.prototype, "rangeHover", void 0);
281
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, decorators: [{
282
282
  type: Component,
283
283
  args: [{ template: '' }]
@@ -301,6 +301,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
301
301
  type: Input
302
302
  }], nextMonthBtn: [{
303
303
  type: Input
304
+ }], rangeHover: [{
305
+ type: Input
304
306
  }], rangeValue: [{
305
307
  type: Input
306
308
  }], rangeType: [{
@@ -351,6 +353,21 @@ export class XPickerMonthProperty extends XProperty {
351
353
  * @en_US Display switch button
352
354
  */
353
355
  this.showHeader = true;
356
+ /**
357
+ * @zh_CN 上一年
358
+ * @en_US Last year
359
+ */
360
+ this.lastYearBtn = true;
361
+ /**
362
+ * @zh_CN 下一年
363
+ * @en_US Next year
364
+ */
365
+ this.nextYearBtn = true;
366
+ /**
367
+ * @zh_CN 范围月份
368
+ * @en_US Range date
369
+ */
370
+ this.rangeValue = [];
354
371
  /**
355
372
  * @zh_CN 选中的事件
356
373
  * @en_US Selected event
@@ -366,13 +383,52 @@ export class XPickerMonthProperty extends XProperty {
366
383
  * @en_US Scope change event
367
384
  */
368
385
  this.rangeChange = new EventEmitter();
386
+ /**
387
+ * @zh_CN 选年的事件
388
+ * @en_US Year change event
389
+ */
390
+ this.yearChange = new EventEmitter();
391
+ /**
392
+ * @zh_CN 选月的事件
393
+ * @en_US Month change event
394
+ */
395
+ this.monthChange = new EventEmitter();
396
+ /**
397
+ * @zh_CN 显示月份事件
398
+ * @en_US display date event
399
+ */
400
+ this.displayChange = new EventEmitter();
401
+ /**
402
+ * @zh_CN 范围月份 mouseenter 事件
403
+ * @en_US Date mouseenter event
404
+ */
405
+ this.rangeTdMouseenter = new EventEmitter();
406
+ /**
407
+ * @zh_CN 范围月份 mouseleave 事件
408
+ * @en_US Date mouseleave event
409
+ */
410
+ this.rangeTdMouseleave = new EventEmitter();
411
+ /**
412
+ * @zh_CN 范围中的月份点击事件
413
+ * @en_US Range date click event
414
+ */
415
+ this.rangeDateClick = new EventEmitter();
369
416
  }
370
417
  }
371
418
  /** @nocollapse */ XPickerMonthProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
372
- /** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
419
+ /** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
373
420
  __decorate([
374
421
  XInputBoolean()
375
422
  ], XPickerMonthProperty.prototype, "showHeader", void 0);
423
+ __decorate([
424
+ XInputBoolean()
425
+ ], XPickerMonthProperty.prototype, "rangePicker", void 0);
426
+ __decorate([
427
+ XInputBoolean()
428
+ ], XPickerMonthProperty.prototype, "lastYearBtn", void 0);
429
+ __decorate([
430
+ XInputBoolean()
431
+ ], XPickerMonthProperty.prototype, "nextYearBtn", void 0);
376
432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, decorators: [{
377
433
  type: Component,
378
434
  args: [{ template: '' }]
@@ -386,12 +442,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
386
442
  type: Input
387
443
  }], showHeader: [{
388
444
  type: Input
445
+ }], rangePicker: [{
446
+ type: Input
447
+ }], lastYearBtn: [{
448
+ type: Input
449
+ }], nextYearBtn: [{
450
+ type: Input
451
+ }], rangeValue: [{
452
+ type: Input
453
+ }], rangeType: [{
454
+ type: Input
389
455
  }], modelChange: [{
390
456
  type: Output
391
457
  }], typeChange: [{
392
458
  type: Output
393
459
  }], rangeChange: [{
394
460
  type: Output
461
+ }], yearChange: [{
462
+ type: Output
463
+ }], monthChange: [{
464
+ type: Output
465
+ }], displayChange: [{
466
+ type: Output
467
+ }], rangeTdMouseenter: [{
468
+ type: Output
469
+ }], rangeTdMouseleave: [{
470
+ type: Output
471
+ }], rangeDateClick: [{
472
+ type: Output
395
473
  }] } });
396
474
  /**
397
475
  * PickerYear
@@ -420,6 +498,21 @@ export class XPickerYearProperty extends XProperty {
420
498
  * @en_US Display switch button
421
499
  */
422
500
  this.showHeader = true;
501
+ /**
502
+ * @zh_CN 上一年
503
+ * @en_US Last year
504
+ */
505
+ this.lastYearBtn = true;
506
+ /**
507
+ * @zh_CN 下一年
508
+ * @en_US Next year
509
+ */
510
+ this.nextYearBtn = true;
511
+ /**
512
+ * @zh_CN 范围年份
513
+ * @en_US Range date
514
+ */
515
+ this.rangeValue = [];
423
516
  /**
424
517
  * @zh_CN 选中的事件
425
518
  * @en_US Selected event
@@ -435,13 +528,57 @@ export class XPickerYearProperty extends XProperty {
435
528
  * @en_US Start year change event
436
529
  */
437
530
  this.startChange = new EventEmitter();
531
+ /**
532
+ * @zh_CN 范围变化的事件
533
+ * @en_US Scope change event
534
+ */
535
+ this.rangeChange = new EventEmitter();
536
+ /**
537
+ * @zh_CN 选年的事件
538
+ * @en_US Year change event
539
+ */
540
+ this.yearChange = new EventEmitter();
541
+ /**
542
+ * @zh_CN 选月的事件
543
+ * @en_US Month change event
544
+ */
545
+ this.monthChange = new EventEmitter();
546
+ /**
547
+ * @zh_CN 显示月份事件
548
+ * @en_US display date event
549
+ */
550
+ this.displayChange = new EventEmitter();
551
+ /**
552
+ * @zh_CN 范围月份 mouseenter 事件
553
+ * @en_US Date mouseenter event
554
+ */
555
+ this.rangeTdMouseenter = new EventEmitter();
556
+ /**
557
+ * @zh_CN 范围月份 mouseleave 事件
558
+ * @en_US Date mouseleave event
559
+ */
560
+ this.rangeTdMouseleave = new EventEmitter();
561
+ /**
562
+ * @zh_CN 范围中的月份点击事件
563
+ * @en_US Range date click event
564
+ */
565
+ this.rangeDateClick = new EventEmitter();
438
566
  }
439
567
  }
440
568
  /** @nocollapse */ XPickerYearProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
441
- /** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", showHeader: "showHeader" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
569
+ /** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", yearTemp: "yearTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
442
570
  __decorate([
443
571
  XInputBoolean()
444
572
  ], XPickerYearProperty.prototype, "showHeader", void 0);
573
+ __decorate([
574
+ XInputBoolean()
575
+ ], XPickerYearProperty.prototype, "rangePicker", void 0);
576
+ __decorate([
577
+ XInputBoolean()
578
+ ], XPickerYearProperty.prototype, "lastYearBtn", void 0);
579
+ __decorate([
580
+ XInputBoolean()
581
+ ], XPickerYearProperty.prototype, "nextYearBtn", void 0);
445
582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, decorators: [{
446
583
  type: Component,
447
584
  args: [{ template: '' }]
@@ -451,13 +588,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
451
588
  type: Input
452
589
  }], model: [{
453
590
  type: Input
591
+ }], yearTemp: [{
592
+ type: Input
454
593
  }], showHeader: [{
455
594
  type: Input
595
+ }], rangePicker: [{
596
+ type: Input
597
+ }], lastYearBtn: [{
598
+ type: Input
599
+ }], nextYearBtn: [{
600
+ type: Input
601
+ }], rangeValue: [{
602
+ type: Input
603
+ }], rangeType: [{
604
+ type: Input
456
605
  }], modelChange: [{
457
606
  type: Output
458
607
  }], typeChange: [{
459
608
  type: Output
460
609
  }], startChange: [{
461
610
  type: Output
611
+ }], rangeChange: [{
612
+ type: Output
613
+ }], yearChange: [{
614
+ type: Output
615
+ }], monthChange: [{
616
+ type: Output
617
+ }], displayChange: [{
618
+ type: Output
619
+ }], rangeTdMouseenter: [{
620
+ type: Output
621
+ }], rangeTdMouseleave: [{
622
+ type: Output
623
+ }], rangeDateClick: [{
624
+ type: Output
462
625
  }] } });
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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QUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTs7QUFHVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQVM7SUFEbEQ7O1FBRUU7OztXQUdHO1FBQ00sU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDeEM7OztXQUdHO1FBQ00sWUFBTyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFNcEM7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDdEQ7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pEOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUMzRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDcEQ7O21JQXBDWSxtQkFBbUI7dUhBQW5CLG1CQUFtQixrUUFEVCxFQUFFO0FBcUJHO0lBQWhCLGFBQWEsRUFBRTt1REFBNkI7MkZBcEIzQyxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYUHJvcGVydHksXHJcbiAgWEJvb2xlYW4sXHJcbiAgWENvcm5lcixcclxuICBYV2l0aENvbmZpZyxcclxuICBYU2l6ZSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhEYXRhLFxyXG4gIFhJZGVudGl0eVByb3BlcnR5XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcGlja2VyXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQcmVmaXggPSAneC1kYXRlLXBpY2tlcic7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnZGF0ZVBpY2tlcic7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVQaWNrZXJQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVQaWNrZXJPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUGlja2VyT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgQ2hvb3NlIGEgdHlwZVxyXG4gICAqL1xyXG4gIHR5cGU/OiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgc2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBib3JkZXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliY3nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQmVmb3JlIGxhYmVsXHJcbiAgICovXHJcbiAgYmVmb3JlPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI7nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQWZ0ZXIgbGFiZWxcclxuICAgKi9cclxuICBhZnRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBub2RlQ2xpY2s/OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZVxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVSYW5nZVByZWZpeCA9ICd4LWRhdGUtcmFuZ2UnO1xyXG5jb25zdCBYX0NPTkZJR19SQU5HRV9OQU1FID0gJ2RhdGVSYW5nZSc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUmFuZ2VPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX1JBTkdFX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX1JBTkdFX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0YWIg6ZSu5o6n5Yi25qyh5bqPXHJcbiAgICogQGVuX1VTIFRhYiBrZXkgY29udHJvbCBvcmRlclxyXG4gICAqL1xyXG4gIHRhYmluZGV4PzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSrlxyXG4gKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVBpY2tlclByZXNldCBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5Ye95pWwXHJcbiAgICogQGVuX1VTIEN1c3RvbSBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGZ1bmM6ICgpID0+IERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5pel5pyf6YCJ5oup57G75Z6LXHJcbiAqIEBlbl9VUyBEYXRlIHNlbGVjdGlvbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZScgfCAnbW9udGgnIHwgJ3llYXInIHwgJ2RhdGUtdGltZScgfCAnZGF0ZS1ob3VyJyB8ICdkYXRlLW1pbnV0ZSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+aVsOaNruexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBkYXRhIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyTW9kZWxUeXBlID0gJ2RhdGUnIHwgJ251bWJlcicgfCAnc3RyaW5nJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXBpY2tlci1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCA9ICd4LWRhdGUtcGlja2VyLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlLXBvcnRhbFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUmFuZ2VQb3J0YWxQcmVmaXggPSAneC1kYXRlLXJhbmdlLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogUGlja2VyRGF0ZVxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXItZGF0ZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJEYXRlUHJlZml4ID0gJ3gtcGlja2VyLWRhdGUnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGUgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJEYXRlUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZSB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIExhc3QgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrmnIhcclxuICAgKiBAZW5fVVMgTmV4dCBtb250aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dE1vbnRoQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogKG51bWJlciB8IG51bGwpW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacnyBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pel5pyfIG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TkuK3nmoTml6XmnJ/ngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZURhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleS4quaXpeacn+aVsOaNruWvueixoVxyXG4gKiBAZW5fVVMg5Y2V5Liq5pel5pyf5pWw5o2u5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlXHJcbiAgICovXHJcbiAgZGF0ZT86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4quaciOaIluS4i+S4quaciOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIG9mIHRoZSBwcmV2aW91cyBvciBuZXh0IG1vbnRoXHJcbiAgICovXHJcbiAgaXNMYXN0T3JOZXh0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5aSpXHJcbiAgICogQGVuX1VTIFNhbWUgZGF5XHJcbiAgICovXHJcbiAgaXNOb3c/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPmnIjnrKzkuIDlpKlcclxuICAgKiBAZW5fVVMgVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0ZpcnN0RGF5PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5pyI5pyA5ZCO5LiA5aSpXHJcbiAgICogQGVuX1VTIFRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0xhc3REYXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoXml6XmnJ9cclxuICAgKiBAZW5fVVMg6IyD5Zu05YaF5pel5pyfXHJcbiAgICovXHJcbiAgaXNJblJhbmdlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05YaFIGhvdmVyIOmAieS4rVxyXG4gICAqIEBlbl9VUyDojIPlm7TlhoUgaG92ZXIg6YCJ5LitXHJcbiAgICovXHJcbiAgaXNJblJhbmdlSG92ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5bem6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lt6bovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlckxlZnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5Y+z6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lj7PovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlclJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5bem6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlU3RhcnRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZVN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2Ugc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZUVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu0IGhvdmVyXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyXHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg5b2T5YmN5byA5aeLXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0YXJ0XHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyU3RhcnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvZPliY3nu5PmnZ9cclxuICAgKiBAZW5fVVMgRW5kIGRhdGVcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvIDlp4vlt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0TGVmdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGhvdmVyIOW8gOWni+WPs+i+uVxyXG4gICAqIEBlbl9VUyBSYW5nZSBob3ZlciBzdGFydCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDnu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgZW5kIGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIGVuZCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlckVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit5pel5pyfXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgc2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyUmFuZ1R5cGUgPSAnc3RhcnQnIHwgJ2VuZCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGhcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLW1vbnRoXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlck1vbnRoUHJlZml4ID0gJ3gtcGlja2VyLW1vbnRoJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJNb250aCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlck1vbnRoUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyI5Lu95pi+56S65qih5p2/XHJcbiAgICogQGVuX1VTIE1vbnRoIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb250aFRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlUGlja2VyVHlwZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG59XHJcblxyXG4vKipcclxuICogUGlja2VyWWVhclxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXIteWVhclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJZZWFyUHJlZml4ID0gJ3gtcGlja2VyLXllYXInO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXIgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJZZWFyUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0eXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZVBpY2tlclR5cGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+W5tOS7veWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB5ZWFyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzdGFydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcbiJdfQ==
626
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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RTt3REFBOEI7QUFLN0I7SUFBaEIsYUFBYSxFQUFFO3dEQUE4QjsyRkF4QzVDLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUtHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhQcm9wZXJ0eSxcclxuICBYQm9vbGVhbixcclxuICBYQ29ybmVyLFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhTaXplLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYRGF0YUNvbnZlcnQsXHJcbiAgWERhdGEsXHJcbiAgWElkZW50aXR5UHJvcGVydHlcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciwgWEZvcm1PcHRpb24gfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXJcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVBpY2tlclByZWZpeCA9ICd4LWRhdGUtcGlja2VyJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdkYXRlUGlja2VyJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlclByb3BlcnR5IGV4dGVuZHMgWENvbnRyb2xWYWx1ZUFjY2Vzc29yPGFueT4gaW1wbGVtZW50cyBYRGF0ZVBpY2tlck9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfTkFNRSwgJ3l5eXktTU0tZGQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhDb3JuZXI+KFhfQ09ORklHX05BTUUsICdib3R0b20tc3RhcnQnKSBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfTkFNRSwgJ21lZGl1bScpIG92ZXJyaWRlIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSru+8jOaUr+aMgeS7iuWkqSzmmKjlpKks5piO5aSpXHJcbiAgICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b24sIHN1cHBvcnQgdG9kYXksIHllc3RlcmRheSwgdG9tb3Jyb3dcclxuICAgKi9cclxuICBASW5wdXQoKSBAWERhdGFDb252ZXJ0KCkgcHJlc2V0OiBYRGF0YTxYRGF0ZVBpY2tlclByZXNldD4gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXIgT3B0aW9uXHJcbiAqIEB1bmRvY3VtZW50IHRydWVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJPcHRpb24gZXh0ZW5kcyBYRm9ybU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBDaG9vc2UgYSB0eXBlXHJcbiAgICovXHJcbiAgdHlwZT86IFhEYXRlUGlja2VyVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBzaXplPzogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIGJvcmRlcmVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWJjee9ruagh+etvlxyXG4gICAqIEBlbl9VUyBCZWZvcmUgbGFiZWxcclxuICAgKi9cclxuICBiZWZvcmU/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWQjue9ruagh+etvlxyXG4gICAqIEBlbl9VUyBBZnRlciBsYWJlbFxyXG4gICAqL1xyXG4gIGFmdGVyPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIG5vZGVDbGljaz86ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcmFuZ2VcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZSc7XHJcbmNvbnN0IFhfQ09ORklHX1JBTkdFX05BTUUgPSAnZGF0ZVJhbmdlJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2UgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUmFuZ2VQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVSYW5nZU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ3l5eXktTU0tZGQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX1JBTkdFX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhDb3JuZXI+KFhfQ09ORklHX1JBTkdFX05BTUUsICdib3R0b20tc3RhcnQnKSBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ21lZGl1bScpIG92ZXJyaWRlIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aPkOekuuS/oeaBr1xyXG4gICAqIEBlbl9VUyBQbGFjZWhvbGRlciBvZiBkYXRlIGlucHV0XHJcbiAgICovXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgcGxhY2Vob2xkZXI/OiBzdHJpbmdbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcltdPigpO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUmFuZ2VPcHRpb24gZXh0ZW5kcyBYRm9ybU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHRhYiDplK7mjqfliLbmrKHluo9cclxuICAgKiBAZW5fVVMgVGFiIGtleSBjb250cm9sIG9yZGVyXHJcbiAgICovXHJcbiAgdGFiaW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aPkOekuuS/oeaBr1xyXG4gICAqIEBlbl9VUyBQbGFjZWhvbGRlciBvZiBkYXRlIGlucHV0XHJcbiAgICovXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq5cclxuICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJQcmVzZXQgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyBDdXN0b20gZnVuY3Rpb25cclxuICAgKi9cclxuICBmdW5jOiAoKSA9PiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+mAieaLqeexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBzZWxlY3Rpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGUtaG91cicgfCAnZGF0ZS1taW51dGUnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDml6XmnJ/mlbDmja7nsbvlnotcclxuICogQGVuX1VTIERhdGUgZGF0YSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZyc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXItcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXggPSAneC1kYXRlLXBpY2tlci1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZS1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGVcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLWRhdGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyRGF0ZVByZWZpeCA9ICd4LXBpY2tlci1kYXRlJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJEYXRlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyRGF0ZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDml6XmnJ/mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0ZVRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOmAieaLqVxyXG4gICAqIEBlbl9VUyBSYW5nZSBwaWNrZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHJhbmdlUGlja2VyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4gOW5tFxyXG4gICAqIEBlbl9VUyBMYXN0IHllYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RZZWFyQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuaciFxyXG4gICAqIEBlbl9VUyBMYXN0IG1vbnRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0TW9udGhCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiL5LiA5bm0XHJcbiAgICogQGVuX1VTIE5leHQgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIE5leHQgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG5leHRNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7QgaG92ZXIg5pWI5p6cXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0eWxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZUhvdmVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogKG51bWJlciB8IG51bGwpW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacnyBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pel5pyfIG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TkuK3nmoTml6XmnJ/ngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZURhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleS4quaXpeacn+aVsOaNruWvueixoVxyXG4gKiBAZW5fVVMg5Y2V5Liq5pel5pyf5pWw5o2u5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlXHJcbiAgICovXHJcbiAgZGF0ZT86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4quaciOaIluS4i+S4quaciOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIG9mIHRoZSBwcmV2aW91cyBvciBuZXh0IG1vbnRoXHJcbiAgICovXHJcbiAgaXNMYXN0T3JOZXh0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5aSpXHJcbiAgICogQGVuX1VTIFNhbWUgZGF5XHJcbiAgICovXHJcbiAgaXNOb3c/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPmnIjnrKzkuIDlpKlcclxuICAgKiBAZW5fVVMgVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0ZpcnN0RGF5PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5pyI5pyA5ZCO5LiA5aSpXHJcbiAgICogQGVuX1VTIFRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0xhc3REYXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoXml6XmnJ9cclxuICAgKiBAZW5fVVMg6IyD5Zu05YaF5pel5pyfXHJcbiAgICovXHJcbiAgaXNJblJhbmdlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05YaFIGhvdmVyIOmAieS4rVxyXG4gICAqIEBlbl9VUyDojIPlm7TlhoUgaG92ZXIg6YCJ5LitXHJcbiAgICovXHJcbiAgaXNJblJhbmdlSG92ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5bem6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lt6bovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlckxlZnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5Y+z6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lj7PovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlclJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5bem6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlU3RhcnRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZVN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2Ugc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZUVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu0IGhvdmVyXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyXHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg5b2T5YmN5byA5aeLXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0YXJ0XHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyU3RhcnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvZPliY3nu5PmnZ9cclxuICAgKiBAZW5fVVMgRW5kIGRhdGVcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvIDlp4vlt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0TGVmdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGhvdmVyIOW8gOWni+WPs+i+uVxyXG4gICAqIEBlbl9VUyBSYW5nZSBob3ZlciBzdGFydCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDnu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgZW5kIGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIGVuZCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlckVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit5pel5pyfXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgc2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyUmFuZ1R5cGUgPSAnc3RhcnQnIHwgJ2VuZCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGhcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLW1vbnRoXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlck1vbnRoUHJlZml4ID0gJ3gtcGlja2VyLW1vbnRoJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJNb250aCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlck1vbnRoUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZSB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaciOS7veaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBNb250aCBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9udGhUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TpgInmi6lcclxuICAgKiBAZW5fVVMgUmFuZ2UgcGlja2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZVBpY2tlcj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkuIDlubRcclxuICAgKiBAZW5fVVMgTGFzdCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku71cclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVmFsdWU6IChudW1iZXIgfCBudWxsKVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieaLqeeahOaYr+W8gOWniy/nu5PmnZ/ml6XmnJ9cclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VUeXBlITogWERhdGVQaWNrZXJSYW5nVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7Tlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2NvcGUgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieW5tOeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBZZWFyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB5ZWFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaciOeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBNb250aCBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65pyI5Lu95LqL5Lu2XHJcbiAgICogQGVuX1VTIGRpc3BsYXkgZGF0ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBkaXNwbGF5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku70gbW91c2VlbnRlciDkuovku7ZcclxuICAgKiBAZW5fVVMgRGF0ZSBtb3VzZWVudGVyIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlVGRNb3VzZWVudGVyID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaciOS7vSBtb3VzZWxlYXZlIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlbGVhdmUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlbGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Lit55qE5pyI5Lu954K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIFJhbmdlIGRhdGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VEYXRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXJcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLXllYXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyWWVhclByZWZpeCA9ICd4LXBpY2tlci15ZWFyJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJZZWFyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyWWVhclByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlubTku73mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgTW9udGggZGlzcGxheSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHllYXJUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TpgInmi6lcclxuICAgKiBAZW5fVVMgUmFuZ2UgcGlja2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZVBpY2tlcj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkuIDlubRcclxuICAgKiBAZW5fVVMgTGFzdCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlubTku71cclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVmFsdWU6IChudW1iZXIgfCBudWxsKVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieaLqeeahOaYr+W8gOWniy/nu5PmnZ/ml6XmnJ9cclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VUeXBlITogWERhdGVQaWNrZXJSYW5nVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vlubTku73lj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU3RhcnQgeWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3RhcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInlubTnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgWWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgeWVhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmnIjnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTW9udGggY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaciOS7veS6i+S7tlxyXG4gICAqIEBlbl9VUyBkaXNwbGF5IGRhdGUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgZGlzcGxheUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pyI5Lu9IG1vdXNlZW50ZXIg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VlbnRlciBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku70gbW91c2VsZWF2ZSDkuovku7ZcclxuICAgKiBAZW5fVVMgRGF0ZSBtb3VzZWxlYXZlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlVGRNb3VzZWxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOS4reeahOaciOS7veeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlRGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbn1cclxuIl19