@schneideress/dashboardframework 0.0.130 → 0.0.132

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.
@@ -107,7 +107,19 @@ var RAWidgetContainer = /** @class */ (function () {
107
107
  }));
108
108
  }
109
109
  if (this.widgetElement && changes.globalFilter && changes.globalFilter.currentValue != changes.globalFilter.previousValue) {
110
- this.refreshWidget(this.data.widgetInfo);
110
+ /** @type {?} */
111
+ var filterObj = this.getParsedConfig(this.globalFilter);
112
+ console.log('================================');
113
+ console.log(this.globalFilter);
114
+ console.log(filterObj);
115
+ console.log(this.data.widgetInfo.widgetInstanceId);
116
+ if (filterObj.WidgetInstanceId) {
117
+ if (this.data.widgetInfo.widgetInstanceId != filterObj.WidgetInstanceId)
118
+ this.refreshWidget(this.data.widgetInfo);
119
+ }
120
+ else {
121
+ this.refreshWidget(this.data.widgetInfo);
122
+ }
111
123
  }
112
124
  if (changes.width && changes.width.currentValue != changes.width.previousValue ||
113
125
  (changes.height && changes.height.currentValue != changes.height.previousValue)) {
@@ -630,6 +642,32 @@ var RAWidgetContainer = /** @class */ (function () {
630
642
  }
631
643
  this.isDownloadChartVisible = false;
632
644
  };
645
+ /**
646
+ * @private
647
+ * @param {?} config
648
+ * @return {?}
649
+ */
650
+ RAWidgetContainer.prototype.getParsedConfig = /**
651
+ * @private
652
+ * @param {?} config
653
+ * @return {?}
654
+ */
655
+ function (config) {
656
+ /** @type {?} */
657
+ var parsedConfig;
658
+ if (config) {
659
+ if (typeof config === 'string') {
660
+ try {
661
+ parsedConfig = JSON.parse(config);
662
+ }
663
+ catch (_a) {
664
+ parsedConfig = {};
665
+ }
666
+ return parsedConfig;
667
+ }
668
+ }
669
+ return config;
670
+ };
633
671
  RAWidgetContainer.decorators = [
634
672
  { type: Component, args: [{
635
673
  selector: 'ra-widget-container',
@@ -817,4 +855,4 @@ if (false) {
817
855
  */
818
856
  RAWidgetContainer.prototype.renderer;
819
857
  }
820
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS13aWRnZXQtY29udGFpbmVyL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBb0UsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4TSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0QsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk3RDtJQXVFRSwyQkFBb0IsZ0JBQW9DLEVBQzlDLFVBQThCLEVBQzlCLGdCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsUUFBeUIsRUFDekIsUUFBbUI7UUFMN0IsaUJBb0JDO1FBcEJtQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFyRXRCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDekIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsZUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFFLGNBQVMsR0FBVyxVQUFVLENBQUM7UUFDL0IsZUFBVSxHQUF1QixrQkFBa0IsQ0FBQyxRQUFRLENBQUM7UUFDN0QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBRXhDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBQzVCLGlCQUFZLEdBQVcsS0FBSyxDQUFDO1FBRzdCLHFCQUFnQixHQUFXLEdBQUcsQ0FBQztRQUMvQixxQkFBZ0IsR0FBVyxHQUFHLENBQUM7UUFDL0IscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBQy9CLHNCQUFpQixHQUFXLEdBQUcsQ0FBQztRQUNoQyx1QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFDakMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFXLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBVyxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBQ2pDLHNCQUFpQixHQUFXLEtBQUssQ0FBQztRQUNsQyx1QkFBa0IsR0FBVyxLQUFLLENBQUM7UUFrQmhDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU5QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQWdCbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU87Ozs7UUFBRSxVQUFDLENBQVE7WUFDL0MsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFO2dCQUNsRCxLQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUM1QjtRQUNILENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU87Ozs7UUFBRSxVQUFDLENBQVE7WUFDL0MsSUFBSSxLQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pFLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7YUFDckM7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUdMLENBQUM7SUF6QkQsc0JBQ0kseUNBQVU7Ozs7O1FBRGQsVUFDZSxPQUFnQjtZQUM3QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDOzs7T0FBQTs7Ozs7SUF3QkQsdUNBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQWxDLGlCQW1CQztRQWxCQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUU7WUFDeEgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsVUFBQyxDQUFDO2dCQUMvSyxLQUFJLENBQUMsTUFBTSxDQUFDLEdBQUc7OztnQkFBQztvQkFDZCxLQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsRUFBQyxDQUFDO1lBRUwsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFO1lBRXpILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDNUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7SUFFSCxDQUFDOzs7O0lBRUQsb0RBQXdCOzs7SUFBeEI7UUFDRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7O2dCQUNsQixJQUFJLEdBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7SUFFRCwyQ0FBZTs7O0lBQWY7UUFBQSxpQkFJQztRQUhDLFVBQVU7OztRQUFDO1lBQ1QsS0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELHVDQUFXOzs7SUFBWDtRQUNFLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBR0QsMENBQTBDOzs7OztJQUNuQyxzQ0FBVTs7OztJQUFqQjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELHVDQUF1Qzs7Ozs7SUFDaEMsd0NBQVk7Ozs7SUFBbkI7UUFBQSxpQkFhQzs7WUFaSyxzQkFBc0IsR0FBRyxJQUFJO1FBQ2pDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLE1BQU07WUFDekcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksTUFBTSxFQUFFO2dCQUNWLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNsRjtpQkFDSTtnQkFDSCxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEtBQUssR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFFbEs7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0REFBNEQ7Ozs7O0lBQ3JELHNDQUFVOzs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsZ0RBQWdEO0lBQ2xELENBQUM7SUFFRCxvREFBb0Q7Ozs7O0lBQzdDLHNDQUFVOzs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsK0NBQStDO0lBQ2pELENBQUM7Ozs7SUFFTSxxQ0FBUzs7O0lBQWhCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDcEQsQ0FBQzs7OztJQUVNLHNDQUFVOzs7SUFBakI7UUFDRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9ILENBQUM7Ozs7O0lBRU0sb0RBQXdCOzs7O0lBQS9CLFVBQWdDLFVBQVU7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxpQ0FBaUM7SUFDbkMsQ0FBQztJQUdELDhEQUE4RDs7Ozs7O0lBQ3hELHNDQUFVOzs7OztJQUFoQixVQUFpQixVQUFlOzs7OztnQkFDMUIsa0JBQWtCLEdBQUcsbUJBQXFCO29CQUM1QyxNQUFNLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07b0JBQzFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDaEMsRUFBQTtnQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7Z0JBQzFDLGVBQWUsR0FBRyxJQUFJO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVM7OztnQkFBRTtvQkFDN0QsS0FBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2QyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxLQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSTs7O29CQUFDO3dCQUN2SCxlQUFlLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUM3RSxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt3QkFFOUYsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsZ0JBQWdCOzs7d0JBQUU7OztnQ0FDOUUsVUFBVTs7O2dDQUFDOzs7OztnREFDVCxlQUFlLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGNBQWM7Ozs7Z0RBQUUsVUFBQyxDQUFNO29EQUNwRSxJQUFJLENBQUMsQ0FBQyxNQUFNO3dEQUNWLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDOzt3REFFakMsZUFBZSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0RBQ3RDLENBQUMsRUFBQyxDQUFDO2dEQUNILGVBQWUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCOzs7O2dEQUFFLFVBQUMsQ0FBTTtvREFDM0UsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dEQUMvQixDQUFDLEVBQUMsQ0FBQztnREFFSCxlQUFlLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQjs7OztnREFBRSxVQUFDLENBQU07b0RBQzVFLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dEQUM5RCxDQUFDLEVBQUMsQ0FBQztnREFFQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFO2dEQUN2RSxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFdBQVcsRUFBRTtvREFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztpREFDekM7Z0RBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dEQUMvRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvREFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztvREFDekYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0RBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7aURBQ2pDO2dEQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztnREFDL0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0RBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7b0RBQ3pGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29EQUN2RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO2lEQUNqQztnREFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7Z0RBQzlELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29EQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO29EQUN6RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvREFDdkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztpREFDakM7Z0RBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dEQUNqRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvREFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztvREFDM0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7b0RBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7aURBQ2xDO2dEQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztnREFDbkUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0RBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7b0RBQzdGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO29EQUMzRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO2lEQUNuQztnREFFRCxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnREFDdEMsa0JBQWtCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0RBQzlDLGtCQUFrQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7Z0RBQzNDLG1EQUFtRDtnREFDbkQsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO2dEQUNqRSxlQUFlLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dEQUM5RCxxQkFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFBOztnREFBeEQsU0FBd0QsQ0FBQztnREFDekQscUJBQU0sZUFBZSxDQUFDLGVBQWUsRUFBRSxFQUFBOztnREFBdkMsU0FBdUMsQ0FBQzs7OztxQ0FDekMsRUFBQyxDQUFDOzs7NkJBQ0osRUFBQyxDQUFDO3dCQUNILEtBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQy9ELENBQUMsRUFBQyxDQUFDO2dCQUNMLENBQUMsRUFBQyxDQUFDOzs7O0tBQ0o7SUFFRCxtRUFBbUU7Ozs7Ozs7SUFDbkUsaURBQXFCOzs7Ozs7SUFBckIsVUFBc0IsVUFBdUIsRUFBRSxXQUE0QjtRQUE1Qiw0QkFBQSxFQUFBLG1CQUE0QjtRQUN6RSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDM0ssSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFDSTtZQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELGdEQUFnRDs7Ozs7O0lBQzFDLHlDQUFhOzs7OztJQUFuQixVQUFvQixVQUF1Qjs7Ozs7O3dCQUN6QyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ25DLHNCQUFzQixHQUFHLElBQUk7d0JBQzdCLGtCQUFrQixHQUFHLG1CQUFxQjs0QkFDNUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNOzRCQUMxQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7NEJBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCLEVBQUE7NkJBQ0csc0JBQXNCLENBQUMsY0FBYyxFQUFyQyx3QkFBcUM7d0JBQ3ZDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQzt3QkFDckUscUJBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBQTs7d0JBQTdDLFNBQTZDLENBQUM7d0JBQzlDLHFCQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBQTs7d0JBQTVCLFNBQTRCLENBQUM7Ozs7OztLQUVoQzs7Ozs7SUFFTSxxQ0FBUzs7OztJQUFoQixVQUFpQixLQUFVO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDOztZQUN0QixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhO1FBQzVDLElBQUksT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztTQUM3QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7Ozs7SUFFYSxtQ0FBTzs7Ozs7SUFBckIsVUFBc0IsTUFBYzs7OztnQkFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBRTFELElBQUksTUFBTSxFQUFFO29CQUNWLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsRUFBRTt3QkFDN0MsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFOzRCQUMxSSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzs0QkFDdEIsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWE7Z0NBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDOzRCQUU3RSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUM7Z0NBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDOzZCQUN4Rjs0QkFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYztnQ0FDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7eUJBQy9FOzZCQUNJOzRCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO3lCQUM5QjtxQkFDRjt5QkFDSTt3QkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztxQkFDOUI7aUJBQ0Y7Ozs7S0FDRjs7OztJQUVZLDJDQUFlOzs7SUFBNUI7Ozs7OzRCQUNxQixxQkFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxFQUFBOzt3QkFBekQsWUFBWSxHQUFHLFNBQTBDO3dCQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO3dCQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO3dCQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO3dCQUNwQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO3dCQUNuQyxJQUFJLFlBQVksSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFOzRCQUN2QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO3lCQUNuQzt3QkFFRCxJQUFJLFlBQVksSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFOzRCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO3lCQUNwQzt3QkFFRCxJQUFJLFlBQVksSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFOzRCQUN2QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO3lCQUNuQzs7Ozs7S0FFRjtJQUVELDZCQUE2QjtJQUM3QixxQ0FBcUM7SUFDckMsZ0NBQWdDO0lBQ2hDLHlDQUF5QztJQUN6QyxlQUFlO0lBQ2YsaUNBQWlDO0lBQ2pDLDRDQUE0QztJQUM1QyxlQUFlO0lBQ2Ysa0NBQWtDO0lBQ2xDLGVBQWU7SUFDZixNQUFNO0lBQ04sSUFBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFRywrQ0FBbUI7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQTFCLFVBQTJCLElBQVk7UUFDckMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEYsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hGLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakYsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVELHVDQUF1Qzs7Ozs7SUFDaEMsd0NBQVk7Ozs7SUFBbkI7UUFDRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVELG9DQUFvQzs7Ozs7SUFDN0Isd0NBQVk7Ozs7SUFBbkI7UUFDRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUM7O2dCQTlZRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsaTdPQUFtRDs7aUJBRXBEOzs7O2dCQWZRLGtCQUFrQjtnQkFJbEIsa0JBQWtCO2dCQUdsQixrQkFBa0I7Z0JBUnVILE1BQU07Z0JBTS9JLGVBQWU7Z0JBTmtJLFNBQVM7Ozs0QkFzRGhLLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2lDQUN4QyxTQUFTLFNBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2lDQUM3QyxTQUFTLFNBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzhCQUM3QyxTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQ0FHMUMsS0FBSyxTQUFDLG9CQUFvQjsrQkFDMUIsS0FBSyxTQUFDLGVBQWU7dUJBQ3JCLEtBQUssU0FBQyxNQUFNO3NDQUNaLEtBQUssU0FBQyxXQUFXOzRCQUNqQixLQUFLLFNBQUMsWUFBWTt3QkFDbEIsS0FBSyxTQUFDLGNBQWM7eUJBQ3BCLEtBQUssU0FBQyxlQUFlO2lDQUNyQixLQUFLLFNBQUMsa0JBQWtCO2dDQUd4QixNQUFNOzZCQVFOLEtBQUssU0FBQyxhQUFhOztJQTZVdEIsd0JBQUM7Q0FBQSxBQS9ZRCxJQStZQztTQTFZWSxpQkFBaUI7OztJQUU1QixzQ0FBaUM7Ozs7O0lBQ2pDLDJDQUF3Qzs7Ozs7SUFDeEMsMENBQTJCOzs7OztJQUMzQiwwQ0FBMkI7Ozs7O0lBQzNCLHVDQUFpRjs7SUFDakYseUNBQTRCOztJQUM1QixzQ0FBc0M7O0lBQ3RDLHVDQUFvRTs7SUFDcEUsa0RBQThDOztJQUM5QyxtREFBK0M7O0lBQy9DLGtEQUE4Qzs7SUFDOUMsMENBQXNDOztJQUN0QyxtREFBK0M7O0lBQy9DLDZDQUF3Qzs7SUFDeEMsNENBQXdDOztJQUN4Qyx5Q0FBbUM7O0lBQ25DLHlDQUFvQzs7SUFDcEMsd0NBQXdCOztJQUN4Qiw2Q0FBMEM7O0lBQzFDLDZDQUFzQzs7SUFDdEMsNkNBQXNDOztJQUN0Qyw2Q0FBc0M7O0lBQ3RDLDhDQUF1Qzs7SUFDdkMsK0NBQXdDOztJQUN4QyxxQ0FBNkI7O0lBQzdCLHFDQUE2Qjs7SUFDN0IscUNBQTZCOztJQUM3QixzQ0FBOEI7O0lBQzlCLHVDQUErQjs7SUFDL0IsNkNBQXdDOztJQUN4Qyw2Q0FBd0M7O0lBQ3hDLDZDQUF3Qzs7SUFDeEMsOENBQXlDOztJQUN6QywrQ0FBMEM7O0lBRTFDLHNDQUFpRTs7SUFDakUsMkNBQTJFOztJQUMzRSwyQ0FBMkU7O0lBQzNFLHdDQUFxRTs7SUFHckUsNkNBQXNEOztJQUN0RCx5Q0FBMEM7O0lBQzFDLGlDQUF5Qjs7SUFDekIsZ0RBQTZEOztJQUM3RCxzQ0FBMkM7O0lBQzNDLGtDQUFxQzs7SUFDckMsbUNBQXVDOztJQUN2QywyQ0FBa0Q7O0lBR2xELDBDQUFxRDs7SUFDckQsc0NBQXlCOztJQUN6Qiw0Q0FBd0M7O0lBQ3hDLHVDQUEyQjs7SUFDM0Isd0NBQW9DOztJQUNwQyx5Q0FBeUI7O0lBQ3pCLDBDQUE2Qjs7SUFDN0Isb0NBQWdCOzs7OztJQU1KLDZDQUE0Qzs7Ozs7SUFDdEQsdUNBQXNDOzs7OztJQUN0Qyw2Q0FBNEM7Ozs7O0lBQzVDLG1DQUFzQjs7Ozs7SUFDdEIscUNBQWlDOzs7OztJQUNqQyxxQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgU2ltcGxlQ2hhbmdlLCBPbkRlc3Ryb3ksIE5nWm9uZSwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSYURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLy4uL3JhLmRhc2hib2FyZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUkFEYXNoYm9hcmRFdmVudEJ1cyB9IGZyb20gJy4uL3JhLmRhc2hiYXJkLmV2ZW50LmJ1cyc7XHJcbmltcG9ydCB7IFJBRXZlbnQsIFJBRXZlbnRLZXkgfSBmcm9tICcuLi9yYS5ldmVudC5lbnVtJztcclxuaW1wb3J0IHsgSUFwcENvbmZpZywgSVdpZGdldENvbmZpZ0ZpbHRlciwgSVdpZGdldEluZm8sIFJBRG93bmxvYWRUeXBlLCBSQURvd25sb2FkT3B0aW9uLCBSYVdpZGdldGxvY2tTdGF0dXMgfSBmcm9tICdAc2NobmVpZGVyZXNzL3dpZGdldGZyYW1ld29yayc7XHJcbmltcG9ydCB7IE5neFVpTG9hZGVyU2VydmljZSB9IGZyb20gJ25neC11aS1sb2FkZXInO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW5vdGlmaWVyJztcclxuXHJcbmltcG9ydCB7IFJBVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BzY2huZWlkZXJlc3MvcmEtY29tbW9uJztcclxuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ3J4anMtY29tcGF0L29wZXJhdG9yL2lzRW1wdHknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmEtd2lkZ2V0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSQVdpZGdldENvbnRhaW5lciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIHNob3dQYW5lbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBpc1dpZGdldExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgd2lkZ2V0RWxlbWVudDogYW55O1xyXG4gIHByaXZhdGUgY29uZmlnQ2hhbmdlZDogYW55O1xyXG4gIHByaXZhdGUgaXNJRU9yRWRnZSA9IC9tc2llXFxzfHRyaWRlbnRcXC98ZWRnZVxcLy9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gIHB1YmxpYyB3aWRnZXRIZWlnaHQ6IG51bWJlcjtcclxuICBwdWJsaWMgbG9ja0NsYXNzOiBzdHJpbmcgPSBcInVubG9ja2VkXCI7XHJcbiAgcHVibGljIGxvY2tTdGF0dXM6IFJhV2lkZ2V0bG9ja1N0YXR1cyA9IFJhV2lkZ2V0bG9ja1N0YXR1cy5VbmxvY2tlZDtcclxuICBwdWJsaWMgaXNEb3dubG9hZEljb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzQ2hhcnREb3dubG9hZFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNHcmlkRG93bmxvYWRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRyb3BEb3duU2hvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNEb3dubG9hZENoYXJ0VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkb3dubG9hZEljb25UeXBlOiBSQURvd25sb2FkVHlwZTtcclxuICBwdWJsaWMgZW5hYmxlVGl0bGVMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRvb2xUaXBWYWx1ZTogc3RyaW5nID0gJyAgJztcclxuICBwdWJsaWMgdG9vbFRpcFdpZHRoOiBzdHJpbmcgPSAnMHB4JztcclxuICBwdWJsaWMgbG9ja0RldGFpbHM6IGFueTtcclxuICBwdWJsaWMgbG9ja1RlbXBsYXRlSW5mbzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwdWJsaWMgZWRpdFRvb2xUaXBWYWx1ZTogc3RyaW5nID0gJyAnO1xyXG4gIHB1YmxpYyBjb3B5VG9vbFRpcFZhbHVlOiBzdHJpbmcgPSAnICc7XHJcbiAgcHVibGljIG1vdmVUb29sVGlwVmFsdWU6IHN0cmluZyA9ICcgJztcclxuICBwdWJsaWMgZXhjZWxUb29sVGlwVmFsdWU6IHN0cmluZyA9ICcgJztcclxuICBwdWJsaWMgZGVsZXRlVG9vbFRpcFZhbHVlOiBzdHJpbmcgPSAnICc7XHJcbiAgcHVibGljIGVkaXRUZXh0OiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgY29weVRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBtb3ZlVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGV4Y2VsVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGRlbGV0ZVRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBlZGl0VG9vbFRpcFdpZHRoOiBzdHJpbmcgPSAnMHB4JztcclxuICBwdWJsaWMgY29weVRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIG1vdmVUb29sVGlwV2lkdGg6IHN0cmluZyA9ICcwcHgnO1xyXG4gIHB1YmxpYyBleGNlbFRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIGRlbGV0ZVRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N0bFdpZGdldCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjdGxXaWRnZXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RHJvcGRvd246IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RG93bmxvYWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RG93bmxvYWQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBASW5wdXQoJ3dpZGdldC1pbnN0YW5jZS1pZCcpIHdpZGdldEluc3RhbmNlSWQ6IG51bWJlcjtcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2RhdGEnKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCdldmVudC1idXMnKSByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gIEBJbnB1dCgnYXBwLWNvbmZpZycpIGFwcENvbmZpZzogSUFwcENvbmZpZztcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZHRoOiBudW1iZXI7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0JykgaGVpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCdncmlkLWNlbGwtaGVpZ2h0JykgZ3JpZENlbGxIZWlnaHQ6IG51bWJlcjtcclxuXHJcblxyXG4gIEBPdXRwdXQoKSB3aWRnZXREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHVibGljIGxvY2tUaXRsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc05vdENvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9tUmVzaXplZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9ja1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9ja2VkRmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRldGFpbFBhZ2VVcmw6IHN0cmluZztcclxuICBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkb20tcmVzaXplZCcpXHJcbiAgc2V0IHNldFJlc2l6ZWQocmVzaXplZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ3hTZXJ2aWNlOiBOZ3hVaUxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFJBVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIG5vdGlmaWVyOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcy53aWRnZXREcm9wZG93bi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wRG93blNob3duID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0RG93bmxvYWQgJiYgZS50YXJnZXQgIT09IHRoaXMud2lkZ2V0RG93bmxvYWQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cyAmJiBjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlZCA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmVXaXRoS2V5KFJBRXZlbnQuQ29uZmlnQ2hhbmdlZCwgUkFFdmVudEtleS5XaWRnZXRJbnN0YW5jZUlkLCB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRJbnN0YW5jZUlkLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZUV2ZW50SGFuZGxlcihlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0RWxlbWVudCAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlciAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlci5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5nbG9iYWxGaWx0ZXIucHJldmlvdXNWYWx1ZSkge1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy53aWR0aCAmJiBjaGFuZ2VzLndpZHRoLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLndpZHRoLnByZXZpb3VzVmFsdWUgfHxcclxuICAgICAgKGNoYW5nZXMuaGVpZ2h0ICYmIGNoYW5nZXMuaGVpZ2h0LmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLmhlaWdodC5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldEVsZW1lbnQpIHtcclxuICAgICAgbGV0IHNpemU6IGFueSA9IHt9O1xyXG4gICAgICBzaXplLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICBzaXplLndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgc2l6ZS5jZWxsSGVpZ2h0ID0gdGhpcy5ncmlkQ2VsbEhlaWdodDtcclxuICAgICAgdGhpcy53aWRnZXRFbGVtZW50LndpZGdldFJlc2l6ZWQoc2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb25maWdDaGFuZ2VkKVxyXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogVG8gRWRpdCBjdXJyZW50IHdpZGdldCBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgZWRpdFdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuV2lkZ2V0RWRpdENsaWNrZWQsIHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBEZWxldGUgY3VycmVudCB3aWRnZXQgZnJvbSBET00qL1xyXG4gIHB1YmxpYyBkZWxldGVXaWRnZXQoKSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29udGFpbmVyQ29udGV4dCA9IHRoaXM7XHJcbiAgICB3aWRnZXRDb250YWluZXJDb250ZXh0Lm5neFNlcnZpY2Uuc3RhcnQoKTtcclxuICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8sIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC5uZ3hTZXJ2aWNlLnN0b3AoKTtcclxuICAgICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQud2lkZ2V0RGVsZXRlZC5lbWl0KHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQubm90aWZpZXIubm90aWZ5KCdlcnJvcicsIFwiIFwiICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnRmFpbGVkVG9SZW1vdmVXaWRnZXQnKSArIFwiICAoXCIgKyB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRUaXRsZSArIFwiKSFcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBNb3ZlIG9yIGNoYW5nZSBwb3NpdGlvbiBpZiBjdXJyZW50IHdpZGdldCBjb250YWluZXIqL1xyXG4gIHB1YmxpYyBtb3ZlV2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5Nb3ZlV2lkZ2V0LCB0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLmRhc2hib2FyZFNlcnZpY2UubW92ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBDb3B5IEN1cnJlbnQgd2lkZ2V0IHdpdGggc2FtZSBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgY29weVdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuQ29weVdpZGdldCwgdGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgLy90aGlzLmRhc2hib2FyZFNlcnZpY2UuY29weVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2aXNpdFBhZ2UoKSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLmdldEhvc3RVcmwoKTtcclxuICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLmJhc2VVcmwgKyB0aGlzLmRldGFpbFBhZ2VVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SG9zdFVybCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgKHdpbmRvdy5sb2NhdGlvbi5wb3J0ID8gJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlnQ2hhbmdlRXZlbnRIYW5kbGVyKHdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuZGF0YS53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgIHRoaXMucmVmcmVzaFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLnVwZGF0ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogIFRvIGxvYWQgZXh0ZXJuYWwgY3VzdG9tIGVsZW1lbnQgdG8gdGhlIHdpZGdldCBjb250YWluZXIqL1xyXG4gIGFzeW5jIGxvYWRXaWRnZXQod2lkZ2V0SW5mbzogYW55KSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29uZmlnRmlsdGVyID0gPElXaWRnZXRDb25maWdGaWx0ZXI+e1xyXG4gICAgICBjb25maWc6IHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcsXHJcbiAgICAgIGdsb2JhbEZpbHRlcjogdGhpcy5nbG9iYWxGaWx0ZXJcclxuICAgIH1cclxuICAgIHRoaXMuZGV0YWlsUGFnZVVybCA9IHdpZGdldEluZm8uZGV0YWlsUGFnZVVybDtcclxuICAgIGxldCB3aWRnZXRDb250YWluZXIgPSB0aGlzO1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmxvYWRFeHRlcm5hbFNjcmlwdCh3aWRnZXRJbmZvLnNjcmlwdFVybCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE5vdENvbmZpZ3VyZWRTdGF0ZSh3aWRnZXRJbmZvKTtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxvYWRUcmFuc2xhdGlvbnModGhpcy5hcHBDb25maWcuYXBwTWFuYWdlbWVudEJhc2VVcmwsIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldE5hbWUsIGZhbHNlKS50aGVuKCgpID0+IHtcclxuICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQod2lkZ2V0SW5mby5jdXN0b21UYWcpO1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZGdldC1pbnN0YW5jZS1pZFwiLCB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3dpZGdldGluaXRpYXRlZCcgKyB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdvbi1kYXRhLWxvYWQnLCAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGUuZGV0YWlsKVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29uZmlnLWVkaXQtY2xpY2tlZCcsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB3aWRnZXRDb250YWluZXIuZWRpdFdpZGdldCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VuYWJsZS1kZWZhdWx0LXN0YXRlJywgKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zZXROb3RDb25maWd1cmVkU3RhdGUod2lkZ2V0SW5mbywgZS5kZXRhaWwpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0aXRsZUxpbmVFbmFibGVkID0gd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQudGl0bGVMaW5lRW5hYmxlZCgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mICh0aXRsZUxpbmVFbmFibGVkKSAhPSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlVGl0bGVMaW5lID0gdGl0bGVMaW5lRW5hYmxlZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lZGl0VGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZWRpdCcpLmxlbmd0aCA+IDYpIHtcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRUZXh0ID0gKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jykuc3Vic3RyaW5nKDAsIDYpICsgJy4uLicpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWRpdFRvb2xUaXBWYWx1ZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0VG9vbFRpcFdpZHRoID0gXCIzMDBweFwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29weVRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmNvcHknKS5sZW5ndGggPiA2KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3B5VGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvcHlUb29sVGlwVmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29weVRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm1vdmVUZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLm1vdmUnKVxyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLm1vdmUnKS5sZW5ndGggPiA2KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb3ZlVGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24ubW92ZScpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLm1vdmVUb29sVGlwVmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24ubW92ZScpO1xyXG4gICAgICAgICAgICAgIHRoaXMubW92ZVRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmV4Y2VsVGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5leGNlbCcpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmV4Y2VsJykubGVuZ3RoID4gNikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhjZWxUZXh0ID0gKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5leGNlbCcpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmV4Y2VsVG9vbFRpcFZhbHVlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmV4Y2VsJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5leGNlbFRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZVRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJykubGVuZ3RoID4gNikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJykuc3Vic3RyaW5nKDAsIDYpICsgJy4uLicpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG9vbFRpcFZhbHVlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmRlbGV0ZScpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG9vbFRpcFdpZHRoID0gXCIzMDBweFwiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIuaXNXaWRnZXRMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB3aWRnZXRDb25maWdGaWx0ZXIuYXBwQ29uZmlnID0gdGhpcy5hcHBDb25maWc7XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgICAgICAgICAgLy8gd2lkZ2V0Q29uZmlnRmlsdGVyLndpZGdldEluZm8gPSA8SVdpZGdldEluZm8+e307XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvLndpZGdldE5hbWUgPSB3aWRnZXRJbmZvLndpZGdldE5hbWU7XHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlcik7XHJcbiAgICAgICAgICAgIGF3YWl0IHdpZGdldENvbnRhaW5lci5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICAgICAgICBhd2FpdCB3aWRnZXRDb250YWluZXIuc2V0RG93bmxvYWRJY29uKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmN0bFdpZGdldC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2lkZ2V0RWxlbWVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipUbyBzZXQgRGVmYXVsdCBTdGF0ZSBmb3IgdGhlIHdpZGdldCB3aGVuIGl0IGlzIG5vdCBjb25maWd1cmVkICovXHJcbiAgc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm86IElXaWRnZXRJbmZvLCBmb3JjZUVuYWJsZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoKHdpZGdldEluZm8uc2hvd0RlZmF1bHRTdGF0ZSAmJiAod2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZyA9PSBcIlwiIHx8IE9iamVjdC5rZXlzKEpTT04ucGFyc2Uod2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZykpLmxlbmd0aCA9PSAwKSkgfHwgKGZvcmNlRW5hYmxlKSkge1xyXG4gICAgICB0aGlzLmlzTm90Q29uZmlndXJlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pc05vdENvbmZpZ3VyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBUbyByZWZyZXNoIHdpZGdldCBvbiBpbnB1dCBjb25maWcgY2hhbmdlcyAqL1xyXG4gIGFzeW5jIHJlZnJlc2hXaWRnZXQod2lkZ2V0SW5mbzogSVdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm8pO1xyXG4gICAgbGV0IHdpZGdldENvbnRhaW5lckNvbnRleHQgPSB0aGlzO1xyXG4gICAgbGV0IHdpZGdldENvbmZpZ0ZpbHRlciA9IDxJV2lkZ2V0Q29uZmlnRmlsdGVyPntcclxuICAgICAgY29uZmlnOiB3aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnLFxyXG4gICAgICBnbG9iYWxGaWx0ZXI6IHRoaXMuZ2xvYmFsRmlsdGVyLFxyXG4gICAgICBhcHBDb25maWc6IHRoaXMuYXBwQ29uZmlnLFxyXG4gICAgICB3aWRnZXRJbmZvOiB3aWRnZXRJbmZvXHJcbiAgICB9XHJcbiAgICBpZiAod2lkZ2V0Q29udGFpbmVyQ29udGV4dC5pc1dpZGdldExvYWRlZCkge1xyXG4gICAgICB3aWRnZXRDb250YWluZXJDb250ZXh0LndpZGdldEVsZW1lbnQubG9hZENvbnRlbnQod2lkZ2V0Q29uZmlnRmlsdGVyKTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICBhd2FpdCB0aGlzLnNldERvd25sb2FkSWNvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdXNlT3ZlcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9ICcgJztcclxuICAgIHRoaXMudG9vbFRpcFdpZHRoID0gJzBweCc7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudDtcclxuICAgIGlmIChlbGVtZW50Lm9mZnNldFdpZHRoIDwgZWxlbWVudC5zY3JvbGxXaWR0aCkge1xyXG4gICAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9IGVsZW1lbnQuaW5uZXJIVE1MO1xyXG4gICAgICB0aGlzLnRvb2xUaXBXaWR0aCA9ICczMDBweCc7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50b29sVGlwV2lkdGggPSAnMHB4JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2V0TG9jayhjb25maWc6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2NrVGVtcGxhdGVJbmZvID0gdGhpcy53aWRnZXRFbGVtZW50LmxvYWRMb2NrSW5mbygpO1xyXG4gICAgdmFyIGNvbmZpZ09iajogYW55O1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25maWdPYmogPSBKU09OLnBhcnNlKGNvbmZpZyk7XHJcbiAgICAgIGlmIChjb25maWdPYmogJiYgY29uZmlnT2JqLkxvY2tzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNEYXRlTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVzTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1BhcnRpY2lwYW50TG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1NvdXJjZUxvY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5sb2NrRGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVMb2NrZWQgfHwgY29uZmlnT2JqLkxvY2tzLklzRGF0ZXNMb2NrZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uRGF0ZVJhbmdlJykpO1xyXG5cclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNQYXJ0aWNpcGFudExvY2tlZCl7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uRGl2aXNpb25Pckdyb3Vwb3JTaXRlJykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iai5Mb2Nrcy5Jc1NvdXJjZUxvY2tlZClcclxuICAgICAgICAgICAgdGhpcy5sb2NrRGV0YWlscy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5EYXRhU3RyZWFtJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXREb3dubG9hZEljb24oKSB7XHJcbiAgICBsZXQgZG93bmxvYWRUeXBlID0gYXdhaXQgdGhpcy53aWRnZXRFbGVtZW50LmdldERvd25sb2FkVHlwZSgpO1xyXG4gICAgdGhpcy5kb3dubG9hZEljb25UeXBlID0gZG93bmxvYWRUeXBlO1xyXG4gICAgdGhpcy5pc0Rvd25sb2FkSWNvblZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNDaGFydERvd25sb2FkVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0dyaWREb3dubG9hZFZpc2libGUgPSBmYWxzZTtcclxuICAgIGlmIChkb3dubG9hZFR5cGUgIT0gUkFEb3dubG9hZFR5cGUuTm9uZSkge1xyXG4gICAgICB0aGlzLmlzRG93bmxvYWRJY29uVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRvd25sb2FkVHlwZSA9PSBSQURvd25sb2FkVHlwZS5DaGFydCkge1xyXG4gICAgICB0aGlzLmlzQ2hhcnREb3dubG9hZFZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkb3dubG9hZFR5cGUgPT0gUkFEb3dubG9hZFR5cGUuR3JpZCkge1xyXG4gICAgICB0aGlzLmlzR3JpZERvd25sb2FkVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGRvd25sb2FkQ2xpY2tlZCgpIHtcclxuICAvLyAgIHN3aXRjaCAodGhpcy5kb3dubG9hZEljb25UeXBlKSB7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuR3JpZDpcclxuICAvLyAgICAgICB0aGlzLmRvd25sb2FkSWNvbkNsaWNrZWQoJ0NTVicpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFJBRG93bmxvYWRUeXBlLkNoYXJ0OlxyXG4gIC8vICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IHRydWU7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuQ3VzdG9tOlxyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkSWNvbkNsaWNrZWQodHlwZTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBcIkNTVlwiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLkNTVik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQTkdcIjpcclxuICAgICAgICB0aGlzLndpZGdldEVsZW1lbnQuZG93bmxvYWRDbGlja2VkKHRoaXMuZG93bmxvYWRJY29uVHlwZSwgUkFEb3dubG9hZE9wdGlvbi5QTkcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUERGXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uUERGKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlNWR1wiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLlNWRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJKUEVHXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uSlBFRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipTaG93IGRyb3Bkb3duIG9uIGdlYXIgaWNvbiBjbGljayAgKi9cclxuICBwdWJsaWMgc2hvd0Ryb3BEb3duKCkge1xyXG4gICAgdGhpcy5zZXREb3dubG9hZEljb24oKTtcclxuICAgIHRoaXMuZHJvcERvd25TaG93biA9ICF0aGlzLmRyb3BEb3duU2hvd247XHJcbiAgfVxyXG5cclxuICAvKipIaWRlIGRyb3Bkb3duIG9uIG91dHNpZGUgY2xpY2sgKi9cclxuICBwdWJsaWMgaGlkZURyb3BEb3duKCkge1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd25TaG93bikge1xyXG4gICAgICB0aGlzLmRyb3BEb3duU2hvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
858
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS13aWRnZXQtY29udGFpbmVyL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBb0UsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4TSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0QsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk3RDtJQXVFRSwyQkFBb0IsZ0JBQW9DLEVBQzlDLFVBQThCLEVBQzlCLGdCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsUUFBeUIsRUFDekIsUUFBbUI7UUFMN0IsaUJBb0JDO1FBcEJtQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENB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bXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgU2ltcGxlQ2hhbmdlLCBPbkRlc3Ryb3ksIE5nWm9uZSwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSYURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLy4uL3JhLmRhc2hib2FyZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUkFEYXNoYm9hcmRFdmVudEJ1cyB9IGZyb20gJy4uL3JhLmRhc2hiYXJkLmV2ZW50LmJ1cyc7XHJcbmltcG9ydCB7IFJBRXZlbnQsIFJBRXZlbnRLZXkgfSBmcm9tICcuLi9yYS5ldmVudC5lbnVtJztcclxuaW1wb3J0IHsgSUFwcENvbmZpZywgSVdpZGdldENvbmZpZ0ZpbHRlciwgSVdpZGdldEluZm8sIFJBRG93bmxvYWRUeXBlLCBSQURvd25sb2FkT3B0aW9uLCBSYVdpZGdldGxvY2tTdGF0dXMgfSBmcm9tICdAc2NobmVpZGVyZXNzL3dpZGdldGZyYW1ld29yayc7XHJcbmltcG9ydCB7IE5neFVpTG9hZGVyU2VydmljZSB9IGZyb20gJ25neC11aS1sb2FkZXInO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW5vdGlmaWVyJztcclxuXHJcbmltcG9ydCB7IFJBVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BzY2huZWlkZXJlc3MvcmEtY29tbW9uJztcclxuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ3J4anMtY29tcGF0L29wZXJhdG9yL2lzRW1wdHknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmEtd2lkZ2V0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSQVdpZGdldENvbnRhaW5lciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIHNob3dQYW5lbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBpc1dpZGdldExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgd2lkZ2V0RWxlbWVudDogYW55O1xyXG4gIHByaXZhdGUgY29uZmlnQ2hhbmdlZDogYW55O1xyXG4gIHByaXZhdGUgaXNJRU9yRWRnZSA9IC9tc2llXFxzfHRyaWRlbnRcXC98ZWRnZVxcLy9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gIHB1YmxpYyB3aWRnZXRIZWlnaHQ6IG51bWJlcjtcclxuICBwdWJsaWMgbG9ja0NsYXNzOiBzdHJpbmcgPSBcInVubG9ja2VkXCI7XHJcbiAgcHVibGljIGxvY2tTdGF0dXM6IFJhV2lkZ2V0bG9ja1N0YXR1cyA9IFJhV2lkZ2V0bG9ja1N0YXR1cy5VbmxvY2tlZDtcclxuICBwdWJsaWMgaXNEb3dubG9hZEljb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzQ2hhcnREb3dubG9hZFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNHcmlkRG93bmxvYWRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRyb3BEb3duU2hvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNEb3dubG9hZENoYXJ0VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkb3dubG9hZEljb25UeXBlOiBSQURvd25sb2FkVHlwZTtcclxuICBwdWJsaWMgZW5hYmxlVGl0bGVMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRvb2xUaXBWYWx1ZTogc3RyaW5nID0gJyAgJztcclxuICBwdWJsaWMgdG9vbFRpcFdpZHRoOiBzdHJpbmcgPSAnMHB4JztcclxuICBwdWJsaWMgbG9ja0RldGFpbHM6IGFueTtcclxuICBwdWJsaWMgbG9ja1RlbXBsYXRlSW5mbzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwdWJsaWMgZWRpdFRvb2xUaXBWYWx1ZTogc3RyaW5nID0gJyAnO1xyXG4gIHB1YmxpYyBjb3B5VG9vbFRpcFZhbHVlOiBzdHJpbmcgPSAnICc7XHJcbiAgcHVibGljIG1vdmVUb29sVGlwVmFsdWU6IHN0cmluZyA9ICcgJztcclxuICBwdWJsaWMgZXhjZWxUb29sVGlwVmFsdWU6IHN0cmluZyA9ICcgJztcclxuICBwdWJsaWMgZGVsZXRlVG9vbFRpcFZhbHVlOiBzdHJpbmcgPSAnICc7XHJcbiAgcHVibGljIGVkaXRUZXh0OiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgY29weVRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBtb3ZlVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGV4Y2VsVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGRlbGV0ZVRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBlZGl0VG9vbFRpcFdpZHRoOiBzdHJpbmcgPSAnMHB4JztcclxuICBwdWJsaWMgY29weVRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIG1vdmVUb29sVGlwV2lkdGg6IHN0cmluZyA9ICcwcHgnO1xyXG4gIHB1YmxpYyBleGNlbFRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIGRlbGV0ZVRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N0bFdpZGdldCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjdGxXaWRnZXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RHJvcGRvd246IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RG93bmxvYWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RG93bmxvYWQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBASW5wdXQoJ3dpZGdldC1pbnN0YW5jZS1pZCcpIHdpZGdldEluc3RhbmNlSWQ6IG51bWJlcjtcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2RhdGEnKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCdldmVudC1idXMnKSByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gIEBJbnB1dCgnYXBwLWNvbmZpZycpIGFwcENvbmZpZzogSUFwcENvbmZpZztcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZHRoOiBudW1iZXI7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0JykgaGVpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCdncmlkLWNlbGwtaGVpZ2h0JykgZ3JpZENlbGxIZWlnaHQ6IG51bWJlcjtcclxuXHJcblxyXG4gIEBPdXRwdXQoKSB3aWRnZXREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHVibGljIGxvY2tUaXRsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc05vdENvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9tUmVzaXplZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9ja1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9ja2VkRmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRldGFpbFBhZ2VVcmw6IHN0cmluZztcclxuICBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkb20tcmVzaXplZCcpXHJcbiAgc2V0IHNldFJlc2l6ZWQocmVzaXplZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ3hTZXJ2aWNlOiBOZ3hVaUxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFJBVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIG5vdGlmaWVyOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcy53aWRnZXREcm9wZG93bi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wRG93blNob3duID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0RG93bmxvYWQgJiYgZS50YXJnZXQgIT09IHRoaXMud2lkZ2V0RG93bmxvYWQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cyAmJiBjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlZCA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmVXaXRoS2V5KFJBRXZlbnQuQ29uZmlnQ2hhbmdlZCwgUkFFdmVudEtleS5XaWRnZXRJbnN0YW5jZUlkLCB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRJbnN0YW5jZUlkLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZUV2ZW50SGFuZGxlcihlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0RWxlbWVudCAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlciAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlci5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5nbG9iYWxGaWx0ZXIucHJldmlvdXNWYWx1ZSkgeyAgICAgXHJcbiAgIFxyXG4gICAgIGxldCBmaWx0ZXJPYmogPSB0aGlzLmdldFBhcnNlZENvbmZpZyh0aGlzLmdsb2JhbEZpbHRlcik7XHJcbiAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XHJcbiAgICAgY29uc29sZS5sb2codGhpcy5nbG9iYWxGaWx0ZXIpO1xyXG4gICAgIGNvbnNvbGUubG9nKGZpbHRlck9iaik7XHJcbiAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCk7XHJcbiAgICAgIGlmIChmaWx0ZXJPYmouV2lkZ2V0SW5zdGFuY2VJZCkgeyAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQgIT0gZmlsdGVyT2JqLldpZGdldEluc3RhbmNlSWQpXHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy53aWR0aCAmJiBjaGFuZ2VzLndpZHRoLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLndpZHRoLnByZXZpb3VzVmFsdWUgfHxcclxuICAgICAgKGNoYW5nZXMuaGVpZ2h0ICYmIGNoYW5nZXMuaGVpZ2h0LmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLmhlaWdodC5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldEVsZW1lbnQpIHtcclxuICAgICAgbGV0IHNpemU6IGFueSA9IHt9O1xyXG4gICAgICBzaXplLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICBzaXplLndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgc2l6ZS5jZWxsSGVpZ2h0ID0gdGhpcy5ncmlkQ2VsbEhlaWdodDtcclxuICAgICAgdGhpcy53aWRnZXRFbGVtZW50LndpZGdldFJlc2l6ZWQoc2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb25maWdDaGFuZ2VkKVxyXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogVG8gRWRpdCBjdXJyZW50IHdpZGdldCBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgZWRpdFdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuV2lkZ2V0RWRpdENsaWNrZWQsIHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBEZWxldGUgY3VycmVudCB3aWRnZXQgZnJvbSBET00qL1xyXG4gIHB1YmxpYyBkZWxldGVXaWRnZXQoKSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29udGFpbmVyQ29udGV4dCA9IHRoaXM7XHJcbiAgICB3aWRnZXRDb250YWluZXJDb250ZXh0Lm5neFNlcnZpY2Uuc3RhcnQoKTtcclxuICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8sIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC5uZ3hTZXJ2aWNlLnN0b3AoKTtcclxuICAgICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQud2lkZ2V0RGVsZXRlZC5lbWl0KHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQubm90aWZpZXIubm90aWZ5KCdlcnJvcicsIFwiIFwiICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnRmFpbGVkVG9SZW1vdmVXaWRnZXQnKSArIFwiICAoXCIgKyB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRUaXRsZSArIFwiKSFcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBNb3ZlIG9yIGNoYW5nZSBwb3NpdGlvbiBpZiBjdXJyZW50IHdpZGdldCBjb250YWluZXIqL1xyXG4gIHB1YmxpYyBtb3ZlV2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5Nb3ZlV2lkZ2V0LCB0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLmRhc2hib2FyZFNlcnZpY2UubW92ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBDb3B5IEN1cnJlbnQgd2lkZ2V0IHdpdGggc2FtZSBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgY29weVdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuQ29weVdpZGdldCwgdGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgLy90aGlzLmRhc2hib2FyZFNlcnZpY2UuY29weVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2aXNpdFBhZ2UoKSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLmdldEhvc3RVcmwoKTtcclxuICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLmJhc2VVcmwgKyB0aGlzLmRldGFpbFBhZ2VVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SG9zdFVybCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgKHdpbmRvdy5sb2NhdGlvbi5wb3J0ID8gJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlnQ2hhbmdlRXZlbnRIYW5kbGVyKHdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuZGF0YS53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgIHRoaXMucmVmcmVzaFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLnVwZGF0ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogIFRvIGxvYWQgZXh0ZXJuYWwgY3VzdG9tIGVsZW1lbnQgdG8gdGhlIHdpZGdldCBjb250YWluZXIqL1xyXG4gIGFzeW5jIGxvYWRXaWRnZXQod2lkZ2V0SW5mbzogYW55KSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29uZmlnRmlsdGVyID0gPElXaWRnZXRDb25maWdGaWx0ZXI+e1xyXG4gICAgICBjb25maWc6IHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcsXHJcbiAgICAgIGdsb2JhbEZpbHRlcjogdGhpcy5nbG9iYWxGaWx0ZXJcclxuICAgIH1cclxuICAgIHRoaXMuZGV0YWlsUGFnZVVybCA9IHdpZGdldEluZm8uZGV0YWlsUGFnZVVybDtcclxuICAgIGxldCB3aWRnZXRDb250YWluZXIgPSB0aGlzO1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmxvYWRFeHRlcm5hbFNjcmlwdCh3aWRnZXRJbmZvLnNjcmlwdFVybCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE5vdENvbmZpZ3VyZWRTdGF0ZSh3aWRnZXRJbmZvKTtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxvYWRUcmFuc2xhdGlvbnModGhpcy5hcHBDb25maWcuYXBwTWFuYWdlbWVudEJhc2VVcmwsIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldE5hbWUsIGZhbHNlKS50aGVuKCgpID0+IHtcclxuICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQod2lkZ2V0SW5mby5jdXN0b21UYWcpO1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZGdldC1pbnN0YW5jZS1pZFwiLCB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3dpZGdldGluaXRpYXRlZCcgKyB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdvbi1kYXRhLWxvYWQnLCAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGUuZGV0YWlsKVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29uZmlnLWVkaXQtY2xpY2tlZCcsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB3aWRnZXRDb250YWluZXIuZWRpdFdpZGdldCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VuYWJsZS1kZWZhdWx0LXN0YXRlJywgKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zZXROb3RDb25maWd1cmVkU3RhdGUod2lkZ2V0SW5mbywgZS5kZXRhaWwpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0aXRsZUxpbmVFbmFibGVkID0gd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQudGl0bGVMaW5lRW5hYmxlZCgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mICh0aXRsZUxpbmVFbmFibGVkKSAhPSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlVGl0bGVMaW5lID0gdGl0bGVMaW5lRW5hYmxlZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lZGl0VGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZWRpdCcpLmxlbmd0aCA+IDYpIHtcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRUZXh0ID0gKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jykuc3Vic3RyaW5nKDAsIDYpICsgJy4uLicpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWRpdFRvb2xUaXBWYWx1ZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5lZGl0Jyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0VG9vbFRpcFdpZHRoID0gXCIzMDBweFwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29weVRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmNvcHknKS5sZW5ndGggPiA2KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3B5VGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvcHlUb29sVGlwVmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uY29weScpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29weVRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm1vdmVUZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLm1vdmUnKVxyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLm1vdmUnKS5sZW5ndGggPiA2KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb3ZlVGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24ubW92ZScpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLm1vdmVUb29sVGlwVmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24ubW92ZScpO1xyXG4gICAgICAgICAgICAgIHRoaXMubW92ZVRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmV4Y2VsVGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5leGNlbCcpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmV4Y2VsJykubGVuZ3RoID4gNikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhjZWxUZXh0ID0gKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0NvbW1vbi5leGNlbCcpLnN1YnN0cmluZygwLCA2KSArICcuLi4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmV4Y2VsVG9vbFRpcFZhbHVlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmV4Y2VsJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5leGNlbFRvb2xUaXBXaWR0aCA9IFwiMzAwcHhcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZVRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJykubGVuZ3RoID4gNikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVGV4dCA9ICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlJykuc3Vic3RyaW5nKDAsIDYpICsgJy4uLicpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG9vbFRpcFZhbHVlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLmRlbGV0ZScpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG9vbFRpcFdpZHRoID0gXCIzMDBweFwiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIuaXNXaWRnZXRMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB3aWRnZXRDb25maWdGaWx0ZXIuYXBwQ29uZmlnID0gdGhpcy5hcHBDb25maWc7XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgICAgICAgICAgLy8gd2lkZ2V0Q29uZmlnRmlsdGVyLndpZGdldEluZm8gPSA8SVdpZGdldEluZm8+e307XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvLndpZGdldE5hbWUgPSB3aWRnZXRJbmZvLndpZGdldE5hbWU7XHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlcik7XHJcbiAgICAgICAgICAgIGF3YWl0IHdpZGdldENvbnRhaW5lci5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICAgICAgICBhd2FpdCB3aWRnZXRDb250YWluZXIuc2V0RG93bmxvYWRJY29uKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmN0bFdpZGdldC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2lkZ2V0RWxlbWVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipUbyBzZXQgRGVmYXVsdCBTdGF0ZSBmb3IgdGhlIHdpZGdldCB3aGVuIGl0IGlzIG5vdCBjb25maWd1cmVkICovXHJcbiAgc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm86IElXaWRnZXRJbmZvLCBmb3JjZUVuYWJsZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoKHdpZGdldEluZm8uc2hvd0RlZmF1bHRTdGF0ZSAmJiAod2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZyA9PSBcIlwiIHx8IE9iamVjdC5rZXlzKEpTT04ucGFyc2Uod2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZykpLmxlbmd0aCA9PSAwKSkgfHwgKGZvcmNlRW5hYmxlKSkge1xyXG4gICAgICB0aGlzLmlzTm90Q29uZmlndXJlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pc05vdENvbmZpZ3VyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBUbyByZWZyZXNoIHdpZGdldCBvbiBpbnB1dCBjb25maWcgY2hhbmdlcyAqL1xyXG4gIGFzeW5jIHJlZnJlc2hXaWRnZXQod2lkZ2V0SW5mbzogSVdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm8pO1xyXG4gICAgbGV0IHdpZGdldENvbnRhaW5lckNvbnRleHQgPSB0aGlzO1xyXG4gICAgbGV0IHdpZGdldENvbmZpZ0ZpbHRlciA9IDxJV2lkZ2V0Q29uZmlnRmlsdGVyPntcclxuICAgICAgY29uZmlnOiB3aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnLFxyXG4gICAgICBnbG9iYWxGaWx0ZXI6IHRoaXMuZ2xvYmFsRmlsdGVyLFxyXG4gICAgICBhcHBDb25maWc6IHRoaXMuYXBwQ29uZmlnLFxyXG4gICAgICB3aWRnZXRJbmZvOiB3aWRnZXRJbmZvXHJcbiAgICB9XHJcbiAgICBpZiAod2lkZ2V0Q29udGFpbmVyQ29udGV4dC5pc1dpZGdldExvYWRlZCkge1xyXG4gICAgICB3aWRnZXRDb250YWluZXJDb250ZXh0LndpZGdldEVsZW1lbnQubG9hZENvbnRlbnQod2lkZ2V0Q29uZmlnRmlsdGVyKTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICBhd2FpdCB0aGlzLnNldERvd25sb2FkSWNvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdXNlT3ZlcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9ICcgJztcclxuICAgIHRoaXMudG9vbFRpcFdpZHRoID0gJzBweCc7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudDtcclxuICAgIGlmIChlbGVtZW50Lm9mZnNldFdpZHRoIDwgZWxlbWVudC5zY3JvbGxXaWR0aCkge1xyXG4gICAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9IGVsZW1lbnQuaW5uZXJIVE1MO1xyXG4gICAgICB0aGlzLnRvb2xUaXBXaWR0aCA9ICczMDBweCc7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50b29sVGlwV2lkdGggPSAnMHB4JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2V0TG9jayhjb25maWc6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2NrVGVtcGxhdGVJbmZvID0gdGhpcy53aWRnZXRFbGVtZW50LmxvYWRMb2NrSW5mbygpO1xyXG4gICAgdmFyIGNvbmZpZ09iajogYW55O1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25maWdPYmogPSBKU09OLnBhcnNlKGNvbmZpZyk7XHJcbiAgICAgIGlmIChjb25maWdPYmogJiYgY29uZmlnT2JqLkxvY2tzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNEYXRlTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVzTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1BhcnRpY2lwYW50TG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1NvdXJjZUxvY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5sb2NrRGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVMb2NrZWQgfHwgY29uZmlnT2JqLkxvY2tzLklzRGF0ZXNMb2NrZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uRGF0ZVJhbmdlJykpO1xyXG5cclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNQYXJ0aWNpcGFudExvY2tlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tEZXRhaWxzLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnQ29tbW9uLkRpdmlzaW9uT3JHcm91cG9yU2l0ZScpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNTb3VyY2VMb2NrZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uRGF0YVN0cmVhbScpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvY2tEZXRhaWxzID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvY2tEZXRhaWxzID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0RG93bmxvYWRJY29uKCkge1xyXG4gICAgbGV0IGRvd25sb2FkVHlwZSA9IGF3YWl0IHRoaXMud2lkZ2V0RWxlbWVudC5nZXREb3dubG9hZFR5cGUoKTtcclxuICAgIHRoaXMuZG93bmxvYWRJY29uVHlwZSA9IGRvd25sb2FkVHlwZTtcclxuICAgIHRoaXMuaXNEb3dubG9hZEljb25WaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzQ2hhcnREb3dubG9hZFZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNHcmlkRG93bmxvYWRWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBpZiAoZG93bmxvYWRUeXBlICE9IFJBRG93bmxvYWRUeXBlLk5vbmUpIHtcclxuICAgICAgdGhpcy5pc0Rvd25sb2FkSWNvblZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkb3dubG9hZFR5cGUgPT0gUkFEb3dubG9hZFR5cGUuQ2hhcnQpIHtcclxuICAgICAgdGhpcy5pc0NoYXJ0RG93bmxvYWRWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZG93bmxvYWRUeXBlID09IFJBRG93bmxvYWRUeXBlLkdyaWQpIHtcclxuICAgICAgdGhpcy5pc0dyaWREb3dubG9hZFZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBkb3dubG9hZENsaWNrZWQoKSB7XHJcbiAgLy8gICBzd2l0Y2ggKHRoaXMuZG93bmxvYWRJY29uVHlwZSkge1xyXG4gIC8vICAgICBjYXNlIFJBRG93bmxvYWRUeXBlLkdyaWQ6XHJcbiAgLy8gICAgICAgdGhpcy5kb3dubG9hZEljb25DbGlja2VkKCdDU1YnKTtcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBSQURvd25sb2FkVHlwZS5DaGFydDpcclxuICAvLyAgICAgICB0aGlzLmlzRG93bmxvYWRDaGFydFZpc2libGUgPSB0cnVlO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFJBRG93bmxvYWRUeXBlLkN1c3RvbTpcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZEljb25DbGlja2VkKHR5cGU6IHN0cmluZykge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJDU1ZcIjpcclxuICAgICAgICB0aGlzLndpZGdldEVsZW1lbnQuZG93bmxvYWRDbGlja2VkKHRoaXMuZG93bmxvYWRJY29uVHlwZSwgUkFEb3dubG9hZE9wdGlvbi5DU1YpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUE5HXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uUE5HKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBERlwiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLlBERik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJTVkdcIjpcclxuICAgICAgICB0aGlzLndpZGdldEVsZW1lbnQuZG93bmxvYWRDbGlja2VkKHRoaXMuZG93bmxvYWRJY29uVHlwZSwgUkFEb3dubG9hZE9wdGlvbi5TVkcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiSlBFR1wiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLkpQRUcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqU2hvdyBkcm9wZG93biBvbiBnZWFyIGljb24gY2xpY2sgICovXHJcbiAgcHVibGljIHNob3dEcm9wRG93bigpIHtcclxuICAgIHRoaXMuc2V0RG93bmxvYWRJY29uKCk7XHJcbiAgICB0aGlzLmRyb3BEb3duU2hvd24gPSAhdGhpcy5kcm9wRG93blNob3duO1xyXG4gIH1cclxuXHJcbiAgLyoqSGlkZSBkcm9wZG93biBvbiBvdXRzaWRlIGNsaWNrICovXHJcbiAgcHVibGljIGhpZGVEcm9wRG93bigpIHtcclxuICAgIGlmICh0aGlzLmRyb3BEb3duU2hvd24pIHtcclxuICAgICAgdGhpcy5kcm9wRG93blNob3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRG93bmxvYWRDaGFydFZpc2libGUgPSBmYWxzZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRQYXJzZWRDb25maWcoY29uZmlnOiBhbnkpIHtcclxuICAgIGxldCBwYXJzZWRDb25maWc6IGFueTtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHBhcnNlZENvbmZpZyA9IEpTT04ucGFyc2UoY29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2h7XHJcbiAgICAgICAgICBwYXJzZWRDb25maWcgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZENvbmZpZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn1cclxuIl19
@@ -851,7 +851,6 @@ class RADashboardArea {
851
851
  * @return {?}
852
852
  */
853
853
  deleteWidget(widgetInstanceId, isalertDisabled = false) {
854
- debugger;
855
854
  console.log("goCorona");
856
855
  /** @type {?} */
857
856
  let widget = this.widgetList.filter((/**
@@ -1197,7 +1196,19 @@ class RAWidgetContainer {
1197
1196
  }));
1198
1197
  }
1199
1198
  if (this.widgetElement && changes.globalFilter && changes.globalFilter.currentValue != changes.globalFilter.previousValue) {
1200
- this.refreshWidget(this.data.widgetInfo);
1199
+ /** @type {?} */
1200
+ let filterObj = this.getParsedConfig(this.globalFilter);
1201
+ console.log('================================');
1202
+ console.log(this.globalFilter);
1203
+ console.log(filterObj);
1204
+ console.log(this.data.widgetInfo.widgetInstanceId);
1205
+ if (filterObj.WidgetInstanceId) {
1206
+ if (this.data.widgetInfo.widgetInstanceId != filterObj.WidgetInstanceId)
1207
+ this.refreshWidget(this.data.widgetInfo);
1208
+ }
1209
+ else {
1210
+ this.refreshWidget(this.data.widgetInfo);
1211
+ }
1201
1212
  }
1202
1213
  if (changes.width && changes.width.currentValue != changes.width.previousValue ||
1203
1214
  (changes.height && changes.height.currentValue != changes.height.previousValue)) {
@@ -1573,6 +1584,27 @@ class RAWidgetContainer {
1573
1584
  }
1574
1585
  this.isDownloadChartVisible = false;
1575
1586
  }
1587
+ /**
1588
+ * @private
1589
+ * @param {?} config
1590
+ * @return {?}
1591
+ */
1592
+ getParsedConfig(config) {
1593
+ /** @type {?} */
1594
+ let parsedConfig;
1595
+ if (config) {
1596
+ if (typeof config === 'string') {
1597
+ try {
1598
+ parsedConfig = JSON.parse(config);
1599
+ }
1600
+ catch (_a) {
1601
+ parsedConfig = {};
1602
+ }
1603
+ return parsedConfig;
1604
+ }
1605
+ }
1606
+ return config;
1607
+ }
1576
1608
  }
1577
1609
  RAWidgetContainer.decorators = [
1578
1610
  { type: Component, args: [{