igniteui-angular 18.2.13 → 18.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directives/button/button.directive.mjs +10 -6
- package/esm2022/lib/grids/common/crud.service.mjs +6 -4
- package/esm2022/lib/input-group/input-group.component.mjs +3 -3
- package/fesm2022/igniteui-angular.mjs +16 -10
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/directives/button/button.directive.d.ts +4 -2
- package/package.json +1 -1
|
@@ -147,13 +147,13 @@ export class IgxInputGroupComponent {
|
|
|
147
147
|
this._filled = false;
|
|
148
148
|
this._resourceStrings = getCurrentResourceStrings(InputResourceStringsEN);
|
|
149
149
|
this._theme = this.themeToken.theme;
|
|
150
|
-
const
|
|
150
|
+
const themeChange = this.themeToken.onChange((theme) => {
|
|
151
151
|
if (this._theme !== theme) {
|
|
152
152
|
this._theme = theme;
|
|
153
153
|
this.cdr.detectChanges();
|
|
154
154
|
}
|
|
155
155
|
});
|
|
156
|
-
this._destroyRef.onDestroy(() => unsubscribe);
|
|
156
|
+
this._destroyRef.onDestroy(() => themeChange.unsubscribe());
|
|
157
157
|
}
|
|
158
158
|
/** @hidden */
|
|
159
159
|
onClick(event) {
|
|
@@ -447,4 +447,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
|
|
|
447
447
|
type: HostBinding,
|
|
448
448
|
args: ['class.igx-input-group--search']
|
|
449
449
|
}] } });
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNySCxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUVWLFdBQVcsRUFDWCxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDM0IsUUFBUSxFQUFhLGdCQUFnQixFQUNyQyxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5QixzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUNILGlCQUFpQixFQUNqQixhQUFhLEVBQ2hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFD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Vzt1QkFBQyxnQ0FBZ0M7Z0JBT2xDLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsK0JBQStCO2dCQU9qQyxhQUFhO3NCQUR2QixXQUFXO3VCQUFDLHVDQUF1QztnQkFhekMsSUFBSTtzQkFEZCxLQUFLO3VCQUFDLE1BQU07Z0JBK0JGLEtBQUs7c0JBRGYsS0FBSztnQkE2Q0MsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhMUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEI1QixXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQztnQkFZbkMsV0FBVztzQkFEckIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBb0RuQyxTQUFTO3NCQURuQixXQUFXO3VCQUFDLDRCQUE0QjtnQkFpQjlCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQXFCL0IsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBZ0JqQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLGVBQWU7c0JBRHpCLFdBQVc7dUJBQUMsa0NBQWtDO2dCQWdCcEMsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBZ0JqQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsXG4gICAgT3B0aW9uYWwsIFF1ZXJ5TGlzdCwgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSW5wdXRSZXNvdXJjZVN0cmluZ3MsIElucHV0UmVzb3VyY2VTdHJpbmdzRU4gfSBmcm9tICcuLi9jb3JlL2kxOG4vaW5wdXQtcmVzb3VyY2VzJztcbmltcG9ydCB7IFBsYXRmb3JtVXRpbCwgZ2V0Q29tcG9uZW50VGhlbWUgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SGludERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvaGludC9oaW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIElneElucHV0RGlyZWN0aXZlLFxuICAgIElneElucHV0U3RhdGVcbn0gZnJvbSAnLi4vZGlyZWN0aXZlcy9pbnB1dC9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UHJlZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9wcmVmaXgvcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3N1ZmZpeC9zdWZmaXguZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgSWd4SW5wdXRHcm91cEJhc2UgfSBmcm9tICcuL2lucHV0LWdyb3VwLmNvbW1vbic7XG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwVHlwZSwgSUdYX0lOUFVUX0dST1VQX1RZUEUgfSBmcm9tICcuL2lucHV0R3JvdXBUeXBlJztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vcmVzb3VyY2VzJztcbmltcG9ydCB7IElneFRoZW1lLCBUSEVNRV9UT0tFTiwgVGhlbWVUb2tlbiB9IGZyb20gJy4uL3NlcnZpY2VzL3RoZW1lL3RoZW1lLnRva2VuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtaW5wdXQtZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnaW5wdXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4SW5wdXRHcm91cEJhc2UsIHVzZUV4aXN0aW5nOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIElneFByZWZpeERpcmVjdGl2ZSwgSWd4QnV0dG9uRGlyZWN0aXZlLCBOZ0NsYXNzLCBJZ3hTdWZmaXhEaXJlY3RpdmUsIElneEljb25Db21wb25lbnQsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4SW5wdXRHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIElneElucHV0R3JvdXBCYXNlLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUlucHV0UmVzb3VyY2VTdHJpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jlc291cmNlU3RyaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3Jlc291cmNlU3RyaW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJlc291cmNlIHN0cmluZ3MuXG4gICAgICovXG4gICAgcHVibGljIGdldCByZXNvdXJjZVN0cmluZ3MoKTogSUlucHV0UmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB0aGF0IGVuYWJsZXMvZGlzYWJsZXMgdGhlIGF1dG8tZ2VuZXJhdGVkIGNsYXNzIG9mIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAuXG4gICAgICogQnkgZGVmYXVsdCBhcHBsaWVkIHRoZSBjbGFzcyBpcyBhcHBsaWVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqICBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiAgbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogIHRoaXMuaW5wdXRHcm91cC5kZWZhdWx0Q2xhc3MgPSBmYWxzZTtcbiAgICAgKiBgYGBcbiAgICAgKiB9XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcGxhY2Vob2xkZXInKVxuICAgIHB1YmxpYyBoYXNQbGFjZWhvbGRlciA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcmVxdWlyZWQnKVxuICAgIHB1YmxpYyBpc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1mb2N1c2VkJylcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqIFdoZW4gdHJ1dGh5LCBkaXNhYmxlcyB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgLlxuICAgICAqIENvbnRyb2xsZWQgYnkgdGhlIHVuZGVybHlpbmcgYElneElucHV0RGlyZWN0aXZlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1pbnB1dC1ncm91cCBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvaWd4LWlucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1kaXNhYmxlZCcpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50cyBhdXRvbWF0aWNhbGx5IGZvY3VzaW5nIHRoZSBpbnB1dCB3aGVuIGNsaWNraW5nIG9uIG90aGVyIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBncm91cCAoZS5nLiBwcmVmaXggb3Igc3VmZml4KS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzIEF1dG9tYXRpYyBmb2N1cyBjYXVzZXMgc29mdHdhcmUga2V5Ym9hcmQgdG8gc2hvdyBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaW5wdXQtZ3JvdXAgW3N1cHByZXNzSW5wdXRBdXRvZm9jdXNdPVwidHJ1ZVwiPjwvaWd4LWlucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBzdXBwcmVzc0lucHV0QXV0b2ZvY3VzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS13YXJuaW5nJylcbiAgICBwdWJsaWMgaGFzV2FybmluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneEhpbnREaXJlY3RpdmUsIHsgcmVhZDogSWd4SGludERpcmVjdGl2ZSB9KVxuICAgIHByb3RlY3RlZCBoaW50czogUXVlcnlMaXN0PElneEhpbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hQcmVmaXhEaXJlY3RpdmUsIHsgcmVhZDogSWd4UHJlZml4RGlyZWN0aXZlLCBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBfcHJlZml4ZXM6IFF1ZXJ5TGlzdDxJZ3hQcmVmaXhEaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hTdWZmaXhEaXJlY3RpdmUsIHsgcmVhZDogSWd4U3VmZml4RGlyZWN0aXZlLCBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBfc3VmZml4ZXM6IFF1ZXJ5TGlzdDxJZ3hTdWZmaXhEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKElneElucHV0RGlyZWN0aXZlLCB7IHJlYWQ6IElneElucHV0RGlyZWN0aXZlLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgaW5wdXQ6IElneElucHV0RGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIF90eXBlOiBJZ3hJbnB1dEdyb3VwVHlwZSA9IG51bGw7XG4gICAgcHJpdmF0ZSBfZmlsbGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfdGhlbWU6IElneFRoZW1lO1xuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncyA9IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MoSW5wdXRSZXNvdXJjZVN0cmluZ3NFTik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS12YWxpZCcpXG4gICAgcHVibGljIGdldCB2YWxpZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC52YWxpZCA9PT0gSWd4SW5wdXRTdGF0ZS5WQUxJRDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1pbnZhbGlkJylcbiAgICBwdWJsaWMgZ2V0IGludmFsaWRDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQudmFsaWQgPT09IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1maWxsZWQnKVxuICAgIHB1YmxpYyBnZXQgaXNGaWxsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxsZWQgfHwgKHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tdGV4dGFyZWEtZ3JvdXAnKVxuICAgIHB1YmxpYyBnZXQgdGV4dEFyZWFDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQuaXNUZXh0QXJlYTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGhvdyB0aGUgaW5wdXQgd2lsbCBiZSBzdHlsZWQuXG4gICAgICogQWxsb3dlZCB2YWx1ZXMgb2YgdHlwZSBJZ3hJbnB1dEdyb3VwVHlwZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1pbnB1dC1ncm91cCBbdHlwZV09XCInc2VhcmNoJ1wiPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgndHlwZScpXG4gICAgcHVibGljIHNldCB0eXBlKHZhbHVlOiBJZ3hJbnB1dEdyb3VwVHlwZSkge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgLiBIb3cgdGhlIGlucHV0IGlzIHN0eWxlZC5cbiAgICAgKiBUaGUgZGVmYXVsdCBpcyBgbGluZWAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaW5wdXRUeXBlID0gdGhpcy5pbnB1dEdyb3VwLnR5cGU7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGUgfHwgdGhpcy5faW5wdXRHcm91cFR5cGUgfHwgJ2xpbmUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRoZW1lIG9mIHRoZSBpbnB1dC5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBvZiB0eXBlIElneElucHV0R3JvdXBUaGVtZS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgKiAgbGV0IGlucHV0VGhlbWUgPSAnZmx1ZW50JztcbiAgICAgKiB9XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRoZW1lKHZhbHVlOiBJZ3hUaGVtZSkge1xuICAgICAgICB0aGlzLl90aGVtZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRoZW1lIG9mIHRoZSBpbnB1dC5cbiAgICAgKiBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgb2YgdHlwZSBJZ3hJbnB1dEdyb3VwVHlwZS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgKiAgbGV0IGlucHV0VGhlbWUgPSB0aGlzLmlucHV0R3JvdXAudGhlbWU7XG4gICAgICogfVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdGhlbWUoKTogSWd4VGhlbWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChJR1hfSU5QVVRfR1JPVVBfVFlQRSlcbiAgICAgICAgcHJpdmF0ZSBfaW5wdXRHcm91cFR5cGU6IElneElucHV0R3JvdXBUeXBlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKVxuICAgICAgICBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRIRU1FX1RPS0VOKVxuICAgICAgICBwcml2YXRlIHRoZW1lVG9rZW46IFRoZW1lVG9rZW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5fdGhlbWUgPSB0aGlzLnRoZW1lVG9rZW4udGhlbWU7XG5cbiAgICAgICAgY29uc3QgeyB1bnN1YnNjcmliZSB9ID0gdGhpcy50aGVtZVRva2VuLm9uQ2hhbmdlKCh0aGVtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3RoZW1lICE9PSB0aGVtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RoZW1lID0gdGhlbWU7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB1bnN1YnNjcmliZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNGb2N1c2VkICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgIXRoaXMuc3VwcHJlc3NJbnB1dEF1dG9mb2N1c1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvblBvaW50ZXJEb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkICYmIGV2ZW50LnRhcmdldCAhPT0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGhpbnRDbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgaGFzIGhpbnRzLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlucHV0SGludHMgPSB0aGlzLmlucHV0R3JvdXAuaGFzSGludHM7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaGFzSGludHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnRzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXByZWZpeGVkJylcbiAgICBwdWJsaWMgZ2V0IGhhc1ByZWZpeGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJlZml4ZXMubGVuZ3RoID4gMCB8fCB0aGlzLmlzRmlsZVR5cGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHNldCBwcmVmaXhlcyhpdGVtczogUXVlcnlMaXN0PElneFByZWZpeERpcmVjdGl2ZT4pIHtcbiAgICAgICAgdGhpcy5fcHJlZml4ZXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tc3VmZml4ZWQnKVxuICAgIHB1YmxpYyBnZXQgaGFzU3VmZml4ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWZmaXhlcy5sZW5ndGggPiAwIHx8IHRoaXMuaXNGaWxlVHlwZSAmJiB0aGlzLmlzRmlsbGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBzZXQgc3VmZml4ZXMoaXRlbXM6IFF1ZXJ5TGlzdDxJZ3hQcmVmaXhEaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuX3N1ZmZpeGVzID0gaXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgaGFzIGJvcmRlci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpbnB1dEJvcmRlciA9IHRoaXMuaW5wdXRHcm91cC5oYXNCb3JkZXI7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaGFzQm9yZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRoaXMudHlwZSA9PT0gJ2xpbmUnIHx8IHRoaXMudHlwZSA9PT0gJ2JveCcpICYmXG4gICAgICAgICAgICB0aGlzLl90aGVtZSA9PT0gJ21hdGVyaWFsJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgbGluZS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlTGluZSA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVMaW5lO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUxpbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdsaW5lJyAmJiB0aGlzLl90aGVtZSA9PT0gJ21hdGVyaWFsJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0eXBlIGlzIGJveC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlQm94ID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUJveDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWJveCcpXG4gICAgcHVibGljIGdldCBpc1R5cGVCb3goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdib3gnICYmIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyB1cGxvYWRCdXR0b25IYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgY2xlYXJWYWx1ZUhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuaW5wdXQuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tZmlsZScpXG4gICAgcHVibGljIGdldCBpc0ZpbGVUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC50eXBlID09PSAnZmlsZSc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBmaWxlTmFtZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LmZpbGVOYW1lcyB8fCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MuaWd4X2lucHV0X2ZpbGVfcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdHlwZSBpcyBib3JkZXIuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUJvcmRlciA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVCb3JkZXI7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1ib3JkZXInKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlQm9yZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSAnYm9yZGVyJyAmJiB0aGlzLl90aGVtZSA9PT0gJ21hdGVyaWFsJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0aGVtZSBpcyBGbHVlbnQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUZsdWVudCA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVGbHVlbnQ7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1mbHVlbnQnKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlRmx1ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWUgPT09ICdmbHVlbnQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHRoZW1lIGlzIEJvb3RzdHJhcC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlQm9vdHN0cmFwID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUJvb3RzdHJhcDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWJvb3RzdHJhcCcpXG4gICAgcHVibGljIGdldCBpc1R5cGVCb290c3RyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZSA9PT0gJ2Jvb3RzdHJhcCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdGhlbWUgaXMgSW5kaWdvLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVJbmRpZ28gPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlSW5kaWdvO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0taW5kaWdvJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUluZGlnbygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoZW1lID09PSAnaW5kaWdvJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0eXBlIGlzIHNlYXJjaC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlU2VhcmNoID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZVNlYXJjaDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXNlYXJjaCcpXG4gICAgcHVibGljIGdldCBpc1R5cGVTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdzZWFyY2gnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCBmaWxsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgc2V0IGZpbGxlZCh2YWwpIHtcbiAgICAgICAgdGhpcy5fZmlsbGVkID0gdmFsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50VGhlbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy50aGVtZVRva2VuLnByZWZlclRva2VuKSB7XG4gICAgICAgICAgICBjb25zdCB0aGVtZSA9IGdldENvbXBvbmVudFRoZW1lKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKHRoZW1lICYmIHRoZW1lICE9PSB0aGlzLl90aGVtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGhlbWUgPSB0aGVtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50VGhlbWUoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX193cmFwcGVyXCIgKm5nSWY9XCJpc1R5cGVCb3g7IGVsc2UgYnVuZGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2hpbnRcIiAoY2xpY2spPVwiaGludENsaWNrSGFuZGxlcigkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWhpbnQsIFtpZ3hIaW50XVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hMYWJlbF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hJbnB1dF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3ByZWZpeD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtcHJlZml4LCBbaWd4UHJlZml4XVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdXBsb2FkQnV0dG9uPlxuICAgIDxpZ3gtcHJlZml4ICpuZ0lmPVwiaXNGaWxlVHlwZVwiIGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX191cGxvYWQtYnV0dG9uXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRCdXR0b25IYW5kbGVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lneC1pbnB1dC1ncm91cF9fdXBsb2FkLWJ1dHRvbic6IGlzVHlwZUxpbmUgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHJlc291cmNlU3RyaW5ncy5pZ3hfaW5wdXRfdXBsb2FkX2J1dHRvbiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2lneC1wcmVmaXg+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZpbGVzPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0ZpbGVUeXBlXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2ZpbGUtaW5wdXRcIlxuICAgICAgICBbdGl0bGVdPVwiZmlsZU5hbWVzXCJcbiAgICA+XG4gICAgICAgIDxzcGFuPnt7IGZpbGVOYW1lcyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYXI+XG4gICAgPGlneC1zdWZmaXhcbiAgICAgICAgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2NsZWFyLWljb25cIlxuICAgICAgICAqbmdJZj1cImlzRmlsZVR5cGUgJiYgaXNGaWxsZWRcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZUhhbmRsZXIoKVwiXG4gICAgICAgIChrZXlkb3duLkVudGVyKT1cImNsZWFyVmFsdWVIYW5kbGVyKClcIlxuICAgICAgICB0aXRsZT1cImNsZWFyIGZpbGVzXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICA+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImlucHV0X2NsZWFyXCI+PC9pZ3gtaWNvbj5cbiAgICA8L2lneC1zdWZmaXg+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N1ZmZpeD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtc3VmZml4LCBbaWd4U3VmZml4XVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWF0ZXJpYWxCdW5kbGU+XG4gICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1zdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fbm90Y2hcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtbWFpblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fZmlsbGVyXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLWVuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsZWFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VmZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2xpbmVcIiAqbmdJZj1cImhhc0JvcmRlclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmbHVlbnRCdW5kbGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLXN0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLW1haW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1lbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbGVhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19saW5lXCIgKm5nSWY9XCJoYXNCb3JkZXJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9vdHN0cmFwQnVuZGxlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1zdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVzXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLWVuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsZWFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VmZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidW5kbGU+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGhlbWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb3RzdHJhcCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib290c3RyYXBCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZsdWVudCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmbHVlbnRCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGlnbydcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmbHVlbnRCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hdGVyaWFsQnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNySCxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUVWLFdBQVcsRUFDWCxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDM0IsUUFBUSxFQUFhLGdCQUFnQixFQUNyQyxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5QixzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUNILGlCQUFpQixFQUNqQixhQUFhLEVBQ2hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFD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QixXQUFXO3VCQUFDLGdDQUFnQztnQkFPbEMsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBT2pDLGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsdUNBQXVDO2dCQWF6QyxJQUFJO3NCQURkLEtBQUs7dUJBQUMsTUFBTTtnQkErQkYsS0FBSztzQkFEZixLQUFLO2dCQTJDQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWExQixhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0QjVCLFdBQVc7c0JBRHJCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVluQyxXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQztnQkFvRG5DLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsNEJBQTRCO2dCQWlCOUIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBcUIvQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsK0JBQStCO2dCQWdCakMsZUFBZTtzQkFEekIsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBZ0JwQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nQ2xhc3MsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCxcbiAgICBPcHRpb25hbCwgUXVlcnlMaXN0LCBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElJbnB1dFJlc291cmNlU3RyaW5ncywgSW5wdXRSZXNvdXJjZVN0cmluZ3NFTiB9IGZyb20gJy4uL2NvcmUvaTE4bi9pbnB1dC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsLCBnZXRDb21wb25lbnRUaGVtZSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hIaW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9oaW50L2hpbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgSWd4SW5wdXREaXJlY3RpdmUsXG4gICAgSWd4SW5wdXRTdGF0ZVxufSBmcm9tICcuLi9kaXJlY3RpdmVzL2lucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hQcmVmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3ByZWZpeC9wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc3VmZml4L3N1ZmZpeC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwQmFzZSB9IGZyb20gJy4vaW5wdXQtZ3JvdXAuY29tbW9uJztcbmltcG9ydCB7IElneElucHV0R3JvdXBUeXBlLCBJR1hfSU5QVVRfR1JPVVBfVFlQRSB9IGZyb20gJy4vaW5wdXRHcm91cFR5cGUnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSWd4VGhlbWUsIFRIRU1FX1RPS0VOLCBUaGVtZVRva2VuIH0gZnJvbSAnLi4vc2VydmljZXMvdGhlbWUvdGhlbWUudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1pbnB1dC1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdpbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJZ3hJbnB1dEdyb3VwQmFzZSwgdXNlRXhpc3Rpbmc6IElneElucHV0R3JvdXBDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgSWd4UHJlZml4RGlyZWN0aXZlLCBJZ3hCdXR0b25EaXJlY3RpdmUsIE5nQ2xhc3MsIElneFN1ZmZpeERpcmVjdGl2ZSwgSWd4SWNvbkNvbXBvbmVudCwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgSWd4SW5wdXRHcm91cEJhc2UsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHJlc291cmNlIHN0cmluZ3MuXG4gICAgICogQnkgZGVmYXVsdCBpdCB1c2VzIEVOIHJlc291cmNlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzb3VyY2VTdHJpbmdzKHZhbHVlOiBJSW5wdXRSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJSW5wdXRSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHRoYXQgZW5hYmxlcy9kaXNhYmxlcyB0aGUgYXV0by1nZW5lcmF0ZWQgY2xhc3Mgb2YgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YC5cbiAgICAgKiBCeSBkZWZhdWx0IGFwcGxpZWQgdGhlIGNsYXNzIGlzIGFwcGxpZWQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqICBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgdGhpcy5pbnB1dEdyb3VwLmRlZmF1bHRDbGFzcyA9IGZhbHNlO1xuICAgICAqIGBgYFxuICAgICAqIH1cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cCcpXG4gICAgcHVibGljIGRlZmF1bHRDbGFzcyA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1wbGFjZWhvbGRlcicpXG4gICAgcHVibGljIGhhc1BsYWNlaG9sZGVyID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1yZXF1aXJlZCcpXG4gICAgcHVibGljIGlzUmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZvY3VzZWQnKVxuICAgIHB1YmxpYyBpc0ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICogV2hlbiB0cnV0aHksIGRpc2FibGVzIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAuXG4gICAgICogQ29udHJvbGxlZCBieSB0aGUgdW5kZXJseWluZyBgSWd4SW5wdXREaXJlY3RpdmVgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWlucHV0LWdyb3VwIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFByZXZlbnRzIGF1dG9tYXRpY2FsbHkgZm9jdXNpbmcgdGhlIGlucHV0IHdoZW4gY2xpY2tpbmcgb24gb3RoZXIgZWxlbWVudHMgaW4gdGhlIGlucHV0IGdyb3VwIChlLmcuIHByZWZpeCBvciBzdWZmaXgpLlxuICAgICAqXG4gICAgICogQHJlbWFya3MgQXV0b21hdGljIGZvY3VzIGNhdXNlcyBzb2Z0d2FyZSBrZXlib2FyZCB0byBzaG93IG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1pbnB1dC1ncm91cCBbc3VwcHJlc3NJbnB1dEF1dG9mb2N1c109XCJ0cnVlXCI+PC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIHN1cHByZXNzSW5wdXRBdXRvZm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXdhcm5pbmcnKVxuICAgIHB1YmxpYyBoYXNXYXJuaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4SGludERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hIaW50RGlyZWN0aXZlIH0pXG4gICAgcHJvdGVjdGVkIGhpbnRzOiBRdWVyeUxpc3Q8SWd4SGludERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKElneFByZWZpeERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hQcmVmaXhEaXJlY3RpdmUsIGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIF9wcmVmaXhlczogUXVlcnlMaXN0PElneFByZWZpeERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKElneFN1ZmZpeERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hTdWZmaXhEaXJlY3RpdmUsIGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIF9zdWZmaXhlczogUXVlcnlMaXN0PElneFN1ZmZpeERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4SW5wdXREaXJlY3RpdmUsIHsgcmVhZDogSWd4SW5wdXREaXJlY3RpdmUsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBpbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG5cbiAgICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgX3R5cGU6IElneElucHV0R3JvdXBUeXBlID0gbnVsbDtcbiAgICBwcml2YXRlIF9maWxsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF90aGVtZTogSWd4VGhlbWU7XG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VTdHJpbmdzID0gZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyhJbnB1dFJlc291cmNlU3RyaW5nc0VOKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXZhbGlkJylcbiAgICBwdWJsaWMgZ2V0IHZhbGlkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnZhbGlkID09PSBJZ3hJbnB1dFN0YXRlLlZBTElEO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWludmFsaWQnKVxuICAgIHB1YmxpYyBnZXQgaW52YWxpZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC52YWxpZCA9PT0gSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZpbGxlZCcpXG4gICAgcHVibGljIGdldCBpc0ZpbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxlZCB8fCAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS10ZXh0YXJlYS1ncm91cCcpXG4gICAgcHVibGljIGdldCB0ZXh0QXJlYUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5pc1RleHRBcmVhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgaG93IHRoZSBpbnB1dCB3aWxsIGJlIHN0eWxlZC5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBvZiB0eXBlIElneElucHV0R3JvdXBUeXBlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWlucHV0LWdyb3VwIFt0eXBlXT1cIidzZWFyY2gnXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCd0eXBlJylcbiAgICBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IElneElucHV0R3JvdXBUeXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAuIEhvdyB0aGUgaW5wdXQgaXMgc3R5bGVkLlxuICAgICAqIFRoZSBkZWZhdWx0IGlzIGBsaW5lYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpbnB1dFR5cGUgPSB0aGlzLmlucHV0R3JvdXAudHlwZTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZSB8fCB0aGlzLl9pbnB1dEdyb3VwVHlwZSB8fCAnbGluZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGhlbWUgb2YgdGhlIGlucHV0LlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIG9mIHR5cGUgSWd4SW5wdXRHcm91cFRoZW1lLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAqICBsZXQgaW5wdXRUaGVtZSA9ICdmbHVlbnQnO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdGhlbWUodmFsdWU6IElneFRoZW1lKSB7XG4gICAgICAgIHRoaXMuX3RoZW1lID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdGhlbWUgb2YgdGhlIGlucHV0LlxuICAgICAqIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBvZiB0eXBlIElneElucHV0R3JvdXBUeXBlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAqICBsZXQgaW5wdXRUaGVtZSA9IHRoaXMuaW5wdXRHcm91cC50aGVtZTtcbiAgICAgKiB9XG4gICAgICovXG4gICAgcHVibGljIGdldCB0aGVtZSgpOiBJZ3hUaGVtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KElHWF9JTlBVVF9HUk9VUF9UWVBFKVxuICAgICAgICBwcml2YXRlIF9pbnB1dEdyb3VwVHlwZTogSWd4SW5wdXRHcm91cFR5cGUsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVEhFTUVfVE9LRU4pXG4gICAgICAgIHByaXZhdGUgdGhlbWVUb2tlbjogVGhlbWVUb2tlblxuICAgICkge1xuICAgICAgICB0aGlzLl90aGVtZSA9IHRoaXMudGhlbWVUb2tlbi50aGVtZTtcbiAgICAgICAgY29uc3QgdGhlbWVDaGFuZ2UgPSB0aGlzLnRoZW1lVG9rZW4ub25DaGFuZ2UoKHRoZW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdGhlbWUgIT09IHRoZW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGhlbWUgPSB0aGVtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGVtZUNoYW5nZS51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc0ZvY3VzZWQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAhdGhpcy5zdXBwcmVzc0lucHV0QXV0b2ZvY3VzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQgJiYgZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgaGludENsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCBoYXMgaGludHMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaW5wdXRIaW50cyA9IHRoaXMuaW5wdXRHcm91cC5oYXNIaW50cztcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNIaW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcHJlZml4ZWQnKVxuICAgIHB1YmxpYyBnZXQgaGFzUHJlZml4ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmVmaXhlcy5sZW5ndGggPiAwIHx8IHRoaXMuaXNGaWxlVHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgc2V0IHByZWZpeGVzKGl0ZW1zOiBRdWVyeUxpc3Q8SWd4UHJlZml4RGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLl9wcmVmaXhlcyA9IGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1zdWZmaXhlZCcpXG4gICAgcHVibGljIGdldCBoYXNTdWZmaXhlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1ZmZpeGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5pc0ZpbGVUeXBlICYmIHRoaXMuaXNGaWxsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHNldCBzdWZmaXhlcyhpdGVtczogUXVlcnlMaXN0PElneFByZWZpeERpcmVjdGl2ZT4pIHtcbiAgICAgICAgdGhpcy5fc3VmZml4ZXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCBoYXMgYm9yZGVyLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlucHV0Qm9yZGVyID0gdGhpcy5pbnB1dEdyb3VwLmhhc0JvcmRlcjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNCb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy50eXBlID09PSAnbGluZScgfHwgdGhpcy50eXBlID09PSAnYm94JykgJiZcbiAgICAgICAgICAgIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdHlwZSBpcyBsaW5lLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVMaW5lID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUxpbmU7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNUeXBlTGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2xpbmUnICYmIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgYm94LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVCb3ggPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlQm94O1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tYm94JylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUJveCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2JveCcgJiYgdGhpcy5fdGhlbWUgPT09ICdtYXRlcmlhbCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHVwbG9hZEJ1dHRvbkhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBjbGVhclZhbHVlSGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5jbGVhcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1maWxlJylcbiAgICBwdWJsaWMgZ2V0IGlzRmlsZVR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnR5cGUgPT09ICdmaWxlJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgZ2V0IGZpbGVOYW1lcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQuZmlsZU5hbWVzIHx8IHRoaXMuX3Jlc291cmNlU3RyaW5ncy5pZ3hfaW5wdXRfZmlsZV9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0eXBlIGlzIGJvcmRlci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlQm9yZGVyID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUJvcmRlcjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWJvcmRlcicpXG4gICAgcHVibGljIGdldCBpc1R5cGVCb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdib3JkZXInICYmIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHRoZW1lIGlzIEZsdWVudC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlRmx1ZW50ID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUZsdWVudDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZsdWVudCcpXG4gICAgcHVibGljIGdldCBpc1R5cGVGbHVlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZSA9PT0gJ2ZsdWVudCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdGhlbWUgaXMgQm9vdHN0cmFwLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVCb290c3RyYXAgPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlQm9vdHN0cmFwO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tYm9vdHN0cmFwJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUJvb3RzdHJhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoZW1lID09PSAnYm9vdHN0cmFwJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0aGVtZSBpcyBJbmRpZ28uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUluZGlnbyA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVJbmRpZ287XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1pbmRpZ28nKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlSW5kaWdvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWUgPT09ICdpbmRpZ28nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgc2VhcmNoLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVTZWFyY2ggPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlU2VhcmNoO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tc2VhcmNoJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZVNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ3NlYXJjaCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGZpbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBzZXQgZmlsbGVkKHZhbCkge1xuICAgICAgICB0aGlzLl9maWxsZWQgPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRUaGVtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoZW1lVG9rZW4ucHJlZmVyVG9rZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IHRoZW1lID0gZ2V0Q29tcG9uZW50VGhlbWUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAodGhlbWUgJiYgdGhlbWUgIT09IHRoaXMuX3RoZW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVtZSA9IHRoZW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRUaGVtZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX3dyYXBwZXJcIiAqbmdJZj1cImlzVHlwZUJveDsgZWxzZSBidW5kbGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9faGludFwiIChjbGljayk9XCJoaW50Q2xpY2tIYW5kbGVyKCRldmVudClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtaGludCwgW2lneEhpbnRdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2lneExhYmVsXVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2lneElucHV0XVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcHJlZml4PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1wcmVmaXgsIFtpZ3hQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN1cGxvYWRCdXR0b24+XG4gICAgPGlneC1wcmVmaXggKm5nSWY9XCJpc0ZpbGVUeXBlXCIgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX3VwbG9hZC1idXR0b25cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWd4QnV0dG9uPVwiY29udGFpbmVkXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInVwbG9hZEJ1dHRvbkhhbmRsZXIoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaWd4LWlucHV0LWdyb3VwX191cGxvYWQtYnV0dG9uJzogaXNUeXBlTGluZSB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgcmVzb3VyY2VTdHJpbmdzLmlneF9pbnB1dF91cGxvYWRfYnV0dG9uIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvaWd4LXByZWZpeD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmlsZXM+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzRmlsZVR5cGVcIlxuICAgICAgICBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fZmlsZS1pbnB1dFwiXG4gICAgICAgIFt0aXRsZV09XCJmaWxlTmFtZXNcIlxuICAgID5cbiAgICAgICAgPHNwYW4+e3sgZmlsZU5hbWVzIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjbGVhcj5cbiAgICA8aWd4LXN1ZmZpeFxuICAgICAgICBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fY2xlYXItaWNvblwiXG4gICAgICAgICpuZ0lmPVwiaXNGaWxlVHlwZSAmJiBpc0ZpbGxlZFwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlSGFuZGxlcigpXCJcbiAgICAgICAgKGtleWRvd24uRW50ZXIpPVwiY2xlYXJWYWx1ZUhhbmRsZXIoKVwiXG4gICAgICAgIHRpdGxlPVwiY2xlYXIgZmlsZXNcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgID5cbiAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImRlZmF1bHRcIiBuYW1lPVwiaW5wdXRfY2xlYXJcIj48L2lneC1pY29uPlxuICAgIDwvaWd4LXN1ZmZpeD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3VmZml4PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1zdWZmaXgsIFtpZ3hTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtYXRlcmlhbEJ1bmRsZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLXN0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19ub3RjaFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1tYWluXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19maWxsZXJcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtZW5kXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fbGluZVwiICpuZ0lmPVwiaGFzQm9yZGVyXCI+PC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZsdWVudEJ1bmRsZT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtc3RhcnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtbWFpblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLWVuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsZWFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VmZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2xpbmVcIiAqbmdJZj1cImhhc0JvcmRlclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib290c3RyYXBCdW5kbGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLXN0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZXNcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtZW5kXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1bmRsZT5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0aGVtZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vdHN0cmFwJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvb3RzdHJhcEJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmx1ZW50J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZsdWVudEJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5kaWdvJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZsdWVudEJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWF0ZXJpYWxCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -8578,6 +8578,11 @@ const IgxButtonType = /*@__PURE__*/ mkenum({
|
|
|
8578
8578
|
* ```
|
|
8579
8579
|
*/
|
|
8580
8580
|
class IgxButtonDirective extends IgxButtonBaseDirective {
|
|
8581
|
+
emitSelected() {
|
|
8582
|
+
this.buttonSelected.emit({
|
|
8583
|
+
button: this
|
|
8584
|
+
});
|
|
8585
|
+
}
|
|
8581
8586
|
/**
|
|
8582
8587
|
* Gets or sets whether the button is selected.
|
|
8583
8588
|
* Mainly used in the IgxButtonGroup component and it will have no effect if set separately.
|
|
@@ -8616,11 +8621,10 @@ class IgxButtonDirective extends IgxButtonBaseDirective {
|
|
|
8616
8621
|
this._selected = false;
|
|
8617
8622
|
}
|
|
8618
8623
|
ngAfterContentInit() {
|
|
8619
|
-
this.nativeElement.addEventListener('click', ()
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
});
|
|
8624
|
+
this.nativeElement.addEventListener('click', this.emitSelected.bind(this));
|
|
8625
|
+
}
|
|
8626
|
+
ngOnDestroy() {
|
|
8627
|
+
this.nativeElement.removeEventListener('click', this.emitSelected);
|
|
8624
8628
|
}
|
|
8625
8629
|
/**
|
|
8626
8630
|
* Sets the type of the button.
|
|
@@ -10430,13 +10434,13 @@ class IgxInputGroupComponent {
|
|
|
10430
10434
|
this._filled = false;
|
|
10431
10435
|
this._resourceStrings = getCurrentResourceStrings(InputResourceStringsEN);
|
|
10432
10436
|
this._theme = this.themeToken.theme;
|
|
10433
|
-
const
|
|
10437
|
+
const themeChange = this.themeToken.onChange((theme) => {
|
|
10434
10438
|
if (this._theme !== theme) {
|
|
10435
10439
|
this._theme = theme;
|
|
10436
10440
|
this.cdr.detectChanges();
|
|
10437
10441
|
}
|
|
10438
10442
|
});
|
|
10439
|
-
this._destroyRef.onDestroy(() => unsubscribe);
|
|
10443
|
+
this._destroyRef.onDestroy(() => themeChange.unsubscribe());
|
|
10440
10444
|
}
|
|
10441
10445
|
/** @hidden */
|
|
10442
10446
|
onClick(event) {
|
|
@@ -25352,10 +25356,12 @@ class IgxGridCRUDService extends IgxRowAddCrudState {
|
|
|
25352
25356
|
return;
|
|
25353
25357
|
}
|
|
25354
25358
|
this.endEdit(true, event);
|
|
25355
|
-
|
|
25356
|
-
|
|
25359
|
+
// work with copy of original row, since context may change on collapse.
|
|
25360
|
+
const parentRowCopy = parentRow ? Object.assign(copyDescriptors(parentRow), parentRow) : null;
|
|
25361
|
+
if (parentRowCopy != null && this.grid.expansionStates.get(parentRowCopy.key)) {
|
|
25362
|
+
this.grid.collapseRow(parentRowCopy.key);
|
|
25357
25363
|
}
|
|
25358
|
-
this.createAddRow(
|
|
25364
|
+
this.createAddRow(parentRowCopy, asChild);
|
|
25359
25365
|
this.grid.transactions.startPending();
|
|
25360
25366
|
if (this.addRowParent.isPinned) {
|
|
25361
25367
|
// If parent is pinned, add the new row to pinned records
|