igniteui-angular 16.1.0-beta.1 → 16.1.0-beta.3

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.
@@ -10,6 +10,10 @@ export const DisplayDensity = mkenum({
10
10
  compact: 'compact',
11
11
  });
12
12
  /**
13
+ * @deprecated since version 16.1.x.
14
+ * Please use the `--ig-size` CSS custom property.
15
+ * @see {@link [Update Guide](https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/update-guide#from-160x-to-161x)}
16
+ *
13
17
  * @hidden
14
18
  * Defines the DisplayDensity DI token.
15
19
  */
@@ -21,7 +25,9 @@ export const DisplayDensityToken = new InjectionToken('DisplayDensity');
21
25
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
22
26
  export class DisplayDensityBase {
23
27
  /**
24
- * @deprecated since version 16.1.x. Please use the `--ig-size` CSS custom property.
28
+ * @deprecated since version 16.1.x.
29
+ * Please use the `--ig-size` CSS custom property.
30
+ * @see {@link [Update Guide](https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/update-guide#from-160x-to-161x)}
25
31
  *
26
32
  * Returns the theme of the component.
27
33
  * The default theme is `comfortable`.
@@ -142,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
142
148
  }], displayDensity: [{
143
149
  type: Input
144
150
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVuc2l0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JlL2RlbnNpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQyxDQUFDO0FBZ0JIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUNqRCxnQkFBZ0IsQ0FDbkIsQ0FBQztBQUVGOzs7R0FHRztBQUtILGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sa0JBQWtCO0lBSTNCOzs7Ozs7Ozs7T0FTRztJQUNILElBQ1csY0FBYztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sQ0FDSCxJQUFJLENBQUMsZUFBZTtnQkFDcEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGNBQWM7Z0JBQzFDLGNBQWMsQ0FBQyxXQUFXLENBQzdCLENBQUM7U0FDTDtRQUVELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLEtBQUssR0FBRztnQkFDSixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDbEMsS0FBSyxHQUFHO2dCQUNKLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztZQUMvQixLQUFLLEdBQUcsQ0FBQztZQUNUO2dCQUNJLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FB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LENBQUM7U0FDckQ7SUFDTCxDQUFDOzhHQXRJUSxrQkFBa0Isa0JBdUVmLG1CQUFtQjtrR0F2RXRCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXdFUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjtxRUFyRXhCLGNBQWM7c0JBRHBCLE1BQU07Z0JBY0ksY0FBYztzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBEb0NoZWNrLFxuICAgIE9uSW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJhc2VFdmVudEFyZ3MsIG1rZW51bSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgY29tcG9uZW50cycgZGlzcGxheSBkZW5zaXR5LlxuICovXG5leHBvcnQgY29uc3QgRGlzcGxheURlbnNpdHkgPSBta2VudW0oe1xuICAgIGNvbWZvcnRhYmxlOiAnY29tZm9ydGFibGUnLFxuICAgIGNvc3k6ICdjb3N5JyxcbiAgICBjb21wYWN0OiAnY29tcGFjdCcsXG59KTtcbmV4cG9ydCB0eXBlIERpc3BsYXlEZW5zaXR5ID1cbiAgICAodHlwZW9mIERpc3BsYXlEZW5zaXR5KVtrZXlvZiB0eXBlb2YgRGlzcGxheURlbnNpdHldO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgb2JqZWN0IHVzZWQgdG8gY29uZmlndXJlIHRoZSBEaXNwbGF5RGVuc2l0eSBpbiBBbmd1bGFyIERJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMge1xuICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgb2xkRGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgbmV3RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogRGVmaW5lcyB0aGUgRGlzcGxheURlbnNpdHkgREkgdG9rZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBEaXNwbGF5RGVuc2l0eVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPElEaXNwbGF5RGVuc2l0eU9wdGlvbnM+KFxuICAgICdEaXNwbGF5RGVuc2l0eSdcbik7XG5cbi8qKlxuICogQGhpZGRlblxuICogQmFzZSBjbGFzcyBjb250YWluaW5nIGFsbCBsb2dpYyByZXF1aXJlZCBmb3IgaW1wbGVtZW50aW5nIERpc3BsYXlEZW5zaXR5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hEaXNwbGF5RGVuc2l0eUJhc2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERpc3BsYXlEZW5zaXR5QmFzZSBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbnNpdHlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEueC4gUGxlYXNlIHVzZSB0aGUgYC0taWctc2l6ZWAgQ1NTIGN1c3RvbSBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHRoZW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogVGhlIGRlZmF1bHQgdGhlbWUgaXMgYGNvbWZvcnRhYmxlYC5cbiAgICAgKiBBdmFpbGFibGUgb3B0aW9ucyBhcmUgYGNvbWZvcnRhYmxlYCwgYGNvc3lgLCBgY29tcGFjdGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBjb21wb25lbnRUaGVtZSA9IHRoaXMuY29tcG9uZW50LmRpc3BsYXlEZW5zaXR5O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNwbGF5RGVuc2l0eSgpOiBEaXNwbGF5RGVuc2l0eSB7XG4gICAgICAgIGlmICghdGhpcy5zaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlEZW5zaXR5ID8/XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnM/LmRpc3BsYXlEZW5zaXR5ID8/XG4gICAgICAgICAgICAgICAgRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q7XG4gICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRGlzcGxheURlbnNpdHkuY29zeTtcbiAgICAgICAgICAgIGNhc2UgJzMnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGVtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgZGlzcGxheURlbnNpdHkodmFsOiBEaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICBjb25zdCBjdXJyZW50RGlzcGxheURlbnNpdHkgPSB0aGlzLl9kaXNwbGF5RGVuc2l0eTtcbiAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSB2YWwgYXMgRGlzcGxheURlbnNpdHk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnREaXNwbGF5RGVuc2l0eSAhPT0gdGhpcy5fZGlzcGxheURlbnNpdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbnNpdHlDaGFuZ2VkQXJnczogSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIG9sZERlbnNpdHk6IGN1cnJlbnREaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgICAgICBuZXdEZW5zaXR5OiB0aGlzLl9kaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eUNoYW5nZWQuZW1pdChkZW5zaXR5Q2hhbmdlZEFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXdcbiAgICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKCctLWlnLXNpemUnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGluaXRpYWxEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcblxuICAgIHByb3RlY3RlZCBvbGREaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgPSB7XG4gICAgICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZSxcbiAgICB9O1xuICAgIHByb3RlY3RlZCBfZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbilcbiAgICAgICAgcHJvdGVjdGVkIGRpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgcHJvdGVjdGVkIF9ob3N0OiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsIGRpc3BsYXlEZW5zaXR5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsRGVuc2l0eSA9IHRoaXMuX2Rpc3BsYXlEZW5zaXR5O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5fZGlzcGxheURlbnNpdHkgJiZcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zICYmXG4gICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSAhPT1cbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbnNpdHlDaGFuZ2VkQXJnczogSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIG9sZERlbnNpdHk6IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgICAgIG5ld0RlbnNpdHk6IHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5kZW5zaXR5Q2hhbmdlZC5lbWl0KGRlbnNpdHlDaGFuZ2VkQXJncyk7XG4gICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgICAgdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIHN0eWxlIGNsYXNzIG9mIGEgY29tcG9uZW50L2VsZW1lbnQgcmV0dXJucyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBvZiBpdCBiYXNlZFxuICAgICAqIG9uIHRoZSBjdXJyZW50IGRpc3BsYXkgZGVuc2l0eS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50RGVuc2l0eUNsYXNzKGJhc2VTdHlsZUNsYXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2Rpc3BsYXlEZW5zaXR5IHx8IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvc3k6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VTdHlsZUNsYXNzfS0tJHtEaXNwbGF5RGVuc2l0eS5jb3N5fWA7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VTdHlsZUNsYXNzfS0tJHtEaXNwbGF5RGVuc2l0eS5jb21wYWN0fWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBiYXNlU3R5bGVDbGFzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGAtLWNvbXBvbmVudC1zaXplYCBDU1MgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlIG9mIERpc3BsYXkgRGVuc2l0eVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb21wb25lbnRTaXplU3R5bGVzKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2Rpc3BsYXlEZW5zaXR5IHx8IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YXIoLS1pZy1zaXplLCB2YXIoLS1pZy1zaXplLXNtYWxsKSknO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb3N5OlxuICAgICAgICAgICAgICAgIHJldHVybiAndmFyKC0taWctc2l6ZSwgdmFyKC0taWctc2l6ZS1tZWRpdW0pKSc7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbWZvcnRhYmxlOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcigtLWlnLXNpemUsIHZhcigtLWlnLXNpemUtbGFyZ2UpKSc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVuc2l0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JlL2RlbnNpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQyxDQUFDO0FBdUJIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsZ0JBQWdCLENBQ25CLENBQUM7QUFFRjs7O0dBR0c7QUFLSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILElBQ1csY0FBYztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sQ0FDSCxJQUFJLENBQUMsZUFBZTtnQkFDcEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGNBQWM7Z0JBQzFDLGNBQWMsQ0FBQyxXQUFXLENBQzdCLENBQUM7U0FDTDtRQUVELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLEtBQUssR0FBRztnQkFDSixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDbEMsS0FBSyxHQUFHO2dCQUNKLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztZQUMvQixLQUFLLEdBQUcsQ0FBQztZQUNUO2dCQUNJLE9BQU8sY0FBYyxDQUFDLFdB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c0NBQXNDLENBQUM7U0FDckQ7SUFDTCxDQUFDOzhHQXhJUSxrQkFBa0Isa0JBeUVmLG1CQUFtQjtrR0F6RXRCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQTBFUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjtxRUF2RXhCLGNBQWM7c0JBRHBCLE1BQU07Z0JBZ0JJLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRG9DaGVjayxcbiAgICBPbkluaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBta2VudW0gfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIGNvbXBvbmVudHMnIGRpc3BsYXkgZGVuc2l0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IERpc3BsYXlEZW5zaXR5ID0gbWtlbnVtKHtcbiAgICBjb21mb3J0YWJsZTogJ2NvbWZvcnRhYmxlJyxcbiAgICBjb3N5OiAnY29zeScsXG4gICAgY29tcGFjdDogJ2NvbXBhY3QnLFxufSk7XG4vKipcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTYuMS54LlxuICogUGxlYXNlIHVzZSB0aGUgYC0taWctc2l6ZWAgQ1NTIGN1c3RvbSBwcm9wZXJ0eS5cbiAqIEBzZWUge0BsaW5rIFtVcGRhdGUgR3VpZGVdKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2dlbmVyYWwvdXBkYXRlLWd1aWRlI2Zyb20tMTYweC10by0xNjF4KX1cbiAqL1xuZXhwb3J0IHR5cGUgRGlzcGxheURlbnNpdHkgPVxuICAgICh0eXBlb2YgRGlzcGxheURlbnNpdHkpW2tleW9mIHR5cGVvZiBEaXNwbGF5RGVuc2l0eV07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLnguIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gKlxuICogRGVzY3JpYmVzIHRoZSBvYmplY3QgdXNlZCB0byBjb25maWd1cmUgdGhlIERpc3BsYXlEZW5zaXR5IGluIEFuZ3VsYXIgREkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURpc3BsYXlEZW5zaXR5T3B0aW9ucyB7XG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBvbGREZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbiAgICBuZXdEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEueC5cbiAqIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gKiBAc2VlIHtAbGluayBbVXBkYXRlIEd1aWRlXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9nZW5lcmFsL3VwZGF0ZS1ndWlkZSNmcm9tLTE2MHgtdG8tMTYxeCl9XG4gKlxuICogQGhpZGRlblxuICogRGVmaW5lcyB0aGUgRGlzcGxheURlbnNpdHkgREkgdG9rZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBEaXNwbGF5RGVuc2l0eVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPElEaXNwbGF5RGVuc2l0eU9wdGlvbnM+KFxuICAgICdEaXNwbGF5RGVuc2l0eSdcbik7XG5cbi8qKlxuICogQGhpZGRlblxuICogQmFzZSBjbGFzcyBjb250YWluaW5nIGFsbCBsb2dpYyByZXF1aXJlZCBmb3IgaW1wbGVtZW50aW5nIERpc3BsYXlEZW5zaXR5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hEaXNwbGF5RGVuc2l0eUJhc2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERpc3BsYXlEZW5zaXR5QmFzZSBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbnNpdHlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEueC5cbiAgICAgKiBQbGVhc2UgdXNlIHRoZSBgLS1pZy1zaXplYCBDU1MgY3VzdG9tIHByb3BlcnR5LlxuICAgICAqIEBzZWUge0BsaW5rIFtVcGRhdGUgR3VpZGVdKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2dlbmVyYWwvdXBkYXRlLWd1aWRlI2Zyb20tMTYweC10by0xNjF4KX1cbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHRoZW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogVGhlIGRlZmF1bHQgdGhlbWUgaXMgYGNvbWZvcnRhYmxlYC5cbiAgICAgKiBBdmFpbGFibGUgb3B0aW9ucyBhcmUgYGNvbWZvcnRhYmxlYCwgYGNvc3lgLCBgY29tcGFjdGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBjb21wb25lbnRUaGVtZSA9IHRoaXMuY29tcG9uZW50LmRpc3BsYXlEZW5zaXR5O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNwbGF5RGVuc2l0eSgpOiBEaXNwbGF5RGVuc2l0eSB7XG4gICAgICAgIGlmICghdGhpcy5zaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlEZW5zaXR5ID8/XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnM/LmRpc3BsYXlEZW5zaXR5ID8/XG4gICAgICAgICAgICAgICAgRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q7XG4gICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRGlzcGxheURlbnNpdHkuY29zeTtcbiAgICAgICAgICAgIGNhc2UgJzMnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGVtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgZGlzcGxheURlbnNpdHkodmFsOiBEaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICBjb25zdCBjdXJyZW50RGlzcGxheURlbnNpdHkgPSB0aGlzLl9kaXNwbGF5RGVuc2l0eTtcbiAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSB2YWwgYXMgRGlzcGxheURlbnNpdHk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnREaXNwbGF5RGVuc2l0eSAhPT0gdGhpcy5fZGlzcGxheURlbnNpdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbnNpdHlDaGFuZ2VkQXJnczogSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIG9sZERlbnNpdHk6IGN1cnJlbnREaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgICAgICBuZXdEZW5zaXR5OiB0aGlzLl9kaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eUNoYW5nZWQuZW1pdChkZW5zaXR5Q2hhbmdlZEFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXdcbiAgICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKCctLWlnLXNpemUnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGluaXRpYWxEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcblxuICAgIHByb3RlY3RlZCBvbGREaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgPSB7XG4gICAgICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZSxcbiAgICB9O1xuICAgIHByb3RlY3RlZCBfZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbilcbiAgICAgICAgcHJvdGVjdGVkIGRpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgcHJvdGVjdGVkIF9ob3N0OiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsIGRpc3BsYXlEZW5zaXR5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsRGVuc2l0eSA9IHRoaXMuX2Rpc3BsYXlEZW5zaXR5O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5fZGlzcGxheURlbnNpdHkgJiZcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zICYmXG4gICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSAhPT1cbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbnNpdHlDaGFuZ2VkQXJnczogSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIG9sZERlbnNpdHk6IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgICAgIG5ld0RlbnNpdHk6IHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5kZW5zaXR5Q2hhbmdlZC5lbWl0KGRlbnNpdHlDaGFuZ2VkQXJncyk7XG4gICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgICAgdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIHN0eWxlIGNsYXNzIG9mIGEgY29tcG9uZW50L2VsZW1lbnQgcmV0dXJucyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBvZiBpdCBiYXNlZFxuICAgICAqIG9uIHRoZSBjdXJyZW50IGRpc3BsYXkgZGVuc2l0eS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50RGVuc2l0eUNsYXNzKGJhc2VTdHlsZUNsYXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2Rpc3BsYXlEZW5zaXR5IHx8IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvc3k6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VTdHlsZUNsYXNzfS0tJHtEaXNwbGF5RGVuc2l0eS5jb3N5fWA7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VTdHlsZUNsYXNzfS0tJHtEaXNwbGF5RGVuc2l0eS5jb21wYWN0fWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBiYXNlU3R5bGVDbGFzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGAtLWNvbXBvbmVudC1zaXplYCBDU1MgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlIG9mIERpc3BsYXkgRGVuc2l0eVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb21wb25lbnRTaXplU3R5bGVzKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2Rpc3BsYXlEZW5zaXR5IHx8IHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YXIoLS1pZy1zaXplLCB2YXIoLS1pZy1zaXplLXNtYWxsKSknO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb3N5OlxuICAgICAgICAgICAgICAgIHJldHVybiAndmFyKC0taWctc2l6ZSwgdmFyKC0taWctc2l6ZS1tZWRpdW0pKSc7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbWZvcnRhYmxlOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcigtLWlnLXNpemUsIHZhcigtLWlnLXNpemUtbGFyZ2UpKSc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -132,8 +132,7 @@ export class IgxTextHighlightDirective {
132
132
  content: this.value,
133
133
  matchCount: 0,
134
134
  caseSensitive: false,
135
- exactMatch: false,
136
- activeMatchIndex: 0
135
+ exactMatch: false
137
136
  };
138
137
  this._container = this.parentElement.firstElementChild;
139
138
  }
@@ -351,4 +350,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
351
350
  }], metadata: [{
352
351
  type: Input
353
352
  }] } });
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC1oaWdobGlnaHQvdGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssR0FNUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBNkIvQyxNQUFNLE9BQU8seUJBQXlCO2FBQ3BCLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO2FBQzVELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFtRG5FOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBVTtRQUN2QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBaUREOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBcUJELFlBQW9CLE9BQW1CLEVBQVMsUUFBbUI7UUFBL0MsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLGFBQVEsR0FBUixRQUFRLENB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Q0FBQyxDQUFDO0lBQ25DLENBQUM7OEdBdGNRLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5SEFpQlUsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVU7Z0JBZVYsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBT2hCLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQWdCaEIsU0FBUztzQkFEZixLQUFLO3VCQUFDLFdBQVc7Z0JBb0JQLEtBQUs7c0JBRGYsS0FBSzt1QkFBQyxPQUFPO2dCQXVCUCxHQUFHO3NCQURULEtBQUs7dUJBQUMsS0FBSztnQkFjTCxNQUFNO3NCQURaLEtBQUs7dUJBQUMsUUFBUTtnQkFzQlIsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29tcGFyZU1hcHMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElTZWFyY2hJbmZvIH0gZnJvbSAnLi4vLi4vZ3JpZHMvY29tbW9uL2V2ZW50cyc7XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgaW5mb3JtYXRpb24gZm9yIHRoZSBhY3RpdmUgaGlnaGxpZ2h0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVIaWdobGlnaHRJbmZvIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcm93IG9mIHRoZSBoaWdobGlnaHQuXG4gICAgICovXG4gICAgcm93PzogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBjb2x1bW4gb2YgdGhlIGhpZ2hsaWdodC5cbiAgICAgKi9cbiAgICBjb2x1bW4/OiBhbnk7XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4IG9mIHRoZSBoaWdobGlnaHQuXG4gICAgICovXG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsLCBjdXN0b20gY2hlY2tzIHRvIHBlcmZvcm0gcHJpb3IgYW4gZWxlbWVudCBoaWdobGlnaHRpbmcuXG4gICAgICovXG4gICAgbWV0YWRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hUZXh0SGlnaGxpZ2h0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgaGlnaGxpZ2h0R3JvdXBzTWFwID0gbmV3IE1hcDxzdHJpbmcsIElBY3RpdmVIaWdobGlnaHRJbmZvPigpO1xuICAgIHByaXZhdGUgc3RhdGljIG9uQWN0aXZlRWxlbWVudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgdGhlIGBDU1NgIGNsYXNzIG9mIHRoZSBoaWdobGlnaHQgZWxlbWVudHMuXG4gICAgICogVGhpcyBhbGxvd3MgdGhlIGRldmVsb3BlciB0byBwcm92aWRlIGN1c3RvbSBgQ1NTYCB0byBjdXN0b21pemUgdGhlIGhpZ2hsaWdodC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hUZXh0SGlnaGxpZ2h0XG4gICAgICogICBbY3NzQ2xhc3NdPVwibXlDbGFzc1wiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnY3NzQ2xhc3MnKVxuICAgIHB1YmxpYyBjc3NDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgYENTU2AgY2xhc3Mgb2YgdGhlIGFjdGl2ZSBoaWdobGlnaHQgZWxlbWVudC5cbiAgICAgKiBUaGlzIGFsbG93cyB0aGUgZGV2ZWxvcGVyIHRvIHByb3ZpZGUgY3VzdG9tIGBDU1NgIHRvIGN1c3RvbWl6ZSB0aGUgaGlnaGxpZ2h0LlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFthY3RpdmVDc3NDbGFzc109XCJhY3RpdmVIaWdobGlnaHRDbGFzc1wiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnYWN0aXZlQ3NzQ2xhc3MnKVxuICAgIHB1YmxpYyBhY3RpdmVDc3NDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgnY29udGFpbmVyQ2xhc3MnKVxuICAgIHB1YmxpYyBjb250YWluZXJDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllcyB0aGUgaGlnaGxpZ2h0IHdpdGhpbiBhIHVuaXF1ZSBncm91cC5cbiAgICAgKiBUaGlzIGFsbG93cyBpdCB0byBoYXZlIHNldmVyYWwgZGlmZmVyZW50IGhpZ2hsaWdodCBncm91cHMsXG4gICAgICogd2l0aCBlYWNoIG9mIHRoZW0gaGF2aW5nIHRoZWlyIG93biBhY3RpdmUgaGlnaGxpZ2h0LlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtncm91cE5hbWVdPVwibXlHcm91cE5hbWVcIj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2dyb3VwTmFtZScpXG4gICAgcHVibGljIGdyb3VwTmFtZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHVuZGVybHlpbmcgdmFsdWUgb2YgdGhlIGVsZW1lbnQgdGhhdCB3aWxsIGJlIGhpZ2hsaWdodGVkLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldFxuICAgICAqIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IHRoaXMudGV4dEhpZ2hsaWdodC52YWx1ZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tc2V0LS0+XG4gICAgICogPGRpdlxuICAgICAqICAgaWd4VGV4dEhpZ2hsaWdodFxuICAgICAqICAgW3ZhbHVlXT1cIm5ld1ZhbHVlXCI+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCd2YWx1ZScpXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcm93IG9uIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgY3VycmVudGx5IG9uLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtyb3ddPVwiMFwiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgncm93JylcbiAgICBwdWJsaWMgcm93OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uIG9uIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgY3VycmVudGx5IG9uLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtjb2x1bW5dPVwiMFwiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnY29sdW1uJylcbiAgICBwdWJsaWMgY29sdW1uOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBBIG1hcCB0aGF0IGNvbnRhaW5zIGFsbCBhZGl0aW9uYWwgY29uZGl0aW9ucywgdGhhdCB5b3UgbmVlZCB0byBhY3RpdmF0ZSBhIGhpZ2hsaWdodGVkXG4gICAgICogZWxlbWVudC4gVG8gYWN0aXZhdGUgdGhlIGNvbmRpdGlvbiwgeW91IHdpbGwgaGF2ZSB0byBhZGQgYSBuZXcgbWV0YWRhdGEga2V5IHRvXG4gICAgICogdGhlIGBtZXRhZGF0YWAgcHJvcGVydHkgb2YgdGhlIElBY3RpdmVIaWdobGlnaHRJbmZvIGludGVyZmFjZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICAvLyBTZXQgYSBwcm9wZXJ0eSwgd2hpY2ggd291bGQgZGlzYWJsZSB0aGUgaGlnaGxpZ2h0IGZvciBhIGdpdmVuIGVsZW1lbnQgb24gYSBjZXRhaW4gY29uZGl0aW9uXG4gICAgICogIGNvbnN0IG1ldGFkYXRhID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgICAgKiAgbWV0YWRhdGEuc2V0KCdoaWdobGlnaHRFbGVtZW50JywgZmFsc2UpO1xuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hUZXh0SGlnaGxpZ2h0XG4gICAgICogICBbbWV0YWRhdGFdPVwibWV0YWRhdGFcIj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZXRhZGF0YTogTWFwPHN0cmluZywgYW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhc3RTZWFyY2hJbmZvKCk6IElTZWFyY2hJbmZvIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RTZWFyY2hJbmZvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFyZW50RWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBhbnk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICAgIHByaXZhdGUgX2xhc3RTZWFyY2hJbmZvOiBJU2VhcmNoSW5mbztcbiAgICBwcml2YXRlIF9kaXYgPSBudWxsO1xuICAgIHByaXZhdGUgX29ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyID0gbnVsbDtcbiAgICBwcml2YXRlIF9ub2RlV2FzUmVtb3ZlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2ZvcmNlRXZhbHVhdGlvbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2FjdGl2ZUVsZW1lbnRJbmRleCA9IC0xO1xuICAgIHByaXZhdGUgX3ZhbHVlQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kZWZhdWx0Q3NzQ2xhc3MgPSAnaWd4LWhpZ2hsaWdodCc7XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEFjdGl2ZUNzc0NsYXNzID0gJ2lneC1oaWdobGlnaHQtLWFjdGl2ZSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIElneFRleHRIaWdobGlnaHREaXJlY3RpdmUub25BY3RpdmVFbGVtZW50Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChncm91cE5hbWUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwTmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdGhlIGhpZ2hsaWdodCBhdCBhIGdpdmVuIGluZGV4LlxuICAgICAqIChpZiBzdWNoIGluZGV4IGV4aXN0cylcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldEFjdGl2ZUhpZ2hsaWdodChncm91cE5hbWU6IHN0cmluZywgaGlnaGxpZ2h0OiBJQWN0aXZlSGlnaGxpZ2h0SW5mbykge1xuICAgICAgICBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLmhpZ2hsaWdodEdyb3Vwc01hcC5zZXQoZ3JvdXBOYW1lLCBoaWdobGlnaHQpO1xuICAgICAgICBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLm9uQWN0aXZlRWxlbWVudENoYW5nZWQuZW1pdChncm91cE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbnkgZXhpc3RpbmcgaGlnaGxpZ2h0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2xlYXJBY3RpdmVIaWdobGlnaHQoZ3JvdXBOYW1lKSB7XG4gICAgICAgIElneFRleHRIaWdobGlnaHREaXJlY3RpdmUuaGlnaGxpZ2h0R3JvdXBzTWFwLnNldChncm91cE5hbWUsIHtcbiAgICAgICAgICAgIGluZGV4OiAtMVxuICAgICAgICB9KTtcbiAgICAgICAgSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5vbkFjdGl2ZUVsZW1lbnRDaGFuZ2VkLmVtaXQoZ3JvdXBOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsZWFySGlnaGxpZ2h0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX29ic2VydmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnZhbHVlICYmICFjaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChjaGFuZ2VzLnJvdyAhPT0gdW5kZWZpbmVkICYmICFjaGFuZ2VzLnJvdy5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgIChjaGFuZ2VzLmNvbHVtbiAhPT0gdW5kZWZpbmVkICYmICFjaGFuZ2VzLmNvbHVtbi5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgIChjaGFuZ2VzLnBhZ2UgIT09IHVuZGVmaW5lZCAmJiAhY2hhbmdlcy5wYWdlLmZpcnN0Q2hhbmdlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVJZk5lY2Vzc2FyeSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKElneFRleHRIaWdobGlnaHREaXJlY3RpdmUuaGlnaGxpZ2h0R3JvdXBzTWFwLmhhcyh0aGlzLmdyb3VwTmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLmhpZ2hsaWdodEdyb3Vwc01hcC5zZXQodGhpcy5ncm91cE5hbWUsIHtcbiAgICAgICAgICAgICAgICBpbmRleDogLTFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8gPSB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiAnJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtYXRjaENvdW50OiAwLFxuICAgICAgICAgICAgY2FzZVNlbnNpdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBleGFjdE1hdGNoOiBmYWxzZSxcbiAgICAgICAgICAgIGFjdGl2ZU1hdGNoSW5kZXg6IDBcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KHRoaXMuX2xhc3RTZWFyY2hJbmZvLnNlYXJjaFRleHQsIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmNhc2VTZW5zaXRpdmUsIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmV4YWN0TWF0Y2gpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZXhpc3RpbmcgaGlnaGxpZ2h0IGFuZCBoaWdobGlnaHRzIHRoZSBzZWFyY2hlZCB0ZXh0LlxuICAgICAqIFJldHVybnMgaG93IG1hbnkgdGltZXMgdGhlIGVsZW1lbnQgY29udGFpbnMgdGhlIHNlYXJjaGVkIHRleHQuXG4gICAgICovXG4gICAgcHVibGljIGhpZ2hsaWdodCh0ZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU/OiBib29sZWFuLCBleGFjdE1hdGNoPzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNhc2VTZW5zaXRpdmVSZXNvbHZlZCA9IGNhc2VTZW5zaXRpdmUgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGV4YWN0TWF0Y2hSZXNvbHZlZCA9IGV4YWN0TWF0Y2ggPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoTmVlZHNFdmFsdWF0aW9uKHRleHQsIGNhc2VTZW5zaXRpdmVSZXNvbHZlZCwgZXhhY3RNYXRjaFJlc29sdmVkKSkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jYXNlU2Vuc2l0aXZlID0gY2FzZVNlbnNpdGl2ZVJlc29sdmVkO1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCA9IGV4YWN0TWF0Y2hSZXNvbHZlZDtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmNvbnRlbnQgPSB0aGlzLnZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGV4dCA9PT0gJycgfHwgdGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFySGlnaGxpZ2h0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDaGlsZEVsZW1lbnRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLm1hdGNoQ291bnQgPSB0aGlzLmdldEhpZ2hsaWdodGVkVGV4dCh0ZXh0LCBjYXNlU2Vuc2l0aXZlLCBleGFjdE1hdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ub2RlV2FzUmVtb3ZlZCkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jYXNlU2Vuc2l0aXZlID0gY2FzZVNlbnNpdGl2ZVJlc29sdmVkO1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCA9IGV4YWN0TWF0Y2hSZXNvbHZlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0U2VhcmNoSW5mby5tYXRjaENvdW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbnkgZXhpc3RpbmcgaGlnaGxpZ2h0LlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckhpZ2hsaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckNoaWxkRWxlbWVudHMoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLnNlYXJjaFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8ubWF0Y2hDb3VudCA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSBoaWdobGlnaHQgaWYgaXQgaXMgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgcm93IGFuZCBjb2x1bW4uXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2YXRlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5oaWdobGlnaHRHcm91cHNNYXAuZ2V0KHRoaXMuZ3JvdXBOYW1lKTtcblxuICAgICAgICBpZiAoZ3JvdXAuaW5kZXggPj0gMCAmJiBncm91cC5jb2x1bW4gPT09IHRoaXMuY29sdW1uICYmIGdyb3VwLnJvdyA9PT0gdGhpcy5yb3cgJiYgY29tcGFyZU1hcHModGhpcy5tZXRhZGF0YSwgZ3JvdXAubWV0YWRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlKGdyb3VwLmluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgTXV0YXRpb25PYnNlcnZlciB0byB0aGUgcGFyZW50RWxlbWVudCBhbmQgd2F0Y2hlcyBmb3Igd2hlbiB0aGUgY29udGFpbmVyIGVsZW1lbnQgaXMgcmVtb3ZlZC9yZWFkZGVkIHRvIHRoZSBET00uXG4gICAgICogU2hvdWxkIGJlIHVzZWQgb25seSB3aGVuIG5lY2Vzc2FyeSBhcyB1c2luZyBtYW55IG9ic2VydmVycyBtYXkgbGVhZCB0byBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgb2JzZXJ2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX29ic2VydmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChtdXRhdGlvbkxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBtdXRhdGlvbkxpc3QuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlZE5vZGVzID0gQXJyYXkuZnJvbShtdXRhdGlvbi5yZW1vdmVkTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVkTm9kZXMuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT09IHRoaXMuX2NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vZGVXYXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQ2hpbGRFbGVtZW50cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkZGVkTm9kZXMgPSBBcnJheS5mcm9tKG11dGF0aW9uLmFkZGVkTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgICBhZGRlZE5vZGVzLmZvckVhY2goKG4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09PSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgJiYgdGhpcy5fbm9kZVdhc1JlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9kZVdhc1JlbW92ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvcmNlRXZhbHVhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQodGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uY2FzZVNlbnNpdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9yY2VFdmFsdWF0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnBhcmVudEVsZW1lbnQsIHtjaGlsZExpc3Q6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWN0aXZhdGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fZGl2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzcGFucyA9IHRoaXMuX2Rpdi5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyk7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggPSBpbmRleDtcblxuICAgICAgICAgICAgaWYgKHNwYW5zLmxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvQWN0aXZhdGUgPSBzcGFuc1tpbmRleF07XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnRUb0FjdGl2YXRlLCB0aGlzLl9kZWZhdWx0QWN0aXZlQ3NzQ2xhc3MpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50VG9BY3RpdmF0ZSwgdGhpcy5hY3RpdmVDc3NDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlYWN0aXZhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFucyA9IHRoaXMuX2Rpdi5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyk7XG5cbiAgICAgICAgaWYgKHNwYW5zLmxlbmd0aCA8PSB0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleCA9IC0xO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFRvRGVhY3RpdmF0ZSA9IHNwYW5zW3RoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleF07XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudFRvRGVhY3RpdmF0ZSwgdGhpcy5fZGVmYXVsdEFjdGl2ZUNzc0NsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhlbGVtZW50VG9EZWFjdGl2YXRlLCB0aGlzLmFjdGl2ZUNzc0NsYXNzKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNoaWxkRWxlbWVudHMob3JpZ2luYWxDb250ZW50SGlkZGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nLCBvcmlnaW5hbENvbnRlbnRIaWRkZW4pO1xuXG4gICAgICAgIGlmICh0aGlzLl9kaXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLl9kaXYpO1xuXG4gICAgICAgICAgICB0aGlzLl9kaXYgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhpZ2hsaWdodGVkVGV4dChzZWFyY2hUZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4sIGV4YWN0TWF0Y2g6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hcHBlbmREaXYoKTtcblxuICAgICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgY29uc3QgY29udGVudFN0cmluZ1Jlc29sdmVkID0gIWNhc2VTZW5zaXRpdmUgPyBzdHJpbmdWYWx1ZS50b0xvd2VyQ2FzZSgpIDogc3RyaW5nVmFsdWU7XG4gICAgICAgIGNvbnN0IHNlYXJjaFRleHRSZXNvbHZlZCA9ICFjYXNlU2Vuc2l0aXZlID8gc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpIDogc2VhcmNoVGV4dDtcblxuICAgICAgICBsZXQgbWF0Y2hDb3VudCA9IDA7XG5cbiAgICAgICAgaWYgKGV4YWN0TWF0Y2gpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50U3RyaW5nUmVzb2x2ZWQgPT09IHNlYXJjaFRleHRSZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kU3BhbihgPHNwYW4gY2xhc3M9XCIke3RoaXMuX2RlZmF1bHRDc3NDbGFzc30gJHt0aGlzLmNzc0NsYXNzID8gdGhpcy5jc3NDbGFzcyA6ICcnfVwiPiR7c3RyaW5nVmFsdWV9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIG1hdGNoQ291bnQrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0KHN0cmluZ1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBmb3VuZEluZGV4ID0gY29udGVudFN0cmluZ1Jlc29sdmVkLmluZGV4T2Yoc2VhcmNoVGV4dFJlc29sdmVkLCAwKTtcbiAgICAgICAgICAgIGxldCBwcmV2aW91c01hdGNoRW5kID0gMDtcblxuICAgICAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBmb3VuZEluZGV4O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGZvdW5kSW5kZXggKyBzZWFyY2hUZXh0UmVzb2x2ZWQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0KHN0cmluZ1ZhbHVlLnN1YnN0cmluZyhwcmV2aW91c01hdGNoRW5kLCBzdGFydCkpO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRTcGFuKGA8c3BhbiBjbGFzcz1cIiR7dGhpcy5fZGVmYXVsdENzc0NsYXNzfSAke3RoaXMuY3NzQ2xhc3MgPyB0aGlzLmNzc0NsYXNzIDogJyd9XCI+JHtzdHJpbmdWYWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCl9PC9zcGFuPmApO1xuXG4gICAgICAgICAgICAgICAgcHJldmlvdXNNYXRjaEVuZCA9IGVuZDtcbiAgICAgICAgICAgICAgICBtYXRjaENvdW50Kys7XG5cbiAgICAgICAgICAgICAgICBmb3VuZEluZGV4ID0gY29udGVudFN0cmluZ1Jlc29sdmVkLmluZGV4T2Yoc2VhcmNoVGV4dFJlc29sdmVkLCBlbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmFwcGVuZFRleHQoc3RyaW5nVmFsdWUuc3Vic3RyaW5nKHByZXZpb3VzTWF0Y2hFbmQsIHN0cmluZ1ZhbHVlLmxlbmd0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoQ291bnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRUZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0ZXh0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kaXYsIHRleHRFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFNwYW4ob3V0ZXJIVE1MOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2Rpdiwgc3Bhbik7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3BhbiwgJ291dGVySFRNTCcsIG91dGVySFRNTCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmREaXYoKSB7XG4gICAgICAgIHRoaXMuX2RpdiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGlmICggdGhpcy5jb250YWluZXJDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kaXYsIHRoaXMuY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLl9kaXYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoTmVlZHNFdmFsdWF0aW9uKHRleHQ6IHN0cmluZywgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbiwgZXhhY3RNYXRjaDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzZWFyY2hlZFRleHQgPSB0aGlzLl9sYXN0U2VhcmNoSW5mby5zZWFyY2hUZXh0O1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5fbm9kZVdhc1JlbW92ZWQgJiZcbiAgICAgICAgICAgIChzZWFyY2hlZFRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBzZWFyY2hlZFRleHQgIT09IHRleHQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jb250ZW50ICE9PSB0aGlzLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uY2FzZVNlbnNpdGl2ZSAhPT0gY2FzZVNlbnNpdGl2ZSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmV4YWN0TWF0Y2ggIT09IGV4YWN0TWF0Y2ggfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JjZUV2YWx1YXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC1oaWdobGlnaHQvdGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssR0FNUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBb0MvQyxNQUFNLE9BQU8seUJBQXlCO2FBQ3BCLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO2FBQzVELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFtRG5FOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBVTtRQUN2QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBaUREOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBcUJELFlBQW9CLE9BQW1CLEVBQVMsUUFBbUI7UUFBL0MsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLGFBQVEsR0FBUixRQUFRLENB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QXJjUSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7eUhBaUJVLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxVQUFVO2dCQWVWLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQU9oQixjQUFjO3NCQURwQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFnQmhCLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxXQUFXO2dCQW9CUCxLQUFLO3NCQURmLEtBQUs7dUJBQUMsT0FBTztnQkF1QlAsR0FBRztzQkFEVCxLQUFLO3VCQUFDLEtBQUs7Z0JBY0wsTUFBTTtzQkFEWixLQUFLO3VCQUFDLFFBQVE7Z0JBc0JSLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbXBhcmVNYXBzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VTZWFyY2hJbmZvIHtcbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gICAgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbjtcbiAgICBleGFjdE1hdGNoOiBib29sZWFuO1xuICAgIG1hdGNoQ291bnQ6IG51bWJlcjtcbiAgICBjb250ZW50OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgaW5mb3JtYXRpb24gZm9yIHRoZSBhY3RpdmUgaGlnaGxpZ2h0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVIaWdobGlnaHRJbmZvIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcm93IG9mIHRoZSBoaWdobGlnaHQuXG4gICAgICovXG4gICAgcm93PzogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBjb2x1bW4gb2YgdGhlIGhpZ2hsaWdodC5cbiAgICAgKi9cbiAgICBjb2x1bW4/OiBhbnk7XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4IG9mIHRoZSBoaWdobGlnaHQuXG4gICAgICovXG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsLCBjdXN0b20gY2hlY2tzIHRvIHBlcmZvcm0gcHJpb3IgYW4gZWxlbWVudCBoaWdobGlnaHRpbmcuXG4gICAgICovXG4gICAgbWV0YWRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hUZXh0SGlnaGxpZ2h0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgaGlnaGxpZ2h0R3JvdXBzTWFwID0gbmV3IE1hcDxzdHJpbmcsIElBY3RpdmVIaWdobGlnaHRJbmZvPigpO1xuICAgIHByaXZhdGUgc3RhdGljIG9uQWN0aXZlRWxlbWVudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgdGhlIGBDU1NgIGNsYXNzIG9mIHRoZSBoaWdobGlnaHQgZWxlbWVudHMuXG4gICAgICogVGhpcyBhbGxvd3MgdGhlIGRldmVsb3BlciB0byBwcm92aWRlIGN1c3RvbSBgQ1NTYCB0byBjdXN0b21pemUgdGhlIGhpZ2hsaWdodC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hUZXh0SGlnaGxpZ2h0XG4gICAgICogICBbY3NzQ2xhc3NdPVwibXlDbGFzc1wiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnY3NzQ2xhc3MnKVxuICAgIHB1YmxpYyBjc3NDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgYENTU2AgY2xhc3Mgb2YgdGhlIGFjdGl2ZSBoaWdobGlnaHQgZWxlbWVudC5cbiAgICAgKiBUaGlzIGFsbG93cyB0aGUgZGV2ZWxvcGVyIHRvIHByb3ZpZGUgY3VzdG9tIGBDU1NgIHRvIGN1c3RvbWl6ZSB0aGUgaGlnaGxpZ2h0LlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFthY3RpdmVDc3NDbGFzc109XCJhY3RpdmVIaWdobGlnaHRDbGFzc1wiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnYWN0aXZlQ3NzQ2xhc3MnKVxuICAgIHB1YmxpYyBhY3RpdmVDc3NDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgnY29udGFpbmVyQ2xhc3MnKVxuICAgIHB1YmxpYyBjb250YWluZXJDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllcyB0aGUgaGlnaGxpZ2h0IHdpdGhpbiBhIHVuaXF1ZSBncm91cC5cbiAgICAgKiBUaGlzIGFsbG93cyBpdCB0byBoYXZlIHNldmVyYWwgZGlmZmVyZW50IGhpZ2hsaWdodCBncm91cHMsXG4gICAgICogd2l0aCBlYWNoIG9mIHRoZW0gaGF2aW5nIHRoZWlyIG93biBhY3RpdmUgaGlnaGxpZ2h0LlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtncm91cE5hbWVdPVwibXlHcm91cE5hbWVcIj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2dyb3VwTmFtZScpXG4gICAgcHVibGljIGdyb3VwTmFtZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHVuZGVybHlpbmcgdmFsdWUgb2YgdGhlIGVsZW1lbnQgdGhhdCB3aWxsIGJlIGhpZ2hsaWdodGVkLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldFxuICAgICAqIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IHRoaXMudGV4dEhpZ2hsaWdodC52YWx1ZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tc2V0LS0+XG4gICAgICogPGRpdlxuICAgICAqICAgaWd4VGV4dEhpZ2hsaWdodFxuICAgICAqICAgW3ZhbHVlXT1cIm5ld1ZhbHVlXCI+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCd2YWx1ZScpXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcm93IG9uIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgY3VycmVudGx5IG9uLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtyb3ddPVwiMFwiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgncm93JylcbiAgICBwdWJsaWMgcm93OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uIG9uIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgY3VycmVudGx5IG9uLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFtjb2x1bW5dPVwiMFwiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnY29sdW1uJylcbiAgICBwdWJsaWMgY29sdW1uOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBBIG1hcCB0aGF0IGNvbnRhaW5zIGFsbCBhZGRpdGlvbmFsIGNvbmRpdGlvbnMsIHRoYXQgeW91IG5lZWQgdG8gYWN0aXZhdGUgYSBoaWdobGlnaHRlZFxuICAgICAqIGVsZW1lbnQuIFRvIGFjdGl2YXRlIHRoZSBjb25kaXRpb24sIHlvdSB3aWxsIGhhdmUgdG8gYWRkIGEgbmV3IG1ldGFkYXRhIGtleSB0b1xuICAgICAqIHRoZSBgbWV0YWRhdGFgIHByb3BlcnR5IG9mIHRoZSBJQWN0aXZlSGlnaGxpZ2h0SW5mbyBpbnRlcmZhY2UuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgLy8gU2V0IGEgcHJvcGVydHksIHdoaWNoIHdvdWxkIGRpc2FibGUgdGhlIGhpZ2hsaWdodCBmb3IgYSBnaXZlbiBlbGVtZW50IG9uIGEgY2VydGFpbiBjb25kaXRpb25cbiAgICAgKiAgY29uc3QgbWV0YWRhdGEgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgICAqICBtZXRhZGF0YS5zZXQoJ2hpZ2hsaWdodEVsZW1lbnQnLCBmYWxzZSk7XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRleHRIaWdobGlnaHRcbiAgICAgKiAgIFttZXRhZGF0YV09XCJtZXRhZGF0YVwiPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1ldGFkYXRhOiBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFzdFNlYXJjaEluZm8oKTogSUJhc2VTZWFyY2hJbmZvIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RTZWFyY2hJbmZvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFyZW50RWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBhbnk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICAgIHByaXZhdGUgX2xhc3RTZWFyY2hJbmZvOiBJQmFzZVNlYXJjaEluZm87XG4gICAgcHJpdmF0ZSBfZGl2ID0gbnVsbDtcbiAgICBwcml2YXRlIF9vYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbm9kZVdhc1JlbW92ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9mb3JjZUV2YWx1YXRpb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9hY3RpdmVFbGVtZW50SW5kZXggPSAtMTtcbiAgICBwcml2YXRlIF92YWx1ZUNoYW5nZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdENzc0NsYXNzID0gJ2lneC1oaWdobGlnaHQnO1xuICAgIHByaXZhdGUgX2RlZmF1bHRBY3RpdmVDc3NDbGFzcyA9ICdpZ3gtaGlnaGxpZ2h0LS1hY3RpdmUnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLm9uQWN0aXZlRWxlbWVudENoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZ3JvdXBOYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5ncm91cE5hbWUgPT09IGdyb3VwTmFtZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSBoaWdobGlnaHQgYXQgYSBnaXZlbiBpbmRleC5cbiAgICAgKiAoaWYgc3VjaCBpbmRleCBleGlzdHMpXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRBY3RpdmVIaWdobGlnaHQoZ3JvdXBOYW1lOiBzdHJpbmcsIGhpZ2hsaWdodDogSUFjdGl2ZUhpZ2hsaWdodEluZm8pIHtcbiAgICAgICAgSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5oaWdobGlnaHRHcm91cHNNYXAuc2V0KGdyb3VwTmFtZSwgaGlnaGxpZ2h0KTtcbiAgICAgICAgSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5vbkFjdGl2ZUVsZW1lbnRDaGFuZ2VkLmVtaXQoZ3JvdXBOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYW55IGV4aXN0aW5nIGhpZ2hsaWdodC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNsZWFyQWN0aXZlSGlnaGxpZ2h0KGdyb3VwTmFtZSkge1xuICAgICAgICBJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLmhpZ2hsaWdodEdyb3Vwc01hcC5zZXQoZ3JvdXBOYW1lLCB7XG4gICAgICAgICAgICBpbmRleDogLTFcbiAgICAgICAgfSk7XG4gICAgICAgIElneFRleHRIaWdobGlnaHREaXJlY3RpdmUub25BY3RpdmVFbGVtZW50Q2hhbmdlZC5lbWl0KGdyb3VwTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhckhpZ2hsaWdodCgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9vYnNlcnZlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy52YWx1ZSAmJiAhY2hhbmdlcy52YWx1ZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICgoY2hhbmdlcy5yb3cgIT09IHVuZGVmaW5lZCAmJiAhY2hhbmdlcy5yb3cuZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAgICAgICAoY2hhbmdlcy5jb2x1bW4gIT09IHVuZGVmaW5lZCAmJiAhY2hhbmdlcy5jb2x1bW4uZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAgICAgICAoY2hhbmdlcy5wYWdlICE9PSB1bmRlZmluZWQgJiYgIWNoYW5nZXMucGFnZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnBhcmVudEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChJZ3hUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLmhpZ2hsaWdodEdyb3Vwc01hcC5oYXModGhpcy5ncm91cE5hbWUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5oaWdobGlnaHRHcm91cHNNYXAuc2V0KHRoaXMuZ3JvdXBOYW1lLCB7XG4gICAgICAgICAgICAgICAgaW5kZXg6IC0xXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvID0ge1xuICAgICAgICAgICAgc2VhcmNoVGV4dDogJycsXG4gICAgICAgICAgICBjb250ZW50OiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWF0Y2hDb3VudDogMCxcbiAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGZhbHNlLFxuICAgICAgICAgICAgZXhhY3RNYXRjaDogZmFsc2VcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KHRoaXMuX2xhc3RTZWFyY2hJbmZvLnNlYXJjaFRleHQsIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmNhc2VTZW5zaXRpdmUsIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmV4YWN0TWF0Y2gpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZXhpc3RpbmcgaGlnaGxpZ2h0IGFuZCBoaWdobGlnaHRzIHRoZSBzZWFyY2hlZCB0ZXh0LlxuICAgICAqIFJldHVybnMgaG93IG1hbnkgdGltZXMgdGhlIGVsZW1lbnQgY29udGFpbnMgdGhlIHNlYXJjaGVkIHRleHQuXG4gICAgICovXG4gICAgcHVibGljIGhpZ2hsaWdodCh0ZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU/OiBib29sZWFuLCBleGFjdE1hdGNoPzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNhc2VTZW5zaXRpdmVSZXNvbHZlZCA9IGNhc2VTZW5zaXRpdmUgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGV4YWN0TWF0Y2hSZXNvbHZlZCA9IGV4YWN0TWF0Y2ggPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoTmVlZHNFdmFsdWF0aW9uKHRleHQsIGNhc2VTZW5zaXRpdmVSZXNvbHZlZCwgZXhhY3RNYXRjaFJlc29sdmVkKSkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jYXNlU2Vuc2l0aXZlID0gY2FzZVNlbnNpdGl2ZVJlc29sdmVkO1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCA9IGV4YWN0TWF0Y2hSZXNvbHZlZDtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmNvbnRlbnQgPSB0aGlzLnZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGV4dCA9PT0gJycgfHwgdGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFySGlnaGxpZ2h0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDaGlsZEVsZW1lbnRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLm1hdGNoQ291bnQgPSB0aGlzLmdldEhpZ2hsaWdodGVkVGV4dCh0ZXh0LCBjYXNlU2Vuc2l0aXZlLCBleGFjdE1hdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ub2RlV2FzUmVtb3ZlZCkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jYXNlU2Vuc2l0aXZlID0gY2FzZVNlbnNpdGl2ZVJlc29sdmVkO1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCA9IGV4YWN0TWF0Y2hSZXNvbHZlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0U2VhcmNoSW5mby5tYXRjaENvdW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbnkgZXhpc3RpbmcgaGlnaGxpZ2h0LlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckhpZ2hsaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckNoaWxkRWxlbWVudHMoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLnNlYXJjaFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8ubWF0Y2hDb3VudCA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSBoaWdobGlnaHQgaWYgaXQgaXMgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgcm93IGFuZCBjb2x1bW4uXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2YXRlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gSWd4VGV4dEhpZ2hsaWdodERpcmVjdGl2ZS5oaWdobGlnaHRHcm91cHNNYXAuZ2V0KHRoaXMuZ3JvdXBOYW1lKTtcblxuICAgICAgICBpZiAoZ3JvdXAuaW5kZXggPj0gMCAmJiBncm91cC5jb2x1bW4gPT09IHRoaXMuY29sdW1uICYmIGdyb3VwLnJvdyA9PT0gdGhpcy5yb3cgJiYgY29tcGFyZU1hcHModGhpcy5tZXRhZGF0YSwgZ3JvdXAubWV0YWRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlKGdyb3VwLmluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgTXV0YXRpb25PYnNlcnZlciB0byB0aGUgcGFyZW50RWxlbWVudCBhbmQgd2F0Y2hlcyBmb3Igd2hlbiB0aGUgY29udGFpbmVyIGVsZW1lbnQgaXMgcmVtb3ZlZC9yZWFkZGVkIHRvIHRoZSBET00uXG4gICAgICogU2hvdWxkIGJlIHVzZWQgb25seSB3aGVuIG5lY2Vzc2FyeSBhcyB1c2luZyBtYW55IG9ic2VydmVycyBtYXkgbGVhZCB0byBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgb2JzZXJ2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX29ic2VydmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChtdXRhdGlvbkxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBtdXRhdGlvbkxpc3QuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlZE5vZGVzID0gQXJyYXkuZnJvbShtdXRhdGlvbi5yZW1vdmVkTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVkTm9kZXMuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT09IHRoaXMuX2NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vZGVXYXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQ2hpbGRFbGVtZW50cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkZGVkTm9kZXMgPSBBcnJheS5mcm9tKG11dGF0aW9uLmFkZGVkTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgICBhZGRlZE5vZGVzLmZvckVhY2goKG4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09PSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgJiYgdGhpcy5fbm9kZVdhc1JlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnBhcmVudEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9kZVdhc1JlbW92ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvcmNlRXZhbHVhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQodGhpcy5fbGFzdFNlYXJjaEluZm8uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uY2FzZVNlbnNpdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uZXhhY3RNYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9yY2VFdmFsdWF0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnBhcmVudEVsZW1lbnQsIHtjaGlsZExpc3Q6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWN0aXZhdGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fZGl2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzcGFucyA9IHRoaXMuX2Rpdi5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyk7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggPSBpbmRleDtcblxuICAgICAgICAgICAgaWYgKHNwYW5zLmxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvQWN0aXZhdGUgPSBzcGFuc1tpbmRleF07XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnRUb0FjdGl2YXRlLCB0aGlzLl9kZWZhdWx0QWN0aXZlQ3NzQ2xhc3MpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50VG9BY3RpdmF0ZSwgdGhpcy5hY3RpdmVDc3NDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlYWN0aXZhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFucyA9IHRoaXMuX2Rpdi5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyk7XG5cbiAgICAgICAgaWYgKHNwYW5zLmxlbmd0aCA8PSB0aGlzLl9hY3RpdmVFbGVtZW50SW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleCA9IC0xO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFRvRGVhY3RpdmF0ZSA9IHNwYW5zW3RoaXMuX2FjdGl2ZUVsZW1lbnRJbmRleF07XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudFRvRGVhY3RpdmF0ZSwgdGhpcy5fZGVmYXVsdEFjdGl2ZUNzc0NsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhlbGVtZW50VG9EZWFjdGl2YXRlLCB0aGlzLmFjdGl2ZUNzc0NsYXNzKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNoaWxkRWxlbWVudHMob3JpZ2luYWxDb250ZW50SGlkZGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nLCBvcmlnaW5hbENvbnRlbnRIaWRkZW4pO1xuXG4gICAgICAgIGlmICh0aGlzLl9kaXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLl9kaXYpO1xuXG4gICAgICAgICAgICB0aGlzLl9kaXYgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhpZ2hsaWdodGVkVGV4dChzZWFyY2hUZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4sIGV4YWN0TWF0Y2g6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hcHBlbmREaXYoKTtcblxuICAgICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgY29uc3QgY29udGVudFN0cmluZ1Jlc29sdmVkID0gIWNhc2VTZW5zaXRpdmUgPyBzdHJpbmdWYWx1ZS50b0xvd2VyQ2FzZSgpIDogc3RyaW5nVmFsdWU7XG4gICAgICAgIGNvbnN0IHNlYXJjaFRleHRSZXNvbHZlZCA9ICFjYXNlU2Vuc2l0aXZlID8gc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpIDogc2VhcmNoVGV4dDtcblxuICAgICAgICBsZXQgbWF0Y2hDb3VudCA9IDA7XG5cbiAgICAgICAgaWYgKGV4YWN0TWF0Y2gpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50U3RyaW5nUmVzb2x2ZWQgPT09IHNlYXJjaFRleHRSZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kU3BhbihgPHNwYW4gY2xhc3M9XCIke3RoaXMuX2RlZmF1bHRDc3NDbGFzc30gJHt0aGlzLmNzc0NsYXNzID8gdGhpcy5jc3NDbGFzcyA6ICcnfVwiPiR7c3RyaW5nVmFsdWV9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIG1hdGNoQ291bnQrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0KHN0cmluZ1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBmb3VuZEluZGV4ID0gY29udGVudFN0cmluZ1Jlc29sdmVkLmluZGV4T2Yoc2VhcmNoVGV4dFJlc29sdmVkLCAwKTtcbiAgICAgICAgICAgIGxldCBwcmV2aW91c01hdGNoRW5kID0gMDtcblxuICAgICAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBmb3VuZEluZGV4O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGZvdW5kSW5kZXggKyBzZWFyY2hUZXh0UmVzb2x2ZWQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0KHN0cmluZ1ZhbHVlLnN1YnN0cmluZyhwcmV2aW91c01hdGNoRW5kLCBzdGFydCkpO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRTcGFuKGA8c3BhbiBjbGFzcz1cIiR7dGhpcy5fZGVmYXVsdENzc0NsYXNzfSAke3RoaXMuY3NzQ2xhc3MgPyB0aGlzLmNzc0NsYXNzIDogJyd9XCI+JHtzdHJpbmdWYWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCl9PC9zcGFuPmApO1xuXG4gICAgICAgICAgICAgICAgcHJldmlvdXNNYXRjaEVuZCA9IGVuZDtcbiAgICAgICAgICAgICAgICBtYXRjaENvdW50Kys7XG5cbiAgICAgICAgICAgICAgICBmb3VuZEluZGV4ID0gY29udGVudFN0cmluZ1Jlc29sdmVkLmluZGV4T2Yoc2VhcmNoVGV4dFJlc29sdmVkLCBlbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmFwcGVuZFRleHQoc3RyaW5nVmFsdWUuc3Vic3RyaW5nKHByZXZpb3VzTWF0Y2hFbmQsIHN0cmluZ1ZhbHVlLmxlbmd0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoQ291bnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRUZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0ZXh0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kaXYsIHRleHRFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFNwYW4ob3V0ZXJIVE1MOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2Rpdiwgc3Bhbik7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3BhbiwgJ291dGVySFRNTCcsIG91dGVySFRNTCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmREaXYoKSB7XG4gICAgICAgIHRoaXMuX2RpdiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGlmICggdGhpcy5jb250YWluZXJDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kaXYsIHRoaXMuY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLl9kaXYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoTmVlZHNFdmFsdWF0aW9uKHRleHQ6IHN0cmluZywgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbiwgZXhhY3RNYXRjaDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzZWFyY2hlZFRleHQgPSB0aGlzLl9sYXN0U2VhcmNoSW5mby5zZWFyY2hUZXh0O1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5fbm9kZVdhc1JlbW92ZWQgJiZcbiAgICAgICAgICAgIChzZWFyY2hlZFRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBzZWFyY2hlZFRleHQgIT09IHRleHQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoSW5mby5jb250ZW50ICE9PSB0aGlzLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaEluZm8uY2FzZVNlbnNpdGl2ZSAhPT0gY2FzZVNlbnNpdGl2ZSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2hJbmZvLmV4YWN0TWF0Y2ggIT09IGV4YWN0TWF0Y2ggfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JjZUV2YWx1YXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
@@ -158,6 +158,15 @@ export class IgxToggleDirective {
158
158
  if (openAnimationStarted || !(this._collapsed || closeAnimationStarted)) {
159
159
  return;
160
160
  }
161
+ const target = overlaySettings && overlaySettings.target;
162
+ // Get the size from the target element
163
+ if (target && target instanceof Element) {
164
+ const styles = window.getComputedStyle(target);
165
+ const componentSize = styles.getPropertyValue('--component-size');
166
+ const globalSize = styles.getPropertyValue('--ig-size');
167
+ const size = componentSize || globalSize || '3';
168
+ this.elementRef.nativeElement.style.setProperty('--ig-size', size);
169
+ }
161
170
  this._collapsed = false;
162
171
  this.cdr.detectChanges();
163
172
  if (!info) {
@@ -455,4 +464,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
455
464
  standalone: true
456
465
  }]
457
466
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
458
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRWhHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR25FLE9BQU8sRUFBZ0IsT0FBTyxFQUE0QixNQUFNLE1BQU0sQ0FBQzs7OztBQWV2RSxNQUFNLE9BQU8sa0JBQWtCO0lBZ0czQjs7T0FFRztJQUNILElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQVlEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUVXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csWUFBWTtRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBZUQ7O09BRUc7SUFDSCxZQUNZLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ08sY0FBaUMs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cEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFzRDZDLFFBQVE7NENBckMzQyxlQUFlO3NCQURyQixLQUFLO2dCQWFDLE1BQU07c0JBRFosS0FBSzt1QkFBQyxpQkFBaUI7Z0JBT2IsTUFBTTtzQkFEaEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBMEJqQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTzs7QUEyQ3pCOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFBbUIsT0FBZ0M7UUFBaEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7SUFBSSxDQUFDO0lBRXhELGNBQWM7SUFDZCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDOzhHQU5RLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnNvbHV0ZVNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS9zY3JvbGwvYWJzb2x1dGUtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IENhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzLCBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vY29ubmVjdGVkLXBvc2l0aW9uaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElneE5hdmlnYXRpb25TZXJ2aWNlLCBJVG9nZ2xlVmlldyB9IGZyb20gJy4uLy4uL2NvcmUvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBJZ3hPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvb3ZlcmxheSc7XG5pbXBvcnQgeyBJUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vSVBvc2l0aW9uU3RyYXRlZ3knO1xuaW1wb3J0IHsgT3ZlcmxheUNsb3NpbmdFdmVudEFyZ3MsIE92ZXJsYXlFdmVudEFyZ3MsIE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9nZ2xlVmlld0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogSWQgb2YgdGhlIHRvZ2dsZSB2aWV3ICovXG4gICAgaWQ6IHN0cmluZztcbiAgICBldmVudD86IEV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvZ2dsZVZpZXdDYW5jZWxhYmxlRXZlbnRBcmdzIGV4dGVuZHMgVG9nZ2xlVmlld0V2ZW50QXJncywgQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MgeyB9XG5cbkBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAndG9nZ2xlJyxcbiAgICBzZWxlY3RvcjogJ1tpZ3hUb2dnbGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIElUb2dnbGVWaWV3LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgYWZ0ZXIgdGhlIHRvZ2dsZSBjb250YWluZXIgaXMgb3BlbmVkLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIG9uVG9nZ2xlT3BlbmVkKGV2ZW50KSB7XG4gICAgICogICAgYWxlcnQoXCJUb2dnbGUgb3BlbmVkIVwiKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4VG9nZ2xlXG4gICAgICogICAob25PcGVuZWQpPSdvblRvZ2dsZU9wZW5lZCgkZXZlbnQpJz5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxUb2dnbGVWaWV3RXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgYmVmb3JlIHRoZSB0b2dnbGUgY29udGFpbmVyIGlzIG9wZW5lZC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBvblRvZ2dsZU9wZW5pbmcoZXZlbnQpIHtcbiAgICAgKiAgYWxlcnQoXCJUb2dnbGUgb3BlbmluZyFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRvZ2dsZVxuICAgICAqICAgKG9uT3BlbmluZyk9J29uVG9nZ2xlT3BlbmluZygkZXZlbnQpJz5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmluZyA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlVmlld0NhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCBhZnRlciB0aGUgdG9nZ2xlIGNvbnRhaW5lciBpcyBjbG9zZWQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogb25Ub2dnbGVDbG9zZWQoZXZlbnQpIHtcbiAgICAgKiAgYWxlcnQoXCJUb2dnbGUgY2xvc2VkIVwiKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4VG9nZ2xlXG4gICAgICogICAob25DbG9zZWQpPSdvblRvZ2dsZUNsb3NlZCgkZXZlbnQpJz5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUb2dnbGVWaWV3RXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgYmVmb3JlIHRoZSB0b2dnbGUgY29udGFpbmVyIGlzIGNsb3NlZC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBvblRvZ2dsZUNsb3NpbmcoZXZlbnQpIHtcbiAgICAgKiAgYWxlcnQoXCJUb2dnbGUgY2xvc2luZyFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgaWd4VG9nZ2xlXG4gICAgICogIChjbG9zaW5nKT0nb25Ub2dnbGVDbG9zaW5nKCRldmVudCknPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbG9zaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxUb2dnbGVWaWV3Q2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGFmdGVyIHRoZSB0b2dnbGUgZWxlbWVudCBpcyBhcHBlbmRlZCB0byB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogb25BcHBlbmRlZCgpIHtcbiAgICAgKiAgYWxlcnQoXCJDb250ZW50IGFwcGVuZGVkIVwiKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4VG9nZ2xlXG4gICAgICogICAob25BcHBlbmRlZCk9J29uVG9nZ2xlQXBwZW5kZWQoKSc+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFwcGVuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUb2dnbGVWaWV3RXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgd2hpY2ggaXMgcmVnaXN0ZXJlZCBpbnRvIGBJZ3hOYXZpZ2F0aW9uU2VydmljZWBcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbXlUb2dnbGVJZCA9IHRoaXMudG9nZ2xlLmlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC10b2dnbGUtLWhpZGRlbicpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJylcbiAgICBwdWJsaWMgZ2V0IGhpZGRlbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRvZ2dsZScpXG4gICAgcHVibGljIGdldCBkZWZhdWx0Q2xhc3MoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9vdmVybGF5SWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZCA9IHRydWU7XG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIF9vdmVybGF5U3ViRmlsdGVyOiBbTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPE92ZXJsYXlFdmVudEFyZ3M+LCBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248T3ZlcmxheUV2ZW50QXJncz5dID0gW1xuICAgICAgICBmaWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLl9vdmVybGF5SWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICBdO1xuICAgIHByaXZhdGUgX292ZXJsYXlPcGVuZWRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9vdmVybGF5Q2xvc2luZ1N1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX292ZXJsYXlDbG9zZWRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9vdmVybGF5Q29udGVudEFwcGVuZGVkU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KElneE92ZXJsYXlTZXJ2aWNlKSBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IElneE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBJZ3hOYXZpZ2F0aW9uU2VydmljZSkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSB0b2dnbGUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5teVRvZ2dsZS5vcGVuKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIG9wZW4ob3ZlcmxheVNldHRpbmdzPzogT3ZlcmxheVNldHRpbmdzKSB7XG4gICAgICAgIC8vICBpZiB0aGVyZSBpcyBvcGVuIGFuaW1hdGlvbiBkbyBub3RoaW5nXG4gICAgICAgIC8vICBpZiB0b2dnbGUgaXMgbm90IGNvbGxhcHNlZCBhbmQgdGhlcmUgaXMgbm8gY2xvc2UgYW5pbWF0aW9uIGRvIG5vdGhpbmdcbiAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMub3ZlcmxheVNlcnZpY2UuZ2V0T3ZlcmxheUJ5SWQodGhpcy5fb3ZlcmxheUlkKTtcbiAgICAgICAgY29uc3Qgb3BlbkFuaW1hdGlvblN0YXJ0ZWQgPSBpbmZvPy5vcGVuQW5pbWF0aW9uUGxheWVyPy5oYXNTdGFydGVkKCkgPz8gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNsb3NlQW5pbWF0aW9uU3RhcnRlZCA9IGluZm8/LmNsb3NlQW5pbWF0aW9uUGxheWVyPy5oYXNTdGFydGVkKCkgPz8gZmFsc2U7XG4gICAgICAgIGlmIChvcGVuQW5pbWF0aW9uU3RhcnRlZCB8fCAhKHRoaXMuX2NvbGxhcHNlZCB8fCBjbG9zZUFuaW1hdGlvblN0YXJ0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGlmICghaW5mbykge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlJZCA9IHRoaXMub3ZlcmxheVNlcnZpY2UuYXR0YWNoKHRoaXMuZWxlbWVudFJlZiwgb3ZlcmxheVNldHRpbmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3M6IFRvZ2dsZVZpZXdDYW5jZWxhYmxlRXZlbnRBcmdzID0geyBjYW5jZWw6IGZhbHNlLCBvd25lcjogdGhpcywgaWQ6IHRoaXMuX292ZXJsYXlJZCB9O1xuICAgICAgICB0aGlzLm9wZW5pbmcuZW1pdChhcmdzKTtcbiAgICAgICAgaWYgKGFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmRldGFjaCh0aGlzLl9vdmVybGF5SWQpO1xuICAgICAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9vdmVybGF5SWQ7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5zaG93KHRoaXMuX292ZXJsYXlJZCwgb3ZlcmxheVNldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIHRvZ2dsZS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLm15VG9nZ2xlLmNsb3NlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgLy8gIGlmIHRvZ2dsZSBpcyBjb2xsYXBzZWQgZG8gbm90aGluZ1xuICAgICAgICAvLyAgaWYgdGhlcmUgaXMgY2xvc2UgYW5pbWF0aW9uIGRvIG5vdGhpbmcsIHRvZ2dsZSB3aWxsIGNsb3NlIGFueXdheVxuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5vdmVybGF5U2VydmljZS5nZXRPdmVybGF5QnlJZCh0aGlzLl9vdmVybGF5SWQpO1xuICAgICAgICBjb25zdCBjbG9zZUFuaW1hdGlvblN0YXJ0ZWQgPSBpbmZvPy5jbG9zZUFuaW1hdGlvblBsYXllcj8uaGFzU3RhcnRlZCgpIHx8IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5fY29sbGFwc2VkIHx8IGNsb3NlQW5pbWF0aW9uU3RhcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5oaWRlKHRoaXMuX292ZXJsYXlJZCwgZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIG9yIGNsb3NlcyB0aGUgdG9nZ2xlLCBkZXBlbmRpbmcgb24gaXRzIGN1cnJlbnQgc3RhdGUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5teVRvZ2dsZS50b2dnbGUoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncykge1xuICAgICAgICAvLyAgaWYgdG9nZ2xlIGlzIGNvbGxhcHNlZCBjYWxsIG9wZW5cbiAgICAgICAgLy8gIGlmIHRoZXJlIGlzIHJ1bm5pbmcgY2xvc2UgYW5pbWF0aW9uIGNhbGwgb3BlblxuICAgICAgICBpZiAodGhpcy5jb2xsYXBzZWQgfHwgdGhpcy5pc0Nsb3NpbmcpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbihvdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBpc0Nsb3NpbmcoKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmdldE92ZXJsYXlCeUlkKHRoaXMuX292ZXJsYXlJZCk7XG4gICAgICAgIHJldHVybiBpbmZvID8gaW5mby5jbG9zZUFuaW1hdGlvblBsYXllcj8uaGFzU3RhcnRlZCgpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgaWQgb2YgdGhlIG92ZXJsYXkgdGhlIGNvbnRlbnQgaXMgcmVuZGVyZWQgaW4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMubXlUb2dnbGUub3ZlcmxheUlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgb3ZlcmxheUlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheUlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcG9zaXRpb25zIHRoZSB0b2dnbGUuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMubXlUb2dnbGUucmVwb3NpdGlvbigpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvc2l0aW9uKCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnJlcG9zaXRpb24odGhpcy5fb3ZlcmxheUlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXRzIHRoZSBjb250ZW50IGFsb25nIHRoZSBjb3JyZXNwb25kaW5nIGF4aXMgYnkgdGhlIHByb3ZpZGVkIGFtb3VudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRPZmZzZXQoZGVsdGFYOiBudW1iZXIsIGRlbHRhWTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2Uuc2V0T2Zmc2V0KHRoaXMuX292ZXJsYXlJZCwgZGVsdGFYLCBkZWx0YVkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXJ2aWNlICYmIHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuYWRkKHRoaXMuaWQsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNlcnZpY2UgJiYgdGhpcy5pZCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5yZW1vdmUodGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlJZCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5kZXRhY2godGhpcy5fb3ZlcmxheUlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3ZlcmxheUNsb3NlZCA9IChlKSA9PiB7XG4gICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmRldGFjaCh0aGlzLm92ZXJsYXlJZCk7XG4gICAgICAgIGNvbnN0IGFyZ3M6IFRvZ2dsZVZpZXdFdmVudEFyZ3MgPSB7IG93bmVyOiB0aGlzLCBpZDogdGhpcy5fb3ZlcmxheUlkLCBldmVudDogZS5ldmVudCB9O1xuICAgICAgICBkZWxldGUgdGhpcy5fb3ZlcmxheUlkO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KGFyZ3MpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmUoKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlDb250ZW50QXBwZW5kZWRTdWIgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlXG4gICAgICAgICAgICAuY29udGVudEFwcGVuZGVkXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdzOiBUb2dnbGVWaWV3RXZlbnRBcmdzID0geyBvd25lcjogdGhpcywgaWQ6IHRoaXMuX292ZXJsYXlJZCB9O1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kZWQuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX292ZXJsYXlPcGVuZWRTdWIgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbmVkXG4gICAgICAgICAgICAucGlwZSguLi50aGlzLl9vdmVybGF5U3ViRmlsdGVyKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJnczogVG9nZ2xlVmlld0V2ZW50QXJncyA9IHsgb3duZXI6IHRoaXMsIGlkOiB0aGlzLl9vdmVybGF5SWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZC5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fb3ZlcmxheUNsb3NpbmdTdWIgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlXG4gICAgICAgICAgICAuY2xvc2luZ1xuICAgICAgICAgICAgLnBpcGUoLi4udGhpcy5fb3ZlcmxheVN1YkZpbHRlcilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE92ZXJsYXlDbG9zaW5nRXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJnczogVG9nZ2xlVmlld0NhbmNlbGFibGVFdmVudEFyZ3MgPSB7IGNhbmNlbDogZmFsc2UsIGV2ZW50OiBlLmV2ZW50LCBvd25lcjogdGhpcywgaWQ6IHRoaXMuX292ZXJsYXlJZCB9O1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2luZy5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgICAgIGUuY2FuY2VsID0gYXJncy5jYW5jZWw7XG5cbiAgICAgICAgICAgICAgICAvLyAgaW4gY2FzZSBldmVudCBpcyBub3QgY2FuY2VsZWQgdGhpcyB3aWxsIGNsb3NlIHRoZSB0b2dnbGUgYW5kIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmUuXG4gICAgICAgICAgICAgICAgLy8gIE90aGVyd2lzZSBpZiBmb3Igc29tZSByZWFzb24sIGUuZy4gY2xvc2Ugb24gb3V0c2lkZSBjbGljaywgY2xvc2UoKSBnZXRzIGNhbGxlZCBiZWZvcmVcbiAgICAgICAgICAgICAgICAvLyAgb25DbG9zZWQgd2FzIGZpcmVkIHdlIHdpbGwgZW5kIHdpdGggY2FsbGluZyBvbkNsb3NpbmcgbW9yZSB0aGFuIG9uY2VcbiAgICAgICAgICAgICAgICBpZiAoIWUuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24odGhpcy5fb3ZlcmxheUNsb3NpbmdTdWIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX292ZXJsYXlDbG9zZWRTdWIgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlXG4gICAgICAgICAgICAuY2xvc2VkXG4gICAgICAgICAgICAucGlwZSguLi50aGlzLl9vdmVybGF5U3ViRmlsdGVyKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLm92ZXJsYXlDbG9zZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24odGhpcy5fb3ZlcmxheU9wZW5lZFN1Yik7XG4gICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24odGhpcy5fb3ZlcmxheUNsb3NpbmdTdWIpO1xuICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKHRoaXMuX292ZXJsYXlDbG9zZWRTdWIpO1xuICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKHRoaXMuX292ZXJsYXlDb250ZW50QXBwZW5kZWRTdWIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbiAmJiAhc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAndG9nZ2xlLWFjdGlvbicsXG4gICAgc2VsZWN0b3I6ICdbaWd4VG9nZ2xlQWN0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hUb2dnbGVBY3Rpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgc2V0dGluZ3MgdGhhdCBjb250cm9sIHRoZSB0b2dnbGUgb3ZlcmxheSBwb3NpdGlvbmluZywgaW50ZXJhY3Rpb24gYW5kIHNjcm9sbCBiZWhhdmlvci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3Qgc2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncyA9IHtcbiAgICAgKiAgICAgIGNsb3NlT25PdXRzaWRlQ2xpY2s6IGZhbHNlLFxuICAgICAqICAgICAgbW9kYWw6IGZhbHNlXG4gICAgICogIH1cbiAgICAgKiBgYGBcbiAgICAgKiAtLS1cbiAgICAgKiBgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxkaXYgaWd4VG9nZ2xlQWN0aW9uIFtvdmVybGF5U2V0dGluZ3NdPVwic2V0dGluZ3NcIj48L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncztcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgd2hlcmUgdGhlIHRvZ2dsZSBlbGVtZW50IG92ZXJsYXkgc2hvdWxkIGJlIGF0dGFjaGVkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8ZGl2IGlneFRvZ2dsZUFjdGlvbiBbaWd4VG9nZ2xlT3V0bGV0XT1cIm91dGxldFwiPjwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqIFdoZXJlIGBvdXRsZXRgIGluIGFuIGluc3RhbmNlIG9mIGBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlYCBvciBhbiBgRWxlbWVudFJlZmBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFRvZ2dsZU91dGxldCcpXG4gICAgcHVibGljIG91dGxldDogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZSB8IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hUb2dnbGVBY3Rpb24nKVxuICAgIHB1YmxpYyBzZXQgdGFyZ2V0KHRhcmdldDogYW55KSB7XG4gICAgICAgIGlmICh0YXJnZXQgIT09IG51bGwgJiYgdGFyZ2V0ICE9PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdGFyZ2V0KCk6IGFueSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0KHRoaXMuX3RhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX292ZXJsYXlEZWZhdWx0czogT3ZlcmxheVNldHRpbmdzO1xuICAgIHByb3RlY3RlZCBfdGFyZ2V0OiBJVG9nZ2xlVmlldyB8IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogSWd4TmF2aWdhdGlvblNlcnZpY2UpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBwdWJsaWMgb25DbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMub3V0bGV0KSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMub3V0bGV0ID0gdGhpcy5vdXRsZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbG9uZWRTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJsYXlEZWZhdWx0cywgdGhpcy5vdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnVwZGF0ZU92ZXJsYXlTZXR0aW5ncyhjbG9uZWRTZXR0aW5ncyk7XG4gICAgICAgIHRoaXMudGFyZ2V0LnRvZ2dsZShjbG9uZWRTZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMgPSB7XG4gICAgICAgICAgICB0YXJnZXQ6IHRhcmdldEVsZW1lbnQsXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiBuZXcgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSgpLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBBYnNvbHV0ZVNjcm9sbFN0cmF0ZWd5KCksXG4gICAgICAgICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgbW9kYWw6IGZhbHNlLFxuICAgICAgICAgICAgZXhjbHVkZUZyb21PdXRzaWRlQ2xpY2s6IFt0YXJnZXRFbGVtZW50IGFzIEhUTUxFbGVtZW50XVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgcHJvdmlkZWQgb3ZlcmxheSBzZXR0aW5nc1xuICAgICAqXG4gICAgICogQHBhcmFtIHNldHRpbmdzIHNldHRpbmdzIHRvIHVwZGF0ZVxuICAgICAqIEByZXR1cm5zIHJldHVybnMgdXBkYXRlZCBjb3B5IG9mIHByb3ZpZGVkIG92ZXJsYXkgc2V0dGluZ3NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlT3ZlcmxheVNldHRpbmdzKHNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MpOiBPdmVybGF5U2V0dGluZ3Mge1xuICAgICAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MucG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneUNsb25lOiBJUG9zaXRpb25TdHJhdGVneSA9IHNldHRpbmdzLnBvc2l0aW9uU3RyYXRlZ3kuY2xvbmUoKTtcbiAgICAgICAgICAgIHNldHRpbmdzLnRhcmdldCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgc2V0dGluZ3MucG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3lDbG9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZXR0aW5ncztcbiAgICB9XG59XG5cbi8qKlxuICogTWFyayBhbiBlbGVtZW50IGFzIGFuIGlneE92ZXJsYXkgb3V0bGV0IGNvbnRhaW5lci5cbiAqIERpcmVjdGl2ZSBpbnN0YW5jZSBpcyBleHBvcnRlZCBhcyBgb3ZlcmxheS1vdXRsZXRgIHRvIGJlIGFzc2lnbmVkIHRvIHRlbXBsYXRlcyB2YXJpYWJsZXM6XG4gKiBgYGBodG1sXG4gKiA8ZGl2IGlneE92ZXJsYXlPdXRsZXQgI291dGxldD1cIm92ZXJsYXktb3V0bGV0XCI+PC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgZXhwb3J0QXM6ICdvdmVybGF5LW91dGxldCcsXG4gICAgc2VsZWN0b3I6ICdbaWd4T3ZlcmxheU91dGxldF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7IH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxufVxuIl19
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRWhHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR25FLE9BQU8sRUFBZ0IsT0FBTyxFQUE0QixNQUFNLE1BQU0sQ0FBQzs7OztBQWV2RSxNQUFNLE9BQU8sa0JBQWtCO0lBZ0czQjs7T0FFRztJQUNILElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQVlEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUVXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csWUFBWTtRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBZUQ7O09BRUc7SUFDSCxZQUNZLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ08sY0FBaUMs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Z0JBQWdCO29CQUMxQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzb2x1dGVTY3JvbGxTdHJhdGVneSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvc2Nyb2xsL2Fic29sdXRlLXNjcm9sbC1zdHJhdGVneSc7XG5pbXBvcnQgeyBDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3Bvc2l0aW9uL2Nvbm5lY3RlZC1wb3NpdGlvbmluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZ3hOYXZpZ2F0aW9uU2VydmljZSwgSVRvZ2dsZVZpZXcgfSBmcm9tICcuLi8uLi9jb3JlL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgSWd4T3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L292ZXJsYXknO1xuaW1wb3J0IHsgSVBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3Bvc2l0aW9uL0lQb3NpdGlvblN0cmF0ZWd5JztcbmltcG9ydCB7IE92ZXJsYXlDbG9zaW5nRXZlbnRBcmdzLCBPdmVybGF5RXZlbnRBcmdzLCBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIFN1YmplY3QsIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvZ2dsZVZpZXdFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgLyoqIElkIG9mIHRoZSB0b2dnbGUgdmlldyAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZXZlbnQ/OiBFdmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVWaWV3Q2FuY2VsYWJsZUV2ZW50QXJncyBleHRlbmRzIFRvZ2dsZVZpZXdFdmVudEFyZ3MsIENhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzIHsgfVxuXG5ARGlyZWN0aXZlKHtcbiAgICBleHBvcnRBczogJ3RvZ2dsZScsXG4gICAgc2VsZWN0b3I6ICdbaWd4VG9nZ2xlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hUb2dnbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBJVG9nZ2xlVmlldywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGFmdGVyIHRoZSB0b2dnbGUgY29udGFpbmVyIGlzIG9wZW5lZC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBvblRvZ2dsZU9wZW5lZChldmVudCkge1xuICAgICAqICAgIGFsZXJ0KFwiVG9nZ2xlIG9wZW5lZCFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRvZ2dsZVxuICAgICAqICAgKG9uT3BlbmVkKT0nb25Ub2dnbGVPcGVuZWQoJGV2ZW50KSc+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlVmlld0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGJlZm9yZSB0aGUgdG9nZ2xlIGNvbnRhaW5lciBpcyBvcGVuZWQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogb25Ub2dnbGVPcGVuaW5nKGV2ZW50KSB7XG4gICAgICogIGFsZXJ0KFwiVG9nZ2xlIG9wZW5pbmchXCIpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hUb2dnbGVcbiAgICAgKiAgIChvbk9wZW5pbmcpPSdvblRvZ2dsZU9wZW5pbmcoJGV2ZW50KSc+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPFRvZ2dsZVZpZXdDYW5jZWxhYmxlRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgYWZ0ZXIgdGhlIHRvZ2dsZSBjb250YWluZXIgaXMgY2xvc2VkLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIG9uVG9nZ2xlQ2xvc2VkKGV2ZW50KSB7XG4gICAgICogIGFsZXJ0KFwiVG9nZ2xlIGNsb3NlZCFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRvZ2dsZVxuICAgICAqICAgKG9uQ2xvc2VkKT0nb25Ub2dnbGVDbG9zZWQoJGV2ZW50KSc+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlVmlld0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGJlZm9yZSB0aGUgdG9nZ2xlIGNvbnRhaW5lciBpcyBjbG9zZWQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogb25Ub2dnbGVDbG9zaW5nKGV2ZW50KSB7XG4gICAgICogIGFsZXJ0KFwiVG9nZ2xlIGNsb3NpbmchXCIpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogIGlneFRvZ2dsZVxuICAgICAqICAoY2xvc2luZyk9J29uVG9nZ2xlQ2xvc2luZygkZXZlbnQpJz5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xvc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlVmlld0NhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCBhZnRlciB0aGUgdG9nZ2xlIGVsZW1lbnQgaXMgYXBwZW5kZWQgdG8gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIG9uQXBwZW5kZWQoKSB7XG4gICAgICogIGFsZXJ0KFwiQ29udGVudCBhcHBlbmRlZCFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneFRvZ2dsZVxuICAgICAqICAgKG9uQXBwZW5kZWQpPSdvblRvZ2dsZUFwcGVuZGVkKCknPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBhcHBlbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlVmlld0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHdoaWNoIGlzIHJlZ2lzdGVyZWQgaW50byBgSWd4TmF2aWdhdGlvblNlcnZpY2VgXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IG15VG9nZ2xlSWQgPSB0aGlzLnRvZ2dsZS5pZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtdG9nZ2xlLS1oaWRkZW4nKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gICAgcHVibGljIGdldCBoaWRkZW5DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC10b2dnbGUnKVxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfb3ZlcmxheUlkOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9jb2xsYXBzZWQgPSB0cnVlO1xuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBfb3ZlcmxheVN1YkZpbHRlcjogW01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxPdmVybGF5RXZlbnRBcmdzPiwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPE92ZXJsYXlFdmVudEFyZ3M+XSA9IFtcbiAgICAgICAgZmlsdGVyKHggPT4geC5pZCA9PT0gdGhpcy5fb3ZlcmxheUlkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgXTtcbiAgICBwcml2YXRlIF9vdmVybGF5T3BlbmVkU3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfb3ZlcmxheUNsb3NpbmdTdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9vdmVybGF5Q2xvc2VkU3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRlbnRBcHBlbmRlZFN1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJZ3hPdmVybGF5U2VydmljZSkgcHJvdGVjdGVkIG92ZXJsYXlTZXJ2aWNlOiBJZ3hPdmVybGF5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogSWd4TmF2aWdhdGlvblNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgdG9nZ2xlLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMubXlUb2dnbGUub3BlbigpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncykge1xuICAgICAgICAvLyAgaWYgdGhlcmUgaXMgb3BlbiBhbmltYXRpb24gZG8gbm90aGluZ1xuICAgICAgICAvLyAgaWYgdG9nZ2xlIGlzIG5vdCBjb2xsYXBzZWQgYW5kIHRoZXJlIGlzIG5vIGNsb3NlIGFuaW1hdGlvbiBkbyBub3RoaW5nXG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmdldE92ZXJsYXlCeUlkKHRoaXMuX292ZXJsYXlJZCk7XG4gICAgICAgIGNvbnN0IG9wZW5BbmltYXRpb25TdGFydGVkID0gaW5mbz8ub3BlbkFuaW1hdGlvblBsYXllcj8uaGFzU3RhcnRlZCgpID8/IGZhbHNlO1xuICAgICAgICBjb25zdCBjbG9zZUFuaW1hdGlvblN0YXJ0ZWQgPSBpbmZvPy5jbG9zZUFuaW1hdGlvblBsYXllcj8uaGFzU3RhcnRlZCgpID8/IGZhbHNlO1xuICAgICAgICBpZiAob3BlbkFuaW1hdGlvblN0YXJ0ZWQgfHwgISh0aGlzLl9jb2xsYXBzZWQgfHwgY2xvc2VBbmltYXRpb25TdGFydGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gb3ZlcmxheVNldHRpbmdzICYmIG92ZXJsYXlTZXR0aW5ncy50YXJnZXQ7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBzaXplIGZyb20gdGhlIHRhcmdldCBlbGVtZW50XG4gICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFNpemUgPSBzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnLS1jb21wb25lbnQtc2l6ZScpO1xuICAgICAgICAgICAgY29uc3QgZ2xvYmFsU2l6ZSA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLWlnLXNpemUnKTtcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSBjb21wb25lbnRTaXplIHx8IGdsb2JhbFNpemUgfHwgJzMnO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taWctc2l6ZScsIHNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBpZiAoIWluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5SWQgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmF0dGFjaCh0aGlzLmVsZW1lbnRSZWYsIG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzOiBUb2dnbGVWaWV3Q2FuY2VsYWJsZUV2ZW50QXJncyA9IHsgY2FuY2VsOiBmYWxzZSwgb3duZXI6IHRoaXMsIGlkOiB0aGlzLl9vdmVybGF5SWQgfTtcbiAgICAgICAgdGhpcy5vcGVuaW5nLmVtaXQoYXJncyk7XG4gICAgICAgIGlmIChhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5kZXRhY2godGhpcy5fb3ZlcmxheUlkKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fb3ZlcmxheUlkO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2Uuc2hvdyh0aGlzLl9vdmVybGF5SWQsIG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2VzIHRoZSB0b2dnbGUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5teVRvZ2dsZS5jbG9zZSgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShldmVudD86IEV2ZW50KSB7XG4gICAgICAgIC8vICBpZiB0b2dnbGUgaXMgY29sbGFwc2VkIGRvIG5vdGhpbmdcbiAgICAgICAgLy8gIGlmIHRoZXJlIGlzIGNsb3NlIGFuaW1hdGlvbiBkbyBub3RoaW5nLCB0b2dnbGUgd2lsbCBjbG9zZSBhbnl3YXlcbiAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMub3ZlcmxheVNlcnZpY2UuZ2V0T3ZlcmxheUJ5SWQodGhpcy5fb3ZlcmxheUlkKTtcbiAgICAgICAgY29uc3QgY2xvc2VBbmltYXRpb25TdGFydGVkID0gaW5mbz8uY2xvc2VBbmltYXRpb25QbGF5ZXI/Lmhhc1N0YXJ0ZWQoKSB8fCBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxhcHNlZCB8fCBjbG9zZUFuaW1hdGlvblN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuaGlkZSh0aGlzLl9vdmVybGF5SWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBvciBjbG9zZXMgdGhlIHRvZ2dsZSwgZGVwZW5kaW5nIG9uIGl0cyBjdXJyZW50IHN0YXRlLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMubXlUb2dnbGUudG9nZ2xlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZShvdmVybGF5U2V0dGluZ3M/OiBPdmVybGF5U2V0dGluZ3MpIHtcbiAgICAgICAgLy8gIGlmIHRvZ2dsZSBpcyBjb2xsYXBzZWQgY2FsbCBvcGVuXG4gICAgICAgIC8vICBpZiB0aGVyZSBpcyBydW5uaW5nIGNsb3NlIGFuaW1hdGlvbiBjYWxsIG9wZW5cbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkIHx8IHRoaXMuaXNDbG9zaW5nKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4ob3ZlcmxheVNldHRpbmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgaXNDbG9zaW5nKCkge1xuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5vdmVybGF5U2VydmljZS5nZXRPdmVybGF5QnlJZCh0aGlzLl9vdmVybGF5SWQpO1xuICAgICAgICByZXR1cm4gaW5mbyA/IGluZm8uY2xvc2VBbmltYXRpb25QbGF5ZXI/Lmhhc1N0YXJ0ZWQoKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGlkIG9mIHRoZSBvdmVybGF5IHRoZSBjb250ZW50IGlzIHJlbmRlcmVkIGluLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLm15VG9nZ2xlLm92ZXJsYXlJZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG92ZXJsYXlJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXlJZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXBvc2l0aW9ucyB0aGUgdG9nZ2xlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLm15VG9nZ2xlLnJlcG9zaXRpb24oKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVwb3NpdGlvbigpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5yZXBvc2l0aW9uKHRoaXMuX292ZXJsYXlJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0cyB0aGUgY29udGVudCBhbG9uZyB0aGUgY29ycmVzcG9uZGluZyBheGlzIGJ5IHRoZSBwcm92aWRlZCBhbW91bnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0T2Zmc2V0KGRlbHRhWDogbnVtYmVyLCBkZWx0YVk6IG51bWJlcikge1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnNldE9mZnNldCh0aGlzLl9vdmVybGF5SWQsIGRlbHRhWCwgZGVsdGFZKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU2VydmljZSAmJiB0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmFkZCh0aGlzLmlkLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXJ2aWNlICYmIHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UucmVtb3ZlKHRoaXMuaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5SWQpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuZGV0YWNoKHRoaXMuX292ZXJsYXlJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG92ZXJsYXlDbG9zZWQgPSAoZSkgPT4ge1xuICAgICAgICB0aGlzLl9jb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5kZXRhY2godGhpcy5vdmVybGF5SWQpO1xuICAgICAgICBjb25zdCBhcmdzOiBUb2dnbGVWaWV3RXZlbnRBcmdzID0geyBvd25lcjogdGhpcywgaWQ6IHRoaXMuX292ZXJsYXlJZCwgZXZlbnQ6IGUuZXZlbnQgfTtcbiAgICAgICAgZGVsZXRlIHRoaXMuX292ZXJsYXlJZDtcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdChhcmdzKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc3Vic2NyaWJlKCkge1xuICAgICAgICB0aGlzLl9vdmVybGF5Q29udGVudEFwcGVuZGVkU3ViID0gdGhpcy5vdmVybGF5U2VydmljZVxuICAgICAgICAgICAgLmNvbnRlbnRBcHBlbmRlZFxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJnczogVG9nZ2xlVmlld0V2ZW50QXJncyA9IHsgb3duZXI6IHRoaXMsIGlkOiB0aGlzLl9vdmVybGF5SWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZGVkLmVtaXQoYXJncyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5T3BlbmVkU3ViID0gdGhpcy5vdmVybGF5U2VydmljZVxuICAgICAgICAgICAgLm9wZW5lZFxuICAgICAgICAgICAgLnBpcGUoLi4udGhpcy5fb3ZlcmxheVN1YkZpbHRlcilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3M6IFRvZ2dsZVZpZXdFdmVudEFyZ3MgPSB7IG93bmVyOiB0aGlzLCBpZDogdGhpcy5fb3ZlcmxheUlkIH07XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuZWQuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX292ZXJsYXlDbG9zaW5nU3ViID0gdGhpcy5vdmVybGF5U2VydmljZVxuICAgICAgICAgICAgLmNsb3NpbmdcbiAgICAgICAgICAgIC5waXBlKC4uLnRoaXMuX292ZXJsYXlTdWJGaWx0ZXIpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChlOiBPdmVybGF5Q2xvc2luZ0V2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3M6IFRvZ2dsZVZpZXdDYW5jZWxhYmxlRXZlbnRBcmdzID0geyBjYW5jZWw6IGZhbHNlLCBldmVudDogZS5ldmVudCwgb3duZXI6IHRoaXMsIGlkOiB0aGlzLl9vdmVybGF5SWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgICAgICAgICBlLmNhbmNlbCA9IGFyZ3MuY2FuY2VsO1xuXG4gICAgICAgICAgICAgICAgLy8gIGluIGNhc2UgZXZlbnQgaXMgbm90IGNhbmNlbGVkIHRoaXMgd2lsbCBjbG9zZSB0aGUgdG9nZ2xlIGFuZCB3ZSBuZWVkIHRvIHVuc3Vic2NyaWJlLlxuICAgICAgICAgICAgICAgIC8vICBPdGhlcndpc2UgaWYgZm9yIHNvbWUgcmVhc29uLCBlLmcuIGNsb3NlIG9uIG91dHNpZGUgY2xpY2ssIGNsb3NlKCkgZ2V0cyBjYWxsZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgLy8gIG9uQ2xvc2VkIHdhcyBmaXJlZCB3ZSB3aWxsIGVuZCB3aXRoIGNhbGxpbmcgb25DbG9zaW5nIG1vcmUgdGhhbiBvbmNlXG4gICAgICAgICAgICAgICAgaWYgKCFlLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKHRoaXMuX292ZXJsYXlDbG9zaW5nU3ViKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5Q2xvc2VkU3ViID0gdGhpcy5vdmVybGF5U2VydmljZVxuICAgICAgICAgICAgLmNsb3NlZFxuICAgICAgICAgICAgLnBpcGUoLi4udGhpcy5fb3ZlcmxheVN1YkZpbHRlcilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vdmVybGF5Q2xvc2VkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKHRoaXMuX292ZXJsYXlPcGVuZWRTdWIpO1xuICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKHRoaXMuX292ZXJsYXlDbG9zaW5nU3ViKTtcbiAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbih0aGlzLl9vdmVybGF5Q2xvc2VkU3ViKTtcbiAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbih0aGlzLl9vdmVybGF5Q29udGVudEFwcGVuZGVkU3ViKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24gJiYgIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBleHBvcnRBczogJ3RvZ2dsZS1hY3Rpb24nLFxuICAgIHNlbGVjdG9yOiAnW2lneFRvZ2dsZUFjdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4VG9nZ2xlQWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlIHNldHRpbmdzIHRoYXQgY29udHJvbCB0aGUgdG9nZ2xlIG92ZXJsYXkgcG9zaXRpb25pbmcsIGludGVyYWN0aW9uIGFuZCBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7XG4gICAgICogICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiBmYWxzZSxcbiAgICAgKiAgICAgIG1vZGFsOiBmYWxzZVxuICAgICAqICB9XG4gICAgICogYGBgXG4gICAgICogLS0tXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8ZGl2IGlneFRvZ2dsZUFjdGlvbiBbb3ZlcmxheVNldHRpbmdzXT1cInNldHRpbmdzXCI+PC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3M7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXJlIHRoZSB0b2dnbGUgZWxlbWVudCBvdmVybGF5IHNob3VsZCBiZSBhdHRhY2hlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tc2V0LS0+XG4gICAgICogPGRpdiBpZ3hUb2dnbGVBY3Rpb24gW2lneFRvZ2dsZU91dGxldF09XCJvdXRsZXRcIj48L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKiBXaGVyZSBgb3V0bGV0YCBpbiBhbiBpbnN0YW5jZSBvZiBgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZWAgb3IgYW4gYEVsZW1lbnRSZWZgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hUb2dnbGVPdXRsZXQnKVxuICAgIHB1YmxpYyBvdXRsZXQ6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUgfCBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4VG9nZ2xlQWN0aW9uJylcbiAgICBwdWJsaWMgc2V0IHRhcmdldCh0YXJnZXQ6IGFueSkge1xuICAgICAgICBpZiAodGFyZ2V0ICE9PSBudWxsICYmIHRhcmdldCAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3RhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldCh0aGlzLl90YXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9vdmVybGF5RGVmYXVsdHM6IE92ZXJsYXlTZXR0aW5ncztcbiAgICBwcm90ZWN0ZWQgX3RhcmdldDogSVRvZ2dsZVZpZXcgfCBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIEBPcHRpb25hbCgpIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IElneE5hdmlnYXRpb25TZXJ2aWNlKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHVibGljIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLm91dGxldCkge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheURlZmF1bHRzLm91dGxldCA9IHRoaXMub3V0bGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xvbmVkU2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVybGF5RGVmYXVsdHMsIHRoaXMub3ZlcmxheVNldHRpbmdzKTtcbiAgICAgICAgdGhpcy51cGRhdGVPdmVybGF5U2V0dGluZ3MoY2xvbmVkU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnRhcmdldC50b2dnbGUoY2xvbmVkU2V0dGluZ3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5fb3ZlcmxheURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXRFbGVtZW50LFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogbmV3IENvbm5lY3RlZFBvc2l0aW9uaW5nU3RyYXRlZ3koKSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiBuZXcgQWJzb2x1dGVTY3JvbGxTdHJhdGVneSgpLFxuICAgICAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcbiAgICAgICAgICAgIG1vZGFsOiBmYWxzZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVGcm9tT3V0c2lkZUNsaWNrOiBbdGFyZ2V0RWxlbWVudCBhcyBIVE1MRWxlbWVudF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHByb3ZpZGVkIG92ZXJsYXkgc2V0dGluZ3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyB0byB1cGRhdGVcbiAgICAgKiBAcmV0dXJucyByZXR1cm5zIHVwZGF0ZWQgY29weSBvZiBwcm92aWRlZCBvdmVybGF5IHNldHRpbmdzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZU92ZXJsYXlTZXR0aW5ncyhzZXR0aW5nczogT3ZlcmxheVNldHRpbmdzKTogT3ZlcmxheVNldHRpbmdzIHtcbiAgICAgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLnBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3lDbG9uZTogSVBvc2l0aW9uU3RyYXRlZ3kgPSBzZXR0aW5ncy5wb3NpdGlvblN0cmF0ZWd5LmNsb25lKCk7XG4gICAgICAgICAgICBzZXR0aW5ncy50YXJnZXQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHNldHRpbmdzLnBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5Q2xvbmU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgfVxufVxuXG4vKipcbiAqIE1hcmsgYW4gZWxlbWVudCBhcyBhbiBpZ3hPdmVybGF5IG91dGxldCBjb250YWluZXIuXG4gKiBEaXJlY3RpdmUgaW5zdGFuY2UgaXMgZXhwb3J0ZWQgYXMgYG92ZXJsYXktb3V0bGV0YCB0byBiZSBhc3NpZ25lZCB0byB0ZW1wbGF0ZXMgdmFyaWFibGVzOlxuICogYGBgaHRtbFxuICogPGRpdiBpZ3hPdmVybGF5T3V0bGV0ICNvdXRsZXQ9XCJvdmVybGF5LW91dGxldFwiPjwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAnb3ZlcmxheS1vdXRsZXQnLFxuICAgIHNlbGVjdG9yOiAnW2lneE92ZXJsYXlPdXRsZXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PikgeyB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2NvbW1vbi9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBHcmlkS2V5ZG93blRhcmdldFR5cGUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IENlbGxUeXBlLCBDb2x1bW5UeXBlLCBHcmlkVHlwZSwgUm93VHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbnMtdHJlZSc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEJhc2VFeHBvcnRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydGVyLWNvbW1vbi9iYXNlLWV4cG9ydC1zZXJ2aWNlJztcbmltcG9ydCB7IElneEV4cG9ydGVyT3B0aW9uc0Jhc2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHBvcnRlci1jb21tb24vZXhwb3J0ZXItb3B0aW9ucy1iYXNlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcblxuLyoqIFRoZSBldmVudCBhcmd1bWVudHMgd2hlbiBkYXRhIGZyb20gYSBncmlkIGlzIGJlaW5nIGNvcGllZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRDbGlwYm9hcmRFdmVudCB7XG4gICAgLyoqIGBkYXRhYCBjYW4gYmUgb2YgYW55IHR5cGUgYW5kIHJlZmVyZXMgdG8gdGhlIGRhdGEgdGhhdCBpcyBiZWluZyBjb3BpZWQvc3RvcmVkIHRvIHRoZSBjbGlwYm9hcmQgKi9cbiAgICBkYXRhOiBhbnlbXTtcbiAgICAvKiogXG4gICAgICogYGNhbmNlbGAgcmV0dXJucyB3aGV0aGVyIGFuIGV4dGVybmFsIGV2ZW50IGhhcyBpbnRlcmVwdGVkIHRoZSBjb3B5aW5nIFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlXG4gICAgICovXG4gICAgY2FuY2VsOiBib29sZWFuO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBldmVudCBhcmd1bWVudCByZWxhdGVkIHRvIGdyaWQgY2VsbCBpbnRlcmFjdGlvbnMuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkQ2VsbEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBjZWxsIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudC4gKi9cbiAgICBjZWxsOiBDZWxsVHlwZTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQgdGhhdCBvY2N1cmVkXG4gICAgICogRXhhbXBsZXMgb2Ygc3VjaCBldmVudHMgaW5jbHVkZTogc2VsZWN0aW5nLCBjbGlja2luZywgZG91YmxlIGNsaWNraW5nLCBldGMuXG4gICAgICovXG4gICAgZXZlbnQ6IEV2ZW50O1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBncmlkIGVkaXRpbmcgY29tcGxldGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRFZGl0RG9uZUV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICByb3dJRDogYW55OyAvLyBkZXByZWNhdGVkXG4gICAgcHJpbWFyeUtleTogYW55ICAgIC8vIGluIGEgbWFqb3IgdmVyc2lvbiwgcmVtb3ZlIHRoZSBkZXByZWNhdGVkIGByb3dJRGAgYW5kIG1pZ3JhdGUgdG8gYGtleWBcbiAgICAvKiogYGNlbGxJRGAgaXMgb3B0aW9uYWw7IHNwZWNpZmllcyB0aGUgY2VsbCB0aGUgZWRpdGluZyBpcyBiZWluZyBkb25lIG9uLiAqL1xuICAgIGNlbGxJRD86IHtcbiAgICAgICAgcm93SUQ6IGFueTtcbiAgICAgICAgY29sdW1uSUQ6IGFueTtcbiAgICAgICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIGByb3dEYXRhYCByZXByZXNlbnRzIHRoZSB1cGRhdGVkL2NvbW1pdHRlZCBkYXRhIG9mIHRoZSByb3cgYWZ0ZXIgdGhlIGVkaXQgKG5ld1ZhbHVlKVxuICAgICAqIFRoZSBvbmx5IGNhc2Ugcm93RGF0YSAob2YgdGhlIGN1cnJlbnQgb2JqZWN0KSBpcyB1c2VkIGRpcmVjdGx5LCBpcyB3aGVuIHRoZXJlIGlzIG5vIHJvd0VkaXRpbmcgb3IgdHJhbnNhY3Rpb25zIGVuYWJsZWRcbiAgICAgKi9cbiAgICByb3dEYXRhOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgdGhlIHByZXZpb3VzIChiZWZvcmUgZWRpdGluZykgdmFsdWUgb2YgdGhlIGVkaXRlZCBjZWxsLiBcbiAgICAgKiBJdCdzIHVzZWQgd2hlbiB0aGUgZXZlbnQgaGFzIGJlZW4gc3RvcGVkL2V4aXRlZC5cbiAgICAgKi9cbiAgICBvbGRWYWx1ZTogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgdmFsdWUsIHRoYXQgaXMgYmVpbmcgZW50ZXJlZCBpbiB0aGUgZWRpdGVkIGNlbGxcbiAgICAgKiBXaGVuIHRoZXJlIGlzIG5vIGBuZXdWYWx1ZWAgYW5kIHRoZSBldmVudCBoYXMgZW5kZWQsIHRoZSB2YWx1ZSBvZiB0aGUgY2VsbCByZXR1cm5zIHRvIHRoZSBgb2xkVmFsdWVgXG4gICAgICovXG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQsIHRoYXQgaGFzIHRyaWdnZXJlZCB0aGUgZWRpdCBcbiAgICAgKi9cbiAgICBldmVudD86IEV2ZW50O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiBvZiB0aGUgZWRpdGVkIGNlbGwgXG4gICAgICovXG4gICAgY29sdW1uPzogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSBlZGl0IGV2ZW50LlxuICAgICAqL1xuICAgIG93bmVyPzogR3JpZFR5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGVkaXRpbmcgY29zaXN0cyBvZiBhZGRpbmcgYSBuZXcgcm93XG4gICAgICovXG4gICAgaXNBZGRSb3c/OiBib29sZWFuO1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgbmV3IHZhbHVlIHdvdWxkIGJlIHZhbGlkLiBcbiAgICAgKiBJdCBjYW4gYmUgc2V0IHRvIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBtZXRob2RzIGZvciB2YWxpZGF0aW9uIG9mIHRoZSBncmlkIFxuICAgICAqL1xuICAgIHZhbGlkPzogYm9vbGVhbjtcbn1cblxuLyoqIFxuICogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBncmlkIGVkaXRpbmcuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICogSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJvdyBhbmQgdGhlIGNvbHVtbiwgYXMgd2VsbCBhcyB0aGUgb2xkIGFuZCBud2UgdmFsdWUgb2YgdGhlIGVsZW1lbnQvY2VsbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRWRpdEV2ZW50QXJncyBleHRlbmRzIENhbmNlbGFibGVFdmVudEFyZ3MsIElHcmlkRWRpdERvbmVFdmVudEFyZ3Mge1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBhcmd1bWVudHMgYWZ0ZXIgYSBjb2x1bW4ncyBwaW4gc3RhdGUgaXMgY2hhbmdlZC5cbiAqIGBpbnNlcnRBdEluZGV4YHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkL3VucGlubmVkIGFyZWEgdGhlIGNvbHVtbiB3YXMgaW5zZXJ0ZWQuXG4gKiBgaXNQaW5uZWRgIHJldHVybnMgdGhlIGFjdHVhbCBwaW4gc3RhdGUgb2YgdGhlIGNvbHVtbiBhZnRlciB0aGUgb3BlcmF0aW9uIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGluQ29sdW1uRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBJZiBwaW5uZWQsIHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkIGFyZWEgdGhlIGNvbHVtbiBpcyBpbnNlcnRlZC5cbiAgICAgKiBJZiB1bnBpbm5lZCwgc3BlY2lmaWVzIGF0IHdoaWNoIGluZGV4IGluIHRoZSB1bnBpbm5lZCBhcmVhIHRoZSBjb2x1bW4gaXMgaW5zZXJ0ZWQuXG4gICAgICovXG4gICAgaW5zZXJ0QXRJbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFjdHVhbCBwaW4gc3RhdGUgb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJZiBwaW5uaW5nL3VucGlubmluZyBpcyBzdWNjZXNmdWxsLCB2YWx1ZSBvZiBgaXNQaW5uZWRgIHdpbGwgY2hhbmdlIGFjY29yZGluZ2x5IHdoZW4gcmVhZCBpbiB0aGUgXCItaW5nXCIgYW5kIFwiLWVkXCIgZXZlbnQuXG4gICAgICovXG4gICAgaXNQaW5uZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFyZ3VtZW50cyBiZWZvcmUgYSBjb2x1bW4ncyBwaW4gc3RhdGUgaXMgY2hhbmdlZC5cbiAqIGBpbnNlcnRBdEluZGV4YHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkL3VucGlubmVkIGFyZWEgdGhlIGNvbHVtbiBpcyBpbnNlcnRlZC5cbiAqIENhbiBiZSBjaGFuZ2VkIGluIHRoZSBgY29sdW1uUGluYCBldmVudC5cbiAqIGBpc1Bpbm5lZGAgcmV0dXJucyB0aGUgYWN0dWFsIHBpbiBzdGF0ZSBvZiB0aGUgY29sdW1uLiBXaGVuIHBpbm5pbmcvdW5waW5uaW5nIGlzIHN1Y2Nlc2Z1bGwsXG4gKiB0aGUgdmFsdWUgb2YgYGlzUGlubmVkYCB3aWxsIGNoYW5nZSBhY2NvcmRpbmdseSB3aGVuIHJlYWQgaW4gdGhlIFwiLWluZ1wiIGFuZCBcIi1lZFwiIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncyBleHRlbmRzIElQaW5Db2x1bW5FdmVudEFyZ3MsIENhbmNlbGFibGVFdmVudEFyZ3Mge1xufVxuXG4vKiogXG4gKiBSZXByZXNlbnRzIGV2ZW50IGFyZ3VtZW50cyByZWxhdGVkIHRvIGV2ZW50cywgdGhhdCBjYW4gb2NjdXIgZm9yIHJvd3MgaW4gYSBncmlkIFxuICogRXhhbXBsZSBmb3IgZXZlbnRzOiBhZGRpbmcsIGRlbGV0aW5nLCBzZWxlY3Rpb24sIHRyYW5zYWN0aW9uLCBldGMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0RhdGFFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgZGF0YTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUga2V5LCB0aGUgcm93IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGguIFxuICAgICAqIEF2YWlsYWJsZSBpZiBgcHJpbWFyeUtleWAgZXhpc3RzXG4gICAgICovXG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgZWRpdCBldmVudC4gKi9cbiAgICBvd25lcjogR3JpZFR5cGU7XG59XG5cbi8qKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4gaXMgYmVpbmcgcmVzaXplZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uUmVzaXplRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hbnRpb24gb2YgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIHJlc2l6ZWQgKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG9sZCB3aWR0aCBvZiB0aGUgY29sdW1uIGJlZm9yZSB0aGUgcmVzaXppbmcgKi9cbiAgICBwcmV2V2lkdGg6IHN0cmluZztcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmV3IHdpZHRoLCB0aGUgY29sdW1uIGlzIGJlaW5nIHJlc2l6ZWQgdG8gKi9cbiAgICBuZXdXaWR0aDogc3RyaW5nO1xufVxuXG4vKiogXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4gaXMgYmVpbmcgcmVzaXplZCBcbiAqIEl0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2x1bW4sIGl0J3Mgb2xkIGFuZCBuZXcgd2lkdGhcbiAqIFRoZSBldmVudCBjYW4gYmUgY2FuY2VsZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uUmVzaXppbmdFdmVudEFyZ3MgZXh0ZW5kcyBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIHtcbn1cblxuLyoqIFxuICogVGhlIGV2ZW50IGFyZ3VtZW50cyB3aGVuIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYSByb3cgaXMgYmVpbmcgY2hhbmdlZCBcbiAqIFRoZSBldmVudCBpcyBjYW5jZWxhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd1NlbGVjdGlvbkV2ZW50QXJncyBleHRlbmRzIENhbmNlbGFibGVFdmVudEFyZ3MsIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyBhbiBhcnJheSBvZiByb3dzLCB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNlbGVjdGVkICovXG4gICAgcmVhZG9ubHkgb2xkU2VsZWN0aW9uOiBhbnlbXTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmV3bHkgc2VsZWN0ZWQgcm93cyAqL1xuICAgIG5ld1NlbGVjdGlvbjogYW55W107XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgYWxsIGFkZGVkIHJvd3NcbiAgICAgKiBXaGVuZXZlciBhIHJvdyBoYXMgYmVlbiBzZWxlY3RlZCwgdGhlIGFycmF5IGlzIFwicmVmcmVzaGVkXCIgd2l0aCB0aGUgc2VsZWN0ZWQgcm93c1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZGVkOiBhbnlbXTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyBhbiBhcnJheSBvZiBhbGwgcm93cywgcmVtb3ZlZCBmcm9tIHRoZSBzZWxlY3Rpb25cbiAgICAgKiBXaGVuZXZlciBhIHJvdyBoYXMgYmVlbiBkZXNlbGVjdGVkLCB0aGUgYXJyYXkgaXMgXCJyZWZyZXNoZWRcIiB3aXRoIHRoZSByb3dzLCBcbiAgICAgKiB0aGF0IGhhdmUgYmVlbiBwcmV2aW91c2x5IHNlbGVjdGVkLCBidXQgYXJlIG5vIGxvbmdlclxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlbW92ZWQ6IGFueVtdO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBoYXMgdHJpZ2dlcmVkIHRoZSBzZWxlY3Rpb24gY2hhbmdlXG4gICAgICogc2VsZWN0aW5nLCBkZXNlbGVjdGluZ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGV2ZW50PzogRXZlbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbGwgcm93cyBvZiB0aGUgZ3JpZCBoYXZlIGJlZW4gc2VsZWN0ZWQgKi9cbiAgICByZWFkb25seSBhbGxSb3dzU2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG4vKiogXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIGNvbHVtbiBpcyBiZWluZyBjaGFnZWQgXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MgZXh0ZW5kcyBDYW5jZWxhYmxlRXZlbnRBcmdzLCBJQmFzZUV2ZW50QXJncyB7XG4gICAgLyoqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgY29sdW1ucywgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBzZWxlY3RlZCAqL1xuICAgIHJlYWRvbmx5IG9sZFNlbGVjdGlvbjogc3RyaW5nW107XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5ld2x5IHNlbGVjdGVkIGNvbHVtbnMgKi9cbiAgICBuZXdTZWxlY3Rpb246IHN0cmluZ1tdO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIGFuIGFycmF5IG9mIGFsbCBhZGRlZCBjb2x1bW5zXG4gICAgICogV2hlbmV2ZXIgYSBjb2x1bW4gaGFzIGJlZW4gc2VsZWN0ZWQsIHRoZSBhcnJheSBpcyBcInJlZnJlc2hlZFwiIHdpdGggdGhlIHNlbGVjdGVkIGNvbHVtbnNcbiAgICAgKi9cbiAgICByZWFkb25seSBhZGRlZDogc3RyaW5nW107XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgYWxsIGNvbHVtbnMsIHJlbW92ZWQgZnJvbSB0aGUgc2VsZWN0aW9uXG4gICAgICogV2hlbmV2ZXIgYSBjb2x1bW4gaGFzIGJlZW4gZGVzZWxlY3RlZCwgdGhlIGFycmF5IGlzIFwicmVmcmVzaGVkXCIgd2l0aCB0aGUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcHJldmlvdXNseSBzZWxlY3RlZCwgYnV0IGFyZSBubyBsb25nZXJcbiAgICAgKi9cbiAgICByZWFkb25seSByZW1vdmVkOiBzdHJpbmdbXTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQsIHRoYXQgaGFzIHRyaWdnZXJlZCB0aGUgc2VsZWN0aW9uIGNoYW5nZVxuICAgICAqIHNlbGVjdGluZywgZGVzZWxlY3RpbmdcbiAgICAgKi9cbiAgICByZWFkb25seSBldmVudD86IEV2ZW50O1xufVxuXG4vKiogXG4gKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGZvciBtYW5hZ2luZyBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgc3RvcmluZyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBzZWFyY2ggcHJvY2VzczogXG4gKiBzZWFyY2ggdGV4dCwgc2VhcmNoIG9wdGlvbnMsIGFuZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWF0Y2hlcyBmb3VuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hJbmZvIHtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgdGV4dCwgdGhlIHVzZXIgaGFzIGVudGVyZWQsIGluIG9yZGVyIHRvIHNlYXJjaCBtYXRjaGluZyByZXN1bHRzIHdpdGggaXRcbiAgICAgKiBpdCdzIG5vbiBvcHRpb25hbCwgYnV0IGNhbiBiZSBlbXB0eSBzdHJpbmdcbiAgICAgKi9cbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNlYXJjaCBzaG91bGQgbWF0Y2ggcmVzdWx0cywgbm8gbWF0dGVyIHRoZSBjYXNlIG9mIHRoZSBsZXR0ZXJzICh1cHBlciBhbmQgbG93ZXIpIFxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcmVzdWx0IHdpbGwgZGVwZW5kIG9uIHRoZSBjYXNlIChleGFtcGxlOiBgRWAgd2lsbCBub3QgbWF0Y2ggYGVgKVxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlIHJlc3VsdCB3aWxsIG5vdCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG1hdGNoIGBlYClcbiAgICAgKi9cbiAgICBjYXNlU2Vuc2l0aXZlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2VhcmNoIHNob3VsZCBtYXRjaCB0aGUgZXhhY3QgdGV4dCAodmFsdWU6IHRydWUpIG9yIGFsbG93IHBhcnRpYWwgbWF0Y2hlcyAodmFsdWU6IGZhbHNlKSAqL1xuICAgIGV4YWN0TWF0Y2g6IGJvb2xlYW47XG4gICAgLyoqIGBhY3RpdmVNYXRjaEluZGV4YCB0YWtlcyBub3RlIG9mIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSAoaGlnaGxpZ2h0ZWQpIG1hdGNoICovXG4gICAgYWN0aXZlTWF0Y2hJbmRleDogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgdGhlIGZvdW5kIG1hdGNoZXMgKi9cbiAgICBtYXRjaENvdW50OiBudW1iZXI7XG4gICAgY29udGVudDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGdyaWQgdG9vbGJhciBleHBvcnQgZXZlbnQuXG4gKiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZ3JpZCBpbnN0YW5jZSwgZXhwb3J0ZXIgc2VydmljZSwgZXhwb3J0IG9wdGlvbnMsIFxuICogYW5kIGFsbG93cyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRUb29sYmFyRXhwb3J0RXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBgZ3JpZGAgcmVwcmVzZW50cyBhIHJlZmVyZW5jZSB0byB0aGUgaW5zdGFuY2Ugb2YgdGhlIGdyaWQgdGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgZXhwb3J0ZXJgIGlzIGEgYmFzZSBzZXJ2aWNlLlxuICAgICAqIFRoZSB0eXBlIChhbiBhYnN0cmFjdCBjbGFzcyBgSWd4QmFzZUV4cG9ydGVyYCkgaGFzIGl0J3Mgb3duIHByb3BlcnRpZXMgYW5kIG1ldGhvZHNcbiAgICAgKiBJdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUgZm9ybWF0IGFuZCBvcHRpb25zIG9mIHRoZSBleHBvcnQsIHRoZSBleHBvcnRlZCBlbGVtZW50IFxuICAgICAqIGFuZCBtZXRob2RzIGZvciBwcmVwYXJpbmcgdGhlIGRhdGEgZnJvbSB0aGUgZWxlbWVudHMgZm9yIGV4cG9ydGluZ1xuICAgICAqL1xuICAgIGV4cG9ydGVyOiBJZ3hCYXNlRXhwb3J0ZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHNldHRpbmdzLCB0aGF0IGNhbiBiZSBnaXZlbiB0byBhbiBleHBvcnRcbiAgICAgKiBUaGUgdHlwZSAoYW4gYWJzdHJhY3QgY2xhc3MgYElneEV4cG9ydGVyT3B0aW9uc0Jhc2VgKSBoYXMgcHJvcGVydGllcyBmb3IgY29sdW1uIHNldHRpbmdzIFxuICAgICAqICh3aGV0aGVyIHRoZXkgc2hvdWxkIGJlIGlnbm9yZWQpIGFzIHdlbGwgYXMgbWV0aG9kIGZvciBnZW5lcmF0aW5nIGEgZmlsZSBuYW1lXG4gICAgICovXG4gICAgb3B0aW9uczogSWd4RXhwb3J0ZXJPcHRpb25zQmFzZTtcbiAgICAvKiogXG4gICAgICogYGNhbmNlbGAgcmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCBoYXMgYmVlbiBpbnRlcmVwdGVkIGFuZCBzdG9wcGVkXG4gICAgICogSWYgdGhlIHZhbHVlIGJlY29tZXMgXCJ0cnVlXCIsIGl0IHJldHVybnMvZXhpdHMgZnJvbSB0aGUgbWV0aG9kLCBpbnN0YW5jaWF0aW5nIHRoZSBpbnRlcmZhY2UgXG4gICAgICovXG4gICAgY2FuY2VsOiBib29sZWFuO1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byB0aGUgc3RhcnQgb2YgYSBjb2x1bW4gbW92aW5nIG9wZXJhdGlvbiBpbiBhIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5Nb3ZpbmdTdGFydEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhhdCBpcyBiZWluZyBtb3ZlZC5cbiAgICAgKiBUaGUgYENvbHVtblR5cGVgIGNvbnRhaW5zIHRoZSBpbmZvcm1hdG9pbiAodGhlIGdyaWQgaXQgYmVsb25ncyB0bywgY3NzIGRhdGEsIHNldHRpbmdzLCBldGMuKSBvZiB0aGUgY29sdW1uIGluIGl0cyBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgc291cmNlOiBDb2x1bW5UeXBlO1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBhIGNvbHVtbiBtb3Zpbmcgb3BlcmF0aW9uIGluIGEgZ3JpZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uTW92aW5nRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIG1vdmVkLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBzb3VyY2U6IENvbHVtblR5cGU7XG4gICAgLyoqIFxuICAgICAqIGBjYW5jZWxgIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaGFzIGJlZW4gaW50ZXJlcHRlZCBhbmQgc3RvcHBlZFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlIFxuICAgICAqL1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuLyoqIFJlcHJlc2VudHMgZXZlbnQgYXJndW1lbnRzIHJlbGF0ZWQgdG8gdGhlIGVuZCBvZiBhIGNvbHVtbiBtb3Zpbmcgb3BlcmF0aW9uIGluIGEgZ3JpZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudHMgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIG1vdmVkLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBzb3VyY2U6IENvbHVtblR5cGU7XG4gICAgLyoqXG4gICAgICogVGhlIHRhcmdldCBvZiB0aGUgZXZlbnQgcmVwcmVzZW50cyB0aGUgY29sdW1uLCB0aGUgc291cmNlIGlzIGJlaW5nIG1vdmVkIHRvLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICB0YXJnZXQ6IENvbHVtblR5cGU7XG4gICAgLyoqIFxuICAgICAqIGBjYW5jZWxgIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaGFzIGJlZW4gaW50ZXJlcHRlZCBhbmQgc3RvcHBlZFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlIFxuICAgICAqL1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuLyoqIFxuICogUmVwcmVzZW50cyBhbiBldmVudCwgZW1pdHRlZCB3aGVuIGtleWRvd24gaXMgdHJpZ2dlcmVkIG92ZXIgZWxlbWVudCBpbnNpZGUgZ3JpZCdzIGJvZHkgXG4gKiBUaGlzIGV2ZW50IGlzIGZpcmVkIG9ubHkgaWYgdGhlIGtleSBjb21iaW5hdGlvbiBpcyBzdXBwb3J0ZWQgaW4gdGhlIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRLZXlkb3duRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBUaGUgYHRhcmdldFR5cGVgIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlIHRhcmdldGVkIG9iamVjdC4gRm9yIGV4YW1wbGUgYSBjZWxsIG9yIGEgcm93ICovXG4gICAgdGFyZ2V0VHlwZTogR3JpZEtleWRvd25UYXJnZXRUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhbmQgZGV0YWlscyBvZiB0aGUgb2JqZWN0IGl0c2VsZiAqL1xuICAgIHRhcmdldDogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBvY2N1cmVkLiAqL1xuICAgIGV2ZW50OiBFdmVudDtcbiAgICAvKiogXG4gICAgICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAgICAgKiBgY2FuY2VsYCByZXR1cm5zIHdoZXRoZXIgdGhlIGV2ZW50IGhhcyBiZWVuIGludGVyZXB0ZWQgYW5kIHN0b3BwZWRcbiAgICAgKiBJZiB0aGUgdmFsdWUgYmVjb21lcyBcInRydWVcIiwgaXQgcmV0dXJucy9leGl0cyBmcm9tIHRoZSBtZXRob2QsIGluc3RhbmNpYXRpbmcgdGhlIGludGVyZmFjZSBcbiAgICAgKi9cbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gZ2V0dGluZyB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiBhIGNlcnRhaW4gY2VsbCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2VsbFBvc2l0aW9uIHtcbiAgICAvKiogSXQgcmV0dXJucyB0aGUgcG9zaXRpb24gKGluZGV4KSBvZiB0aGUgcm93LCB0aGUgY2VsbCBpcyBpbiAqL1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgLyoqIFxuICAgICAqIEl0IHJldHVybnMgdGhlIHBvc2l0aW9uIChpbmRleCkgb2YgdGhlIGNvbHVubSwgdGhlIGNlbGwgaXMgaW4gXG4gICAgICogQ291bnRzIG9ubHkgdGhlIHZpc2libGUgKG5vbiBoaWRkZW4pIGNvbHVtbnMgXG4gICAgICovXG4gICAgdmlzaWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG59XG5cbi8qKiBFbWl0dGVkIHdoZW4gYSBkcmFnZ2luZyBvcGVyYXRpb24gaXMgZmluaXNoZWQgKHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkKSAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm93RHJhZ0VuZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZHJhZyBkaXJlY3RpdmUgb3IgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBkcmFnIG9wZXJhdGlvbiAqL1xuICAgIGRyYWdEaXJlY3RpdmU6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gb2YgdGhlIHJvdyB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuICovXG4gICAgZHJhZ0RhdGE6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIEhUTUwgZWxlbWVudCBpdHNlbGYgKi9cbiAgICBkcmFnRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIGBhbmltYXRpb25gIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaXMgYW5pbWF0ZWQgKi9cbiAgICBhbmltYXRpb246IGJvb2xlYW47XG59XG5cbi8qKiBcbiAqIEVtaXR0ZWQgd2hlbiBhIGRyYWdnaW5nIG9wZXJhdGlvbiBpcyBzdGFydGluZyAod2hlbiB0aGUgcm93IGlzIFwicGlja2VkXCIpIFxuICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzIGV4dGVuZHMgQ2FuY2VsYWJsZUV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBkcmFnIGRpcmVjdGl2ZSBvciBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGRyYWcgb3BlcmF0aW9uICovXG4gICAgZHJhZ0RpcmVjdGl2ZTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgcm93IHRoYXQgaXMgYmVpbmcgZHJhZ2dlZC4gKi9cbiAgICBkcmFnRGF0YTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgSFRNTCBlbGVtZW50IGl0c2VsZiAqL1xuICAgIGRyYWdFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqINCgZXByZXNlbnRzIGV2ZW50IGFyZ3VtZW50cyByZWxhdGVkIHRvIHRoZSByb3cncyBleHBhbnNpb24gc3RhdGUgYmVpbmcgY2hhbmdlZCBpbiBhIGdyaWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd1RvZ2dsZUV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgSUQgb2YgdGhlIHJvdyB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50ICh3aGljaCBzdGF0ZSBpcyBjaGFuZ2VkKSAqL1xuICAgIHJvd0lEOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSByb3cgYWZ0ZXIgdGhlIG9wZXJhdGlvbiBoYXMgZW5kZWRcbiAgICAgKiBJbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHJvdyBpcyBiZWluZyBleHBhbmRlZCAodHJ1ZSkgb3IgY29sbGFwc2VkIChmYWxzZSlcbiAgICAgKi9cbiAgICBleHBhbmRlZDogYm9vbGVhbjtcbiAgICAvKiogXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBoYXMgdHJpZ2dlcmVkIHRoZSBleHBhbnRpb24vY29sbGFwc2UgXG4gICAgICovXG4gICAgZXZlbnQ/OiBFdmVudDtcbiAgICAvKiogXG4gICAgICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAgICAgKiBgY2FuY2VsYCByZXR1cm5zIHdoZXRoZXIgdGhlIGV2ZW50IGhhcyBiZWVuIGludGVyZXB0ZWQgYW5kIHN0b3BwZWRcbiAgICAgKiBJZiB0aGUgdmFsdWUgYmVjb21lcyBcInRydWVcIiwgaXQgcmV0dXJucy9leGl0cyBmcm9tIHRoZSBtZXRob2QsIGluc3RhbmNpYXRpbmcgdGhlIGludGVyZmFjZSBcbiAgICAgKi9cbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm93J3MgcGluIHN0YXRlIGNoYW5nZXMuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5Sb3dFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG4gICAgLyoqXG4gICAgICogVGhlIElEIG9mIHRoZSByb3csIHRoYXQgd2FzIHBpbm5lZC91bnBpbm5lZC5cbiAgICAgKiAgIElEIGlzIGVpdGhlciB0aGUgcHJpbWFyeUtleSB2YWx1ZSBvciB0aGUgZGF0YSByZWNvcmQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm93SUQ6IGFueTtcbiAgICByb3c/OiBSb3dUeXBlO1xuICAgIC8qKiBUaGUgaW5kZXggYXQgd2hpY2ggdG8gcGluIHRoZSByb3cgaW4gdGhlIHBpbm5lZCByb3dzIGNvbGxlY3Rpb24uICovXG4gICAgaW5zZXJ0QXRJbmRleD86IG51bWJlcjtcbiAgICAvKiogV2hldGhlciBvciBub3QgdGhlIHJvdyBpcyBwaW5uZWQgb3IgdW5waW5uZWQuICovXG4gICAgcmVhZG9ubHkgaXNQaW5uZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZ3JpZCBpcyBzY3JvbGxlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNjcm9sbEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogVGhlIHNjcm9sbCBkaXJlY3Rpb24gLSB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiAqL1xuICAgIGRpcmVjdGlvbjogc3RyaW5nO1xuICAgIC8qKiBUaGUgb3JpZ2luYWwgYnJvd3NlciBzY3JvbGwgZXZlbnQuICovXG4gICAgZXZlbnQ6IEV2ZW50O1xuICAgIC8qKiBUaGUgbmV3IHNjcm9sbCBwb3NpdGlvbiAqL1xuICAgIHNjcm9sbFBvc2l0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgY2hlY2tib3ggaW4gdGhlIGNoZWNrYm94XG4gKiBsaXN0IG9mIGFuIElneENvbHVtbkFjdGlvbnMgY29tcG9uZW50IGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblRvZ2dsZWRFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgLyoqIFRoZSBjb2x1bW4gdGhhdCBpcyB0b2dnbGVkLiAqL1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKiogVGhlIGNoZWNrZWQgc3RhdGUgYWZ0ZXIgdGhlIGFjdGlvbi4gKi9cbiAgICBjaGVja2VkOiBib29sZWFuO1xufVxuXG4vKiogRW1taXRlZCB3aGVuIHRoZSBhY3RpdmUgbm9kZSBpcyBjaGFuZ2VkICovXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSByb3cgaW5kZXggb2YgdGhlIGFjdGl2ZSBub2RlICovXG4gICAgcm93OiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiBpbmRleCBvZiB0aGUgYWN0aXZlIG5vZGUgKi9cbiAgICBjb2x1bW46IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwgb2YgdGhlIGFjdGl2ZSBub2RlIFxuICAgICAqL1xuICAgIGxldmVsPzogbnVtYmVyO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBhY3RpdmUgbm9kZS4gXG4gICAgICogVGhlIEdyaWRLZXlkb3duVGFyZ2V0VHlwZSBpcyBhbiBlbnVtIG9yIHRoYXQgc3BlY2lmaWVzIHRoZSBwb3NzaWJsZSB0YXJnZXQgdHlwZXMgXG4gICAgICovXG4gICAgdGFnOiBHcmlkS2V5ZG93blRhcmdldFR5cGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBzb3J0aW5nIGFuZCBncm91cGluZyBvcGVyYXRpb25zXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTb3J0aW5nRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3MsIENhbmNlbGFibGVFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgc29ydGluZyBleHByZXNzaW9ucyBhcHBsaWVkIHRvIHRoZSBncmlkLiBcbiAgICAgKiBJdCBjYW4gYmUgYSBzaW5nbGUgc29ydGluZyBleHByZXNzaW9uIG9yIGFuIGFycmF5IG9mIHRoZW1cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgICAqL1xuICAgIHNvcnRpbmdFeHByZXNzaW9ucz86IElTb3J0aW5nRXhwcmVzc2lvbiB8IEFycmF5PElTb3J0aW5nRXhwcmVzc2lvbj47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBnb3VwaW5nIGV4cHJlc3Npb25zIGFwcGxpZWQgdG8gdGhlIGdyaWQuIFxuICAgICAqIEl0IGNhbiBiZSBhIHNpbmdsZSBncm91cGluZyBleHByZXNzaW9uIG9yIGFuIGFycmF5IG9mIHRoZW1cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIHRoZSBzb3J0aW5nIGV4cHJlc3Npb24gYW5kIGNyaXRlcmlhIGJ5IHdoaWNoIHRoZSBlbGVtZW50cyB3aWxsIGJlIGdyb3VwZWRcbiAgICAgKi9cbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZXZlbnQgYXJndW1lbnRzIHJlbGF0ZWQgdG8gZmlsdGVyaW5nIG9wZXJhdGlvbnNcbiAqIFRoZSBldmVudCBpcyBjYW5jZWxhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcmluZ0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmaWx0ZXJpbmcgZXhwcmVzc2lvbnMgYXBwbGllZCB0byB0aGUgZ3JpZC5cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbHRlcmluZyBvcGVyYW5kcyBhbmQgb3BlcmF0b3IsIGFuIGV4cHJlc3Npb24gb3IgY29uZGl0aW9uLCBldGMuIFxuICAgICAqL1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xufVxuXG4vKiogVGhlIGV2ZW50IGFyZ3VtZW50cyBhZnRlciBhIGNvbHVtbidzIHZpc2liaWxpdHkgaXMgY2hhbmdlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhlIGV2ZW50IG9yaWdpbmF0ZWQgZnJvbSAqL1xuICAgIGNvbHVtbjogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBuZXcgaGlkZGVuIHN0YXRlIHRoYXQgdGhlIGNvbHVtbiB3aWxsIGhhdmUsIGlmIG9wZXJhdGlvbiBpcyBzdWNjZXNmdWxsLlxuICAgICAqIFdpbGwgYmUgYHRydWVgIHdoZW4gaGlkaW5nIGFuZCBgZmFsc2VgIHdoZW4gc2hvd2luZy5cbiAgICAgKi9cbiAgICBuZXdWYWx1ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4ncyB2aXNpYmlsaXR5IGlzIGNoYW5nZWQuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICogSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbHVtbiBhbmQgdGhlIGl0J3MgdmlzaWJpbGl0eSBhZnRlciB0aGUgb3BlcmF0aW9uICh3aWxsIGJlIGB0cnVlYCB3aGVuIGhpZGluZyBhbmQgYGZhbHNlYCB3aGVuIHNob3dpbmcpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyBleHRlbmRzIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG59XG5cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2NvbW1vbi9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBHcmlkS2V5ZG93blRhcmdldFR5cGUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IENlbGxUeXBlLCBDb2x1bW5UeXBlLCBHcmlkVHlwZSwgUm93VHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbnMtdHJlZSc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEJhc2VFeHBvcnRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydGVyLWNvbW1vbi9iYXNlLWV4cG9ydC1zZXJ2aWNlJztcbmltcG9ydCB7IElneEV4cG9ydGVyT3B0aW9uc0Jhc2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHBvcnRlci1jb21tb24vZXhwb3J0ZXItb3B0aW9ucy1iYXNlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElCYXNlU2VhcmNoSW5mbyB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdGV4dC1oaWdobGlnaHQvdGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlJztcblxuLyoqIFRoZSBldmVudCBhcmd1bWVudHMgd2hlbiBkYXRhIGZyb20gYSBncmlkIGlzIGJlaW5nIGNvcGllZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRDbGlwYm9hcmRFdmVudCB7XG4gICAgLyoqIGBkYXRhYCBjYW4gYmUgb2YgYW55IHR5cGUgYW5kIHJlZmVyZXMgdG8gdGhlIGRhdGEgdGhhdCBpcyBiZWluZyBjb3BpZWQvc3RvcmVkIHRvIHRoZSBjbGlwYm9hcmQgKi9cbiAgICBkYXRhOiBhbnlbXTtcbiAgICAvKiogXG4gICAgICogYGNhbmNlbGAgcmV0dXJucyB3aGV0aGVyIGFuIGV4dGVybmFsIGV2ZW50IGhhcyBpbnRlcmVwdGVkIHRoZSBjb3B5aW5nIFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlXG4gICAgICovXG4gICAgY2FuY2VsOiBib29sZWFuO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBldmVudCBhcmd1bWVudCByZWxhdGVkIHRvIGdyaWQgY2VsbCBpbnRlcmFjdGlvbnMuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkQ2VsbEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBjZWxsIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudC4gKi9cbiAgICBjZWxsOiBDZWxsVHlwZTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQgdGhhdCBvY2N1cmVkXG4gICAgICogRXhhbXBsZXMgb2Ygc3VjaCBldmVudHMgaW5jbHVkZTogc2VsZWN0aW5nLCBjbGlja2luZywgZG91YmxlIGNsaWNraW5nLCBldGMuXG4gICAgICovXG4gICAgZXZlbnQ6IEV2ZW50O1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBncmlkIGVkaXRpbmcgY29tcGxldGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRFZGl0RG9uZUV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICByb3dJRDogYW55OyAvLyBkZXByZWNhdGVkXG4gICAgcHJpbWFyeUtleTogYW55ICAgIC8vIGluIGEgbWFqb3IgdmVyc2lvbiwgcmVtb3ZlIHRoZSBkZXByZWNhdGVkIGByb3dJRGAgYW5kIG1pZ3JhdGUgdG8gYGtleWBcbiAgICAvKiogYGNlbGxJRGAgaXMgb3B0aW9uYWw7IHNwZWNpZmllcyB0aGUgY2VsbCB0aGUgZWRpdGluZyBpcyBiZWluZyBkb25lIG9uLiAqL1xuICAgIGNlbGxJRD86IHtcbiAgICAgICAgcm93SUQ6IGFueTtcbiAgICAgICAgY29sdW1uSUQ6IGFueTtcbiAgICAgICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIGByb3dEYXRhYCByZXByZXNlbnRzIHRoZSB1cGRhdGVkL2NvbW1pdHRlZCBkYXRhIG9mIHRoZSByb3cgYWZ0ZXIgdGhlIGVkaXQgKG5ld1ZhbHVlKVxuICAgICAqIFRoZSBvbmx5IGNhc2Ugcm93RGF0YSAob2YgdGhlIGN1cnJlbnQgb2JqZWN0KSBpcyB1c2VkIGRpcmVjdGx5LCBpcyB3aGVuIHRoZXJlIGlzIG5vIHJvd0VkaXRpbmcgb3IgdHJhbnNhY3Rpb25zIGVuYWJsZWRcbiAgICAgKi9cbiAgICByb3dEYXRhOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgdGhlIHByZXZpb3VzIChiZWZvcmUgZWRpdGluZykgdmFsdWUgb2YgdGhlIGVkaXRlZCBjZWxsLiBcbiAgICAgKiBJdCdzIHVzZWQgd2hlbiB0aGUgZXZlbnQgaGFzIGJlZW4gc3RvcGVkL2V4aXRlZC5cbiAgICAgKi9cbiAgICBvbGRWYWx1ZTogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgdmFsdWUsIHRoYXQgaXMgYmVpbmcgZW50ZXJlZCBpbiB0aGUgZWRpdGVkIGNlbGxcbiAgICAgKiBXaGVuIHRoZXJlIGlzIG5vIGBuZXdWYWx1ZWAgYW5kIHRoZSBldmVudCBoYXMgZW5kZWQsIHRoZSB2YWx1ZSBvZiB0aGUgY2VsbCByZXR1cm5zIHRvIHRoZSBgb2xkVmFsdWVgXG4gICAgICovXG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQsIHRoYXQgaGFzIHRyaWdnZXJlZCB0aGUgZWRpdCBcbiAgICAgKi9cbiAgICBldmVudD86IEV2ZW50O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiBvZiB0aGUgZWRpdGVkIGNlbGwgXG4gICAgICovXG4gICAgY29sdW1uPzogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSBlZGl0IGV2ZW50LlxuICAgICAqL1xuICAgIG93bmVyPzogR3JpZFR5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGVkaXRpbmcgY29zaXN0cyBvZiBhZGRpbmcgYSBuZXcgcm93XG4gICAgICovXG4gICAgaXNBZGRSb3c/OiBib29sZWFuO1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgbmV3IHZhbHVlIHdvdWxkIGJlIHZhbGlkLiBcbiAgICAgKiBJdCBjYW4gYmUgc2V0IHRvIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBtZXRob2RzIGZvciB2YWxpZGF0aW9uIG9mIHRoZSBncmlkIFxuICAgICAqL1xuICAgIHZhbGlkPzogYm9vbGVhbjtcbn1cblxuLyoqIFxuICogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBncmlkIGVkaXRpbmcuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICogSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJvdyBhbmQgdGhlIGNvbHVtbiwgYXMgd2VsbCBhcyB0aGUgb2xkIGFuZCBud2UgdmFsdWUgb2YgdGhlIGVsZW1lbnQvY2VsbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRWRpdEV2ZW50QXJncyBleHRlbmRzIENhbmNlbGFibGVFdmVudEFyZ3MsIElHcmlkRWRpdERvbmVFdmVudEFyZ3Mge1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBhcmd1bWVudHMgYWZ0ZXIgYSBjb2x1bW4ncyBwaW4gc3RhdGUgaXMgY2hhbmdlZC5cbiAqIGBpbnNlcnRBdEluZGV4YHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkL3VucGlubmVkIGFyZWEgdGhlIGNvbHVtbiB3YXMgaW5zZXJ0ZWQuXG4gKiBgaXNQaW5uZWRgIHJldHVybnMgdGhlIGFjdHVhbCBwaW4gc3RhdGUgb2YgdGhlIGNvbHVtbiBhZnRlciB0aGUgb3BlcmF0aW9uIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGluQ29sdW1uRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBJZiBwaW5uZWQsIHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkIGFyZWEgdGhlIGNvbHVtbiBpcyBpbnNlcnRlZC5cbiAgICAgKiBJZiB1bnBpbm5lZCwgc3BlY2lmaWVzIGF0IHdoaWNoIGluZGV4IGluIHRoZSB1bnBpbm5lZCBhcmVhIHRoZSBjb2x1bW4gaXMgaW5zZXJ0ZWQuXG4gICAgICovXG4gICAgaW5zZXJ0QXRJbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFjdHVhbCBwaW4gc3RhdGUgb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJZiBwaW5uaW5nL3VucGlubmluZyBpcyBzdWNjZXNmdWxsLCB2YWx1ZSBvZiBgaXNQaW5uZWRgIHdpbGwgY2hhbmdlIGFjY29yZGluZ2x5IHdoZW4gcmVhZCBpbiB0aGUgXCItaW5nXCIgYW5kIFwiLWVkXCIgZXZlbnQuXG4gICAgICovXG4gICAgaXNQaW5uZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFyZ3VtZW50cyBiZWZvcmUgYSBjb2x1bW4ncyBwaW4gc3RhdGUgaXMgY2hhbmdlZC5cbiAqIGBpbnNlcnRBdEluZGV4YHNwZWNpZmllcyBhdCB3aGljaCBpbmRleCBpbiB0aGUgcGlubmVkL3VucGlubmVkIGFyZWEgdGhlIGNvbHVtbiBpcyBpbnNlcnRlZC5cbiAqIENhbiBiZSBjaGFuZ2VkIGluIHRoZSBgY29sdW1uUGluYCBldmVudC5cbiAqIGBpc1Bpbm5lZGAgcmV0dXJucyB0aGUgYWN0dWFsIHBpbiBzdGF0ZSBvZiB0aGUgY29sdW1uLiBXaGVuIHBpbm5pbmcvdW5waW5uaW5nIGlzIHN1Y2Nlc2Z1bGwsXG4gKiB0aGUgdmFsdWUgb2YgYGlzUGlubmVkYCB3aWxsIGNoYW5nZSBhY2NvcmRpbmdseSB3aGVuIHJlYWQgaW4gdGhlIFwiLWluZ1wiIGFuZCBcIi1lZFwiIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncyBleHRlbmRzIElQaW5Db2x1bW5FdmVudEFyZ3MsIENhbmNlbGFibGVFdmVudEFyZ3Mge1xufVxuXG4vKiogXG4gKiBSZXByZXNlbnRzIGV2ZW50IGFyZ3VtZW50cyByZWxhdGVkIHRvIGV2ZW50cywgdGhhdCBjYW4gb2NjdXIgZm9yIHJvd3MgaW4gYSBncmlkIFxuICogRXhhbXBsZSBmb3IgZXZlbnRzOiBhZGRpbmcsIGRlbGV0aW5nLCBzZWxlY3Rpb24sIHRyYW5zYWN0aW9uLCBldGMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0RhdGFFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgZGF0YTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUga2V5LCB0aGUgcm93IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGguIFxuICAgICAqIEF2YWlsYWJsZSBpZiBgcHJpbWFyeUtleWAgZXhpc3RzXG4gICAgICovXG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgZWRpdCBldmVudC4gKi9cbiAgICBvd25lcjogR3JpZFR5cGU7XG59XG5cbi8qKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4gaXMgYmVpbmcgcmVzaXplZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uUmVzaXplRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hbnRpb24gb2YgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIHJlc2l6ZWQgKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG9sZCB3aWR0aCBvZiB0aGUgY29sdW1uIGJlZm9yZSB0aGUgcmVzaXppbmcgKi9cbiAgICBwcmV2V2lkdGg6IHN0cmluZztcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmV3IHdpZHRoLCB0aGUgY29sdW1uIGlzIGJlaW5nIHJlc2l6ZWQgdG8gKi9cbiAgICBuZXdXaWR0aDogc3RyaW5nO1xufVxuXG4vKiogXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4gaXMgYmVpbmcgcmVzaXplZCBcbiAqIEl0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2x1bW4sIGl0J3Mgb2xkIGFuZCBuZXcgd2lkdGhcbiAqIFRoZSBldmVudCBjYW4gYmUgY2FuY2VsZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uUmVzaXppbmdFdmVudEFyZ3MgZXh0ZW5kcyBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIHtcbn1cblxuLyoqIFxuICogVGhlIGV2ZW50IGFyZ3VtZW50cyB3aGVuIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYSByb3cgaXMgYmVpbmcgY2hhbmdlZCBcbiAqIFRoZSBldmVudCBpcyBjYW5jZWxhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd1NlbGVjdGlvbkV2ZW50QXJncyBleHRlbmRzIENhbmNlbGFibGVFdmVudEFyZ3MsIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyBhbiBhcnJheSBvZiByb3dzLCB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNlbGVjdGVkICovXG4gICAgcmVhZG9ubHkgb2xkU2VsZWN0aW9uOiBhbnlbXTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmV3bHkgc2VsZWN0ZWQgcm93cyAqL1xuICAgIG5ld1NlbGVjdGlvbjogYW55W107XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgYWxsIGFkZGVkIHJvd3NcbiAgICAgKiBXaGVuZXZlciBhIHJvdyBoYXMgYmVlbiBzZWxlY3RlZCwgdGhlIGFycmF5IGlzIFwicmVmcmVzaGVkXCIgd2l0aCB0aGUgc2VsZWN0ZWQgcm93c1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGFkZGVkOiBhbnlbXTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyBhbiBhcnJheSBvZiBhbGwgcm93cywgcmVtb3ZlZCBmcm9tIHRoZSBzZWxlY3Rpb25cbiAgICAgKiBXaGVuZXZlciBhIHJvdyBoYXMgYmVlbiBkZXNlbGVjdGVkLCB0aGUgYXJyYXkgaXMgXCJyZWZyZXNoZWRcIiB3aXRoIHRoZSByb3dzLCBcbiAgICAgKiB0aGF0IGhhdmUgYmVlbiBwcmV2aW91c2x5IHNlbGVjdGVkLCBidXQgYXJlIG5vIGxvbmdlclxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlbW92ZWQ6IGFueVtdO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBoYXMgdHJpZ2dlcmVkIHRoZSBzZWxlY3Rpb24gY2hhbmdlXG4gICAgICogc2VsZWN0aW5nLCBkZXNlbGVjdGluZ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGV2ZW50PzogRXZlbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbGwgcm93cyBvZiB0aGUgZ3JpZCBoYXZlIGJlZW4gc2VsZWN0ZWQgKi9cbiAgICByZWFkb25seSBhbGxSb3dzU2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG4vKiogXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIGNvbHVtbiBpcyBiZWluZyBjaGFnZWQgXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MgZXh0ZW5kcyBDYW5jZWxhYmxlRXZlbnRBcmdzLCBJQmFzZUV2ZW50QXJncyB7XG4gICAgLyoqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgY29sdW1ucywgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBzZWxlY3RlZCAqL1xuICAgIHJlYWRvbmx5IG9sZFNlbGVjdGlvbjogc3RyaW5nW107XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5ld2x5IHNlbGVjdGVkIGNvbHVtbnMgKi9cbiAgICBuZXdTZWxlY3Rpb246IHN0cmluZ1tdO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIGFuIGFycmF5IG9mIGFsbCBhZGRlZCBjb2x1bW5zXG4gICAgICogV2hlbmV2ZXIgYSBjb2x1bW4gaGFzIGJlZW4gc2VsZWN0ZWQsIHRoZSBhcnJheSBpcyBcInJlZnJlc2hlZFwiIHdpdGggdGhlIHNlbGVjdGVkIGNvbHVtbnNcbiAgICAgKi9cbiAgICByZWFkb25seSBhZGRlZDogc3RyaW5nW107XG4gICAgLyoqIFxuICAgICAqIFJlcHJlc2VudHMgYW4gYXJyYXkgb2YgYWxsIGNvbHVtbnMsIHJlbW92ZWQgZnJvbSB0aGUgc2VsZWN0aW9uXG4gICAgICogV2hlbmV2ZXIgYSBjb2x1bW4gaGFzIGJlZW4gZGVzZWxlY3RlZCwgdGhlIGFycmF5IGlzIFwicmVmcmVzaGVkXCIgd2l0aCB0aGUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcHJldmlvdXNseSBzZWxlY3RlZCwgYnV0IGFyZSBubyBsb25nZXJcbiAgICAgKi9cbiAgICByZWFkb25seSByZW1vdmVkOiBzdHJpbmdbXTtcbiAgICAvKiogXG4gICAgICogUmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgZXZlbnQsIHRoYXQgaGFzIHRyaWdnZXJlZCB0aGUgc2VsZWN0aW9uIGNoYW5nZVxuICAgICAqIHNlbGVjdGluZywgZGVzZWxlY3RpbmdcbiAgICAgKi9cbiAgICByZWFkb25seSBldmVudD86IEV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hJbmZvIGV4dGVuZHMgSUJhc2VTZWFyY2hJbmZvIHtcbiAgICBtYXRjaEluZm9DYWNoZTogYW55W107XG4gICAgYWN0aXZlTWF0Y2hJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGdyaWQgdG9vbGJhciBleHBvcnQgZXZlbnQuXG4gKiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZ3JpZCBpbnN0YW5jZSwgZXhwb3J0ZXIgc2VydmljZSwgZXhwb3J0IG9wdGlvbnMsIFxuICogYW5kIGFsbG93cyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRUb29sYmFyRXhwb3J0RXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBgZ3JpZGAgcmVwcmVzZW50cyBhIHJlZmVyZW5jZSB0byB0aGUgaW5zdGFuY2Ugb2YgdGhlIGdyaWQgdGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgZXhwb3J0ZXJgIGlzIGEgYmFzZSBzZXJ2aWNlLlxuICAgICAqIFRoZSB0eXBlIChhbiBhYnN0cmFjdCBjbGFzcyBgSWd4QmFzZUV4cG9ydGVyYCkgaGFzIGl0J3Mgb3duIHByb3BlcnRpZXMgYW5kIG1ldGhvZHNcbiAgICAgKiBJdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUgZm9ybWF0IGFuZCBvcHRpb25zIG9mIHRoZSBleHBvcnQsIHRoZSBleHBvcnRlZCBlbGVtZW50IFxuICAgICAqIGFuZCBtZXRob2RzIGZvciBwcmVwYXJpbmcgdGhlIGRhdGEgZnJvbSB0aGUgZWxlbWVudHMgZm9yIGV4cG9ydGluZ1xuICAgICAqL1xuICAgIGV4cG9ydGVyOiBJZ3hCYXNlRXhwb3J0ZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHNldHRpbmdzLCB0aGF0IGNhbiBiZSBnaXZlbiB0byBhbiBleHBvcnRcbiAgICAgKiBUaGUgdHlwZSAoYW4gYWJzdHJhY3QgY2xhc3MgYElneEV4cG9ydGVyT3B0aW9uc0Jhc2VgKSBoYXMgcHJvcGVydGllcyBmb3IgY29sdW1uIHNldHRpbmdzIFxuICAgICAqICh3aGV0aGVyIHRoZXkgc2hvdWxkIGJlIGlnbm9yZWQpIGFzIHdlbGwgYXMgbWV0aG9kIGZvciBnZW5lcmF0aW5nIGEgZmlsZSBuYW1lXG4gICAgICovXG4gICAgb3B0aW9uczogSWd4RXhwb3J0ZXJPcHRpb25zQmFzZTtcbiAgICAvKiogXG4gICAgICogYGNhbmNlbGAgcmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCBoYXMgYmVlbiBpbnRlcmVwdGVkIGFuZCBzdG9wcGVkXG4gICAgICogSWYgdGhlIHZhbHVlIGJlY29tZXMgXCJ0cnVlXCIsIGl0IHJldHVybnMvZXhpdHMgZnJvbSB0aGUgbWV0aG9kLCBpbnN0YW5jaWF0aW5nIHRoZSBpbnRlcmZhY2UgXG4gICAgICovXG4gICAgY2FuY2VsOiBib29sZWFuO1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byB0aGUgc3RhcnQgb2YgYSBjb2x1bW4gbW92aW5nIG9wZXJhdGlvbiBpbiBhIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5Nb3ZpbmdTdGFydEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhhdCBpcyBiZWluZyBtb3ZlZC5cbiAgICAgKiBUaGUgYENvbHVtblR5cGVgIGNvbnRhaW5zIHRoZSBpbmZvcm1hdG9pbiAodGhlIGdyaWQgaXQgYmVsb25ncyB0bywgY3NzIGRhdGEsIHNldHRpbmdzLCBldGMuKSBvZiB0aGUgY29sdW1uIGluIGl0cyBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgc291cmNlOiBDb2x1bW5UeXBlO1xufVxuXG4vKiogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBhIGNvbHVtbiBtb3Zpbmcgb3BlcmF0aW9uIGluIGEgZ3JpZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uTW92aW5nRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIG1vdmVkLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBzb3VyY2U6IENvbHVtblR5cGU7XG4gICAgLyoqIFxuICAgICAqIGBjYW5jZWxgIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaGFzIGJlZW4gaW50ZXJlcHRlZCBhbmQgc3RvcHBlZFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlIFxuICAgICAqL1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuLyoqIFJlcHJlc2VudHMgZXZlbnQgYXJndW1lbnRzIHJlbGF0ZWQgdG8gdGhlIGVuZCBvZiBhIGNvbHVtbiBtb3Zpbmcgb3BlcmF0aW9uIGluIGEgZ3JpZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudHMgdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIG1vdmVkLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBzb3VyY2U6IENvbHVtblR5cGU7XG4gICAgLyoqXG4gICAgICogVGhlIHRhcmdldCBvZiB0aGUgZXZlbnQgcmVwcmVzZW50cyB0aGUgY29sdW1uLCB0aGUgc291cmNlIGlzIGJlaW5nIG1vdmVkIHRvLlxuICAgICAqIFRoZSBgQ29sdW1uVHlwZWAgY29udGFpbnMgdGhlIGluZm9ybWF0b2luICh0aGUgZ3JpZCBpdCBiZWxvbmdzIHRvLCBjc3MgZGF0YSwgc2V0dGluZ3MsIGV0Yy4pIG9mIHRoZSBjb2x1bW4gaW4gaXRzIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICB0YXJnZXQ6IENvbHVtblR5cGU7XG4gICAgLyoqIFxuICAgICAqIGBjYW5jZWxgIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaGFzIGJlZW4gaW50ZXJlcHRlZCBhbmQgc3RvcHBlZFxuICAgICAqIElmIHRoZSB2YWx1ZSBiZWNvbWVzIFwidHJ1ZVwiLCBpdCByZXR1cm5zL2V4aXRzIGZyb20gdGhlIG1ldGhvZCwgaW5zdGFuY2lhdGluZyB0aGUgaW50ZXJmYWNlIFxuICAgICAqL1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuLyoqIFxuICogUmVwcmVzZW50cyBhbiBldmVudCwgZW1pdHRlZCB3aGVuIGtleWRvd24gaXMgdHJpZ2dlcmVkIG92ZXIgZWxlbWVudCBpbnNpZGUgZ3JpZCdzIGJvZHkgXG4gKiBUaGlzIGV2ZW50IGlzIGZpcmVkIG9ubHkgaWYgdGhlIGtleSBjb21iaW5hdGlvbiBpcyBzdXBwb3J0ZWQgaW4gdGhlIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRLZXlkb3duRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBUaGUgYHRhcmdldFR5cGVgIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlIHRhcmdldGVkIG9iamVjdC4gRm9yIGV4YW1wbGUgYSBjZWxsIG9yIGEgcm93ICovXG4gICAgdGFyZ2V0VHlwZTogR3JpZEtleWRvd25UYXJnZXRUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhbmQgZGV0YWlscyBvZiB0aGUgb2JqZWN0IGl0c2VsZiAqL1xuICAgIHRhcmdldDogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBvY2N1cmVkLiAqL1xuICAgIGV2ZW50OiBFdmVudDtcbiAgICAvKiogXG4gICAgICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAgICAgKiBgY2FuY2VsYCByZXR1cm5zIHdoZXRoZXIgdGhlIGV2ZW50IGhhcyBiZWVuIGludGVyZXB0ZWQgYW5kIHN0b3BwZWRcbiAgICAgKiBJZiB0aGUgdmFsdWUgYmVjb21lcyBcInRydWVcIiwgaXQgcmV0dXJucy9leGl0cyBmcm9tIHRoZSBtZXRob2QsIGluc3RhbmNpYXRpbmcgdGhlIGludGVyZmFjZSBcbiAgICAgKi9cbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gZ2V0dGluZyB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiBhIGNlcnRhaW4gY2VsbCAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2VsbFBvc2l0aW9uIHtcbiAgICAvKiogSXQgcmV0dXJucyB0aGUgcG9zaXRpb24gKGluZGV4KSBvZiB0aGUgcm93LCB0aGUgY2VsbCBpcyBpbiAqL1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgLyoqIFxuICAgICAqIEl0IHJldHVybnMgdGhlIHBvc2l0aW9uIChpbmRleCkgb2YgdGhlIGNvbHVubSwgdGhlIGNlbGwgaXMgaW4gXG4gICAgICogQ291bnRzIG9ubHkgdGhlIHZpc2libGUgKG5vbiBoaWRkZW4pIGNvbHVtbnMgXG4gICAgICovXG4gICAgdmlzaWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG59XG5cbi8qKiBFbWl0dGVkIHdoZW4gYSBkcmFnZ2luZyBvcGVyYXRpb24gaXMgZmluaXNoZWQgKHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkKSAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm93RHJhZ0VuZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZHJhZyBkaXJlY3RpdmUgb3IgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBkcmFnIG9wZXJhdGlvbiAqL1xuICAgIGRyYWdEaXJlY3RpdmU6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gb2YgdGhlIHJvdyB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuICovXG4gICAgZHJhZ0RhdGE6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIEhUTUwgZWxlbWVudCBpdHNlbGYgKi9cbiAgICBkcmFnRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIGBhbmltYXRpb25gIHJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaXMgYW5pbWF0ZWQgKi9cbiAgICBhbmltYXRpb246IGJvb2xlYW47XG59XG5cbi8qKiBcbiAqIEVtaXR0ZWQgd2hlbiBhIGRyYWdnaW5nIG9wZXJhdGlvbiBpcyBzdGFydGluZyAod2hlbiB0aGUgcm93IGlzIFwicGlja2VkXCIpIFxuICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzIGV4dGVuZHMgQ2FuY2VsYWJsZUV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBkcmFnIGRpcmVjdGl2ZSBvciBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGRyYWcgb3BlcmF0aW9uICovXG4gICAgZHJhZ0RpcmVjdGl2ZTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgcm93IHRoYXQgaXMgYmVpbmcgZHJhZ2dlZC4gKi9cbiAgICBkcmFnRGF0YTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgSFRNTCBlbGVtZW50IGl0c2VsZiAqL1xuICAgIGRyYWdFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqINCgZXByZXNlbnRzIGV2ZW50IGFyZ3VtZW50cyByZWxhdGVkIHRvIHRoZSByb3cncyBleHBhbnNpb24gc3RhdGUgYmVpbmcgY2hhbmdlZCBpbiBhIGdyaWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd1RvZ2dsZUV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgSUQgb2YgdGhlIHJvdyB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50ICh3aGljaCBzdGF0ZSBpcyBjaGFuZ2VkKSAqL1xuICAgIHJvd0lEOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSByb3cgYWZ0ZXIgdGhlIG9wZXJhdGlvbiBoYXMgZW5kZWRcbiAgICAgKiBJbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHJvdyBpcyBiZWluZyBleHBhbmRlZCAodHJ1ZSkgb3IgY29sbGFwc2VkIChmYWxzZSlcbiAgICAgKi9cbiAgICBleHBhbmRlZDogYm9vbGVhbjtcbiAgICAvKiogXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBvcmlnaW5hbCBldmVudCwgdGhhdCBoYXMgdHJpZ2dlcmVkIHRoZSBleHBhbnRpb24vY29sbGFwc2UgXG4gICAgICovXG4gICAgZXZlbnQ/OiBFdmVudDtcbiAgICAvKiogXG4gICAgICogVGhlIGV2ZW50IGlzIGNhbmNlbGFibGVcbiAgICAgKiBgY2FuY2VsYCByZXR1cm5zIHdoZXRoZXIgdGhlIGV2ZW50IGhhcyBiZWVuIGludGVyZXB0ZWQgYW5kIHN0b3BwZWRcbiAgICAgKiBJZiB0aGUgdmFsdWUgYmVjb21lcyBcInRydWVcIiwgaXQgcmV0dXJucy9leGl0cyBmcm9tIHRoZSBtZXRob2QsIGluc3RhbmNpYXRpbmcgdGhlIGludGVyZmFjZSBcbiAgICAgKi9cbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm93J3MgcGluIHN0YXRlIGNoYW5nZXMuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5Sb3dFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG4gICAgLyoqXG4gICAgICogVGhlIElEIG9mIHRoZSByb3csIHRoYXQgd2FzIHBpbm5lZC91bnBpbm5lZC5cbiAgICAgKiAgIElEIGlzIGVpdGhlciB0aGUgcHJpbWFyeUtleSB2YWx1ZSBvciB0aGUgZGF0YSByZWNvcmQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm93SUQ6IGFueTtcbiAgICByb3c/OiBSb3dUeXBlO1xuICAgIC8qKiBUaGUgaW5kZXggYXQgd2hpY2ggdG8gcGluIHRoZSByb3cgaW4gdGhlIHBpbm5lZCByb3dzIGNvbGxlY3Rpb24uICovXG4gICAgaW5zZXJ0QXRJbmRleD86IG51bWJlcjtcbiAgICAvKiogV2hldGhlciBvciBub3QgdGhlIHJvdyBpcyBwaW5uZWQgb3IgdW5waW5uZWQuICovXG4gICAgcmVhZG9ubHkgaXNQaW5uZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZ3JpZCBpcyBzY3JvbGxlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNjcm9sbEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICAvKiogVGhlIHNjcm9sbCBkaXJlY3Rpb24gLSB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiAqL1xuICAgIGRpcmVjdGlvbjogc3RyaW5nO1xuICAgIC8qKiBUaGUgb3JpZ2luYWwgYnJvd3NlciBzY3JvbGwgZXZlbnQuICovXG4gICAgZXZlbnQ6IEV2ZW50O1xuICAgIC8qKiBUaGUgbmV3IHNjcm9sbCBwb3NpdGlvbiAqL1xuICAgIHNjcm9sbFBvc2l0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgY2hlY2tib3ggaW4gdGhlIGNoZWNrYm94XG4gKiBsaXN0IG9mIGFuIElneENvbHVtbkFjdGlvbnMgY29tcG9uZW50IGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblRvZ2dsZWRFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgLyoqIFRoZSBjb2x1bW4gdGhhdCBpcyB0b2dnbGVkLiAqL1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKiogVGhlIGNoZWNrZWQgc3RhdGUgYWZ0ZXIgdGhlIGFjdGlvbi4gKi9cbiAgICBjaGVja2VkOiBib29sZWFuO1xufVxuXG4vKiogRW1taXRlZCB3aGVuIHRoZSBhY3RpdmUgbm9kZSBpcyBjaGFuZ2VkICovXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSByb3cgaW5kZXggb2YgdGhlIGFjdGl2ZSBub2RlICovXG4gICAgcm93OiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvbHVtbiBpbmRleCBvZiB0aGUgYWN0aXZlIG5vZGUgKi9cbiAgICBjb2x1bW46IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwgb2YgdGhlIGFjdGl2ZSBub2RlIFxuICAgICAqL1xuICAgIGxldmVsPzogbnVtYmVyO1xuICAgIC8qKiBcbiAgICAgKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBhY3RpdmUgbm9kZS4gXG4gICAgICogVGhlIEdyaWRLZXlkb3duVGFyZ2V0VHlwZSBpcyBhbiBlbnVtIG9yIHRoYXQgc3BlY2lmaWVzIHRoZSBwb3NzaWJsZSB0YXJnZXQgdHlwZXMgXG4gICAgICovXG4gICAgdGFnOiBHcmlkS2V5ZG93blRhcmdldFR5cGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBldmVudCBhcmd1bWVudHMgcmVsYXRlZCB0byBzb3J0aW5nIGFuZCBncm91cGluZyBvcGVyYXRpb25zXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTb3J0aW5nRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3MsIENhbmNlbGFibGVFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgc29ydGluZyBleHByZXNzaW9ucyBhcHBsaWVkIHRvIHRoZSBncmlkLiBcbiAgICAgKiBJdCBjYW4gYmUgYSBzaW5nbGUgc29ydGluZyBleHByZXNzaW9uIG9yIGFuIGFycmF5IG9mIHRoZW1cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgICAqL1xuICAgIHNvcnRpbmdFeHByZXNzaW9ucz86IElTb3J0aW5nRXhwcmVzc2lvbiB8IEFycmF5PElTb3J0aW5nRXhwcmVzc2lvbj47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBnb3VwaW5nIGV4cHJlc3Npb25zIGFwcGxpZWQgdG8gdGhlIGdyaWQuIFxuICAgICAqIEl0IGNhbiBiZSBhIHNpbmdsZSBncm91cGluZyBleHByZXNzaW9uIG9yIGFuIGFycmF5IG9mIHRoZW1cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIHRoZSBzb3J0aW5nIGV4cHJlc3Npb24gYW5kIGNyaXRlcmlhIGJ5IHdoaWNoIHRoZSBlbGVtZW50cyB3aWxsIGJlIGdyb3VwZWRcbiAgICAgKi9cbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZXZlbnQgYXJndW1lbnRzIHJlbGF0ZWQgdG8gZmlsdGVyaW5nIG9wZXJhdGlvbnNcbiAqIFRoZSBldmVudCBpcyBjYW5jZWxhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcmluZ0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzLCBDYW5jZWxhYmxlRXZlbnRBcmdzIHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmaWx0ZXJpbmcgZXhwcmVzc2lvbnMgYXBwbGllZCB0byB0aGUgZ3JpZC5cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbHRlcmluZyBvcGVyYW5kcyBhbmQgb3BlcmF0b3IsIGFuIGV4cHJlc3Npb24gb3IgY29uZGl0aW9uLCBldGMuIFxuICAgICAqL1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xufVxuXG4vKiogVGhlIGV2ZW50IGFyZ3VtZW50cyBhZnRlciBhIGNvbHVtbidzIHZpc2liaWxpdHkgaXMgY2hhbmdlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhlIGV2ZW50IG9yaWdpbmF0ZWQgZnJvbSAqL1xuICAgIGNvbHVtbjogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBuZXcgaGlkZGVuIHN0YXRlIHRoYXQgdGhlIGNvbHVtbiB3aWxsIGhhdmUsIGlmIG9wZXJhdGlvbiBpcyBzdWNjZXNmdWxsLlxuICAgICAqIFdpbGwgYmUgYHRydWVgIHdoZW4gaGlkaW5nIGFuZCBgZmFsc2VgIHdoZW4gc2hvd2luZy5cbiAgICAgKi9cbiAgICBuZXdWYWx1ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBjb2x1bW4ncyB2aXNpYmlsaXR5IGlzIGNoYW5nZWQuXG4gKiBUaGUgZXZlbnQgaXMgY2FuY2VsYWJsZVxuICogSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbHVtbiBhbmQgdGhlIGl0J3MgdmlzaWJpbGl0eSBhZnRlciB0aGUgb3BlcmF0aW9uICh3aWxsIGJlIGB0cnVlYCB3aGVuIGhpZGluZyBhbmQgYGZhbHNlYCB3aGVuIHNob3dpbmcpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyBleHRlbmRzIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG59XG5cbiJdfQ==