@quadrel-enterprise-ui/framework 18.30.0 → 18.31.0
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
## [18.31.0](https://github.com/BAZG-Quadrel/quadrel-framework/compare/v18.30.0...v18.31.0) (2025-12-31)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* save draft translation issue ([9cd5e16](https://github.com/BAZG-Quadrel/quadrel-framework/commit/9cd5e16a65b0ad6781d00aecc5b7655fa8549150))
|
|
1
6
|
## [18.30.0](https://github.com/BAZG-Quadrel/quadrel-framework/compare/v18.29.5...v18.30.0) (2025-12-30)
|
|
2
7
|
|
|
3
8
|
### Bug Fixes
|
|
@@ -547,7 +547,7 @@ export class QdPageComponent {
|
|
|
547
547
|
{
|
|
548
548
|
key: 'saveDraft',
|
|
549
549
|
action: {
|
|
550
|
-
titleI18n: 'i18n.qd.page.footer.saveDraft',
|
|
550
|
+
titleI18n: pageTypeConfig.saveDraft.label.i18n ?? 'i18n.qd.page.footer.saveDraft',
|
|
551
551
|
type: QdFooterActionType.Secondary,
|
|
552
552
|
handler: () => pageTypeConfig?.saveDraft?.handler(),
|
|
553
553
|
isVisible: true,
|
|
@@ -646,4 +646,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
646
646
|
type: HostBinding,
|
|
647
647
|
args: ['class.has-info-banners']
|
|
648
648
|
}] } });
|
|
649
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDakksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENB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SUFBSSxFQUFFO2dCQUlsRSxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUkvRCxXQUFXO3NCQURWLGVBQWU7dUJBQUMseUJBQXlCO2dCQXdCdEMsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBTTNCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUURfU0FGRV9CT1RUT01fT0ZGU0VUIH0gZnJvbSAnLi4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQgeyBRZERpYWxvZ1NlcnZpY2UsIFFkRGlhbG9nU2l6ZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcbmltcG9ydCB7IFFkUGFnZVN0ZXBwZXJBZGFwdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcGFnZS1zdGVwcGVyL2FkYXB0b3JzL3BhZ2Utc3RlcHBlci1hZGFwdGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBRZFBhZ2VTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnZS1zdGVwcGVyL3BhZ2Utc3RlcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUWRQYWdlVGFic0FkYXB0ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wYWdlLXRhYnMvYWRhcHRvcnMvcGFnZS10YWJzLWFkYXB0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFFkUGFnZVRhYnNDb21wb25lbnQgfSBmcm9tICcuLi9wYWdlLXRhYnMvcGFnZS10YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRZFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFFkUGFnZUNhbmNlbENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY2FuY2VsLWNvbmZpcm1hdGlvbi1kaWFsb2cvcGFnZS1jYW5jZWwtY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUWRQYWdlQ29udHJvbFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9sLXBhbmVsL3BhZ2UtY29udHJvbC1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUWRQYWdlSW5mb0Jhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vaW5mby1iYW5uZXIvcGFnZS1pbmZvLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgUWRJbnNwZWN0T3BlcmF0aW9uTW9kZSxcbiAgUWRQYWdlQ29uZmlnLFxuICBRZFBhZ2VUeXBlQ3JlYXRlQ29uZmlnLFxuICBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZ1xufSBmcm9tICcuL21vZGVsL3BhZ2UtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZENyZWF0ZUZvb3RlckFjdGlvbktleSwgUWRGb290ZXJBY3Rpb25UeXBlLCBRZFBhZ2VGb290ZXJBY3Rpb24gfSBmcm9tICcuL21vZGVsL3BhZ2UtZm9vdGVyLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL2Zvcm0tZ3JvdXAtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkUGFnZUZvb3RlclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9wYWdlLWZvb3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkUGFnZVN0b3JlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3BhZ2Utc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBhZ2VTdWJtaXRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvcGFnZS1zdWJtaXQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRSZXNvbHZlclRyaWdnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvcmVzb2x2ZXItdHJpZ2dlci5zZXJ2aWNlJztcblxudHlwZSBQYXJ0aWFsRm9vdGVyQWN0aW9uID0geyBhY3Rpb25LZXk6IFFkQ3JlYXRlRm9vdGVyQWN0aW9uS2V5OyBwYXJ0aWFsQWN0aW9uOiBQYXJ0aWFsPFFkUGFnZUZvb3RlckFjdGlvbj4gfTtcblxuLy8gRm9vdGVyIG9mZnNldCAocHgpLiBLZWVwIGluIHN5bmMgd2l0aCBTQ1NTICRwYWdlLWZvb3Rlci1oZWlnaHQhXG5jb25zdCBTQUZFX0JPVFRPTV9PRkZTRVRfUFggPSA2NDtcblxuLyoqXG4gKiAqKlFkUGFnZSoqIHNlcnZlcyBhcyB0aGUgY2VudHJhbCBzdHJ1Y3R1cmFsIGVsZW1lbnQgd2l0aGluIHRoZSBoaWVyYXJjaHkgdW5kZXIgdGhlICoqUWRTaGVsbCoqLlxuICogSW50ZWdyYXRpb24gaXMgZG9uZSB0aHJvdWdoIHRoZSBBbmd1bGFyIFJvdXRpbmcgTW9kdWxlLCBhbmQgUWRQYWdlIGlzIGRlc2lnbmVkIHRvIGJlIHJlc3BvbnNpdmUgYWNyb3NzIHZhcmlvdXMgc2NyZWVuIHNpemVzIHJpZ2h0IG91dCBvZiB0aGUgYm94LlxuICpcbiAqICMjIyMgKipQYWdlIFR5cGVzKipcbiAqXG4gKiBRZFBhZ2UgdXNlcyBwYWdlIHR5cGVzIHRvIGRlY2lkZSBob3cgdGhlIHBhZ2UgbG9va3MgYW5kIHdvcmtzLiBFYWNoIHBhZ2UgdHlwZSBoYXMgaXRzIG93biBzZXR0aW5ncyBhbmQgYWN0aW9ucy5cbiAqXG4gKiAtICoqb3ZlcnZpZXcqKjogRGlzcGxheXMgYSBzdW1tYXJ5IG9yIGEgbGlzdCBvZiBvYmplY3RzLCBwcm92aWRpbmcgYW4gb3ZlcnZpZXcgb2YgbXVsdGlwbGUgYnVzaW5lc3MgY2FzZXMuXG4gKiAtICoqY3JlYXRlKio6IEFsbG93cyB0aGUgY3JlYXRpb24gb2YgYSBuZXcgb2JqZWN0LCByZXByZXNlbnRpbmcgYSBidXNpbmVzcyBjYXNlLlxuICogLSAqKmluc3BlY3QqKjogRW5hYmxlcyB2aWV3aW5nLCBlZGl0aW5nLCBhbmQgZXhlY3V0aW5nIGFkZGl0aW9uYWwgYWN0aW9ucyByZWxhdGVkIHRvIHRoZSBvYmplY3QsIHdoaWNoIGFsc28gcmVwcmVzZW50cyBhIGJ1c2luZXNzIGNhc2UuXG4gKiAtICoqY3VzdG9tKio6IFByb3ZpZGVzIGEgd2F5IHRvIGltcGxlbWVudCB1bmlxdWUgZnVuY3Rpb25hbGl0eSB0aGF0IGRvZXNu4oCZdCBmaXQgdGhlIG90aGVyIHByZWRlZmluZWQgcGFnZSB0eXBlcy5cbiAqXG4gKiAqKk5vdGUgdGhhdCB0aGUgJ2N1c3RvbScgcGFnZSB0eXBlIHNob3VsZCBiZSB1c2VkIG9ubHkgYXMgYSBmYWxsYmFjayBmb3IgdmVyeSBzcGVjaWZpYyBjYXNlcy4gSWYgeW91IGVuY291bnRlciBzdWNoIGEgc2l0dWF0aW9uLCBwbGVhc2UgY29udGFjdCB0aGUgUXVhZHJlbCB0ZWFtLioqXG4gKlxuICogIyMjIyAqKkZhY2V0cyoqXG4gKlxuICogVGhlc2UgYXJlIGV4dHJhIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBzaG93biBpbiB0aGUgcGFnZSBoZWFkZXIuIFRoZXkgZ2l2ZSBjb250ZXh0IHNwZWNpZmljIHRvIHRoZSBjdXJyZW50IG9iamVjdCBtb2RlbCBiZWluZyB2aWV3ZWQgb3IgZWRpdGVkLiBUaGVyZSBhcmUgc2V2ZXJhbCB0eXBlcyBvZiBmYWNldHMsIGluY2x1ZGluZyBgc3RhdHVzYCwgYHZhbHVlYCwgYGNyaXRpY2FsaXR5YCwgYHJlZmVyZW5jZXNgLCBgcHJvZ3Jlc3NgLCBgZGF0ZWAsIGBzaW5nbGVTZWxlY3RgLCBhbmQgYG11bHRpU2VsZWN0YC4gRWFjaCB0eXBlIGhhcyBpdHMgb3duIG9wdGlvbnMuIEZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgYFFkUGFnZUhlYWRlckZhY2V0YCBpbnRlcmZhY2UuXG4gKlxuICogIyMjIyAqKkNvbnRleHQqKlxuICpcbiAqIFRoZSBgY29udGV4dGAgYWN0cyBhcyBhIGZpbHRlciB0aGF0IGNhbiBiZSBzZWxlY3RlZCBvbiB0aGUgb3ZlcnZpZXcgcGFnZSBhbmQgcHJvdmlkZXMgdGhlIGJ1c2luZXNzIGNvbnRleHQsIHdoaWNoIHJlbWFpbnMgY29uc2lzdGVudCB0aHJvdWdob3V0IHRoZSBlbnRpcmUgYXBwbGljYXRpb24uIE9uIGNyZWF0ZSBhbmQgaW5zcGVjdCBwYWdlcywgdGhlIGNvbnRleHQgaXMgZGlzcGxheWVkIGFzIHJlYWQtb25seS4gRm9yIG1vcmUgZGV0YWlscywgY2hlY2sgdGhlIGRlZGljYXRlZCBjaGFwdGVyIGluIFN0b3J5Ym9vay5cbiAqXG4gKlxuICogIyMjIyAqKlBhZ2UgSW5mbyBCYW5uZXJzKipcbiAqXG4gKiBUbyBpbnNlcnQgYSBwYWdlIGluZm8gYmFubmVyIHVuZGVyIHRoZSBwYWdlIGhlYWRlciwganVzdCBwdXQgYSBgcWQtcGFnZS1pbmZvLWJhbm5lcmAgY29tcG9uZW50IGluc2lkZSB0aGUgYHFkLXBhZ2VgLiBNdWx0aXBsZSBjb25zZWN1dGl2ZSBpbmZvIGJhbm5lcnMgb2YgdGhlIHNhbWUgdHlwZSB3aWxsIGJlIG1lcmdlZCBpbnRvIG9uZSBiYW5uZXIgY29udGFpbmVyLiBQYWdlIGluZm8gYmFubmVycyBoYXZlIHRoZSBzYW1lIGFwcGVhcmFuY2UgbGlrZSBub3RpZmljYXRpb25zLlxuICpcbiAqICMjIyMgKipDb250cm9sIFBhbmVsKipcbiAqXG4gKiBUaGUgY29udHJvbCBwYW5lbCBpcyBsb2NhdGVkIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBwYWdlIGFuZCBpcyB1c2VkIHRvIGRpc3BsYXkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhbmQgZnVuY3Rpb25zIHJlbGV2YW50IHRvIGEgc3BlY2lmaWMgYnVzaW5lc3MgY2FzZSwgd2hpY2ggaXMgbGlua2VkIHRvIGEgc3BlY2lmaWMgb2JqZWN0IG1vZGVsLiBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiwgcGxlYXNlIGNvbnN1bHQgdGhlIGRlZGljYXRlZCBjaGFwdGVyIGluIFN0b3J5Ym9vay5cbiAqXG4gKiAjIyMjICoqQWN0aW9ucyoqXG4gKlxuICogVGhlc2UgYXJlIGludGVyYWN0aXZlIGVsZW1lbnRzIHRoYXQgcGVyZm9ybSBzcGVjaWZpYyBmdW5jdGlvbnMuIEZ1bmN0aW9ucyBmb3IgdGhlc2UgYWN0aW9ucyBjYW4gYmUgc2V0IHVwIHRocm91Z2ggY29uZmlndXJhdGlvbnMuIEN1c3RvbSBhY3Rpb25zIGNhbiBiZSBhZGRlZCB0byBhbnkgcGFnZSB0eXBlLiBBZGRpdGlvbmFsbHksIGFsbCBhY3Rpb25zIGNhbiBiZSBjb25maWd1cmVkIGFuZCBjdXN0b21pemVkIHdpdGggeW91ciBvd24gdGV4dCwgd2hpY2ggd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCB0ZXh0cy5cbiAqXG4gKiBQbGVhc2UgY2hlY2sgdGhlIHJlbGV2YW50IGludGVyZmFjZXMgZm9yIGVhY2ggcGFnZSB0eXBlOiBgUWRQYWdlQ29uZmlnT3ZlcnZpZXdgLCBgUWRQYWdlQ29uZmlnQ3JlYXRlYCwgYFFkUGFnZUNvbmZpZ0luc3BlY3RgLCBhbmQgYFFkUGFnZUNvbmZpZ0N1c3RvbWAuXG4gKlxuICogIyMjIyAqKlZhbGlkYXRpb24vUGFyYW1ldGVyaXphdGlvbioqXG4gKlxuICogVmFsaWRhdGlvbiBhbmQgcGFyYW1ldGVyaXphdGlvbiBhcmUgY292ZXJlZCBpbiBhIGRlZGljYXRlZCBjaGFwdGVyIGluIHRoZSBTdG9yeWJvb2suIFBsZWFzZSBjaGVjayB0aGUgXCJWYWxpZGF0aW9uXCIgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMjICoqUmVzb2x2ZXIqKlxuICpcbiAqIFVzaW5nIGEgcmVzb2x2ZXIgdG8gZmV0Y2ggcGFnZSBvYmplY3QgZGF0YSBpcyBlc3NlbnRpYWwgdG8gdGhlIHBhZ2UgY29uY2VwdC4gQWRkIHRoZSByZXNvbHZlciB0byB0aGUgY29tcG9uZW50J3MgcHJvdmlkZXJzIGFuZCB1c2UgdGhlIGBRRF9QQUdFX09CSkVDVF9SRVNPTFZFUl9UT0tFTmAgdG9rZW4uIFRoaXMgYXBwcm9hY2ggZW5hYmxlcyB0eXBlIHNhZmV0eSBhbmQgdXNlciBmZWVkYmFjayBieSBlZmZlY3RpdmVseSBtYW5hZ2luZyB0aGUgbmVjZXNzYXJ5IGRhdGEgZm9yIHRoZSBwYWdlLlxuICpcbiAqIGBgYHRzXG4gKiBpbnRlcmZhY2UgTXlPYmplY3RNb2RlbCB7XG4gKiAgIC8vIE1ldGFkYXRhIGRpc3BsYXllZCBpbiB0aGUgT2JqZWN0SGVhZGVyXG4gKiAgIHN0YXRlOiBNeVN0YXRlO1xuICogICBjb3VudHJ5T2ZEZXN0aW5hdGlvbjogTXlDb3VudHJ5T2ZEZXN0aW5hdGlvbjtcbiAqICAgLy8gQXBwZWFycyBub3QgaW4gdGhlIE9iamVjdEhlYWRlclxuICogICBwYXlsb2FkOiBNeVBheWxvYWQ7XG4gKiB9XG4gKlxuICogdHlwZSBNeU9iamVjdE1ldGFkYXRhID0gJ3N0YXRlJyB8ICdjb3VudHJ5T2ZEZXN0aW5hdGlvbic7XG4gKlxuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgTXlPYmplY3RNb2RlbFJlc29sdmVyIGltcGxlbWVudHMgUWRQYWdlT2JqZWN0UmVzb2x2ZXI8TXlPYmplY3RNb2RlbD4ge1xuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG4gKlxuICogICByZXNvbHZlKCk6IE9ic2VydmFibGU8TXlPYmplY3RNb2RlbD4ge1xuICogICAgIHJldHVybiB0aGlzLmh0dHBcbiAqICAgICAgIC5nZXQ8TXlPYmplY3RNb2RlbD4oJ215LWFwaScpXG4gKiAgICAgICAucGlwZSh0YXAoKGRhdGE6IE15T2JqZWN0TW9kZWwpID0+IGRvU29tZXRoaW5nV2l0aChkYXRhKSkpO1xuICogICB9XG4gKiB9XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktcGFnZScsXG4gKiAgIHRlbXBsYXRlVXJsOiAnLi9teS1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogUURfUEFHRV9PQkpFQ1RfUkVTT0xWRVJfVE9LRU4sXG4gKiAgICAgICB1c2VDbGFzczogTXlPYmplY3RNb2RlbFJlc29sdmVyXG4gKiAgICAgfVxuICogICBdXG4gKiB9KVxuICogY2xhc3MgTXlQYWdlQ29tcG9uZW50IHtcbiAqICAgcGFnZUNvbmZpZzogUWRQYWdlQ29uZmlnPFBpY2s8TXlPYmplY3RNb2RlbCwgTXlPYmplY3RNZXRhZGF0YT4+ID0ge1xuICogICAgIHRpdGxlOiB7IGkxOG46ICdpMThuLnBhZ2UudGl0bGUnIH0sXG4gKiAgICAgcGFnZVR5cGU6ICdpbnNwZWN0JyxcbiAqICAgICBoZWFkZXJGYWNldHM6IFtcbiAqICAgICAgIHtcbiAqICAgICAgICAgbmFtZTogJ3N0YXR1cycsXG4gKiAgICAgICAgIGxhYmVsOiB7XG4gKiAgICAgICAgICAgaTE4bjogJ2kxOG4uc3RhdHVzLmxhYmVsJ1xuICogICAgICAgICB9LFxuICogICAgICAgICBvcHRpb25zOiB7XG4gKiAgICAgICAgICAgdHlwZTogJ3N0YXR1cydcbiAqICAgICAgICAgfVxuICogICAgICAgfSxcbiAqICAgICAgIHtcbiAqICAgICAgICAgbmFtZTogJ2NvdW50cnlPZkRlc3RpbmF0aW9uJyxcbiAqICAgICAgICAgbGFiZWw6IHtcbiAqICAgICAgICAgICBpMThuOiAnaTE4bi5jb3VudHJ5T2ZEZXN0aW5hdGlvbi5sYWJlbCdcbiAqICAgICAgICAgfSxcbiAqICAgICAgICAgb3B0aW9uczoge1xuICogICAgICAgICAgIHR5cGU6ICd2YWx1ZSdcbiAqICAgICAgICAgfVxuICogICAgICAgfVxuICogICAgIF0sXG4gKiAgICAgcGFnZVR5cGVDb25maWc6IHtcbiAqICAgICAgIGNhbmNlbDoge1xuICogICAgICAgICBoYW5kbGVyOiAoKSA9PiBoYW5kbGVDYW5jZWwoKVxuICogICAgICAgfSxcbiAqICAgICAgIHNhdmU6IHtcbiAqICAgICAgICAgaGFuZGxlcjogKGZvcm1WYWx1ZXMpID0+IGhhbmRsZVNhdmUoZm9ybVZhbHVlcylcbiAqICAgICAgIH1cbiAqICAgICB9XG4gKiAgIH07XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAjIyMjICoqVXBkYXRpbmcgRmFjZXRzKipcbiAqXG4gKiBUeXBpY2FsbHksIHRoZSB2YWx1ZXMgb2YgdGhlIGZhY2V0cyBvbiBhIGNyZWF0ZSBvciBpbnNwZWN0IHBhZ2UgYXJlIHNldCB0byByZWFkLW9ubHkuIEhvd2V2ZXIsIHRoZXJlIG1heSBiZSBjYXNlcyB3aGVyZSwgZm9yIGV4YW1wbGUsIGEgc3RhdHVzIGNoYW5nZSBpcyBuZWVkZWQsIHN1Y2ggYXMgdGhyb3VnaCBhIGRpYWxvZy4gRm9yIHRoaXMgcHVycG9zZSwgd2UgaGF2ZSBwcm92aWRlZCBhbiB1cGRhdGUgbWV0aG9kLiBJbiB0aGUgcmVzb2x2ZXIgc2VydmljZSwgZGVmaW5lIGFuIGVtcHR5IG1ldGhvZCBjYWxsZWQgYHVwZGF0ZU1ldGFkYXRhYC4gSW5qZWN0IHRoaXMgc2VydmljZSB1c2luZyBpdHMgdHlwZSwgYW5kIHRoZW4gY2FsbCB0aGUgYHVwZGF0ZU1ldGFkYXRhYCBtZXRob2Qgd2l0aCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyLlxuICpcbiAqICoqUGxlYXNlIG5vdGU6IFRoZXNlIHZhbHVlcyBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGRpcmVjdGx5IHdpdGhpbiBhIFFkUGFnZS4qKlxuICpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBNeU9iamVjdE1vZGVsUmVzb2x2ZXIgaW1wbGVtZW50cyBRZFBhZ2VPYmplY3RSZXNvbHZlcjxNeU9iamVjdE1vZGVsPiB7XG4gKiAgIGNvbmZpZzogUWRQYWdlT2JqZWN0UmVzb2x2ZXJDb25maWcgPSB7XG4gKiAgICAgLy8geW91ciBjb25maWd1cmF0aW9uIG9wdGlvbnMgaGVyZVxuICogICB9XG4gKlxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG4gKlxuICogICByZXNvbHZlKCk6IE9ic2VydmFibGU8TXlPYmplY3RNb2RlbD4ge1xuICogICAgIC8vIHlvdXIgaW1wbGVtZW50YXRpb24gaGVyZVxuICogICB9XG4gKlxuICogICB1cGRhdGVNZXRhZGF0YShtZXRhZGF0YTogUGFydGlhbDxNeU9iamVjdE1vZGVsPikge1xuICogICAgIC8vIGxlYXZlIGVtcHR5IGhlcmUgJiBjYWxsIGluIHlvdXIgY29tcG9uZW50XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgLy8gLi4uXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHtcbiAqICAgICAgIHByb3ZpZGU6IFFEX1BBR0VfT0JKRUNUX1JFU09MVkVSX1RPS0VOLFxuICogICAgICAgdXNlQ2xhc3M6IE15T2JqZWN0TW9kZWxSZXNvbHZlclxuICogICAgIH1cbiAqICAgXVxuICogfSlcbiAqIGNsYXNzIE15UGFnZUNvbXBvbmVudCB7XG4gKiAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUURfUEFHRV9PQkpFQ1RfUkVTT0xWRVJfVE9LRU4pIHByaXZhdGUgb2JqZWN0UmVzb2x2ZXI6IE15T2JqZWN0TW9kZWxSZXNvbHZlcikge31cbiAqXG4gKiAgIHVwZGF0ZVN0YXR1cygpIHtcbiAqICAgICB0aGlzLm9iamVjdFJlc29sdmVyLnVwZGF0ZU1ldGFkYXRhKHsgc3RhdGU6ICdVcGRhdGVkJyB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogIyMjIyAqKk92ZXJ2aWV3IFBhZ2UqKlxuICpcbiAqIE9uIGFuIG92ZXJ2aWV3IHBhZ2UsIGEgbGlzdCBvZiBidXNpbmVzcyBjYXNlcyBjYW4gYmUgZGlzcGxheWVkLiBUeXBpY2FsbHksIHRoaXMgaXMgZG9uZSBpbiBhICoqUWRUYWJsZSoqLCBpbmNsdWRpbmcgZmlsdGVycyBhbmQvb3Igc2VhcmNoIG9wdGlvbnMuIFRoZXJlIGFyZSBhY3Rpb25zIHRoYXQgaGFuZGxlIHJvdXRpbmcgdG8gdGhlIHJlbGF0ZWQgZGV0YWlsIHBhZ2VzLCB3aGVyZSB0aGUgYnVzaW5lc3MgY2FzZXMsIHJlcHJlc2VudGVkIGJ5IGEgYnVzaW5lc3Mgb2JqZWN0IG1vZGVsLCBjYW4gYmUgdmlld2VkLCBlZGl0ZWQsIG9yIG5ld2x5IGNyZWF0ZWQuXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IG92ZXJ2aWV3UGFnZUNvbmZpZzogUWRQYWdlQ29uZmlnPE15T2JqZWN0VHlwZT4gPSB7XG4gKiAgIHRpdGxlOiB7IGkxOG46ICdpMThuLm15LXBhZ2UudGl0bGUnIH0sXG4gKiAgIHBhZ2VUeXBlOiAnb3ZlcnZpZXcnLFxuICogICBwYWdlVHlwZUNvbmZpZzoge1xuICogICAgIGN1c3RvbUFjdGlvbnM6IFtcbiAqICAgICAgIHtcbiAqICAgICAgICAgaTE4bjogJ2kxOG4uY3VzdG9tLmFjdGlvbicsXG4gKiAgICAgICAgIGhhbmRsZXI6ICgpID0+IGRvU29tZXRoaW5nKClcbiAqICAgICAgIH1cbiAqICAgICBdXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgPHFkLXRhYmxlIFtjb25maWddPVwidGFibGVDb25maWdcIj48L3FkLXRhYmxlPlxuICogICA8L3FkLXNlY3Rpb24+XG4gKiA8L3FkLXBhZ2U+XG4gKiBgYGBcbiAqXG4gKiBUbyBjb25maWd1cmUgY29udGV4dHMgZm9yIGEgcGFnZSwgeW91IGNhbiBlYXNpbHkgc2V0IGNvbnRleHRzIGluIHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcnZpZXcgcGFnZS4gVGhleSBhcmUgdGhlbiBzZWxlY3RhYmxlIG9uIHRoZSBvdmVydmlldyBwYWdlOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBvdmVydmlld1BhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxNeU9iamVjdFR5cGU+ID0ge1xuICogICAvLyAuLi5cbiAqICAgY29udGV4dHM6IFtcbiAqICAgICB7XG4gKiAgICAgICBpZDogJ3R5cGVPZlRyYWZmaWMnLFxuICogICAgICAgbGFiZWw6IHsgaTE4bjogJ1ZlcmtlaHJzYXJ0JyB9LFxuICogICAgICAgdHlwZTogJ3NpbmdsZScsXG4gKiAgICAgICBzZWxlY3RlZDoge1xuICogICAgICAgICBsYWJlbDogeyBpMThuOiAnU2NoaWVuZScgfSxcbiAqICAgICAgICAgdmFsdWU6ICdyYWlsJ1xuICogICAgICAgfSxcbiAqICAgICAgIG9wdGlvbnM6IFtcbiAqICAgICAgICAge1xuICogICAgICAgICAgIHZhbHVlOiAncmFpbCcsXG4gKiAgICAgICAgICAgbGFiZWw6IHsgaTE4bjogJ1NjaGllbmUnIH1cbiAqICAgICAgICAgfSxcbiAqICAgICAgICAge1xuICogICAgICAgICAgIHZhbHVlOiAnYWlyJyxcbiAqICAgICAgICAgICBsYWJlbDogeyBpMThuOiAnTHVmdCcgfVxuICogICAgICAgICB9XG4gKiAgICAgICBdXG4gKiAgICAgfVxuICogICBdXG4gKiAgIC8vIC4uLlxuICogfTtcbiAqIGBgYFxuICpcbiAqICMjIyMgKipDcmVhdGUgUGFnZSoqXG4gKlxuICogT24gdGhlIGNyZWF0ZSBwYWdlLCBhIG5ldyBidXNpbmVzcyBjYXNlIGNhbiBiZSBjcmVhdGVkLiBUaGlzIHBhZ2UgdHlwaWNhbGx5IGluY2x1ZGVzIGZvcm1zIGZvciBlbnRlcmluZyBkYXRhLiBUaGUgc3VibWl0IGJ1dHRvbiBpcyBwYXJhbWV0ZXJpemVkIHdpdGggdGhlIGZvcm0gZGF0YSBhbmQgaXMgdmFsaWRhdGVkIHRocm91Z2ggdGhlIFFkUGFnZVN0ZXBwZXIuXG4gKiBUaGUgY2xpY2sgb24gdGhlIHN1Ym1pdCBidXR0b24gc2hvdWxkIHN1Ym1pdCB0aGUgY3JlYXRpb24gb2YgdGhlIGJ1c2luZXNzIGNhc2Ugb3Igb2JqZWN0LiBZb3UgY2FuIGRlZmluZSBhIHNwZWNpZmljIGhhbmRsZXIgaW4gdGhlIHN1Ym1pdCBidXR0b24ncyBjb25maWd1cmF0aW9uIHRvIGNyZWF0ZSB0aGUgb2JqZWN0LlxuICogSWYgb25seSBvbmUgc3RlcCBpcyBuZWVkZWQsIHRoZSBzaW5nbGUtc3RlcCBtb2RlIGNhbiBiZSB1c2VkLiBJbiBzaW5nbGUtc3RlcCBtb2RlLCB0aGUgc3RlcHBlciBpcyB2aXN1YWxseSBoaWRkZW4gYW5kIGJlaGF2ZXMgbGlrZSBhICoqUWRTZWN0aW9uKiouXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGNyZWF0ZVBhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxNeU9iamVjdFR5cGU+ID0ge1xuICogICB0aXRsZTogeyBpMThuOiAnaTE4bi5wYWdlLnRpdGxlJyB9LFxuICogICBwYWdlVHlwZTogJ2NyZWF0ZScsXG4gKiAgIHBhZ2VUeXBlQ29uZmlnOiB7XG4gKiAgICAgc3VibWl0OiB7XG4gKiAgICAgICBoYW5kbGVyOiAoZm9ybVZhbHVlcykgPT4gaGFuZGxlU3VibWl0KGZvcm1WYWx1ZXMpXG4gKiAgICAgfVxuICogICB9XG4gKiB9O1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPCEtLSBGb3IgXCJRdWljayBBZGRcIiB1c2UgUGFnZVN0ZXBwZXIgaW4gc2luZ2xlLXN0ZXAgbW9kZSAtLT5cbiAqIDxxZC1wYWdlIFtjb25maWddPVwicGFnZUNvbmZpZ1wiPlxuICogICA8cWQtcGFnZS1zdGVwcGVyIFtjb25maWddPVwic3RlcHBlckNvbmZpZ1wiPlxuICogICAgIDxxZC1wYWdlLXN0ZXAgW2NvbmZpZ109XCJzdGVwQ29uZmlnT25lXCI+XG4gKiAgICAgICA8cWQtc2VjdGlvbiBbY29uZmlnXT1cInNlY3Rpb25Db25maWdcIj5cbiAqICAgICAgICAgPHFkLWdyaWQgW2NvbmZpZ109XCJncmlkQ29uZmlnXCIgW2Zvcm1Hcm91cF09XCJteUZvcm1zXCIgcWRDb25uZWN0Rm9ybVN0YXRlVG9QYWdlPVwibXlGb3Jtc1wiPlxuICogICAgICAgICAgIDwhLS0geW91ciBxZC1mb3JtLWNvbXBvbmVudHMgaGVyZSAtLT5cbiAqICAgICAgICAgPC9xZC1ncmlkPlxuICogICAgICAgPC9xZC1zZWN0aW9uPlxuICogICAgIDwvcWQtcGFnZS1zdGVwPlxuICogICA8L3FkLXBhZ2Utc3RlcHBlcj5cbiAqIDwvcWQtcGFnZT5cbiAqXG4gKiA8IS0tIFdpdGggUGFnZVN0ZXBwZXIgdXNpbmcgbXVsdGlwbGUgc3RlcHMgLS0+XG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPHFkLXBhZ2Utc3RlcHBlciBbY29uZmlnXT1cInN0ZXBwZXJDb25maWdcIj5cbiAqICAgICA8cWQtcGFnZS1zdGVwIFtjb25maWddPVwic3RlcENvbmZpZ09uZVwiPlxuICogICAgICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc09uZVwiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNPbmVcIj5cbiAqICAgICAgICAgICA8IS0tIHlvdXIgcWQtZm9ybS1jb21wb25lbnRzIGhlcmUgLS0+XG4gKiAgICAgICAgIDwvcWQtZ3JpZD5cbiAqICAgICAgIDwvcWQtc2VjdGlvbj5cbiAqICAgICA8L3FkLXBhZ2Utc3RlcD5cbiAqICAgICA8cWQtcGFnZS1zdGVwIFtjb25maWddPVwic3RlcENvbmZpZ1R3b1wiPlxuICogICAgICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc1R3b1wiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNUd29cIj5cbiAqICAgICAgICAgICA8IS0tIHlvdXIgcWQtZm9ybS1jb21wb25lbnRzIGhlcmUgLS0+XG4gKiAgICAgICAgIDwvcWQtZ3JpZD5cbiAqICAgICAgIDwvcWQtc2VjdGlvbj5cbiAqICAgICA8L3FkLXBhZ2Utc3RlcD5cbiAqICAgPC9xZC1wYWdlLXN0ZXBwZXI+XG4gKiA8L3FkLXBhZ2U+XG4gKiBgYGBcbiAqXG4gKiBUbyBhbGxvdyByZXNvbHZpbmcgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgd2hlbiBnb2luZyB0byBuZXh0IHN0ZXAsIHlvdSBjYW4gcHJvdmlkZSBhIHJlc29sdmVyIG9mIHR5cGUgUWRQYWdlU3RlcFJlc29sdmVyOlxuICpcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeVJlc29sdmVyIGltcGxlbWVudHMgUWRQYWdlU3RlcFJlc29sdmVyIHtcbiAqICAgLi4uXG4gKlxuICogICByZXNvbHZlKGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAqICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJuZXh0LXN0ZXAuY29tXCIpO1xuICogICB9XG4gKiB9XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAncWQtdWktcGFnZS1jcmVhdGUnLFxuICogICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLmNvbXBvbmVudC5odG1sJyxcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogUURfUEFHRV9TVEVQX1JFU09MVkVSX1RPS0VOLFxuICogICAgICAgdXNlQ2xhc3M6IFBhZ2VTdGVwUmVzb2x2ZXJcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQ3JlYXRlQ29tcG9uZW50IHtcbiAqIGBgYFxuICpcbiAqICMjIyMgKipJbnNwZWN0IFBhZ2UqKlxuICpcbiAqIE9uIGFuIGluc3BlY3QgcGFnZSwgYSBzcGVjaWZpYyBidXNpbmVzcyBjYXNlIGlzIGRpc3BsYXllZCBhbmQgbWF5IGJlIGVkaXRlZCBvciBzdWJtaXR0ZWQuIERlcGVuZGluZyBvbiB5b3VyIG5lZWRzIHlvdSBjYW4gaGlkZSB0aGUgc3VibWl0IGJ1dHRvbi5cbiAqIEluIGNvbnRyYXN0IHRvIGEgY3JlYXRlIHBhZ2UsIGFuIGV4aXN0aW5nIG9iamVjdCBpcyBzaG93biBhbmQgcG90ZW50aWFsbHkgdXBkYXRlZC5cbiAqXG4gKiBUaGUgcGFnZSBvcGVyYXRlcyBpbiBvbmUgb2YgdHdvIG1vZGVzIC0gYHZpZXdgIG9yIGBlZGl0YCAtIGFzIGRlZmluZWQgYnkgdGhlIGBvcGVyYXRpb25Nb2RlYCBjb25maWd1cmF0aW9uIGtleS5cbiAqXG4gKiBUaGUgYHZpZXdvbmx5YCBiZWhhdmlvciBkZWZpbmVkIGJ5IHRoZSBvcGVyYXRpb24gbW9kZSBpcyBhdXRvbWF0aWNhbGx5IHByb3BhZ2F0ZWQgdG8gYWxsIG5lc3RlZCBRZFNlY3Rpb24gY29tcG9uZW50cyB0aGF0IGFyZSBwYXJ0IG9mIGEgUUxTLFxuICogYXMgd2VsbCBhcyB0byBmdW5jdGlvbmFsIHBhdHRlcm5zIHN1Y2ggYXMgUWRUYWJsZSwgUWRUcmVlLCBRZEZpbGVDb2xsZWN0b3IsIGFuZCBRZFF1aWNrRWRpdC5cbiAqIEFsbCBmb3JtcyBhcmUgcmVuZGVyZWQgZWl0aGVyIGluIHZpZXdvbmx5IG9yIGVkaXRhYmxlIG1vZGUgYWNjb3JkaW5nbHkuXG4gKlxuICogVGhpcyBiZWhhdmlvciBjYW4gYmUgZXhwbGljaXRseSBvdmVycmlkZGVuIGluIGVhY2ggY29tcG9uZW504oCZcyBjb25maWd1cmF0aW9uIC0gZm9yIGV4YW1wbGUsIHRvIGFsbG93IGNlcnRhaW4gZmllbGRzIHRvIHJlbWFpbiBlZGl0YWJsZS5cbiAqXG4gKiAtICoqdmlldyoqOiBBIHN1Ym1pdCBhY3Rpb24gY2FuIG9wdGlvbmFsbHkgYmUgYWRkZWQgZm9yIHByb2Nlc3MtcmVsYXRlZCBvcGVyYXRpb25zIHN1Y2ggYXMgc3RhdHVzIHVwZGF0ZXMuXG4gKiAgIFRoZSBhY3Rpb24gcmVjZWl2ZXMgdGhlIGN1cnJlbnQgZm9ybSB2YWx1ZXMgYW5kIHN1cHBvcnRzIHZhbGlkYXRpb24gYW5kIHBhcmFtZXRlcml6YXRpb24uXG4gKlxuICogLSAqKmVkaXQqKjogVHlwaWNhbGx5IGluY2x1ZGVzIGEgc2F2ZSBidXR0b24gdG8gcGVyc2lzdCBjaGFuZ2VzIG1hZGUgaW4gZWRpdGFibGUgZmllbGRzLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBpbnNwZWN0UGFnZUNvbmZpZzogUWRQYWdlQ29uZmlnPE15T2JqZWN0VHlwZT4gPSB7XG4gKiAgIHRpdGxlOiB7IGkxOG46ICdpMThuLnBhZ2UudGl0bGUnIH0sXG4gKiAgIHBhZ2VUeXBlOiAnaW5zcGVjdCcsXG4gKiAgIHBhZ2VUeXBlQ29uZmlnOiB7XG4gKiAgICAgb3BlcmF0aW9uTW9kZTogJ2VkaXQnLFxuICogICAgIGNhbmNlbDoge1xuICogICAgICAgaGFuZGxlcjogKCkgPT4gaGFuZGxlQ2FuY2VsKClcbiAqICAgICB9LFxuICogICAgIHNhdmU6IHtcbiAqICAgICAgIGhhbmRsZXI6IChmb3JtVmFsdWVzKSA9PiBoYW5kbGVTYXZlKGZvcm1WYWx1ZXMpXG4gKiAgICAgfVxuICogICB9XG4gKiB9O1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPCEtLSB3aXRoIFNlY3Rpb24gLS0+XG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgPHFkLWdyaWQgW2NvbmZpZ109XCJncmlkQ29uZmlnXCIgW2Zvcm1Hcm91cF09XCJteUZvcm1zXCIgcWRDb25uZWN0Rm9ybVN0YXRlVG9QYWdlPVwibXlGb3Jtc1wiPlxuICogICAgICAgPCEtLSB5b3VyIHFkLWZvcm0tY29tcG9uZW50cyBoZXJlIC0tPlxuICogICAgIDwvcWQtZ3JpZD5cbiAqICAgPC9xZC1zZWN0aW9uPlxuICogPC9xZC1wYWdlPlxuICpcbiAqIDwhLS0gd2l0aCBQYWdlVGFicyAtLT5cbiAqIDxxZC1wYWdlIFtjb25maWddPVwicGFnZUNvbmZpZ1wiPlxuICogICA8cWQtcGFnZS10YWJzIFtjb25maWddPVwic3RlcHBlckNvbmZpZ1wiPlxuICogICAgIDxxZC1wYWdlLXRhYiBbY29uZmlnXT1cInRhYkNvbmZpZ09uZVwiPlxuICogICAgICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc09uZVwiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNPbmVcIj5cbiAqICAgICAgICAgICA8IS0tIHlvdXIgcWQtZm9ybS1jb21wb25lbnRzIGhlcmUgLS0+XG4gKiAgICAgICAgIDwvcWQtZ3JpZD5cbiAqICAgICAgIDwvcWQtc2VjdGlvbj5cbiAqICAgICA8L3FkLXBhZ2UtdGFiPlxuICogICAgIDxxZC1wYWdlLXRhYiBbY29uZmlnXT1cInRhYkNvbmZpZ1R3b1wiPlxuICogICAgICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc1R3b1wiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNUd29cIj5cbiAqICAgICAgICAgICA8IS0tIHlvdXIgcWQtZm9ybS1jb21wb25lbnRzIGhlcmUgLS0+XG4gKiAgICAgICAgIDwvcWQtZ3JpZD5cbiAqICAgICAgIDwvcWQtc2VjdGlvbj5cbiAqICAgICA8L3FkLXBhZ2UtdGFiPlxuICogICA8L3FkLXBhZ2UtdGFicz5cbiAqIDwvcWQtcGFnZT5cbiAqIGBgYFxuICpcbiAqICMjIyMgKipDdXN0b20gUGFnZSoqXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGN1c3RvbVBhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxNeU9iamVjdFR5cGU+ID0ge1xuICogICB0aXRsZTogeyBpMThuOiAnaTE4bi5wYWdlLnRpdGxlJyB9LFxuICogICBwYWdlVHlwZTogJ2N1c3RvbScsXG4gKiAgIHBhZ2VUeXBlQ29uZmlnOiB7XG4gKiAgICAgY3VzdG9tQWN0aW9uczogW1xuICogICAgICAge1xuICogICAgICAgICBpMThuOiAnaTE4bi5jdXN0b20uYWN0aW9uJyxcbiAqICAgICAgICAgaGFuZGxlcjogKCkgPT4gZG9Tb21ldGhpbmcoKVxuICogICAgICAgfVxuICogICAgIF1cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxxZC1wYWdlIFtjb25maWddPVwicGFnZUNvbmZpZ1wiPlxuICogICA8IS0tIFBsYWNlIGNvbnRlbnQgaGVyZSB0aGF0IGRvZXNu4oCZdCBmaXQgdGhlIG90aGVyIHBhZ2UgdHlwZXMgLS0+XG4gKiA8L3FkLXBhZ2U+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtRZFBhZ2VGb290ZXJTZXJ2aWNlLCBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlLCBRZFBhZ2VTdWJtaXRBY3Rpb25TZXJ2aWNlLCBRZFJlc29sdmVyVHJpZ2dlclNlcnZpY2VdLFxuICBob3N0OiB7ICdbY2xhc3MuaGFzLWNvbnRyb2wtcGFuZWxdJzogJ2lzQ29udHJvbFBhbmVsVmlzaWJsZScsICdbY2xhc3MuY29udHJvbC1wYW5lbC1icm9hZF0nOiAnaXNDb250cm9sUGFuZWxCcm9hZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBRZFBhZ2VDb21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgZGVmaW5lcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIFFkUGFnZSBjb21wb25lbnQsIGluY2x1ZGluZyB0aGUgcGFnZSB0eXBlLFxuICAgKiB0aXRsZSwgYW5kIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGZvciBlYWNoIHR5cGUgb2YgcGFnZS5cbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGNvbmZpZyE6IFFkUGFnZUNvbmZpZzxUPjtcblxuICAvKipcbiAgICogQSBzdGF0aWMgdGVzdCBJRCBmb3IgaW50ZWdyYXRpb24gdGVzdHMgY2FuIGJlIHNldC4gPGJyIC8+XG4gICAqIFRoZSB2YWx1ZSBmb3IgdGhlIEhUTUwgYXR0cmlidXRlIFtkYXRhLXRlc3QtaWRdLlxuICAgKi9cbiAgQElucHV0KCdkYXRhLXRlc3QtaWQnKSB0ZXN0SWQ/ID0gJ3BhZ2UnO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGVtaXR0ZWQgd2hlbiB0aGUgb3BlcmF0aW9uIG1vZGUgb2YgdGhlIGluc3BlY3QgcGFnZSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9wZXJhdGlvbk1vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxRZEluc3BlY3RPcGVyYXRpb25Nb2RlPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oUWRTZWN0aW9uQ29tcG9uZW50KVxuICBzZWN0aW9ucyE6IFF1ZXJ5TGlzdDxRZFNlY3Rpb25Db21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoUWRQYWdlQ29udHJvbFBhbmVsQ29tcG9uZW50KVxuICBjb250cm9sUGFuZWwhOiBRZFBhZ2VDb250cm9sUGFuZWxDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChRZFBhZ2VTdGVwcGVyQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHN0ZXBwZXJDb21wb25lbnQ/OiBRZFBhZ2VTdGVwcGVyQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoUWRQYWdlVGFic0NvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICB0YWJzQ29tcG9uZW50PzogUWRQYWdlVGFic0NvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKFFkUGFnZVN0ZXBwZXJBZGFwdGVyRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHN0ZXBwZXJBZGFwdGVyRGlyZWN0aXZlPzogUWRQYWdlU3RlcHBlckFkYXB0ZXJEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChRZFBhZ2VUYWJzQWRhcHRlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICB0YWJzQWRhcHRlckRpcmVjdGl2ZT86IFFkUGFnZVRhYnNBZGFwdGVyRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oUWRQYWdlSW5mb0Jhbm5lckNvbXBvbmVudClcbiAgaW5mb0Jhbm5lcnMhOiBRdWVyeUxpc3Q8UWRQYWdlSW5mb0Jhbm5lckNvbXBvbmVudD47XG5cbiAgZm9vdGVySGFzQ29udGVudCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGlzRm9vdGVyVmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcHJvamVjdGlvbkd1YXJkTWVzc2FnZSA9XG4gICAgJ1FELVVJIHwgUWRQYWdlIC0gVGhpcyBjb250ZW50IGlzIG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSB1c2UgUWRTZWN0aW9uQWRhcHRlckRpcmVjdGl2ZSBmb3IgY3VzdG9tIGNvbnRlbnQgcHJvamVjdGlvbi4nO1xuXG4gIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgZ2V0IGlzQ29udHJvbFBhbmVsVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sUGFuZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbnRyb2xQYW5lbC5jb25maWc/LmlzSGlkZGVuICE9PSB0cnVlO1xuICB9XG5cbiAgZ2V0IGlzQ29udHJvbFBhbmVsQnJvYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFBhbmVsPy5jb25maWc/LndpZHRoID09PSAnYnJvYWQnO1xuICB9XG5cbiAgZ2V0IGhhc05hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuc3RlcHBlckNvbXBvbmVudCB8fCB0aGlzLnRhYnNDb21wb25lbnQgfHwgdGhpcy5zdGVwcGVyQWRhcHRlckRpcmVjdGl2ZSB8fCB0aGlzLnRhYnNBZGFwdGVyRGlyZWN0aXZlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWZvb3RlcicpXG4gIGdldCBmb290ZXJWaXNpYmxlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmlzRm9vdGVyVmlzaWJsZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWluZm8tYmFubmVycycpXG4gIGdldCBoYXNJbmZvQmFubmVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmZvQmFubmVycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlU3RvcmVTZXJ2aWNlOiBRZFBhZ2VTdG9yZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb290ZXJTZXJ2aWNlOiBRZFBhZ2VGb290ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwTWFuYWdlclNlcnZpY2U6IFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJtaXRBY3Rpb25TZXJ2aWNlOiBRZFBhZ2VTdWJtaXRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBRZERpYWxvZ1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChRRF9TQUZFX0JPVFRPTV9PRkZTRVQpIHByaXZhdGUgYm90dG9tT2Zmc2V0JD86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+XG4gICkge1xuICAgIHRoaXMuZm9vdGVySGFzQ29udGVudCQgPSB0aGlzLmZvb3RlclNlcnZpY2UuZm9vdGVySGFzQ29udGVudCQ7XG4gICAgdGhpcy5mb290ZXJIYXNDb250ZW50JC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGlzVmlzaWJsZSA9PiB7XG4gICAgICB0aGlzLmlzRm9vdGVyVmlzaWJsZSA9IGlzVmlzaWJsZTtcbiAgICAgIHRoaXMuYm90dG9tT2Zmc2V0JD8ubmV4dChpc1Zpc2libGUgPyBTQUZFX0JPVFRPTV9PRkZTRVRfUFggOiAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tDb25maWdWYWxpZGl0eSgpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnKSB0aGlzLnBhZ2VTdG9yZVNlcnZpY2UuaW5pdFBhZ2VTdGF0ZSh0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnQ2hhbmdlID0gY2hhbmdlc1snY29uZmlnJ107XG5cbiAgICBpZiAoIWNvbmZpZ0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyBjdXJyZW50VmFsdWU6IGN1cnIsIHByZXZpb3VzVmFsdWU6IHByZXYgfSA9IGNvbmZpZ0NoYW5nZTtcblxuICAgIGlmIChjdXJyPy5wYWdlVHlwZUNvbmZpZz8uc3VibWl0Py5pc0hpZGRlbiAhPT0gcHJldj8ucGFnZVR5cGVDb25maWc/LnN1Ym1pdD8uaXNIaWRkZW4pXG4gICAgICB0aGlzLmZvb3RlclNlcnZpY2UudXBkYXRlQWN0aW9ucyhbXG4gICAgICAgIHsgYWN0aW9uS2V5OiAnc3VibWl0JywgcGFydGlhbEFjdGlvbjogeyBpc1Zpc2libGU6ICFjdXJyPy5wYWdlVHlwZUNvbmZpZz8uc3VibWl0Py5pc0hpZGRlbiB9IH1cbiAgICAgIF0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdlVHlwZSA9PT0gJ2NyZWF0ZScpIHRoaXMuc2V0dXBDcmVhdGVQYWdlRm9vdGVyQWN0aW9ucygpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2VUeXBlID09PSAnY3JlYXRlJyAmJiB0aGlzLmNvbmZpZz8ucGFnZVR5cGVDb25maWc/LmNhbmNlbCAhPT0gdW5kZWZpbmVkKVxuICAgICAgdGhpcy5oYW5kbGVDYW5jZWxBY3Rpb25XaXRoRm9ybUNoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdlVHlwZSA9PT0gJ2NyZWF0ZScgJiYgdGhpcy5jb25maWc/LnBhZ2VUeXBlQ29uZmlnPy5zYXZlRHJhZnQgIT09IHVuZGVmaW5lZClcbiAgICAgIHRoaXMuaW5pdFNhdmVEcmFmdEZvb3RlckFjdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2VUeXBlID09PSAnaW5zcGVjdCcpXG4gICAgICB0aGlzLnBhZ2VTdG9yZVNlcnZpY2UuaXNWaWV3b25seSRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKGlzVmlld29ubHkgPT5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUluc3BlY3RQYWdlT3BlcmF0aW9uTW9kZShcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnBhZ2VUeXBlQ29uZmlnIGFzIFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnLFxuICAgICAgICAgICAgaXNWaWV3b25seSA/ICd2aWV3JyA6ICdlZGl0J1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ib3R0b21PZmZzZXQkPy5uZXh0KDApO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDb25maWdWYWxpZGl0eSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnKSBjb25zb2xlLndhcm4oJ1FkVWkgfCBRZFBhZ2VDb21wb25lbnQgLSBUbyBjb25maWd1cmUgdGhlIHBhZ2UgeW91IHNob3VsZCBwcm92aWRlIGEgdmFsaWQgY29uZmlnLicpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cENyZWF0ZVBhZ2VGb290ZXJBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2VUeXBlQ29uZmlnID0gdGhpcy5jb25maWc/LnBhZ2VUeXBlQ29uZmlnIGFzIFFkUGFnZVR5cGVDcmVhdGVDb25maWc7XG4gICAgY29uc3QgYWN0aW9uS2V5czogUWRDcmVhdGVGb290ZXJBY3Rpb25LZXlbXSA9IFsnc2F2ZURyYWZ0JywgJ2NhbmNlbCcsICdzdWJtaXQnXTtcbiAgICBjb25zdCBhY3Rpb25zOiBQYXJ0aWFsRm9vdGVyQWN0aW9uW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgYWN0aW9uS2V5IG9mIGFjdGlvbktleXMpIHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHBhZ2VUeXBlQ29uZmlnW2FjdGlvbktleV07XG5cbiAgICAgIGlmICghYWN0aW9uKSBjb250aW51ZTtcblxuICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgYWN0aW9uS2V5LFxuICAgICAgICBwYXJ0aWFsQWN0aW9uOiB7XG4gICAgICAgICAgLi4uKGFjdGlvbj8ubGFiZWw/LmkxOG4gPyB7IHRpdGxlSTE4bjogYWN0aW9uLmxhYmVsLmkxOG4gfSA6IHt9KSxcbiAgICAgICAgICBoYW5kbGVyOiB0aGlzLmdlbmVyYXRlRm9vdGVyQWN0aW9uSGFuZGxlcihhY3Rpb24/LmhhbmRsZXIpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZm9vdGVyU2VydmljZS51cGRhdGVBY3Rpb25zKGFjdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDYW5jZWxBY3Rpb25XaXRoRm9ybUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZVxuICAgICAgLiRoYXNWYWx1ZXNDaGFuZ2VkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoaGFzQ2hhbmdlZCA9PiB7XG4gICAgICAgIHRoaXMuZm9vdGVyU2VydmljZS51cGRhdGVBY3Rpb25zKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25LZXk6ICdjYW5jZWwnLFxuICAgICAgICAgICAgcGFydGlhbEFjdGlvbjoge1xuICAgICAgICAgICAgICBoYW5kbGVyOiBoYXNDaGFuZ2VkXG4gICAgICAgICAgICAgICAgPyAoKTogdm9pZCA9PiB0aGlzLnNldHVwU3VibWl0QWN0aW9uVmFsaWRhdGlvbigpXG4gICAgICAgICAgICAgICAgOiAoKTogdm9pZCA9PiAodGhpcy5jb25maWc/LnBhZ2VUeXBlQ29uZmlnIGFzIFFkUGFnZVR5cGVDcmVhdGVDb25maWcpPy5jYW5jZWw/LmhhbmRsZXIoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNhdmVEcmFmdEZvb3RlckFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlVHlwZUNvbmZpZyA9IHRoaXMuY29uZmlnLnBhZ2VUeXBlQ29uZmlnIGFzIFFkUGFnZVR5cGVDcmVhdGVDb25maWc7XG5cbiAgICB0aGlzLmZvb3RlclNlcnZpY2Uuc2V0QWN0aW9ucyhbXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NhdmVEcmFmdCcsXG4gICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgIHRpdGxlSTE4bjogJ2kxOG4ucWQucGFnZS5mb290ZXIuc2F2ZURyYWZ0JyxcbiAgICAgICAgICB0eXBlOiBRZEZvb3RlckFjdGlvblR5cGUuU2Vjb25kYXJ5LFxuICAgICAgICAgIGhhbmRsZXI6ICgpOiB2b2lkID0+IHBhZ2VUeXBlQ29uZmlnPy5zYXZlRHJhZnQ/LmhhbmRsZXIoKSxcbiAgICAgICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJbnNwZWN0UGFnZU9wZXJhdGlvbk1vZGUocGFnZVR5cGVDb25maWc6IFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnLCBtb2RlOiBRZEluc3BlY3RPcGVyYXRpb25Nb2RlKTogdm9pZCB7XG4gICAgdGhpcy5zdWJtaXRBY3Rpb25TZXJ2aWNlLnNldFN1Ym1pdEFjdGlvbkZvckluc3BlY3QocGFnZVR5cGVDb25maWcsIG1vZGUgPT09ICd2aWV3Jyk7XG5cbiAgICB0aGlzLmZvb3RlclNlcnZpY2UudXBkYXRlQWN0aW9ucyhbXG4gICAgICB7IGFjdGlvbktleTogJ3N1Ym1pdCcsIHBhcnRpYWxBY3Rpb246IHsgaXNWaXNpYmxlOiBtb2RlID09PSAndmlldycgJiYgIXBhZ2VUeXBlQ29uZmlnPy5zdWJtaXQ/LmlzSGlkZGVuIH0gfVxuICAgIF0pO1xuXG4gICAgdGhpcy5pbml0U3VibWl0VmFsaWRhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHRoaXMub3BlcmF0aW9uTW9kZUNoYW5nZWQuZW1pdChtb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVGb290ZXJBY3Rpb25IYW5kbGVyKGhhbmRsZXI/OiAodmFsdWVzOiB1bmtub3duKSA9PiB2b2lkKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCB7XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAoIWhhbmRsZXIpIHJldHVybjtcblxuICAgICAgaGFuZGxlcih0aGlzLmZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlLmhhc0Zvcm1Hcm91cHMoKSA/IHRoaXMuZm9ybUdyb3VwTWFuYWdlclNlcnZpY2UuZ2V0QWxsVmFsdWVzKCkgOiBhcmdzKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFN1Ym1pdEFjdGlvblZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKFFkUGFnZUNhbmNlbENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICB0aXRsZTogeyBpMThuOiAnaTE4bi5xZC5wYWdlLmNhbmNlbC5jb25maXJtYXRpb24uZGlhbG9nLnRpdGxlJyB9LFxuICAgICAgICBkaWFsb2dTaXplOiBRZERpYWxvZ1NpemUuU21hbGwsXG4gICAgICAgIGRhdGE6IHRoaXMuY29uZmlnLnBhZ2VUeXBlQ29uZmlnXG4gICAgICB9KVxuICAgICAgLmNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN1Ym1pdFZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZVxuICAgICAgLiRhcmVGb3JtR3JvdXBzVmFsaWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSxcbiAgICAgICAgdGFwKGlzVmFsaWQgPT4ge1xuICAgICAgICAgIHRoaXMuZm9vdGVyU2VydmljZS51cGRhdGVBY3Rpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYWN0aW9uS2V5OiAnc3VibWl0JyxcbiAgICAgICAgICAgICAgcGFydGlhbEFjdGlvbjoge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbmZvOiBpc1ZhbGlkXG4gICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgOiB7IGluZm9UeXBlOiAnd2FybmluZycsIG1lc3NhZ2U6IHsgaTE4bjogJ2kxOG4ucWQucGFnZS5zdWJtaXQuaW52YWxpZEZvcm0nIH0gfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxtYWluIHFkU25hY2tiYXJMaXN0ZW5lcj5cbiAgPHFkLXBhZ2Utb2JqZWN0LWhlYWRlclxuICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkICsgJ29iamVjdC1oZWFkZXInXCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgW2hhc05hdmlnYXRpb25dPVwiaGFzTmF2aWdhdGlvblwiXG4gID48L3FkLXBhZ2Utb2JqZWN0LWhlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwicGFnZS1pbmZvLWJhbm5lcnNcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJxZC1wYWdlLWluZm8tYmFubmVyXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLnBhZ2VUeXBlID09PSAnY3JlYXRlJyB8fCBjb25maWcucGFnZVR5cGUgPT09ICdjdXN0b20nXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicWQtcGFnZS1zdGVwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltxZFBhZ2VTdGVwcGVyQWRhcHRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWcucGFnZVR5cGUgPT09ICdvdmVydmlldycgfHwgY29uZmlnLnBhZ2VUeXBlID09PSAnaW5zcGVjdCcgfHwgY29uZmlnLnBhZ2VUeXBlID09PSAnY3VzdG9tJ1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInFkLXBhZ2UtdGFic1wiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcWRQYWdlVGFic0FkYXB0ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInFkLXNlY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3FkU2VjdGlvbkFkYXB0ZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLnBhZ2VUeXBlID09PSAnY3VzdG9tJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9qZWN0ZWRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYWluPlxuXG48Zm9vdGVyICpuZ0lmPVwiZm9vdGVySGFzQ29udGVudCQgfCBhc3luY1wiPlxuICA8cWQtcGFnZS1mb290ZXIgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZCArICctZm9vdGVyJ1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltxZFBhZ2VGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L3FkLXBhZ2UtZm9vdGVyPlxuPC9mb290ZXI+XG5cbjxhc2lkZSAqbmdJZj1cImlzQ29udHJvbFBhbmVsVmlzaWJsZVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJxZC1wYWdlLWNvbnRyb2wtcGFuZWxcIj48L25nLWNvbnRlbnQ+XG48L2FzaWRlPlxuXG48cWQtcHJvamVjdGlvbi1ndWFyZCAqbmdJZj1cImNvbmZpZy5wYWdlVHlwZSAhPT0gJ2N1c3RvbSdcIiBbd2FybmluZ01lc3NhZ2VdPVwicHJvamVjdGlvbkd1YXJkTWVzc2FnZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvamVjdGVkQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9xZC1wcm9qZWN0aW9uLWd1YXJkPlxuXG48bmctdGVtcGxhdGUgI3Byb2plY3RlZENvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
649
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDakksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENB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QixZQUFZO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJbEUsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJL0QsV0FBVztzQkFEVixlQUFlO3VCQUFDLHlCQUF5QjtnQkF3QnRDLGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU0zQixjQUFjO3NCQURqQixXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFFEX1NBRkVfQk9UVE9NX09GRlNFVCB9IGZyb20gJy4uL2NvcmUvY29yZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWREaWFsb2dTZXJ2aWNlLCBRZERpYWxvZ1NpemUgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFBhZ2VTdGVwcGVyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4uL3BhZ2Utc3RlcHBlci9hZGFwdG9ycy9wYWdlLXN0ZXBwZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUWRQYWdlU3RlcHBlckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2Utc3RlcHBlci9wYWdlLXN0ZXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFFkUGFnZVRhYnNBZGFwdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcGFnZS10YWJzL2FkYXB0b3JzL3BhZ2UtdGFicy1hZGFwdGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBRZFBhZ2VUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnZS10YWJzL3BhZ2UtdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUWRTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRZFBhZ2VDYW5jZWxDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NhbmNlbC1jb25maXJtYXRpb24tZGlhbG9nL3BhZ2UtY2FuY2VsLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFFkUGFnZUNvbnRyb2xQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbC1wYW5lbC9wYWdlLWNvbnRyb2wtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFFkUGFnZUluZm9CYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2luZm8tYmFubmVyL3BhZ2UtaW5mby1iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFFkSW5zcGVjdE9wZXJhdGlvbk1vZGUsXG4gIFFkUGFnZUNvbmZpZyxcbiAgUWRQYWdlVHlwZUNyZWF0ZUNvbmZpZyxcbiAgUWRQYWdlVHlwZUluc3BlY3RDb25maWdcbn0gZnJvbSAnLi9tb2RlbC9wYWdlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRDcmVhdGVGb290ZXJBY3Rpb25LZXksIFFkRm9vdGVyQWN0aW9uVHlwZSwgUWRQYWdlRm9vdGVyQWN0aW9uIH0gZnJvbSAnLi9tb2RlbC9wYWdlLWZvb3Rlci1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9mb3JtLWdyb3VwLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBhZ2VGb290ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvcGFnZS1mb290ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBhZ2VTdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9wYWdlLXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRQYWdlU3VibWl0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3BhZ2Utc3VibWl0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFFkUmVzb2x2ZXJUcmlnZ2VyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3Jlc29sdmVyLXRyaWdnZXIuc2VydmljZSc7XG5cbnR5cGUgUGFydGlhbEZvb3RlckFjdGlvbiA9IHsgYWN0aW9uS2V5OiBRZENyZWF0ZUZvb3RlckFjdGlvbktleTsgcGFydGlhbEFjdGlvbjogUGFydGlhbDxRZFBhZ2VGb290ZXJBY3Rpb24+IH07XG5cbi8vIEZvb3RlciBvZmZzZXQgKHB4KS4gS2VlcCBpbiBzeW5jIHdpdGggU0NTUyAkcGFnZS1mb290ZXItaGVpZ2h0IVxuY29uc3QgU0FGRV9CT1RUT01fT0ZGU0VUX1BYID0gNjQ7XG5cbi8qKlxuICogKipRZFBhZ2UqKiBzZXJ2ZXMgYXMgdGhlIGNlbnRyYWwgc3RydWN0dXJhbCBlbGVtZW50IHdpdGhpbiB0aGUgaGllcmFyY2h5IHVuZGVyIHRoZSAqKlFkU2hlbGwqKi5cbiAqIEludGVncmF0aW9uIGlzIGRvbmUgdGhyb3VnaCB0aGUgQW5ndWxhciBSb3V0aW5nIE1vZHVsZSwgYW5kIFFkUGFnZSBpcyBkZXNpZ25lZCB0byBiZSByZXNwb25zaXZlIGFjcm9zcyB2YXJpb3VzIHNjcmVlbiBzaXplcyByaWdodCBvdXQgb2YgdGhlIGJveC5cbiAqXG4gKiAjIyMjICoqUGFnZSBUeXBlcyoqXG4gKlxuICogUWRQYWdlIHVzZXMgcGFnZSB0eXBlcyB0byBkZWNpZGUgaG93IHRoZSBwYWdlIGxvb2tzIGFuZCB3b3Jrcy4gRWFjaCBwYWdlIHR5cGUgaGFzIGl0cyBvd24gc2V0dGluZ3MgYW5kIGFjdGlvbnMuXG4gKlxuICogLSAqKm92ZXJ2aWV3Kio6IERpc3BsYXlzIGEgc3VtbWFyeSBvciBhIGxpc3Qgb2Ygb2JqZWN0cywgcHJvdmlkaW5nIGFuIG92ZXJ2aWV3IG9mIG11bHRpcGxlIGJ1c2luZXNzIGNhc2VzLlxuICogLSAqKmNyZWF0ZSoqOiBBbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IG9iamVjdCwgcmVwcmVzZW50aW5nIGEgYnVzaW5lc3MgY2FzZS5cbiAqIC0gKippbnNwZWN0Kio6IEVuYWJsZXMgdmlld2luZywgZWRpdGluZywgYW5kIGV4ZWN1dGluZyBhZGRpdGlvbmFsIGFjdGlvbnMgcmVsYXRlZCB0byB0aGUgb2JqZWN0LCB3aGljaCBhbHNvIHJlcHJlc2VudHMgYSBidXNpbmVzcyBjYXNlLlxuICogLSAqKmN1c3RvbSoqOiBQcm92aWRlcyBhIHdheSB0byBpbXBsZW1lbnQgdW5pcXVlIGZ1bmN0aW9uYWxpdHkgdGhhdCBkb2VzbuKAmXQgZml0IHRoZSBvdGhlciBwcmVkZWZpbmVkIHBhZ2UgdHlwZXMuXG4gKlxuICogKipOb3RlIHRoYXQgdGhlICdjdXN0b20nIHBhZ2UgdHlwZSBzaG91bGQgYmUgdXNlZCBvbmx5IGFzIGEgZmFsbGJhY2sgZm9yIHZlcnkgc3BlY2lmaWMgY2FzZXMuIElmIHlvdSBlbmNvdW50ZXIgc3VjaCBhIHNpdHVhdGlvbiwgcGxlYXNlIGNvbnRhY3QgdGhlIFF1YWRyZWwgdGVhbS4qKlxuICpcbiAqICMjIyMgKipGYWNldHMqKlxuICpcbiAqIFRoZXNlIGFyZSBleHRyYSBwaWVjZXMgb2YgaW5mb3JtYXRpb24gc2hvd24gaW4gdGhlIHBhZ2UgaGVhZGVyLiBUaGV5IGdpdmUgY29udGV4dCBzcGVjaWZpYyB0byB0aGUgY3VycmVudCBvYmplY3QgbW9kZWwgYmVpbmcgdmlld2VkIG9yIGVkaXRlZC4gVGhlcmUgYXJlIHNldmVyYWwgdHlwZXMgb2YgZmFjZXRzLCBpbmNsdWRpbmcgYHN0YXR1c2AsIGB2YWx1ZWAsIGBjcml0aWNhbGl0eWAsIGByZWZlcmVuY2VzYCwgYHByb2dyZXNzYCwgYGRhdGVgLCBgc2luZ2xlU2VsZWN0YCwgYW5kIGBtdWx0aVNlbGVjdGAuIEVhY2ggdHlwZSBoYXMgaXRzIG93biBvcHRpb25zLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhlIGBRZFBhZ2VIZWFkZXJGYWNldGAgaW50ZXJmYWNlLlxuICpcbiAqICMjIyMgKipDb250ZXh0KipcbiAqXG4gKiBUaGUgYGNvbnRleHRgIGFjdHMgYXMgYSBmaWx0ZXIgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgb24gdGhlIG92ZXJ2aWV3IHBhZ2UgYW5kIHByb3ZpZGVzIHRoZSBidXNpbmVzcyBjb250ZXh0LCB3aGljaCByZW1haW5zIGNvbnNpc3RlbnQgdGhyb3VnaG91dCB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLiBPbiBjcmVhdGUgYW5kIGluc3BlY3QgcGFnZXMsIHRoZSBjb250ZXh0IGlzIGRpc3BsYXllZCBhcyByZWFkLW9ubHkuIEZvciBtb3JlIGRldGFpbHMsIGNoZWNrIHRoZSBkZWRpY2F0ZWQgY2hhcHRlciBpbiBTdG9yeWJvb2suXG4gKlxuICpcbiAqICMjIyMgKipQYWdlIEluZm8gQmFubmVycyoqXG4gKlxuICogVG8gaW5zZXJ0IGEgcGFnZSBpbmZvIGJhbm5lciB1bmRlciB0aGUgcGFnZSBoZWFkZXIsIGp1c3QgcHV0IGEgYHFkLXBhZ2UtaW5mby1iYW5uZXJgIGNvbXBvbmVudCBpbnNpZGUgdGhlIGBxZC1wYWdlYC4gTXVsdGlwbGUgY29uc2VjdXRpdmUgaW5mbyBiYW5uZXJzIG9mIHRoZSBzYW1lIHR5cGUgd2lsbCBiZSBtZXJnZWQgaW50byBvbmUgYmFubmVyIGNvbnRhaW5lci4gUGFnZSBpbmZvIGJhbm5lcnMgaGF2ZSB0aGUgc2FtZSBhcHBlYXJhbmNlIGxpa2Ugbm90aWZpY2F0aW9ucy5cbiAqXG4gKiAjIyMjICoqQ29udHJvbCBQYW5lbCoqXG4gKlxuICogVGhlIGNvbnRyb2wgcGFuZWwgaXMgbG9jYXRlZCBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgaXMgdXNlZCB0byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYW5kIGZ1bmN0aW9ucyByZWxldmFudCB0byBhIHNwZWNpZmljIGJ1c2luZXNzIGNhc2UsIHdoaWNoIGlzIGxpbmtlZCB0byBhIHNwZWNpZmljIG9iamVjdCBtb2RlbC4gRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24sIHBsZWFzZSBjb25zdWx0IHRoZSBkZWRpY2F0ZWQgY2hhcHRlciBpbiBTdG9yeWJvb2suXG4gKlxuICogIyMjIyAqKkFjdGlvbnMqKlxuICpcbiAqIFRoZXNlIGFyZSBpbnRlcmFjdGl2ZSBlbGVtZW50cyB0aGF0IHBlcmZvcm0gc3BlY2lmaWMgZnVuY3Rpb25zLiBGdW5jdGlvbnMgZm9yIHRoZXNlIGFjdGlvbnMgY2FuIGJlIHNldCB1cCB0aHJvdWdoIGNvbmZpZ3VyYXRpb25zLiBDdXN0b20gYWN0aW9ucyBjYW4gYmUgYWRkZWQgdG8gYW55IHBhZ2UgdHlwZS4gQWRkaXRpb25hbGx5LCBhbGwgYWN0aW9ucyBjYW4gYmUgY29uZmlndXJlZCBhbmQgY3VzdG9taXplZCB3aXRoIHlvdXIgb3duIHRleHQsIHdoaWNoIHdpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdGV4dHMuXG4gKlxuICogUGxlYXNlIGNoZWNrIHRoZSByZWxldmFudCBpbnRlcmZhY2VzIGZvciBlYWNoIHBhZ2UgdHlwZTogYFFkUGFnZUNvbmZpZ092ZXJ2aWV3YCwgYFFkUGFnZUNvbmZpZ0NyZWF0ZWAsIGBRZFBhZ2VDb25maWdJbnNwZWN0YCwgYW5kIGBRZFBhZ2VDb25maWdDdXN0b21gLlxuICpcbiAqICMjIyMgKipWYWxpZGF0aW9uL1BhcmFtZXRlcml6YXRpb24qKlxuICpcbiAqIFZhbGlkYXRpb24gYW5kIHBhcmFtZXRlcml6YXRpb24gYXJlIGNvdmVyZWQgaW4gYSBkZWRpY2F0ZWQgY2hhcHRlciBpbiB0aGUgU3Rvcnlib29rLiBQbGVhc2UgY2hlY2sgdGhlIFwiVmFsaWRhdGlvblwiIHNlY3Rpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogIyMjIyAqKlJlc29sdmVyKipcbiAqXG4gKiBVc2luZyBhIHJlc29sdmVyIHRvIGZldGNoIHBhZ2Ugb2JqZWN0IGRhdGEgaXMgZXNzZW50aWFsIHRvIHRoZSBwYWdlIGNvbmNlcHQuIEFkZCB0aGUgcmVzb2x2ZXIgdG8gdGhlIGNvbXBvbmVudCdzIHByb3ZpZGVycyBhbmQgdXNlIHRoZSBgUURfUEFHRV9PQkpFQ1RfUkVTT0xWRVJfVE9LRU5gIHRva2VuLiBUaGlzIGFwcHJvYWNoIGVuYWJsZXMgdHlwZSBzYWZldHkgYW5kIHVzZXIgZmVlZGJhY2sgYnkgZWZmZWN0aXZlbHkgbWFuYWdpbmcgdGhlIG5lY2Vzc2FyeSBkYXRhIGZvciB0aGUgcGFnZS5cbiAqXG4gKiBgYGB0c1xuICogaW50ZXJmYWNlIE15T2JqZWN0TW9kZWwge1xuICogICAvLyBNZXRhZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIE9iamVjdEhlYWRlclxuICogICBzdGF0ZTogTXlTdGF0ZTtcbiAqICAgY291bnRyeU9mRGVzdGluYXRpb246IE15Q291bnRyeU9mRGVzdGluYXRpb247XG4gKiAgIC8vIEFwcGVhcnMgbm90IGluIHRoZSBPYmplY3RIZWFkZXJcbiAqICAgcGF5bG9hZDogTXlQYXlsb2FkO1xuICogfVxuICpcbiAqIHR5cGUgTXlPYmplY3RNZXRhZGF0YSA9ICdzdGF0ZScgfCAnY291bnRyeU9mRGVzdGluYXRpb24nO1xuICpcbiAqIEBJbmplY3RhYmxlKClcbiAqIGNsYXNzIE15T2JqZWN0TW9kZWxSZXNvbHZlciBpbXBsZW1lbnRzIFFkUGFnZU9iamVjdFJlc29sdmVyPE15T2JqZWN0TW9kZWw+IHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuICpcbiAqICAgcmVzb2x2ZSgpOiBPYnNlcnZhYmxlPE15T2JqZWN0TW9kZWw+IHtcbiAqICAgICByZXR1cm4gdGhpcy5odHRwXG4gKiAgICAgICAuZ2V0PE15T2JqZWN0TW9kZWw+KCdteS1hcGknKVxuICogICAgICAgLnBpcGUodGFwKChkYXRhOiBNeU9iamVjdE1vZGVsKSA9PiBkb1NvbWV0aGluZ1dpdGgoZGF0YSkpKTtcbiAqICAgfVxuICogfVxuICpcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LXBhZ2UnLFxuICogICB0ZW1wbGF0ZVVybDogJy4vbXktcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHtcbiAqICAgICAgIHByb3ZpZGU6IFFEX1BBR0VfT0JKRUNUX1JFU09MVkVSX1RPS0VOLFxuICogICAgICAgdXNlQ2xhc3M6IE15T2JqZWN0TW9kZWxSZXNvbHZlclxuICogICAgIH1cbiAqICAgXVxuICogfSlcbiAqIGNsYXNzIE15UGFnZUNvbXBvbmVudCB7XG4gKiAgIHBhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxQaWNrPE15T2JqZWN0TW9kZWwsIE15T2JqZWN0TWV0YWRhdGE+PiA9IHtcbiAqICAgICB0aXRsZTogeyBpMThuOiAnaTE4bi5wYWdlLnRpdGxlJyB9LFxuICogICAgIHBhZ2VUeXBlOiAnaW5zcGVjdCcsXG4gKiAgICAgaGVhZGVyRmFjZXRzOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICogICAgICAgICBsYWJlbDoge1xuICogICAgICAgICAgIGkxOG46ICdpMThuLnN0YXR1cy5sYWJlbCdcbiAqICAgICAgICAgfSxcbiAqICAgICAgICAgb3B0aW9uczoge1xuICogICAgICAgICAgIHR5cGU6ICdzdGF0dXMnXG4gKiAgICAgICAgIH1cbiAqICAgICAgIH0sXG4gKiAgICAgICB7XG4gKiAgICAgICAgIG5hbWU6ICdjb3VudHJ5T2ZEZXN0aW5hdGlvbicsXG4gKiAgICAgICAgIGxhYmVsOiB7XG4gKiAgICAgICAgICAgaTE4bjogJ2kxOG4uY291bnRyeU9mRGVzdGluYXRpb24ubGFiZWwnXG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIG9wdGlvbnM6IHtcbiAqICAgICAgICAgICB0eXBlOiAndmFsdWUnXG4gKiAgICAgICAgIH1cbiAqICAgICAgIH1cbiAqICAgICBdLFxuICogICAgIHBhZ2VUeXBlQ29uZmlnOiB7XG4gKiAgICAgICBjYW5jZWw6IHtcbiAqICAgICAgICAgaGFuZGxlcjogKCkgPT4gaGFuZGxlQ2FuY2VsKClcbiAqICAgICAgIH0sXG4gKiAgICAgICBzYXZlOiB7XG4gKiAgICAgICAgIGhhbmRsZXI6IChmb3JtVmFsdWVzKSA9PiBoYW5kbGVTYXZlKGZvcm1WYWx1ZXMpXG4gKiAgICAgICB9XG4gKiAgICAgfVxuICogICB9O1xuICogfVxuICogYGBgXG4gKlxuICogIyMjIyAqKlVwZGF0aW5nIEZhY2V0cyoqXG4gKlxuICogVHlwaWNhbGx5LCB0aGUgdmFsdWVzIG9mIHRoZSBmYWNldHMgb24gYSBjcmVhdGUgb3IgaW5zcGVjdCBwYWdlIGFyZSBzZXQgdG8gcmVhZC1vbmx5LiBIb3dldmVyLCB0aGVyZSBtYXkgYmUgY2FzZXMgd2hlcmUsIGZvciBleGFtcGxlLCBhIHN0YXR1cyBjaGFuZ2UgaXMgbmVlZGVkLCBzdWNoIGFzIHRocm91Z2ggYSBkaWFsb2cuIEZvciB0aGlzIHB1cnBvc2UsIHdlIGhhdmUgcHJvdmlkZWQgYW4gdXBkYXRlIG1ldGhvZC4gSW4gdGhlIHJlc29sdmVyIHNlcnZpY2UsIGRlZmluZSBhbiBlbXB0eSBtZXRob2QgY2FsbGVkIGB1cGRhdGVNZXRhZGF0YWAuIEluamVjdCB0aGlzIHNlcnZpY2UgdXNpbmcgaXRzIHR5cGUsIGFuZCB0aGVuIGNhbGwgdGhlIGB1cGRhdGVNZXRhZGF0YWAgbWV0aG9kIHdpdGggdGhlIHJlcXVpcmVkIHBhcmFtZXRlci5cbiAqXG4gKiAqKlBsZWFzZSBub3RlOiBUaGVzZSB2YWx1ZXMgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJlY3RseSB3aXRoaW4gYSBRZFBhZ2UuKipcbiAqXG4gKiBgYGB0c1xuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgTXlPYmplY3RNb2RlbFJlc29sdmVyIGltcGxlbWVudHMgUWRQYWdlT2JqZWN0UmVzb2x2ZXI8TXlPYmplY3RNb2RlbD4ge1xuICogICBjb25maWc6IFFkUGFnZU9iamVjdFJlc29sdmVyQ29uZmlnID0ge1xuICogICAgIC8vIHlvdXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGhlcmVcbiAqICAgfVxuICpcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuICpcbiAqICAgcmVzb2x2ZSgpOiBPYnNlcnZhYmxlPE15T2JqZWN0TW9kZWw+IHtcbiAqICAgICAvLyB5b3VyIGltcGxlbWVudGF0aW9uIGhlcmVcbiAqICAgfVxuICpcbiAqICAgdXBkYXRlTWV0YWRhdGEobWV0YWRhdGE6IFBhcnRpYWw8TXlPYmplY3RNb2RlbD4pIHtcbiAqICAgICAvLyBsZWF2ZSBlbXB0eSBoZXJlICYgY2FsbCBpbiB5b3VyIGNvbXBvbmVudFxuICogICB9XG4gKiB9XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIC8vIC4uLlxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICB7XG4gKiAgICAgICBwcm92aWRlOiBRRF9QQUdFX09CSkVDVF9SRVNPTFZFUl9UT0tFTixcbiAqICAgICAgIHVzZUNsYXNzOiBNeU9iamVjdE1vZGVsUmVzb2x2ZXJcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKiBjbGFzcyBNeVBhZ2VDb21wb25lbnQge1xuICogICBjb25zdHJ1Y3RvcihASW5qZWN0KFFEX1BBR0VfT0JKRUNUX1JFU09MVkVSX1RPS0VOKSBwcml2YXRlIG9iamVjdFJlc29sdmVyOiBNeU9iamVjdE1vZGVsUmVzb2x2ZXIpIHt9XG4gKlxuICogICB1cGRhdGVTdGF0dXMoKSB7XG4gKiAgICAgdGhpcy5vYmplY3RSZXNvbHZlci51cGRhdGVNZXRhZGF0YSh7IHN0YXRlOiAnVXBkYXRlZCcgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICMjIyMgKipPdmVydmlldyBQYWdlKipcbiAqXG4gKiBPbiBhbiBvdmVydmlldyBwYWdlLCBhIGxpc3Qgb2YgYnVzaW5lc3MgY2FzZXMgY2FuIGJlIGRpc3BsYXllZC4gVHlwaWNhbGx5LCB0aGlzIGlzIGRvbmUgaW4gYSAqKlFkVGFibGUqKiwgaW5jbHVkaW5nIGZpbHRlcnMgYW5kL29yIHNlYXJjaCBvcHRpb25zLiBUaGVyZSBhcmUgYWN0aW9ucyB0aGF0IGhhbmRsZSByb3V0aW5nIHRvIHRoZSByZWxhdGVkIGRldGFpbCBwYWdlcywgd2hlcmUgdGhlIGJ1c2luZXNzIGNhc2VzLCByZXByZXNlbnRlZCBieSBhIGJ1c2luZXNzIG9iamVjdCBtb2RlbCwgY2FuIGJlIHZpZXdlZCwgZWRpdGVkLCBvciBuZXdseSBjcmVhdGVkLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBvdmVydmlld1BhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxNeU9iamVjdFR5cGU+ID0ge1xuICogICB0aXRsZTogeyBpMThuOiAnaTE4bi5teS1wYWdlLnRpdGxlJyB9LFxuICogICBwYWdlVHlwZTogJ292ZXJ2aWV3JyxcbiAqICAgcGFnZVR5cGVDb25maWc6IHtcbiAqICAgICBjdXN0b21BY3Rpb25zOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIGkxOG46ICdpMThuLmN1c3RvbS5hY3Rpb24nLFxuICogICAgICAgICBoYW5kbGVyOiAoKSA9PiBkb1NvbWV0aGluZygpXG4gKiAgICAgICB9XG4gKiAgICAgXVxuICogICB9XG4gKiB9O1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPHFkLXBhZ2UgW2NvbmZpZ109XCJwYWdlQ29uZmlnXCI+XG4gKiAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgIDxxZC10YWJsZSBbY29uZmlnXT1cInRhYmxlQ29uZmlnXCI+PC9xZC10YWJsZT5cbiAqICAgPC9xZC1zZWN0aW9uPlxuICogPC9xZC1wYWdlPlxuICogYGBgXG4gKlxuICogVG8gY29uZmlndXJlIGNvbnRleHRzIGZvciBhIHBhZ2UsIHlvdSBjYW4gZWFzaWx5IHNldCBjb250ZXh0cyBpbiB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIG92ZXJ2aWV3IHBhZ2UuIFRoZXkgYXJlIHRoZW4gc2VsZWN0YWJsZSBvbiB0aGUgb3ZlcnZpZXcgcGFnZTpcbiAqXG4gKiBgYGB0c1xuICogY29uc3Qgb3ZlcnZpZXdQYWdlQ29uZmlnOiBRZFBhZ2VDb25maWc8TXlPYmplY3RUeXBlPiA9IHtcbiAqICAgLy8gLi4uXG4gKiAgIGNvbnRleHRzOiBbXG4gKiAgICAge1xuICogICAgICAgaWQ6ICd0eXBlT2ZUcmFmZmljJyxcbiAqICAgICAgIGxhYmVsOiB7IGkxOG46ICdWZXJrZWhyc2FydCcgfSxcbiAqICAgICAgIHR5cGU6ICdzaW5nbGUnLFxuICogICAgICAgc2VsZWN0ZWQ6IHtcbiAqICAgICAgICAgbGFiZWw6IHsgaTE4bjogJ1NjaGllbmUnIH0sXG4gKiAgICAgICAgIHZhbHVlOiAncmFpbCdcbiAqICAgICAgIH0sXG4gKiAgICAgICBvcHRpb25zOiBbXG4gKiAgICAgICAgIHtcbiAqICAgICAgICAgICB2YWx1ZTogJ3JhaWwnLFxuICogICAgICAgICAgIGxhYmVsOiB7IGkxOG46ICdTY2hpZW5lJyB9XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIHtcbiAqICAgICAgICAgICB2YWx1ZTogJ2FpcicsXG4gKiAgICAgICAgICAgbGFiZWw6IHsgaTE4bjogJ0x1ZnQnIH1cbiAqICAgICAgICAgfVxuICogICAgICAgXVxuICogICAgIH1cbiAqICAgXVxuICogICAvLyAuLi5cbiAqIH07XG4gKiBgYGBcbiAqXG4gKiAjIyMjICoqQ3JlYXRlIFBhZ2UqKlxuICpcbiAqIE9uIHRoZSBjcmVhdGUgcGFnZSwgYSBuZXcgYnVzaW5lc3MgY2FzZSBjYW4gYmUgY3JlYXRlZC4gVGhpcyBwYWdlIHR5cGljYWxseSBpbmNsdWRlcyBmb3JtcyBmb3IgZW50ZXJpbmcgZGF0YS4gVGhlIHN1Ym1pdCBidXR0b24gaXMgcGFyYW1ldGVyaXplZCB3aXRoIHRoZSBmb3JtIGRhdGEgYW5kIGlzIHZhbGlkYXRlZCB0aHJvdWdoIHRoZSBRZFBhZ2VTdGVwcGVyLlxuICogVGhlIGNsaWNrIG9uIHRoZSBzdWJtaXQgYnV0dG9uIHNob3VsZCBzdWJtaXQgdGhlIGNyZWF0aW9uIG9mIHRoZSBidXNpbmVzcyBjYXNlIG9yIG9iamVjdC4gWW91IGNhbiBkZWZpbmUgYSBzcGVjaWZpYyBoYW5kbGVyIGluIHRoZSBzdWJtaXQgYnV0dG9uJ3MgY29uZmlndXJhdGlvbiB0byBjcmVhdGUgdGhlIG9iamVjdC5cbiAqIElmIG9ubHkgb25lIHN0ZXAgaXMgbmVlZGVkLCB0aGUgc2luZ2xlLXN0ZXAgbW9kZSBjYW4gYmUgdXNlZC4gSW4gc2luZ2xlLXN0ZXAgbW9kZSwgdGhlIHN0ZXBwZXIgaXMgdmlzdWFsbHkgaGlkZGVuIGFuZCBiZWhhdmVzIGxpa2UgYSAqKlFkU2VjdGlvbioqLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBjcmVhdGVQYWdlQ29uZmlnOiBRZFBhZ2VDb25maWc8TXlPYmplY3RUeXBlPiA9IHtcbiAqICAgdGl0bGU6IHsgaTE4bjogJ2kxOG4ucGFnZS50aXRsZScgfSxcbiAqICAgcGFnZVR5cGU6ICdjcmVhdGUnLFxuICogICBwYWdlVHlwZUNvbmZpZzoge1xuICogICAgIHN1Ym1pdDoge1xuICogICAgICAgaGFuZGxlcjogKGZvcm1WYWx1ZXMpID0+IGhhbmRsZVN1Ym1pdChmb3JtVmFsdWVzKVxuICogICAgIH1cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDwhLS0gRm9yIFwiUXVpY2sgQWRkXCIgdXNlIFBhZ2VTdGVwcGVyIGluIHNpbmdsZS1zdGVwIG1vZGUgLS0+XG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPHFkLXBhZ2Utc3RlcHBlciBbY29uZmlnXT1cInN0ZXBwZXJDb25maWdcIj5cbiAqICAgICA8cWQtcGFnZS1zdGVwIFtjb25maWddPVwic3RlcENvbmZpZ09uZVwiPlxuICogICAgICAgPHFkLXNlY3Rpb24gW2NvbmZpZ109XCJzZWN0aW9uQ29uZmlnXCI+XG4gKiAgICAgICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc1wiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNcIj5cbiAqICAgICAgICAgICA8IS0tIHlvdXIgcWQtZm9ybS1jb21wb25lbnRzIGhlcmUgLS0+XG4gKiAgICAgICAgIDwvcWQtZ3JpZD5cbiAqICAgICAgIDwvcWQtc2VjdGlvbj5cbiAqICAgICA8L3FkLXBhZ2Utc3RlcD5cbiAqICAgPC9xZC1wYWdlLXN0ZXBwZXI+XG4gKiA8L3FkLXBhZ2U+XG4gKlxuICogPCEtLSBXaXRoIFBhZ2VTdGVwcGVyIHVzaW5nIG11bHRpcGxlIHN0ZXBzIC0tPlxuICogPHFkLXBhZ2UgW2NvbmZpZ109XCJwYWdlQ29uZmlnXCI+XG4gKiAgIDxxZC1wYWdlLXN0ZXBwZXIgW2NvbmZpZ109XCJzdGVwcGVyQ29uZmlnXCI+XG4gKiAgICAgPHFkLXBhZ2Utc3RlcCBbY29uZmlnXT1cInN0ZXBDb25maWdPbmVcIj5cbiAqICAgICAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgICAgICA8cWQtZ3JpZCBbY29uZmlnXT1cImdyaWRDb25maWdcIiBbZm9ybUdyb3VwXT1cIm15Rm9ybXNPbmVcIiBxZENvbm5lY3RGb3JtU3RhdGVUb1BhZ2U9XCJteUZvcm1zT25lXCI+XG4gKiAgICAgICAgICAgPCEtLSB5b3VyIHFkLWZvcm0tY29tcG9uZW50cyBoZXJlIC0tPlxuICogICAgICAgICA8L3FkLWdyaWQ+XG4gKiAgICAgICA8L3FkLXNlY3Rpb24+XG4gKiAgICAgPC9xZC1wYWdlLXN0ZXA+XG4gKiAgICAgPHFkLXBhZ2Utc3RlcCBbY29uZmlnXT1cInN0ZXBDb25maWdUd29cIj5cbiAqICAgICAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgICAgICA8cWQtZ3JpZCBbY29uZmlnXT1cImdyaWRDb25maWdcIiBbZm9ybUdyb3VwXT1cIm15Rm9ybXNUd29cIiBxZENvbm5lY3RGb3JtU3RhdGVUb1BhZ2U9XCJteUZvcm1zVHdvXCI+XG4gKiAgICAgICAgICAgPCEtLSB5b3VyIHFkLWZvcm0tY29tcG9uZW50cyBoZXJlIC0tPlxuICogICAgICAgICA8L3FkLWdyaWQ+XG4gKiAgICAgICA8L3FkLXNlY3Rpb24+XG4gKiAgICAgPC9xZC1wYWdlLXN0ZXA+XG4gKiAgIDwvcWQtcGFnZS1zdGVwcGVyPlxuICogPC9xZC1wYWdlPlxuICogYGBgXG4gKlxuICogVG8gYWxsb3cgcmVzb2x2aW5nIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIHdoZW4gZ29pbmcgdG8gbmV4dCBzdGVwLCB5b3UgY2FuIHByb3ZpZGUgYSByZXNvbHZlciBvZiB0eXBlIFFkUGFnZVN0ZXBSZXNvbHZlcjpcbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgTXlSZXNvbHZlciBpbXBsZW1lbnRzIFFkUGFnZVN0ZXBSZXNvbHZlciB7XG4gKiAgIC4uLlxuICpcbiAqICAgcmVzb2x2ZShpbmRleDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gKiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwibmV4dC1zdGVwLmNvbVwiKTtcbiAqICAgfVxuICogfVxuICpcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ3FkLXVpLXBhZ2UtY3JlYXRlJyxcbiAqICAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHtcbiAqICAgICAgIHByb3ZpZGU6IFFEX1BBR0VfU1RFUF9SRVNPTFZFUl9UT0tFTixcbiAqICAgICAgIHVzZUNsYXNzOiBQYWdlU3RlcFJlc29sdmVyXG4gKiAgICAgfVxuICogICBdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIENyZWF0ZUNvbXBvbmVudCB7XG4gKiBgYGBcbiAqXG4gKiAjIyMjICoqSW5zcGVjdCBQYWdlKipcbiAqXG4gKiBPbiBhbiBpbnNwZWN0IHBhZ2UsIGEgc3BlY2lmaWMgYnVzaW5lc3MgY2FzZSBpcyBkaXNwbGF5ZWQgYW5kIG1heSBiZSBlZGl0ZWQgb3Igc3VibWl0dGVkLiBEZXBlbmRpbmcgb24geW91ciBuZWVkcyB5b3UgY2FuIGhpZGUgdGhlIHN1Ym1pdCBidXR0b24uXG4gKiBJbiBjb250cmFzdCB0byBhIGNyZWF0ZSBwYWdlLCBhbiBleGlzdGluZyBvYmplY3QgaXMgc2hvd24gYW5kIHBvdGVudGlhbGx5IHVwZGF0ZWQuXG4gKlxuICogVGhlIHBhZ2Ugb3BlcmF0ZXMgaW4gb25lIG9mIHR3byBtb2RlcyAtIGB2aWV3YCBvciBgZWRpdGAgLSBhcyBkZWZpbmVkIGJ5IHRoZSBgb3BlcmF0aW9uTW9kZWAgY29uZmlndXJhdGlvbiBrZXkuXG4gKlxuICogVGhlIGB2aWV3b25seWAgYmVoYXZpb3IgZGVmaW5lZCBieSB0aGUgb3BlcmF0aW9uIG1vZGUgaXMgYXV0b21hdGljYWxseSBwcm9wYWdhdGVkIHRvIGFsbCBuZXN0ZWQgUWRTZWN0aW9uIGNvbXBvbmVudHMgdGhhdCBhcmUgcGFydCBvZiBhIFFMUyxcbiAqIGFzIHdlbGwgYXMgdG8gZnVuY3Rpb25hbCBwYXR0ZXJucyBzdWNoIGFzIFFkVGFibGUsIFFkVHJlZSwgUWRGaWxlQ29sbGVjdG9yLCBhbmQgUWRRdWlja0VkaXQuXG4gKiBBbGwgZm9ybXMgYXJlIHJlbmRlcmVkIGVpdGhlciBpbiB2aWV3b25seSBvciBlZGl0YWJsZSBtb2RlIGFjY29yZGluZ2x5LlxuICpcbiAqIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGV4cGxpY2l0bHkgb3ZlcnJpZGRlbiBpbiBlYWNoIGNvbXBvbmVudOKAmXMgY29uZmlndXJhdGlvbiAtIGZvciBleGFtcGxlLCB0byBhbGxvdyBjZXJ0YWluIGZpZWxkcyB0byByZW1haW4gZWRpdGFibGUuXG4gKlxuICogLSAqKnZpZXcqKjogQSBzdWJtaXQgYWN0aW9uIGNhbiBvcHRpb25hbGx5IGJlIGFkZGVkIGZvciBwcm9jZXNzLXJlbGF0ZWQgb3BlcmF0aW9ucyBzdWNoIGFzIHN0YXR1cyB1cGRhdGVzLlxuICogICBUaGUgYWN0aW9uIHJlY2VpdmVzIHRoZSBjdXJyZW50IGZvcm0gdmFsdWVzIGFuZCBzdXBwb3J0cyB2YWxpZGF0aW9uIGFuZCBwYXJhbWV0ZXJpemF0aW9uLlxuICpcbiAqIC0gKiplZGl0Kio6IFR5cGljYWxseSBpbmNsdWRlcyBhIHNhdmUgYnV0dG9uIHRvIHBlcnNpc3QgY2hhbmdlcyBtYWRlIGluIGVkaXRhYmxlIGZpZWxkcy5cbiAqXG4gKiBgYGB0c1xuICogY29uc3QgaW5zcGVjdFBhZ2VDb25maWc6IFFkUGFnZUNvbmZpZzxNeU9iamVjdFR5cGU+ID0ge1xuICogICB0aXRsZTogeyBpMThuOiAnaTE4bi5wYWdlLnRpdGxlJyB9LFxuICogICBwYWdlVHlwZTogJ2luc3BlY3QnLFxuICogICBwYWdlVHlwZUNvbmZpZzoge1xuICogICAgIG9wZXJhdGlvbk1vZGU6ICdlZGl0JyxcbiAqICAgICBjYW5jZWw6IHtcbiAqICAgICAgIGhhbmRsZXI6ICgpID0+IGhhbmRsZUNhbmNlbCgpXG4gKiAgICAgfSxcbiAqICAgICBzYXZlOiB7XG4gKiAgICAgICBoYW5kbGVyOiAoZm9ybVZhbHVlcykgPT4gaGFuZGxlU2F2ZShmb3JtVmFsdWVzKVxuICogICAgIH1cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDwhLS0gd2l0aCBTZWN0aW9uIC0tPlxuICogPHFkLXBhZ2UgW2NvbmZpZ109XCJwYWdlQ29uZmlnXCI+XG4gKiAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgIDxxZC1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIFtmb3JtR3JvdXBdPVwibXlGb3Jtc1wiIHFkQ29ubmVjdEZvcm1TdGF0ZVRvUGFnZT1cIm15Rm9ybXNcIj5cbiAqICAgICAgIDwhLS0geW91ciBxZC1mb3JtLWNvbXBvbmVudHMgaGVyZSAtLT5cbiAqICAgICA8L3FkLWdyaWQ+XG4gKiAgIDwvcWQtc2VjdGlvbj5cbiAqIDwvcWQtcGFnZT5cbiAqXG4gKiA8IS0tIHdpdGggUGFnZVRhYnMgLS0+XG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPHFkLXBhZ2UtdGFicyBbY29uZmlnXT1cInN0ZXBwZXJDb25maWdcIj5cbiAqICAgICA8cWQtcGFnZS10YWIgW2NvbmZpZ109XCJ0YWJDb25maWdPbmVcIj5cbiAqICAgICAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgICAgICA8cWQtZ3JpZCBbY29uZmlnXT1cImdyaWRDb25maWdcIiBbZm9ybUdyb3VwXT1cIm15Rm9ybXNPbmVcIiBxZENvbm5lY3RGb3JtU3RhdGVUb1BhZ2U9XCJteUZvcm1zT25lXCI+XG4gKiAgICAgICAgICAgPCEtLSB5b3VyIHFkLWZvcm0tY29tcG9uZW50cyBoZXJlIC0tPlxuICogICAgICAgICA8L3FkLWdyaWQ+XG4gKiAgICAgICA8L3FkLXNlY3Rpb24+XG4gKiAgICAgPC9xZC1wYWdlLXRhYj5cbiAqICAgICA8cWQtcGFnZS10YWIgW2NvbmZpZ109XCJ0YWJDb25maWdUd29cIj5cbiAqICAgICAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgICAgICA8cWQtZ3JpZCBbY29uZmlnXT1cImdyaWRDb25maWdcIiBbZm9ybUdyb3VwXT1cIm15Rm9ybXNUd29cIiBxZENvbm5lY3RGb3JtU3RhdGVUb1BhZ2U9XCJteUZvcm1zVHdvXCI+XG4gKiAgICAgICAgICAgPCEtLSB5b3VyIHFkLWZvcm0tY29tcG9uZW50cyBoZXJlIC0tPlxuICogICAgICAgICA8L3FkLWdyaWQ+XG4gKiAgICAgICA8L3FkLXNlY3Rpb24+XG4gKiAgICAgPC9xZC1wYWdlLXRhYj5cbiAqICAgPC9xZC1wYWdlLXRhYnM+XG4gKiA8L3FkLXBhZ2U+XG4gKiBgYGBcbiAqXG4gKiAjIyMjICoqQ3VzdG9tIFBhZ2UqKlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBjdXN0b21QYWdlQ29uZmlnOiBRZFBhZ2VDb25maWc8TXlPYmplY3RUeXBlPiA9IHtcbiAqICAgdGl0bGU6IHsgaTE4bjogJ2kxOG4ucGFnZS50aXRsZScgfSxcbiAqICAgcGFnZVR5cGU6ICdjdXN0b20nLFxuICogICBwYWdlVHlwZUNvbmZpZzoge1xuICogICAgIGN1c3RvbUFjdGlvbnM6IFtcbiAqICAgICAgIHtcbiAqICAgICAgICAgaTE4bjogJ2kxOG4uY3VzdG9tLmFjdGlvbicsXG4gKiAgICAgICAgIGhhbmRsZXI6ICgpID0+IGRvU29tZXRoaW5nKClcbiAqICAgICAgIH1cbiAqICAgICBdXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8cWQtcGFnZSBbY29uZmlnXT1cInBhZ2VDb25maWdcIj5cbiAqICAgPCEtLSBQbGFjZSBjb250ZW50IGhlcmUgdGhhdCBkb2VzbuKAmXQgZml0IHRoZSBvdGhlciBwYWdlIHR5cGVzIC0tPlxuICogPC9xZC1wYWdlPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FkLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbUWRQYWdlRm9vdGVyU2VydmljZSwgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSwgUWRQYWdlU3VibWl0QWN0aW9uU2VydmljZSwgUWRSZXNvbHZlclRyaWdnZXJTZXJ2aWNlXSxcbiAgaG9zdDogeyAnW2NsYXNzLmhhcy1jb250cm9sLXBhbmVsXSc6ICdpc0NvbnRyb2xQYW5lbFZpc2libGUnLCAnW2NsYXNzLmNvbnRyb2wtcGFuZWwtYnJvYWRdJzogJ2lzQ29udHJvbFBhbmVsQnJvYWQnIH1cbn0pXG5leHBvcnQgY2xhc3MgUWRQYWdlQ29tcG9uZW50PFQgZXh0ZW5kcyBvYmplY3Q+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGRlZmluZXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBRZFBhZ2UgY29tcG9uZW50LCBpbmNsdWRpbmcgdGhlIHBhZ2UgdHlwZSxcbiAgICogdGl0bGUsIGFuZCBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgZWFjaCB0eXBlIG9mIHBhZ2UuXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjb25maWchOiBRZFBhZ2VDb25maWc8VD47XG5cbiAgLyoqXG4gICAqIEEgc3RhdGljIHRlc3QgSUQgZm9yIGludGVncmF0aW9uIHRlc3RzIGNhbiBiZSBzZXQuIDxiciAvPlxuICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBIVE1MIGF0dHJpYnV0ZSBbZGF0YS10ZXN0LWlkXS5cbiAgICovXG4gIEBJbnB1dCgnZGF0YS10ZXN0LWlkJykgdGVzdElkPyA9ICdwYWdlJztcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBlbWl0dGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBtb2RlIG9mIHRoZSBpbnNwZWN0IHBhZ2UgaXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvcGVyYXRpb25Nb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UWRJbnNwZWN0T3BlcmF0aW9uTW9kZT4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKFFkU2VjdGlvbkNvbXBvbmVudClcbiAgc2VjdGlvbnMhOiBRdWVyeUxpc3Q8UWRTZWN0aW9uQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKFFkUGFnZUNvbnRyb2xQYW5lbENvbXBvbmVudClcbiAgY29udHJvbFBhbmVsITogUWRQYWdlQ29udHJvbFBhbmVsQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoUWRQYWdlU3RlcHBlckNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBzdGVwcGVyQ29tcG9uZW50PzogUWRQYWdlU3RlcHBlckNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKFFkUGFnZVRhYnNDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgdGFic0NvbXBvbmVudD86IFFkUGFnZVRhYnNDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChRZFBhZ2VTdGVwcGVyQWRhcHRlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBzdGVwcGVyQWRhcHRlckRpcmVjdGl2ZT86IFFkUGFnZVN0ZXBwZXJBZGFwdGVyRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoUWRQYWdlVGFic0FkYXB0ZXJEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgdGFic0FkYXB0ZXJEaXJlY3RpdmU/OiBRZFBhZ2VUYWJzQWRhcHRlckRpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkcmVuKFFkUGFnZUluZm9CYW5uZXJDb21wb25lbnQpXG4gIGluZm9CYW5uZXJzITogUXVlcnlMaXN0PFFkUGFnZUluZm9CYW5uZXJDb21wb25lbnQ+O1xuXG4gIGZvb3Rlckhhc0NvbnRlbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0Zvb3RlclZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByb2plY3Rpb25HdWFyZE1lc3NhZ2UgPVxuICAgICdRRC1VSSB8IFFkUGFnZSAtIFRoaXMgY29udGVudCBpcyBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgdXNlIFFkU2VjdGlvbkFkYXB0ZXJEaXJlY3RpdmUgZm9yIGN1c3RvbSBjb250ZW50IHByb2plY3Rpb24uJztcblxuICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2Rlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGdldCBpc0NvbnRyb2xQYW5lbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFBhbmVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb250cm9sUGFuZWwuY29uZmlnPy5pc0hpZGRlbiAhPT0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBpc0NvbnRyb2xQYW5lbEJyb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xQYW5lbD8uY29uZmlnPy53aWR0aCA9PT0gJ2Jyb2FkJztcbiAgfVxuXG4gIGdldCBoYXNOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnN0ZXBwZXJDb21wb25lbnQgfHwgdGhpcy50YWJzQ29tcG9uZW50IHx8IHRoaXMuc3RlcHBlckFkYXB0ZXJEaXJlY3RpdmUgfHwgdGhpcy50YWJzQWRhcHRlckRpcmVjdGl2ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1mb290ZXInKVxuICBnZXQgZm9vdGVyVmlzaWJsZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5pc0Zvb3RlclZpc2libGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1pbmZvLWJhbm5lcnMnKVxuICBnZXQgaGFzSW5mb0Jhbm5lcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mb0Jhbm5lcnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZVN0b3JlU2VydmljZTogUWRQYWdlU3RvcmVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9vdGVyU2VydmljZTogUWRQYWdlRm9vdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlOiBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VibWl0QWN0aW9uU2VydmljZTogUWRQYWdlU3VibWl0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogUWREaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUURfU0FGRV9CT1RUT01fT0ZGU0VUKSBwcml2YXRlIGJvdHRvbU9mZnNldCQ/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPlxuICApIHtcbiAgICB0aGlzLmZvb3Rlckhhc0NvbnRlbnQkID0gdGhpcy5mb290ZXJTZXJ2aWNlLmZvb3Rlckhhc0NvbnRlbnQkO1xuICAgIHRoaXMuZm9vdGVySGFzQ29udGVudCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZShpc1Zpc2libGUgPT4ge1xuICAgICAgdGhpcy5pc0Zvb3RlclZpc2libGUgPSBpc1Zpc2libGU7XG4gICAgICB0aGlzLmJvdHRvbU9mZnNldCQ/Lm5leHQoaXNWaXNpYmxlID8gU0FGRV9CT1RUT01fT0ZGU0VUX1BYIDogMCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrQ29uZmlnVmFsaWRpdHkoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZykgdGhpcy5wYWdlU3RvcmVTZXJ2aWNlLmluaXRQYWdlU3RhdGUodGhpcy5jb25maWcpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ0NoYW5nZSA9IGNoYW5nZXNbJ2NvbmZpZyddO1xuXG4gICAgaWYgKCFjb25maWdDaGFuZ2UpIHJldHVybjtcblxuICAgIGNvbnN0IHsgY3VycmVudFZhbHVlOiBjdXJyLCBwcmV2aW91c1ZhbHVlOiBwcmV2IH0gPSBjb25maWdDaGFuZ2U7XG5cbiAgICBpZiAoY3Vycj8ucGFnZVR5cGVDb25maWc/LnN1Ym1pdD8uaXNIaWRkZW4gIT09IHByZXY/LnBhZ2VUeXBlQ29uZmlnPy5zdWJtaXQ/LmlzSGlkZGVuKVxuICAgICAgdGhpcy5mb290ZXJTZXJ2aWNlLnVwZGF0ZUFjdGlvbnMoW1xuICAgICAgICB7IGFjdGlvbktleTogJ3N1Ym1pdCcsIHBhcnRpYWxBY3Rpb246IHsgaXNWaXNpYmxlOiAhY3Vycj8ucGFnZVR5cGVDb25maWc/LnN1Ym1pdD8uaXNIaWRkZW4gfSB9XG4gICAgICBdKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcucGFnZVR5cGUgPT09ICdjcmVhdGUnKSB0aGlzLnNldHVwQ3JlYXRlUGFnZUZvb3RlckFjdGlvbnMoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdlVHlwZSA9PT0gJ2NyZWF0ZScgJiYgdGhpcy5jb25maWc/LnBhZ2VUeXBlQ29uZmlnPy5jYW5jZWwgIT09IHVuZGVmaW5lZClcbiAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsQWN0aW9uV2l0aEZvcm1DaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcucGFnZVR5cGUgPT09ICdjcmVhdGUnICYmIHRoaXMuY29uZmlnPy5wYWdlVHlwZUNvbmZpZz8uc2F2ZURyYWZ0ICE9PSB1bmRlZmluZWQpXG4gICAgICB0aGlzLmluaXRTYXZlRHJhZnRGb290ZXJBY3Rpb24oKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdlVHlwZSA9PT0gJ2luc3BlY3QnKVxuICAgICAgdGhpcy5wYWdlU3RvcmVTZXJ2aWNlLmlzVmlld29ubHkkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZShpc1ZpZXdvbmx5ID0+XG4gICAgICAgICAgdGhpcy51cGRhdGVJbnNwZWN0UGFnZU9wZXJhdGlvbk1vZGUoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5wYWdlVHlwZUNvbmZpZyBhcyBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZyxcbiAgICAgICAgICAgIGlzVmlld29ubHkgPyAndmlldycgOiAnZWRpdCdcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYm90dG9tT2Zmc2V0JD8ubmV4dCgwKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29uZmlnVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZykgY29uc29sZS53YXJuKCdRZFVpIHwgUWRQYWdlQ29tcG9uZW50IC0gVG8gY29uZmlndXJlIHRoZSBwYWdlIHlvdSBzaG91bGQgcHJvdmlkZSBhIHZhbGlkIGNvbmZpZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBDcmVhdGVQYWdlRm9vdGVyQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlVHlwZUNvbmZpZyA9IHRoaXMuY29uZmlnPy5wYWdlVHlwZUNvbmZpZyBhcyBRZFBhZ2VUeXBlQ3JlYXRlQ29uZmlnO1xuICAgIGNvbnN0IGFjdGlvbktleXM6IFFkQ3JlYXRlRm9vdGVyQWN0aW9uS2V5W10gPSBbJ3NhdmVEcmFmdCcsICdjYW5jZWwnLCAnc3VibWl0J107XG4gICAgY29uc3QgYWN0aW9uczogUGFydGlhbEZvb3RlckFjdGlvbltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGFjdGlvbktleSBvZiBhY3Rpb25LZXlzKSB7XG4gICAgICBjb25zdCBhY3Rpb24gPSBwYWdlVHlwZUNvbmZpZ1thY3Rpb25LZXldO1xuXG4gICAgICBpZiAoIWFjdGlvbikgY29udGludWU7XG5cbiAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgIGFjdGlvbktleSxcbiAgICAgICAgcGFydGlhbEFjdGlvbjoge1xuICAgICAgICAgIC4uLihhY3Rpb24/LmxhYmVsPy5pMThuID8geyB0aXRsZUkxOG46IGFjdGlvbi5sYWJlbC5pMThuIH0gOiB7fSksXG4gICAgICAgICAgaGFuZGxlcjogdGhpcy5nZW5lcmF0ZUZvb3RlckFjdGlvbkhhbmRsZXIoYWN0aW9uPy5oYW5kbGVyKVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZvb3RlclNlcnZpY2UudXBkYXRlQWN0aW9ucyhhY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2FuY2VsQWN0aW9uV2l0aEZvcm1DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwTWFuYWdlclNlcnZpY2VcbiAgICAgIC4kaGFzVmFsdWVzQ2hhbmdlZCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKGhhc0NoYW5nZWQgPT4ge1xuICAgICAgICB0aGlzLmZvb3RlclNlcnZpY2UudXBkYXRlQWN0aW9ucyhbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uS2V5OiAnY2FuY2VsJyxcbiAgICAgICAgICAgIHBhcnRpYWxBY3Rpb246IHtcbiAgICAgICAgICAgICAgaGFuZGxlcjogaGFzQ2hhbmdlZFxuICAgICAgICAgICAgICAgID8gKCk6IHZvaWQgPT4gdGhpcy5zZXR1cFN1Ym1pdEFjdGlvblZhbGlkYXRpb24oKVxuICAgICAgICAgICAgICAgIDogKCk6IHZvaWQgPT4gKHRoaXMuY29uZmlnPy5wYWdlVHlwZUNvbmZpZyBhcyBRZFBhZ2VUeXBlQ3JlYXRlQ29uZmlnKT8uY2FuY2VsPy5oYW5kbGVyKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTYXZlRHJhZnRGb290ZXJBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgcGFnZVR5cGVDb25maWcgPSB0aGlzLmNvbmZpZy5wYWdlVHlwZUNvbmZpZyBhcyBRZFBhZ2VUeXBlQ3JlYXRlQ29uZmlnO1xuXG4gICAgdGhpcy5mb290ZXJTZXJ2aWNlLnNldEFjdGlvbnMoW1xuICAgICAge1xuICAgICAgICBrZXk6ICdzYXZlRHJhZnQnLFxuICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICB0aXRsZUkxOG46IHBhZ2VUeXBlQ29uZmlnLnNhdmVEcmFmdC5sYWJlbC5pMThuID8/ICdpMThuLnFkLnBhZ2UuZm9vdGVyLnNhdmVEcmFmdCcsXG4gICAgICAgICAgdHlwZTogUWRGb290ZXJBY3Rpb25UeXBlLlNlY29uZGFyeSxcbiAgICAgICAgICBoYW5kbGVyOiAoKTogdm9pZCA9PiBwYWdlVHlwZUNvbmZpZz8uc2F2ZURyYWZ0Py5oYW5kbGVyKCksXG4gICAgICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5zcGVjdFBhZ2VPcGVyYXRpb25Nb2RlKHBhZ2VUeXBlQ29uZmlnOiBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZywgbW9kZTogUWRJbnNwZWN0T3BlcmF0aW9uTW9kZSk6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0QWN0aW9uU2VydmljZS5zZXRTdWJtaXRBY3Rpb25Gb3JJbnNwZWN0KHBhZ2VUeXBlQ29uZmlnLCBtb2RlID09PSAndmlldycpO1xuXG4gICAgdGhpcy5mb290ZXJTZXJ2aWNlLnVwZGF0ZUFjdGlvbnMoW1xuICAgICAgeyBhY3Rpb25LZXk6ICdzdWJtaXQnLCBwYXJ0aWFsQWN0aW9uOiB7IGlzVmlzaWJsZTogbW9kZSA9PT0gJ3ZpZXcnICYmICFwYWdlVHlwZUNvbmZpZz8uc3VibWl0Py5pc0hpZGRlbiB9IH1cbiAgICBdKTtcblxuICAgIHRoaXMuaW5pdFN1Ym1pdFZhbGlkYXRpb24oKTtcblxuICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB0aGlzLm9wZXJhdGlvbk1vZGVDaGFuZ2VkLmVtaXQobW9kZSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRm9vdGVyQWN0aW9uSGFuZGxlcihoYW5kbGVyPzogKHZhbHVlczogdW5rbm93bikgPT4gdm9pZCk6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQge1xuICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKCFoYW5kbGVyKSByZXR1cm47XG5cbiAgICAgIGhhbmRsZXIodGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZS5oYXNGb3JtR3JvdXBzKCkgPyB0aGlzLmZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlLmdldEFsbFZhbHVlcygpIDogYXJncyk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTdWJtaXRBY3Rpb25WYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nXG4gICAgICAub3BlbihRZFBhZ2VDYW5jZWxDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgdGl0bGU6IHsgaTE4bjogJ2kxOG4ucWQucGFnZS5jYW5jZWwuY29uZmlybWF0aW9uLmRpYWxvZy50aXRsZScgfSxcbiAgICAgICAgZGlhbG9nU2l6ZTogUWREaWFsb2dTaXplLlNtYWxsLFxuICAgICAgICBkYXRhOiB0aGlzLmNvbmZpZy5wYWdlVHlwZUNvbmZpZ1xuICAgICAgfSlcbiAgICAgIC5jbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdWJtaXRWYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwTWFuYWdlclNlcnZpY2VcbiAgICAgIC4kYXJlRm9ybUdyb3Vwc1ZhbGlkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCksXG4gICAgICAgIHRhcChpc1ZhbGlkID0+IHtcbiAgICAgICAgICB0aGlzLmZvb3RlclNlcnZpY2UudXBkYXRlQWN0aW9ucyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFjdGlvbktleTogJ3N1Ym1pdCcsXG4gICAgICAgICAgICAgIHBhcnRpYWxBY3Rpb246IHtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5mbzogaXNWYWxpZFxuICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIDogeyBpbmZvVHlwZTogJ3dhcm5pbmcnLCBtZXNzYWdlOiB7IGkxOG46ICdpMThuLnFkLnBhZ2Uuc3VibWl0LmludmFsaWRGb3JtJyB9IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0pO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bWFpbiBxZFNuYWNrYmFyTGlzdGVuZXI+XG4gIDxxZC1wYWdlLW9iamVjdC1oZWFkZXJcbiAgICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4gICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZCArICdvYmplY3QtaGVhZGVyJ1wiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtoYXNOYXZpZ2F0aW9uXT1cImhhc05hdmlnYXRpb25cIlxuICA+PC9xZC1wYWdlLW9iamVjdC1oZWFkZXI+XG5cbiAgPGRpdiBjbGFzcz1cInBhZ2UtaW5mby1iYW5uZXJzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicWQtcGFnZS1pbmZvLWJhbm5lclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5wYWdlVHlwZSA9PT0gJ2NyZWF0ZScgfHwgY29uZmlnLnBhZ2VUeXBlID09PSAnY3VzdG9tJ1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInFkLXBhZ2Utc3RlcHBlclwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcWRQYWdlU3RlcHBlckFkYXB0ZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLnBhZ2VUeXBlID09PSAnb3ZlcnZpZXcnIHx8IGNvbmZpZy5wYWdlVHlwZSA9PT0gJ2luc3BlY3QnIHx8IGNvbmZpZy5wYWdlVHlwZSA9PT0gJ2N1c3RvbSdcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJxZC1wYWdlLXRhYnNcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3FkUGFnZVRhYnNBZGFwdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJxZC1zZWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltxZFNlY3Rpb25BZGFwdGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5wYWdlVHlwZSA9PT0gJ2N1c3RvbSdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvamVjdGVkQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWFpbj5cblxuPGZvb3RlciAqbmdJZj1cImZvb3Rlckhhc0NvbnRlbnQkIHwgYXN5bmNcIj5cbiAgPHFkLXBhZ2UtZm9vdGVyIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWQgKyAnLWZvb3RlcidcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcWRQYWdlRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9xZC1wYWdlLWZvb3Rlcj5cbjwvZm9vdGVyPlxuXG48YXNpZGUgKm5nSWY9XCJpc0NvbnRyb2xQYW5lbFZpc2libGVcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicWQtcGFnZS1jb250cm9sLXBhbmVsXCI+PC9uZy1jb250ZW50PlxuPC9hc2lkZT5cblxuPHFkLXByb2plY3Rpb24tZ3VhcmQgKm5nSWY9XCJjb25maWcucGFnZVR5cGUgIT09ICdjdXN0b20nXCIgW3dhcm5pbmdNZXNzYWdlXT1cInByb2plY3Rpb25HdWFyZE1lc3NhZ2VcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb2plY3RlZENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvcWQtcHJvamVjdGlvbi1ndWFyZD5cblxuPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRDb250ZW50PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -35166,7 +35166,7 @@ class QdPageComponent {
|
|
|
35166
35166
|
{
|
|
35167
35167
|
key: 'saveDraft',
|
|
35168
35168
|
action: {
|
|
35169
|
-
titleI18n: 'i18n.qd.page.footer.saveDraft',
|
|
35169
|
+
titleI18n: pageTypeConfig.saveDraft.label.i18n ?? 'i18n.qd.page.footer.saveDraft',
|
|
35170
35170
|
type: QdFooterActionType.Secondary,
|
|
35171
35171
|
handler: () => pageTypeConfig?.saveDraft?.handler(),
|
|
35172
35172
|
isVisible: true,
|