@tilde-nlp/ngx-translate 4.0.36 → 4.0.38
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/README.md +1 -1
- package/esm2022/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -2
- package/esm2022/lib/modules/tld-common/services/tld-translate-system-management.service.mjs +6 -6
- package/esm2022/lib/modules/tld-text/services/tld-translate-text.service.mjs +15 -4
- package/esm2022/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.mjs +3 -3
- package/esm2022/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +6 -5
- package/fesm2022/tilde-nlp-ngx-translate.mjs +26 -14
- package/fesm2022/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/modules/tld-text/services/tld-translate-text.service.d.ts +3 -2
- package/package.json +1 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
package/README.md
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# ngx translate
|
|
2
|
-
Tilde translator package with translation window components and
|
|
2
|
+
Tilde translator package with translation window components and services for Tilde MT api.
|
|
@@ -144,7 +144,7 @@ export class TldTranslateConfigService {
|
|
|
144
144
|
this._textConfig.showExtensionsUnauthOnly = text?.showExtensionsUnauthOnly;
|
|
145
145
|
this._textConfig.showSensitiveInfoTooltip = text?.showSensitiveInfoTooltip;
|
|
146
146
|
this._textConfig.allowWebsiteTranslation = text?.allowWebsiteTranslation ?? true;
|
|
147
|
-
this._textConfig.showSuggestions = text?.showSuggestions ??
|
|
147
|
+
this._textConfig.showSuggestions = text?.showSuggestions ?? false;
|
|
148
148
|
this._textConfig.autoRedirectToWebTranslate = text?.autoRedirectToWebTranslate ?? false;
|
|
149
149
|
this._textConfig.highlight = text?.highlight ?? true;
|
|
150
150
|
this._textConfig.checkSourceGrammar = text?.checkSourceGrammar ?? false;
|
|
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
219
219
|
type: Inject,
|
|
220
220
|
args: [TLD_TRANSLATE_CONFIG_TOKEN]
|
|
221
221
|
}] }]; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFZ0M7SUFDRDtJQURuRSxZQUFvRSxVQUFpQyxFQUNsQyxNQUEyQjtRQUQxQixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUM1RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvRSxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxHQUE0QixFQUFFLENBQUM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTyxtQkFBbUIsR0FBK0IsRUFBRSxDQUFDO0lBQzdELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFTyxXQUFXLEdBQW1CLEVBQUUsQ0FBQztJQUN6QyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFlBQVksR0FBNkIsRUFBRSxDQUFDO0lBQ3BELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU8sWUFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pFLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU8sbUJBQW1CLEdBQTJCLEVBQUUsQ0FBQztJQUN6RCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLGFBQW1DO1FBQzdDLE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUVsRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQzVCLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLEVBQUUsb0JBQW9CLElBQUksS0FBSyxDQUFDO1FBQzVFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLElBQUksVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUUsWUFBWSxJQUFJLDZEQUE2RCxDQUFDO1FBQ3BILElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxZQUFZLElBQUksYUFBYSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxFQUFFLG1CQUFtQixJQUFJO1lBQ2xFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDN0s7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUk7WUFDbEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJ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ZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zL3RsZC10cmFuc2xhdGUtY29uZmlnLnRva2VuJztcclxuaW1wb3J0IHsgSVRsZFRleHRUb1NwZWVjaENvbmZpZywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElUbGRBdWRpb0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC1hdWRpby1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtYXBpLXYyLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb3JlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS13ZWItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvcmUvdHJhbnNsYXRpb24tYXBpLXZlcnNpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIHRoaXMuaW5pdENvbmZpZ3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcmVDb25maWc6IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnID0geyBhcHBJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfTtcclxuICBnZXQgY29yZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3JlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dENvbmZpZzogSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0Q29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgPSB7fTtcclxuICBnZXQgZmlsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2VidHJhbnNsYXRlQ29uZmlnOiBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyA9IHt9O1xyXG4gIGdldCB3ZWJ0cmFuc2xhdGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGVybUNvbmZpZzogSVRsZFRlcm1Db25maWcgPSB7fTtcclxuICBnZXQgdGVybUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpVjJDb25maWc6IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyA9IHt9O1xyXG4gIGdldCBhcGlWMkNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlWMkNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ29uZmlnOiBJVGxkQXVkaW9Db25maWcgPSB7IGFwcElkOiBudWxsLCBhcHBTZWNyZXQ6IG51bGwgfTtcclxuICBnZXQgYXVkaW9Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0VG9TcGVlY2hDb25maWc6IElUbGRUZXh0VG9TcGVlY2hDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dFRvU3BlZWNoQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZztcclxuICB9XHJcblxyXG4gIGluaXRDb25maWdzKGNvbmZpZ3VyYXRpb24/OiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWd1cmF0aW9uID8/IHRoaXMuY29uZmlnID8/IHt9O1xyXG5cclxuICAgIGNvbnN0IGNvcmUgPSBjb25maWc/LmNvcmU7XHJcbiAgICBjb25zdCBmaWxlID0gY29uZmlnPy5maWxlO1xyXG4gICAgY29uc3QgdGV4dCA9IGNvbmZpZz8udGV4dDtcclxuICAgIGNvbnN0IGF1ZGlvID0gY29uZmlnPy5hdWRpbztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZSA9IGNvbmZpZz8ud2ViVHJhbnNsYXRlO1xyXG4gICAgY29uc3QgdGVybUNvbmZpZyA9IGNvbmZpZz8udGVybTtcclxuICAgIGNvbnN0IGFwaVYyQ29uZmlnID0gY29uZmlnPy5hcGlWMjtcclxuICAgIGNvbnN0IHRleHRUb1NwZWVjaCA9IGNvbmZpZz8udGV4dFRvU3BlZWNoO1xyXG5cclxuICAgIHRoaXMuX2NvcmVDb25maWcgPSB7IGFwcElkOiBjb3JlPy5hcHBJZCwgY2xpZW50SWQ6IGNvcmU/LmNsaWVudElkIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwaUlzSW5UaGVTYW1lRG9tYWluID0gY29yZT8uYXBpSXNJblRoZVNhbWVEb21haW4gfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwcE5hbWUgPSBjb3JlPy5hcHBOYW1lIHx8IFwiVGlsZGUgTVRcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZCA/PyAnQVVUTyc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3Vic2NyaXB0aW9uU3VwcG9ydCA9IGNvcmU/LnN1YnNjcmlwdGlvblN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNXZWJDb21wb25lbnQgPSBjb3JlPy5pc1dlYkNvbXBvbmVudCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFRhcmdldExhbmd1YWdlID0gY29yZT8uZGVmYXVsdFRhcmdldExhbmd1YWdlID8/ICdsdic7XHJcblxyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZT8uYWxsb3dlZEZpbGVUeXBlcyB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wZGZcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzID0gZmlsZT8uZXh0ZW5kZWRGaWxlVHlwZXNcclxuICAgICAgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIiwgXCIuaHRtbFwiLCBcIi5odG1cIixcclxuICAgICAgICBcIi54aHRtbFwiLCBcIi54aHRcIiwgXCIudG14XCIsIFwiLnhsZlwiLCBcIi54bGlmXCIsIFwiLnhsaWZmXCIsIFwiLnNkbHhsaWZmXCIsIFwiLnNkbHhsZlwiLCBcIi50dHhcIiwgXCIucnRmXCIsXHJcbiAgICAgICAgXCIucGFnZXNcIiwgXCIudGV4XCIsIFwiLnhtbFwiLCBcIi5qc29uXCIsIFwiLnN4d1wiLCBcIi5wZGZcIiwgXCIuY3N2XCIsIFwiLnR0bFwiLCBcIi5zcnRcIiwgXCIucG5nXCIsIFwiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLmJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhBdXRoID0gZmlsZT8uYWxsb3dUbXhBdXRoID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoID0gZmlsZT8uYWxsb3dUbXhVbmF1dGggPz8gZmFsc2U7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVBcGlVcmwgPSBmaWxlPy5maWxlQXBpVXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvd3MvRmlsZXMvXCI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzID0gZmlsZT8uZmlsZURvd25sb2FkVGltZW91dHNcclxuICAgICAgfHwge1xyXG4gICAgICBcImluaXRpYWxpemluZ1wiOiAxMDAwLFxyXG4gICAgICBcImV4dHJhY3RpbmdcIjogMTAwMCxcclxuICAgICAgXCJ3YWl0aW5nXCI6IDEwMDAwLFxyXG4gICAgICBcInRyYW5zbGF0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwic2F2aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiY29tcGxldGVkXCI6IDEwMDAsXHJcbiAgICAgIFwiZXJyb3JcIjogMTAwMCxcclxuICAgICAgXCJxdWV1aW5nXCI6IDEwMDBcclxuICAgIH07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm1heFNpemUgPSBmaWxlPy5tYXhTaXplIHx8IDMwNzIwMDAwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy53b3JkTGltaXQgPSBmaWxlPy53b3JkTGltaXQgPz8gMTI1MDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZVVwbG9hZCA9IGZpbGU/LmZpbGVVcGxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcub2NyUGFnZUxpbWl0ID0gZmlsZT8ub2NyUGFnZUxpbWl0ID8/IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93UERGU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd1BERlNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgPSBmaWxlPy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgfHwgW1wicGRmXCIsIFwicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlciA9IGZpbGU/LnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID0gZmlsZT8ubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPiAwID8gZmlsZS5udW1iZXJPZkZpbGVzQWxsb3dlZCA6IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cyA9IGZpbGU/LnNob3dUcmFuc2xhdGlvbkxpbWl0cyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy51c2VNdWx0aXBsZUZpbGVVcGxvYWQgPSBmaWxlPy51c2VNdWx0aXBsZUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IGZpbGU/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcblxyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsID0gdGV4dD8uZGljdGlvbmFyeVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L2FwaS9kaWN0aW9uYXJ5L0dldERpY3Rpb25hcnlFbnRyeS9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcubWF4Q2hhckxlbmd0aCA9IHRleHQ/Lm1heENoYXJMZW5ndGggPz8gNTAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCB8fCBcIi93ZWJ0cmFuc2xhdGU/dXJsPVwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4IHx8IFwiXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSB0ZXh0Py51c2VEaWN0aW9uYXJ5ID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdmFpbGFibGVFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F1dGhFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F1dGhFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXV0aEV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9Gb2N1c3MgPSB0ZXh0Py5hdXRvRm9jdXNzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHkgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcCA9IHRleHQ/LnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcDtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPSB0ZXh0Py5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSB0ZXh0Py5zaG93U3VnZ2VzdGlvbnMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPSB0ZXh0Py5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuaGlnaGxpZ2h0ID0gdGV4dD8uaGlnaGxpZ2h0ID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmNoZWNrU291cmNlR3JhbW1hciA9IHRleHQ/LmNoZWNrU291cmNlR3JhbW1hciA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuZ3JhbW1hckNoZWNrTGFuZ3VhZ2VzID0gdGV4dD8uZ3JhbW1hckNoZWNrTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93VGFyZ2V0UGxhY2Vob2xkZXIgPSB0ZXh0Py5zaG93VGFyZ2V0UGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dFeHRlbnNpb25Qb3B1cCA9IHRleHQ/LnNob3dFeHRlbnNpb25Qb3B1cDtcclxuICAgIHRoaXMuX3RleHRDb25maWcudmlzaWJsZUV4dGVuc2lvbkNvdW50ID0gdGV4dD8udmlzaWJsZUV4dGVuc2lvbkNvdW50ID8/IDM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgPSB0ZXh0Py5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHMgPz8gMjAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID8/IFtcIkVUcmFuc2xhdGlvblwiXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlID0gdGV4dD8ucHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93VHJhbnNsYXRlQnV0dG9uID0gdGV4dD8uc2hvd1RyYW5zbGF0ZUJ1dHRvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaXNwbGF5U2luZ2xlQXZhaWxhYmxlRG9tYWluID0gdGV4dD8uZGlzcGxheVNpbmdsZUF2YWlsYWJsZURvbWFpbiA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCA9IGF1ZGlvPy5hdWRpb1RleHRJbnB1dCA/PyBmYWxzZTtcclxuICAgIC8vIE5vdCBzZXR0aW5nIGRlZmF1bHQgdXJsIGJlY2F1c2UgdGhlcmUgaXMgbm8gc2VydmljZSBwcm92aWRlZCBieSBUaWxkZSBhbmQgdGhpcyBpcyBub3QgdXNlZCBieSBkZWZhdWx0IGluIHdlYnNpdGUgcHJvamVjdC5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvQXBpVXJsID0gYXVkaW8/LmF1ZGlvQXBpVXJsO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9NYXhTaXplQnl0ZXMgPSBhdWRpbz8uYXVkaW9NYXhTaXplQnl0ZXMgPz8gMTAwMDAwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5zb3VyY2VMYW5ndWFnZXMgPSBhdWRpbz8uc291cmNlTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGF0YVVwZGF0ZVRpbWVGcmFtZSA9IGF1ZGlvPy5kYXRhVXBkYXRlVGltZUZyYW1lID8/IDUwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5tYXhpbXVtUmVjb3JkVGltZSA9IGF1ZGlvPy5tYXhpbXVtUmVjb3JkVGltZSA/PyAzMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaWN0YXRlQXBpVXJsID0gYXVkaW8/LmRpY3RhdGVBcGlVcmwgPz8gXCJydW5hLnRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBJZCA9IGF1ZGlvPy5hcHBJZDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcFNlY3JldCA9IGF1ZGlvPy5hcHBTZWNyZXQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5wdW5jdHVhdGlvbk1lc3NhZ2UgPSBhdWRpbz8ucHVuY3R1YXRpb25NZXNzYWdlID8/IHRydWU7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPSBhdWRpbz8uZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZT8ubG9nb0xvY2F0aW9uIHx8ICdhc3NldHMvd2VidHJhbnNsYXRlL3RpbGRlX2xvZ28ucG5nJztcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy50cmFuc2xhdGVQYWdlUGF0aCA9IHdlYnRyYW5zbGF0ZT8udHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuZGVidWcgPSB3ZWJ0cmFuc2xhdGU/LmRlYnVnIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLndlYkxhbmdBdXRvZGV0ZWN0ID0gd2VidHJhbnNsYXRlPy53ZWJMYW5nQXV0b2RldGVjdCB8fCB0cnVlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGU/LmFsbG93U3VnZ2VzdGlvbnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlPy5oaWRlUG9wdXAgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveCA9IHdlYnRyYW5zbGF0ZT8uc2FuZGJveCA/PyBcImFsbG93LWZvcm1zIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIjtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5hcHBJZCA9IHdlYnRyYW5zbGF0ZT8uYXBwSWQ7XHJcblxyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uID0gdGVybUNvbmZpZz8uY2FuQ3JlYXRlQ29sbGVjdGlvbjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCA9IHRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcblxyXG4gICAgLy8gc2VwZXJhdGVkIGJlY2F1c2UgZm9sbG93aW5nIHVybHMgaGF2ZSBtZXRob2QgbmFtZXMgYWRkZWRcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsID0gY29yZT8udHJhbnNsYXRpb25TZXJ2aWNlVXJsIHx8IFwiaHR0cHM6Ly93d3cubGV0c210LmV1L3dzL3NlcnZpY2Uuc3ZjL2pzb24vXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnRyYW5zbGF0aW9uVXJsID0gdGV4dD8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlRyYW5zbGF0ZUV4XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsID0gdGV4dD8udXBkYXRlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlVwZGF0ZVRyYW5zbGF0aW9uXCI7XHJcblxyXG4gICAgdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgPSBhcGlWMkNvbmZpZz8ubXRBcGlVcmwgPz8gXCJhcGkvdHJhbnNsYXRlL1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcudHJhbnNsYXRpb25VcmwgPSBhcGlWMkNvbmZpZz8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgKyBcInRleHRcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmZpbGVUcmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy5maWxlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgKyBcImZpbGVcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmdyYW1tYXJDaGVja1VybCA9IGFwaVYyQ29uZmlnPy5ncmFtbWFyQ2hlY2tVcmwgPz8gXCJodHRwczovL210LmNzLnV0LmVlL2FwaS9ncmFtbWFyXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy54QXBpS2V5ID0gYXBpVjJDb25maWc/LnhBcGlLZXkgPz8gJyc7XHJcblxyXG4gICAgdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnLmxhbmd1YWdlcyA9IHRleHRUb1NwZWVjaD8ubGFuZ3VhZ2VzID8/IHt9O1xyXG4gICAgdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnLm1heENoYXJzSW5UZXh0ID0gdGV4dFRvU3BlZWNoPy5tYXhDaGFyc0luVGV4dCA/PyAzMDAwO1xyXG5cclxuICAgIHRoaXMuZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUbyBtYWtlIHN1cmUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgYXJlIG5vdCB0dXJuZWQgb24gYmVjYXVzZSBpbiBhcGkgVjIgc29tZSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbW5lbnRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIGVkaXRQcm9wZXJ0aWVzQmFzZWRPbkFwaSgpIHtcclxuICAgIGlmICh0aGlzLmFwaVZlcnNpb24gPT09IFRyYW5zbGF0aW9uQXBpVmVyc2lvbi5WMikge1xyXG4gICAgICB0aGlzLnRleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFZ0M7SUFDRDtJQURuRSxZQUFvRSxVQUFpQyxFQUNsQyxNQUEyQjtRQUQxQixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUM1RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvRSxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxHQUE0QixFQUFFLENBQUM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lB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QUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDN0s7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUk7WUFDbEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJ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ZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zL3RsZC10cmFuc2xhdGUtY29uZmlnLnRva2VuJztcclxuaW1wb3J0IHsgSVRsZFRleHRUb1NwZWVjaENvbmZpZywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElUbGRBdWRpb0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC1hdWRpby1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtYXBpLXYyLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb3JlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS13ZWItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvcmUvdHJhbnNsYXRpb24tYXBpLXZlcnNpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIHRoaXMuaW5pdENvbmZpZ3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcmVDb25maWc6IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnID0geyBhcHBJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfTtcclxuICBnZXQgY29yZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3JlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dENvbmZpZzogSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0Q29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgPSB7fTtcclxuICBnZXQgZmlsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2VidHJhbnNsYXRlQ29uZmlnOiBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyA9IHt9O1xyXG4gIGdldCB3ZWJ0cmFuc2xhdGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGVybUNvbmZpZzogSVRsZFRlcm1Db25maWcgPSB7fTtcclxuICBnZXQgdGVybUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpVjJDb25maWc6IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyA9IHt9O1xyXG4gIGdldCBhcGlWMkNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlWMkNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ29uZmlnOiBJVGxkQXVkaW9Db25maWcgPSB7IGFwcElkOiBudWxsLCBhcHBTZWNyZXQ6IG51bGwgfTtcclxuICBnZXQgYXVkaW9Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0VG9TcGVlY2hDb25maWc6IElUbGRUZXh0VG9TcGVlY2hDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dFRvU3BlZWNoQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZztcclxuICB9XHJcblxyXG4gIGluaXRDb25maWdzKGNvbmZpZ3VyYXRpb24/OiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWd1cmF0aW9uID8/IHRoaXMuY29uZmlnID8/IHt9O1xyXG5cclxuICAgIGNvbnN0IGNvcmUgPSBjb25maWc/LmNvcmU7XHJcbiAgICBjb25zdCBmaWxlID0gY29uZmlnPy5maWxlO1xyXG4gICAgY29uc3QgdGV4dCA9IGNvbmZpZz8udGV4dDtcclxuICAgIGNvbnN0IGF1ZGlvID0gY29uZmlnPy5hdWRpbztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZSA9IGNvbmZpZz8ud2ViVHJhbnNsYXRlO1xyXG4gICAgY29uc3QgdGVybUNvbmZpZyA9IGNvbmZpZz8udGVybTtcclxuICAgIGNvbnN0IGFwaVYyQ29uZmlnID0gY29uZmlnPy5hcGlWMjtcclxuICAgIGNvbnN0IHRleHRUb1NwZWVjaCA9IGNvbmZpZz8udGV4dFRvU3BlZWNoO1xyXG5cclxuICAgIHRoaXMuX2NvcmVDb25maWcgPSB7IGFwcElkOiBjb3JlPy5hcHBJZCwgY2xpZW50SWQ6IGNvcmU/LmNsaWVudElkIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwaUlzSW5UaGVTYW1lRG9tYWluID0gY29yZT8uYXBpSXNJblRoZVNhbWVEb21haW4gfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwcE5hbWUgPSBjb3JlPy5hcHBOYW1lIHx8IFwiVGlsZGUgTVRcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZCA/PyAnQVVUTyc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3Vic2NyaXB0aW9uU3VwcG9ydCA9IGNvcmU/LnN1YnNjcmlwdGlvblN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNXZWJDb21wb25lbnQgPSBjb3JlPy5pc1dlYkNvbXBvbmVudCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFRhcmdldExhbmd1YWdlID0gY29yZT8uZGVmYXVsdFRhcmdldExhbmd1YWdlID8/ICdsdic7XHJcblxyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZT8uYWxsb3dlZEZpbGVUeXBlcyB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wZGZcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzID0gZmlsZT8uZXh0ZW5kZWRGaWxlVHlwZXNcclxuICAgICAgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIiwgXCIuaHRtbFwiLCBcIi5odG1cIixcclxuICAgICAgICBcIi54aHRtbFwiLCBcIi54aHRcIiwgXCIudG14XCIsIFwiLnhsZlwiLCBcIi54bGlmXCIsIFwiLnhsaWZmXCIsIFwiLnNkbHhsaWZmXCIsIFwiLnNkbHhsZlwiLCBcIi50dHhcIiwgXCIucnRmXCIsXHJcbiAgICAgICAgXCIucGFnZXNcIiwgXCIudGV4XCIsIFwiLnhtbFwiLCBcIi5qc29uXCIsIFwiLnN4d1wiLCBcIi5wZGZcIiwgXCIuY3N2XCIsIFwiLnR0bFwiLCBcIi5zcnRcIiwgXCIucG5nXCIsIFwiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLmJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhBdXRoID0gZmlsZT8uYWxsb3dUbXhBdXRoID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoID0gZmlsZT8uYWxsb3dUbXhVbmF1dGggPz8gZmFsc2U7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVBcGlVcmwgPSBmaWxlPy5maWxlQXBpVXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvd3MvRmlsZXMvXCI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzID0gZmlsZT8uZmlsZURvd25sb2FkVGltZW91dHNcclxuICAgICAgfHwge1xyXG4gICAgICBcImluaXRpYWxpemluZ1wiOiAxMDAwLFxyXG4gICAgICBcImV4dHJhY3RpbmdcIjogMTAwMCxcclxuICAgICAgXCJ3YWl0aW5nXCI6IDEwMDAwLFxyXG4gICAgICBcInRyYW5zbGF0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwic2F2aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiY29tcGxldGVkXCI6IDEwMDAsXHJcbiAgICAgIFwiZXJyb3JcIjogMTAwMCxcclxuICAgICAgXCJxdWV1aW5nXCI6IDEwMDBcclxuICAgIH07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm1heFNpemUgPSBmaWxlPy5tYXhTaXplIHx8IDMwNzIwMDAwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy53b3JkTGltaXQgPSBmaWxlPy53b3JkTGltaXQgPz8gMTI1MDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZVVwbG9hZCA9IGZpbGU/LmZpbGVVcGxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcub2NyUGFnZUxpbWl0ID0gZmlsZT8ub2NyUGFnZUxpbWl0ID8/IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93UERGU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd1BERlNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgPSBmaWxlPy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgfHwgW1wicGRmXCIsIFwicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlciA9IGZpbGU/LnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID0gZmlsZT8ubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPiAwID8gZmlsZS5udW1iZXJPZkZpbGVzQWxsb3dlZCA6IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cyA9IGZpbGU/LnNob3dUcmFuc2xhdGlvbkxpbWl0cyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy51c2VNdWx0aXBsZUZpbGVVcGxvYWQgPSBmaWxlPy51c2VNdWx0aXBsZUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IGZpbGU/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcblxyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsID0gdGV4dD8uZGljdGlvbmFyeVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L2FwaS9kaWN0aW9uYXJ5L0dldERpY3Rpb25hcnlFbnRyeS9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcubWF4Q2hhckxlbmd0aCA9IHRleHQ/Lm1heENoYXJMZW5ndGggPz8gNTAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCB8fCBcIi93ZWJ0cmFuc2xhdGU/dXJsPVwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4IHx8IFwiXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSB0ZXh0Py51c2VEaWN0aW9uYXJ5ID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdmFpbGFibGVFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F1dGhFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F1dGhFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXV0aEV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9Gb2N1c3MgPSB0ZXh0Py5hdXRvRm9jdXNzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHkgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcCA9IHRleHQ/LnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcDtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPSB0ZXh0Py5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSB0ZXh0Py5zaG93U3VnZ2VzdGlvbnMgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RyYW5zbGF0ZUJ1dHRvbiA9IHRleHQ/LnNob3dUcmFuc2xhdGVCdXR0b24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuZGlzcGxheVNpbmdsZUF2YWlsYWJsZURvbWFpbiA9IHRleHQ/LmRpc3BsYXlTaW5nbGVBdmFpbGFibGVEb21haW4gPz8gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9UZXh0SW5wdXQgPSBhdWRpbz8uYXVkaW9UZXh0SW5wdXQgPz8gZmFsc2U7XHJcbiAgICAvLyBOb3Qgc2V0dGluZyBkZWZhdWx0IHVybCBiZWNhdXNlIHRoZXJlIGlzIG5vIHNlcnZpY2UgcHJvdmlkZWQgYnkgVGlsZGUgYW5kIHRoaXMgaXMgbm90IHVzZWQgYnkgZGVmYXVsdCBpbiB3ZWJzaXRlIHByb2plY3QuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb0FwaVVybCA9IGF1ZGlvPy5hdWRpb0FwaVVybDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvTWF4U2l6ZUJ5dGVzID0gYXVkaW8/LmF1ZGlvTWF4U2l6ZUJ5dGVzID8/IDEwMDAwMDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuc291cmNlTGFuZ3VhZ2VzID0gYXVkaW8/LnNvdXJjZUxhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRhdGFVcGRhdGVUaW1lRnJhbWUgPSBhdWRpbz8uZGF0YVVwZGF0ZVRpbWVGcmFtZSA/PyA1MDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUgPSBhdWRpbz8ubWF4aW11bVJlY29yZFRpbWUgPz8gMzAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybCA9IGF1ZGlvPy5kaWN0YXRlQXBpVXJsID8/IFwicnVuYS50aWxkZS5sdlwiO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwSWQgPSBhdWRpbz8uYXBwSWQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBTZWNyZXQgPSBhdWRpbz8uYXBwU2VjcmV0O1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcucHVuY3R1YXRpb25NZXNzYWdlID0gYXVkaW8/LnB1bmN0dWF0aW9uTWVzc2FnZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID0gYXVkaW8/LmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb24gPSB3ZWJ0cmFuc2xhdGU/LmxvZ29Mb2NhdGlvbiB8fCAnYXNzZXRzL3dlYnRyYW5zbGF0ZS90aWxkZV9sb2dvLnBuZyc7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGU/LnRyYW5zbGF0ZVBhZ2VQYXRoO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnID0gd2VidHJhbnNsYXRlPy5kZWJ1ZyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZT8ud2ViTGFuZ0F1dG9kZXRlY3QgfHwgdHJ1ZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5hbGxvd1N1Z2dlc3Rpb25zID0gd2VidHJhbnNsYXRlPy5hbGxvd1N1Z2dlc3Rpb25zIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cCA9IHdlYnRyYW5zbGF0ZT8uaGlkZVBvcHVwIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3ggPSB3ZWJ0cmFuc2xhdGU/LnNhbmRib3ggPz8gXCJhbGxvdy1mb3JtcyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luXCI7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuYXBwSWQgPSB3ZWJ0cmFuc2xhdGU/LmFwcElkO1xyXG5cclxuICAgIHRoaXMuX3Rlcm1Db25maWcuY2FuQ3JlYXRlQ29sbGVjdGlvbiA9IHRlcm1Db25maWc/LmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQgPSB0ZXJtQ29uZmlnPy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkO1xyXG5cclxuICAgIC8vIHNlcGVyYXRlZCBiZWNhdXNlIGZvbGxvd2luZyB1cmxzIGhhdmUgbWV0aG9kIG5hbWVzIGFkZGVkXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCA9IGNvcmU/LnRyYW5zbGF0aW9uU2VydmljZVVybCB8fCBcImh0dHBzOi8vd3d3LmxldHNtdC5ldS93cy9zZXJ2aWNlLnN2Yy9qc29uL1wiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy50cmFuc2xhdGlvblVybCA9IHRleHQ/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJUcmFuc2xhdGVFeFwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51cGRhdGVUcmFuc2xhdGlvblVybCA9IHRleHQ/LnVwZGF0ZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJVcGRhdGVUcmFuc2xhdGlvblwiO1xyXG5cclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsID0gYXBpVjJDb25maWc/Lm10QXBpVXJsID8/IFwiYXBpL3RyYW5zbGF0ZS9cIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJ0ZXh0XCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5maWxlVHJhbnNsYXRpb25VcmwgPSBhcGlWMkNvbmZpZz8uZmlsZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJmaWxlXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5ncmFtbWFyQ2hlY2tVcmwgPSBhcGlWMkNvbmZpZz8uZ3JhbW1hckNoZWNrVXJsID8/IFwiaHR0cHM6Ly9tdC5jcy51dC5lZS9hcGkvZ3JhbW1hclwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5ID8/ICcnO1xyXG5cclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5sYW5ndWFnZXMgPSB0ZXh0VG9TcGVlY2g/Lmxhbmd1YWdlcyA/PyB7fTtcclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5tYXhDaGFyc0luVGV4dCA9IHRleHRUb1NwZWVjaD8ubWF4Q2hhcnNJblRleHQgPz8gMzAwMDtcclxuXHJcbiAgICB0aGlzLmVkaXRQcm9wZXJ0aWVzQmFzZWRPbkFwaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG8gbWFrZSBzdXJlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGFyZSBub3QgdHVybmVkIG9uIGJlY2F1c2UgaW4gYXBpIFYyIHNvbWUgZmVhdHVyZXMgYXJlIG5vdCBpbXBsZW1uZW50ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKSB7XHJcbiAgICBpZiAodGhpcy5hcGlWZXJzaW9uID09PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIpIHtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnNob3dTdWdnZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRleHRDb25maWcudXNlRGljdGlvbmFyeSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -197,8 +197,8 @@ export class TldTranslateSystemManagementService {
|
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
else {
|
|
200
|
-
selectedSystem = this.createSystem('', languageId, languageId, this.sourceLanguage, this.targetLanguage,
|
|
201
|
-
this.targetLangList = this.createLangList(this.systems);
|
|
200
|
+
selectedSystem = this.createSystem('', languageId, languageId, this.sourceLanguage, this.targetLanguage, '', null, false);
|
|
201
|
+
this.targetLangList = this.createLangList(this.systems, this.sourceLanguage);
|
|
202
202
|
this.targetLanguage = this.targetLanguage;
|
|
203
203
|
this.sourceLanguage = this.sourceLanguage;
|
|
204
204
|
this.activeSystem = selectedSystem;
|
|
@@ -298,7 +298,7 @@ export class TldTranslateSystemManagementService {
|
|
|
298
298
|
createLangList(systems, srcLangCode) {
|
|
299
299
|
const langListItemArray = [];
|
|
300
300
|
systems.forEach((system) => {
|
|
301
|
-
if (!srcLangCode || srcLangCode === system.sourceLanguage) {
|
|
301
|
+
if (!srcLangCode || srcLangCode === system.sourceLanguage || srcLangCode === AUTO_LANGUAGE_DETECTION_KEY) {
|
|
302
302
|
langListItemArray.push({
|
|
303
303
|
domain: system.domain,
|
|
304
304
|
lang: srcLangCode ? system.targetLanguage : system.sourceLanguage,
|
|
@@ -369,8 +369,8 @@ export class TldTranslateSystemManagementService {
|
|
|
369
369
|
detectedLanguage: this.activeSystem.detectedLanguage === this.sourceLanguage ? this.activeSystem.detectedLanguage : null
|
|
370
370
|
});
|
|
371
371
|
}
|
|
372
|
-
createSystem(domain, id, languageId, sourceLanguage, targetLanguage,
|
|
373
|
-
return { domain, id, languageId, sourceLanguage, targetLanguage,
|
|
372
|
+
createSystem(domain, id, languageId, sourceLanguage, targetLanguage, vendor, detectedLanguage, includesTerminology) {
|
|
373
|
+
return { domain, id, languageId, sourceLanguage, targetLanguage, vendor, detectedLanguage, includesTerminology };
|
|
374
374
|
}
|
|
375
375
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TldTranslateSystemManagementService, deps: [{ token: i1.AlertService }, { token: i2.TldTranslateConfigService }, { token: i1.SystemService }, { token: TRANSLATION_API_VERSION_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
376
376
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TldTranslateSystemManagementService, providedIn: 'root' });
|
|
@@ -384,4 +384,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
384
384
|
type: Inject,
|
|
385
385
|
args: [TRANSLATION_API_VERSION_TOKEN]
|
|
386
386
|
}] }]; } });
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1zeXN0ZW0tbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLXN5c3RlbS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFvQyxVQUFVLEVBQStDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEksT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQUsxRixNQUFNLE9BQU8sbUNBQW1DO0lBK0MzQjtJQUNBO0lBQ0E7SUFDdUM7SUFqRDFELGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLFlBQVksQ0FBVTtJQUN0QixnQkFBZ0IsQ0FBVztJQUUzQiwwQkFBMEIsR0FBRyx1Q0FBdUMsQ0FBQztJQUU3RCxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO0lBRXZELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUN4RCxDQUFDO0lBRUQs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LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2ZURhdGEsIEFsZXJ0U2VydmljZSwgRG9tYWluLCBTb3J0SGVscGVyLCBTeXN0ZW0sIFN5c3RlbVNlcnZpY2UsIFZlbmRvciwgTGFuZ0xpc3RJdGVtIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkgfSBmcm9tICcuLi9tb2RlbHMvYXV0by1sYW5ndWFnZS1kZXRlY3Rpb24ta2V5LmNvbnN0JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlIHtcclxuICBub1N5c3RlbXNFcnJvciA9IGZhbHNlO1xyXG4gIHN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgd2lkZ2V0SW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBzeXNMaXN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U3lzdGVtW10+KDEpO1xyXG4gIGFjdGl2ZURvbWFpbiE6IERvbWFpbjtcclxuICBjYW5Td2FwTGFuZ3VhZ2VzITogYm9vbGVhbjtcclxuXHJcbiAgZGVmYXVsdEVycm9yVHJhbnNsYXRpb25LZXkgPSAnVExEX1RSQU5TTEFURS5FUlJPUl9OT19TWVNURU1TX0xPQURFRCc7XHJcblxyXG4gIHByaXZhdGUgbG9hZGVkU3lzdGVtc1N1YmplY3QgPSBuZXcgU3ViamVjdDxTeXN0ZW1bXT4oKTtcclxuXHJcbiAgZ2V0IGFjdGl2ZVZlbmRvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVN5c3RlbS52ZW5kb3IgfHwgdGhpcy5kZWZhdWx0VmVuZG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRWZW5kb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHREb21haW5zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuZGVmYXVsdERvbWFpbnMgYXMgc3RyaW5nW107XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdFRhcmdldExhbmd1YWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuZGVmYXVsdFRhcmdldExhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmVTeXN0ZW0hOiBTeXN0ZW07XHJcbiAgcHJpdmF0ZSBkb21haW5zOiBEb21haW5bXSA9IFtdO1xyXG4gIHByaXZhdGUgdmVuZG9yczogVmVuZG9yW10gPSBbXTtcclxuICBwcml2YXRlIHNvdXJjZUxhbmd1YWdlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgdGFyZ2V0TGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBzb3VyY2VMYW5nTGlzdDogTGFuZ0xpc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIHRhcmdldExhbmdMaXN0OiBMYW5nTGlzdEl0ZW1bXSA9IFtdO1xyXG5cclxuICAvLyNyZWdpb24gUmVjZW50IHN5c3RlbSB2YXJpYWJsZXNcclxuICAvLyBQb3NzaWJseSBmcm9tIGNvbmZpZ1xyXG4gIGdldCByZWNlbnRTeXN0ZW1zTWF4Q291bnQoKSB7IHJldHVybiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLm1heFJlY2VudFN5c3RlbUNvdW50IGFzIG51bWJlcjsgfVxyXG4gIHByaXZhdGUgcmVjZW50U3lzdGVtczogU3lzdGVtW10gPSBbXTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByZWNlbnRTeXN0ZW1LZXkgPSBcInJlY2VudFN5c3RlbXNcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZTogQmVoYXZpb3JTdWJqZWN0PEFjdGl2ZURhdGE+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3RpdmVEYXRhPig8YW55Pm51bGwpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdFVzZWRTeXN0ZW1LZXk6IHN0cmluZyA9IFwibGFzdFVzZWRTeXN0ZW1cIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0OiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvblxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICogVGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIHdoZW4gYXV0byBsYW5ndWFnZSBkZXRlY3Rpb24gd2FzIGNob3Nlbi5cclxuICAqL1xyXG4gIGVuYWJsZUxhbmd1YWdlRGV0ZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWTtcclxuICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UodGhpcy5zb3VyY2VMYW5ndWFnZSwgdGhpcy50YXJnZXRMYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFRoaXMgbWV0aG9kIGlzIGJlaW5nIHVzZWQgdG8gc2V0IGRldGVjdGVkIGxhbmd1YWdlIHdoZW4gYXBpIHJlc3BvbnNlIGhhcyBpdC5cclxuICAqIEFsc28sIHdoZW4gbGFuZ3VhZ2Ugd2FzIGRldGVjdGVkIGFuZCB3ZSB3YW50IHRvIGNsZWFyIHNvdXJjZSB0ZXh0LCB0aGlzIG1ldGhvZCBhbHNvIGlzIGJlaW5nIGNhbGxlZC5cclxuICAqL1xyXG4gIHNldERldGVjdGVkTGFuZ3VhZ2UobGFuZ0NvZGU6IHN0cmluZywgZG9tYWluPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpc1NvdXJjZUxhbmdDb2RlU2FtZUFmdGVyRGV0ZWN0aW9uID0gdGhpcy5hY3RpdmVTeXN0ZW0/LmRldGVjdGVkTGFuZ3VhZ2UgPT09IHRoaXMuc291cmNlTGFuZ3VhZ2U7XHJcbiAgICAvLyBIZXJlIHdlIG5lZWQgdG8gY2xlYXIgb3V0IGRldGVjdGVkIGxhbmd1YWdlLCBidXQga2VlcCB0aGUgZGV0ZWN0aW9uIGVuYWJsZWQuXHJcbiAgICBpZiAoIWxhbmdDb2RlICYmIGlzU291cmNlTGFuZ0NvZGVTYW1lQWZ0ZXJEZXRlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWTtcclxuICAgICAgdGhpcy5hY3RpdmVTeXN0ZW0uZGV0ZWN0ZWRMYW5ndWFnZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UodGhpcy5zb3VyY2VMYW5ndWFnZSwgdGhpcy50YXJnZXRMYW5ndWFnZSwgZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBpcyBiZWluZyBjYWxsZWQsIHdoZW4gbGFuZ3VhZ2UgaXMgZGV0ZWN0ZWQuXHJcbiAgICB0aGlzLnNvdXJjZUxhbmd1YWdlID0gbGFuZ0NvZGU7XHJcbiAgICB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSA9IGxhbmdDb2RlO1xyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0uZGV0ZWN0ZWRMYW5ndWFnZSA9IGxhbmdDb2RlO1xyXG4gICAgdGhpcy5jaGFuZ2VMYW5ndWFnZShsYW5nQ29kZSwgdGhpcy50YXJnZXRMYW5ndWFnZSwgZmFsc2UsIGRvbWFpbik7XHJcbiAgfVxyXG5cclxuICBnZXRTeXN0ZW1zKCk6IFN5c3RlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLnN5c3RlbXM7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VMYW5ndWFnZShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcsIHJldHJhbnNsYXRlPzogYm9vbGVhbiwgZG9tYWluPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzeXN0ZW1JZCA9IHRoaXMuZmluZENvcnJlY3RTeXN0ZW0oc291cmNlLCB0YXJnZXQsIGRvbWFpbik7XHJcbiAgICB0aGlzLmNoYW5nZVN5c3RlbShzeXN0ZW1JZCwgcmV0cmFuc2xhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZS5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVN5c3RlbU9iaigpOiBTeXN0ZW0ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU3lzdGVtO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlVmVuZG9yc0FuZERvbWFpbnMoKSB7XHJcbiAgICBpZiAoIXRoaXMuc291cmNlTGFuZ3VhZ2UgfHwgIXRoaXMudGFyZ2V0TGFuZ3VhZ2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmVuZG9yczogVmVuZG9yW10gPSBbXTtcclxuICAgIGNvbnN0IGRvbWFpbnM6IERvbWFpbltdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBzeXN0ZW0gb2YgdGhpcy5zeXN0ZW1zKSB7XHJcbiAgICAgIGlmICghKHN5c3RlbS5zb3VyY2VMYW5ndWFnZSA9PT0gdGhpcy5zb3VyY2VMYW5ndWFnZSAmJiBzeXN0ZW0udGFyZ2V0TGFuZ3VhZ2UgPT09IHRoaXMudGFyZ2V0TGFuZ3VhZ2UpKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZG9tYWluOiBEb21haW4gPSB7XHJcbiAgICAgICAgbGFuZ3VhZ2VJZDogc3lzdGVtLmxhbmd1YWdlSWQsXHJcbiAgICAgICAgdGl0bGU6IHN5c3RlbS5kb21haW4gYXMgc3RyaW5nXHJcbiAgICAgIH07XHJcbiAgICAgIGRvbWFpbnMucHVzaChkb21haW4pO1xyXG4gICAgICBjb25zdCB2ZW5kb3I6IFZlbmRvciA9IHtcclxuICAgICAgICBsYW5ndWFnZUlkOiBzeXN0ZW0ubGFuZ3VhZ2VJZCxcclxuICAgICAgICB0aXRsZTogc3lzdGVtLnZlbmRvclxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXZlbmRvcnMuaW5jbHVkZXModmVuZG9yKSkge1xyXG4gICAgICAgIHZlbmRvcnMucHVzaCh2ZW5kb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZG9tYWluLmxhbmd1YWdlSWQgPT09IHRoaXMuYWN0aXZlU3lzdGVtLmxhbmd1YWdlSWQpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZURvbWFpbiA9IGRvbWFpbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZG9tYWlucyA9IGRvbWFpbnM7XHJcbiAgICB0aGlzLnZlbmRvcnMgPSB2ZW5kb3JzO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldExhc3RVc2VkU3lzdGVtKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sYXN0VXNlZFN5c3RlbUtleSkgYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0VW5pcXVlTGFuZ3VhZ2VzKGxpc3Q6IExhbmdMaXN0SXRlbVtdKTogc3RyaW5nW10ge1xyXG4gICAgaWYgKCFsaXN0KSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRpdGxlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBsaXN0LmZvckVhY2goKGxhbmcpID0+IHtcclxuICAgICAgY29uc3QgbGFuZ1RpdGxlID0gbGFuZy5sYW5nO1xyXG4gICAgICBjb25zdCBpeCA9IHRpdGxlcy5pbmRleE9mKGxhbmdUaXRsZSBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoaXggPT0gLTEpIHtcclxuICAgICAgICB0aXRsZXMucHVzaChsYW5nVGl0bGUgYXMgc3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRpdGxlcztcclxuICB9XHJcblxyXG4gIGluaXQoZGVmYXVsdFN5c3RlbUxhbmd1YWdlSWQ6IHN0cmluZykgeyAgIFxyXG4gICAgdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldFN5c3RlbUxpc3QoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBTeXN0ZW1bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IHJlcztcclxuICAgICAgICBpZiAocmVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZFN5c3RlbXNTdWJqZWN0Lm5leHQocmVzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zeXN0ZW1FeGlzdHMoZGVmYXVsdFN5c3RlbUxhbmd1YWdlSWQsIHRoaXMuc3lzdGVtcykgJiYgZGVmYXVsdFN5c3RlbUxhbmd1YWdlSWQgIT09IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWSkge1xyXG4gICAgICAgICAgZGVmYXVsdFN5c3RlbUxhbmd1YWdlSWQgPSB0aGlzLnN5c3RlbXNbMF0/Lmxhbmd1YWdlSWQ7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHN5c3RlbSBvZiB0aGlzLnN5c3RlbXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmVuZG9yID0gc3lzdGVtLnZlbmRvcjtcclxuICAgICAgICAgICAgaWYgKHZlbmRvciA9PT0gdGhpcy5kZWZhdWx0VmVuZG9yKSB7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFN5c3RlbUxhbmd1YWdlSWQgPSBzeXN0ZW0ubGFuZ3VhZ2VJZDtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkID09PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgICAgICAgIHRoaXMudGFyZ2V0TGFuZ3VhZ2UgPSB0aGlzLmRlZmF1bHRUYXJnZXRMYW5ndWFnZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY3JlYXRlUmVjZW50U3lzdGVtQXJyYXkoKTtcclxuICAgICAgICB0aGlzLnNvdXJjZUxhbmdMaXN0ID0gdGhpcy5jcmVhdGVMYW5nTGlzdCh0aGlzLnN5c3RlbXMpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlU3lzdGVtKGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkKTtcclxuICAgICAgICB0aGlzLndpZGdldEluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN5c0xpc3QubmV4dCh0aGlzLnN5c3RlbXMpO1xyXG4gICAgICAgIHRoaXMubm9TeXN0ZW1zRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkID09PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgICAgICAgIHRoaXMuZW5hYmxlTGFuZ3VhZ2VEZXRlY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLm5vU3lzdGVtc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKHRoaXMuZGVmYXVsdEVycm9yVHJhbnNsYXRpb25LZXksIGVycm9yKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGVkU3lzdGVtcygpOiBPYnNlcnZhYmxlPFN5c3RlbVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkZWRTeXN0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldExhc3RVc2VkU3lzdGVtKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxhc3RVc2VkU3lzdGVtS2V5LCBzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBzd2FwU3lzdGVtTGFuZ3VhZ2VzKCkge1xyXG4gICAgdGhpcy5jaGFuZ2VMYW5ndWFnZSh0aGlzLnRhcmdldExhbmd1YWdlLCB0aGlzLnNvdXJjZUxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVN5c3RlbShsYW5ndWFnZUlkOiBzdHJpbmcsIHJldHJhbnNsYXRlID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlU3lzdGVtPy5sYW5ndWFnZUlkID09PSBsYW5ndWFnZUlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2VsZWN0ZWRTeXN0ZW0hOiBTeXN0ZW07XHJcblxyXG4gICAgaWYgKCFsYW5ndWFnZUlkPy5pbmNsdWRlcyhBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpKSB7XHJcbiAgICAgIGZvciAoY29uc3Qgc3lzdGVtIG9mIHRoaXMuc3lzdGVtcykge1xyXG4gICAgICAgIGlmIChzeXN0ZW0ubGFuZ3VhZ2VJZCA9PT0gbGFuZ3VhZ2VJZCkge1xyXG4gICAgICAgICAgc2VsZWN0ZWRTeXN0ZW0gPSBzeXN0ZW07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdGVkU3lzdGVtID0gdGhpcy5jcmVhdGVTeXN0ZW0oJycsIGxhbmd1YWdlSWQsIGxhbmd1YWdlSWQsIHRoaXMuc291cmNlTGFuZ3VhZ2UsIHRoaXMudGFyZ2V0TGFuZ3VhZ2UsIHRoaXMuYXBpVmVyc2lvbiwgJycsIG51bGwsIGZhbHNlKTtcclxuXHJcbiAgICAgIHRoaXMudGFyZ2V0TGFuZ0xpc3QgPSB0aGlzLmNyZWF0ZUxhbmdMaXN0KHRoaXMuc3lzdGVtcyk7XHJcbiAgICAgIHRoaXMudGFyZ2V0TGFuZ3VhZ2UgPSB0aGlzLnRhcmdldExhbmd1YWdlO1xyXG4gICAgICB0aGlzLnNvdXJjZUxhbmd1YWdlID0gdGhpcy5zb3VyY2VMYW5ndWFnZTtcclxuICAgICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSBzZWxlY3RlZFN5c3RlbTtcclxuICAgICAgdGhpcy5kb21haW5zID0gW107XHJcbiAgICAgIHRoaXMudmVuZG9ycyA9IFtdO1xyXG4gIFxyXG4gICAgICB0aGlzLm9uQWN0aXZlU3lzdGVtQ2hhbmdlKHJldHJhbnNsYXRlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdGVkU3lzdGVtLmRldGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmFjdGl2ZVN5c3RlbT8uZGV0ZWN0ZWRMYW5ndWFnZTtcclxuICBcclxuICAgIHRoaXMudGFyZ2V0TGFuZ0xpc3QgPSB0aGlzLmNyZWF0ZUxhbmdMaXN0KHRoaXMuc3lzdGVtcywgc2VsZWN0ZWRTeXN0ZW0uc291cmNlTGFuZ3VhZ2UpO1xyXG4gICAgdGhpcy50YXJnZXRMYW5ndWFnZSA9IHNlbGVjdGVkU3lzdGVtLnRhcmdldExhbmd1YWdlO1xyXG4gICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IHNlbGVjdGVkU3lzdGVtLnNvdXJjZUxhbmd1YWdlO1xyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSBzZWxlY3RlZFN5c3RlbTtcclxuICAgIHRoaXMuZ2V0QWN0aXZlVmVuZG9yc0FuZERvbWFpbnMoKTtcclxuXHJcbiAgICB0aGlzLm9uQWN0aXZlU3lzdGVtQ2hhbmdlKHJldHJhbnNsYXRlKTtcclxuXHJcbiAgICB0aGlzLnNldExhc3RVc2VkU3lzdGVtKHNlbGVjdGVkU3lzdGVtLmxhbmd1YWdlSWQpO1xyXG4gIH1cclxuXHJcbiAgc3lzdGVtRXhpc3RzKGxhbmd1YWdlSWQ6IHN0cmluZywgc3lzdGVtTGlzdDogU3lzdGVtW10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHN5c3RlbXMgPSBzeXN0ZW1MaXN0ID8/IHRoaXMuc3lzdGVtcztcclxuICAgIGZvciAoY29uc3Qgc3lzdGVtIG9mIHN5c3RlbXMpIHtcclxuICAgICAgaWYgKHN5c3RlbS5sYW5ndWFnZUlkID09PSBsYW5ndWFnZUlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1Rlcm1pbm9sb2d5U3VwcG9ydGVkKHN5c3RlbTogU3lzdGVtKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc3lzdGVtLmluY2x1ZGVzVGVybWlub2xvZ3kgYXMgYm9vbGVhbjtcclxuICB9XHJcblxyXG4gIGNoYW5nZVNvdXJjZUxhbmd1YWdlKHNvdXJjZUxhbmd1YWdlQ29kZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoc291cmNlTGFuZ3VhZ2VDb2RlID09PSB0aGlzLmFjdGl2ZVN5c3RlbS50YXJnZXRMYW5ndWFnZSkge1xyXG4gICAgICB0aGlzLmNoYW5nZUxhbmd1YWdlKHNvdXJjZUxhbmd1YWdlQ29kZSwgdGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2Uoc291cmNlTGFuZ3VhZ2VDb2RlLCB0aGlzLmFjdGl2ZVN5c3RlbS50YXJnZXRMYW5ndWFnZSk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZVRhcmdldExhbmd1YWdlKHRhcmdldExhbmd1YWdlQ29kZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGFyZ2V0TGFuZ3VhZ2VDb2RlID09PSB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSkge1xyXG4gICAgICB0aGlzLmNoYW5nZUxhbmd1YWdlKHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZUNvZGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UodGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlQ29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVJlY2VudFN5c3RlbUFycmF5KCkge1xyXG4gICAgbGV0IHN5c3RlbUlkQXJyYXk6IHN0cmluZ1tdO1xyXG4gICAgY29uc3QgcmVjZW50U3lzdGVtQXJyYXk6IFN5c3RlbVtdID0gW107XHJcbiAgICB0cnkge1xyXG4gICAgICBzeXN0ZW1JZEFycmF5ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnJlY2VudFN5c3RlbUtleSkgPz8gXCJbXVwiKTtcclxuICAgIH1cclxuICAgIGNhdGNoIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3lzdGVtSWRBcnJheS5mb3JFYWNoKChsYW5ndWFnZUlkKSA9PiB7XHJcbiAgICAgIGNvbnN0IGV4aXN0aW5nU3lzdGVtID0gdGhpcy5zeXN0ZW1zLmZpbmQoc3lzdGVtID0+IHN5c3RlbS5sYW5ndWFnZUlkID09PSBsYW5ndWFnZUlkKTtcclxuICAgICAgaWYgKGV4aXN0aW5nU3lzdGVtICYmICF0aGlzLnJlY2VudFN5c3RlbXMuaW5jbHVkZXMoZXhpc3RpbmdTeXN0ZW0pKSB7XHJcbiAgICAgICAgcmVjZW50U3lzdGVtQXJyYXkucHVzaChleGlzdGluZ1N5c3RlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnJlY2VudFN5c3RlbXMgPSByZWNlbnRTeXN0ZW1BcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkVG9SZWNlbnRTeXN0ZW1BcnJheShzeXN0ZW06IFN5c3RlbSkge1xyXG4gICBpZiAoc3lzdGVtLmlkID09PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgIHJldHVybjtcclxuICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBleGlzdGluZ1N5c3RlbSA9IHRoaXMucmVjZW50U3lzdGVtcy5maW5kKGV4aXN0aW5nID0+IGV4aXN0aW5nLmxhbmd1YWdlSWQgPT09IHN5c3RlbS5sYW5ndWFnZUlkKTtcclxuICAgIC8vIGlmIHN5c3RlbSBhbHJlYWR5IGluIGxpc3QsIHB1dCBpdCB0byBmaXJzdCBwb3NpdGlvbi4gSWYgaXggMCwgbm8gYWN0aW9uIHJlcXVpcmVkIHNpbmNlIGxhdGVzdCBzeXN0ZW0gaXMgYWxyZWFkeSBmaXJzdC5cclxuICAgIGlmIChleGlzdGluZ1N5c3RlbSkge1xyXG4gICAgICBjb25zdCBzeXN0ZW1JeEluUmVjZW50TGlzdCA9IHRoaXMucmVjZW50U3lzdGVtcy5pbmRleE9mKGV4aXN0aW5nU3lzdGVtKTtcclxuICAgICAgaWYgKHN5c3RlbUl4SW5SZWNlbnRMaXN0ID4gMCkge1xyXG4gICAgICAgIHRoaXMucmVjZW50U3lzdGVtcy5zcGxpY2Uoc3lzdGVtSXhJblJlY2VudExpc3QsIDEpO1xyXG4gICAgICAgIHRoaXMucmVjZW50U3lzdGVtcy5zcGxpY2UoMCwgMCwgc3lzdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGlmIGxpc3QgdG9vIGxvbmcsIHJlbW92ZSBsYXN0IChvbGRlc3QgZWxlbWVudClcclxuICAgICAgd2hpbGUgKHRoaXMucmVjZW50U3lzdGVtcy5sZW5ndGggPj0gdGhpcy5yZWNlbnRTeXN0ZW1zTWF4Q291bnQpIHtcclxuICAgICAgICB0aGlzLnJlY2VudFN5c3RlbXMucG9wKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVjZW50U3lzdGVtcy5zcGxpY2UoMCwgMCwgc3lzdGVtKTtcclxuICAgIH1cclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMucmVjZW50U3lzdGVtS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLnJlY2VudFN5c3RlbXMubWFwKHN5c3RlbSA9PiBzeXN0ZW0ubGFuZ3VhZ2VJZCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FuU3dhcFN5c3RlbUxhbmd1YWdlcygpOiBib29sZWFuIHtcclxuICAgIGxldCBsYW5nU3dhcEFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuc3lzdGVtcykge1xyXG4gICAgICBjb25zdCBzeXN0ZW0gPSBlbGVtZW50O1xyXG4gICAgICBpZiAoc3lzdGVtLnNvdXJjZUxhbmd1YWdlID09IHRoaXMudGFyZ2V0TGFuZ3VhZ2UgJiYgc3lzdGVtLnRhcmdldExhbmd1YWdlID09IHRoaXMuc291cmNlTGFuZ3VhZ2UpIHtcclxuICAgICAgICBsYW5nU3dhcEFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2FuU3dhcExhbmd1YWdlcyA9IGxhbmdTd2FwQWN0aXZlO1xyXG4gICAgcmV0dXJuIGxhbmdTd2FwQWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMYW5nTGlzdChzeXN0ZW1zOiBTeXN0ZW1bXSwgc3JjTGFuZ0NvZGU/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGxhbmdMaXN0SXRlbUFycmF5OiBMYW5nTGlzdEl0ZW1bXSA9IFtdO1xyXG4gICAgc3lzdGVtcy5mb3JFYWNoKChzeXN0ZW0pID0+IHtcclxuICAgICAgaWYgKCFzcmNMYW5nQ29kZSB8fCBzcmNMYW5nQ29kZSA9PT0gc3lzdGVtLnNvdXJjZUxhbmd1YWdlKSB7XHJcbiAgICAgICAgbGFuZ0xpc3RJdGVtQXJyYXkucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZG9tYWluOiBzeXN0ZW0uZG9tYWluIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgbGFuZzogc3JjTGFuZ0NvZGUgPyBzeXN0ZW0udGFyZ2V0TGFuZ3VhZ2UgOiBzeXN0ZW0uc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgIGxhbmd1YWdlSWQ6IHN5c3RlbS5sYW5ndWFnZUlkLFxyXG4gICAgICAgICAgICB2ZW5kb3I6IHN5c3RlbS52ZW5kb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGxhbmdMaXN0SXRlbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQ29ycmVjdFN5c3RlbShzb3VyY2VMYW5ndWFnZTogc3RyaW5nLCB0YXJnZXRMYW5ndWFnZTogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHNvdXJjZUxhbmd1YWdlID09PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgICAgdGhpcy50YXJnZXRMYW5ndWFnZSA9IHRhcmdldExhbmd1YWdlO1xyXG4gICAgICB0aGlzLmFjdGl2ZVN5c3RlbS50YXJnZXRMYW5ndWFnZSA9IHRhcmdldExhbmd1YWdlO1xyXG4gICAgICByZXR1cm4gYCR7QVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZfS0ke3RhcmdldExhbmd1YWdlfWBcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzeXN0ZW1zID0gdGhpcy5zeXN0ZW1zO1xyXG5cclxuICAgIGNvbnN0IHN5c3RlbXNGb3JMYW5ndWFnZVBhaXIgPSBzeXN0ZW1zLmZpbHRlcihzeXN0ZW0gPT4gc3lzdGVtLnNvdXJjZUxhbmd1YWdlID09PSBzb3VyY2VMYW5ndWFnZSAmJiB0YXJnZXRMYW5ndWFnZSA9PT0gc3lzdGVtLnRhcmdldExhbmd1YWdlKTtcclxuICAgIC8vIElkZWFsbHkgdGhpcyBjYXNlIHNob3VsZCBub3QgaGFwcGVuLCBidXQgaXQgaXMgcG9zc2libGUuXHJcbiAgICBpZiAoc3lzdGVtc0Zvckxhbmd1YWdlUGFpci5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtcy5maW5kKHN5c3RlbSA9PiBzeXN0ZW0uc291cmNlTGFuZ3VhZ2UgPT09IHNvdXJjZUxhbmd1YWdlKT8ubGFuZ3VhZ2VJZCBhcyBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvciA9IHN5c3RlbXNGb3JMYW5ndWFnZVBhaXIuZmlsdGVyKHN5c3RlbSA9PiAoc3lzdGVtLnZlbmRvciB8fCB0aGlzLmRlZmF1bHRWZW5kb3IpID09PSB0aGlzLmRlZmF1bHRWZW5kb3IpO1xyXG4gICAgaWYgKHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvci5sZW5ndGggPT09IDApIHtcclxuICAgICAgc3lzdGVtc1dpdGhEZWZhdWx0VmVuZG9yID0gc3lzdGVtc0Zvckxhbmd1YWdlUGFpcjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3lzdGVtc1dpdGhEZWZhdWx0RG9tYWluID0gc3lzdGVtc1dpdGhEZWZhdWx0VmVuZG9yLmZpbHRlcihzeXN0ZW0gPT4gZG9tYWluID8gc3lzdGVtLmRvbWFpbiA9PT0gZG9tYWluIDogdGhpcy5kZWZhdWx0RG9tYWlucy5pbmNsdWRlcyhzeXN0ZW0uZG9tYWluIGFzIHN0cmluZykpO1xyXG4gICAgaWYgKHN5c3RlbXNXaXRoRGVmYXVsdERvbWFpbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgc3lzdGVtc1dpdGhEZWZhdWx0RG9tYWluID0gc3lzdGVtc1dpdGhEZWZhdWx0VmVuZG9yO1xyXG4gICAgfVxyXG4gICAgU29ydEhlbHBlci5zb3J0QnlBcnJheShzeXN0ZW1zV2l0aERlZmF1bHREb21haW4sIHRoaXMuZGVmYXVsdERvbWFpbnMsIFwiZG9tYWluXCIpO1xyXG5cclxuXHJcbiAgICAvLyBWMiBkb2VzIG5vdCBwcm92aWRlIGFueSBpbmZvIGFib3V0IHN0YXR1c2VzXHJcbiAgICBpZiAodGhpcy5hcGlWZXJzaW9uID09PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjEpIHtcclxuICAgICAgY29uc3QgcHJlZmVycmVkU3RhdHVzZXMgPSBbJ3J1bm5pbmcnLCAncXVldWluZ3RyYW5zbCcsICdzdGFuZGJ5J107XHJcbiAgICAgIFNvcnRIZWxwZXIuc29ydEJ5QXJyYXkoc3lzdGVtc1dpdGhEZWZhdWx0VmVuZG9yLCBwcmVmZXJyZWRTdGF0dXNlcywgXCJzdGF0dXNcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN5c3RlbXNXaXRoRGVmYXVsdERvbWFpblswXS5sYW5ndWFnZUlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkFjdGl2ZVN5c3RlbUNoYW5nZShyZXRyYW5zbGF0ZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHN5c3RlbTogU3lzdGVtID0gdGhpcy5hY3RpdmVTeXN0ZW07XHJcbiAgICBjb25zdCB2ZW5kb3IgPSB0aGlzLmFjdGl2ZVN5c3RlbS52ZW5kb3I7XHJcblxyXG4gICAgaWYgKHRoaXMuc291cmNlTGFuZ3VhZ2UgIT09IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWSkge1xyXG4gICAgICB0aGlzLmFkZFRvUmVjZW50U3lzdGVtQXJyYXkoc3lzdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFjdGl2ZS5uZXh0KHtcclxuICAgICAgc291cmNlTGFuZzoge1xyXG4gICAgICAgIGxhbmc6IHRoaXMuc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgICAgZG9tYWluOiBzeXN0ZW0uZG9tYWluIGFzIHN0cmluZyxcclxuICAgICAgICB2ZW5kb3I6IHZlbmRvcixcclxuICAgICAgICBsYW5ndWFnZUlkOiBzeXN0ZW0ubGFuZ3VhZ2VJZCxcclxuICAgICAgfSxcclxuICAgICAgc291cmNlTGFuZ0xpc3Q6IHRoaXMuc291cmNlTGFuZ0xpc3QsXHJcbiAgICAgIHN5c3RlbUlkOiBzeXN0ZW0uaWQsXHJcbiAgICAgIGxhbmd1YWdlSWQ6IHN5c3RlbS5sYW5ndWFnZUlkLFxyXG4gICAgICB0YXJnZXRMYW5nOiB7XHJcbiAgICAgICAgZG9tYWluOiBzeXN0ZW0uZG9tYWluIGFzIHN0cmluZyxcclxuICAgICAgICB2ZW5kb3I6IHZlbmRvcixcclxuICAgICAgICBsYW5ndWFnZUlkOiBzeXN0ZW0ubGFuZ3VhZ2VJZCxcclxuICAgICAgICBsYW5nOiB0aGlzLnRhcmdldExhbmd1YWdlXHJcbiAgICAgIH0sXHJcbiAgICAgIHRhcmdldExhbmdMaXN0OiB0aGlzLnRhcmdldExhbmdMaXN0LFxyXG4gICAgICB2ZW5kb3JzOiB0aGlzLnZlbmRvcnMsXHJcbiAgICAgIGRvbWFpbnM6IHsgYWN0aXZlOiB0aGlzLmFjdGl2ZURvbWFpbiwgZG9tYWluczogdGhpcy5kb21haW5zIH0sXHJcbiAgICAgIHN3YXBMYW5nQWN0aXZlOiB0aGlzLmNhblN3YXBTeXN0ZW1MYW5ndWFnZXMoKSxcclxuICAgICAgc3lzdGVtOiBzeXN0ZW0sXHJcbiAgICAgIHJldHJhbnNsYXRlOiByZXRyYW5zbGF0ZSxcclxuICAgICAgcmVjZW50U3lzdGVtczogdGhpcy5yZWNlbnRTeXN0ZW1zLFxyXG4gICAgICBkZXRlY3RlZExhbmd1YWdlOiB0aGlzLmFjdGl2ZVN5c3RlbS5kZXRlY3RlZExhbmd1YWdlID09PSB0aGlzLnNvdXJjZUxhbmd1YWdlID8gdGhpcy5hY3RpdmVTeXN0ZW0uZGV0ZWN0ZWRMYW5ndWFnZSA6IG51bGxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTeXN0ZW0oZG9tYWluOiBzdHJpbmcsIGlkOiBzdHJpbmcsIGxhbmd1YWdlSWQ6IHN0cmluZywgc291cmNlTGFuZ3VhZ2U6IHN0cmluZywgdGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZywgdHJhbnNsYXRpb25BcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb24sIHZlbmRvcjogc3RyaW5nLCBkZXRlY3RlZExhbmd1YWdlOiBzdHJpbmcsIGluY2x1ZGVzVGVybWlub2xvZ3k6IGJvb2xlYW4pOiBTeXN0ZW0ge1xyXG4gICAgcmV0dXJuIHsgZG9tYWluLCBpZCwgbGFuZ3VhZ2VJZCwgc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlLCB0cmFuc2xhdGlvbkFwaVZlcnNpb24sIHZlbmRvciwgZGV0ZWN0ZWRMYW5ndWFnZSwgaW5jbHVkZXNUZXJtaW5vbG9neSB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
387
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1zeXN0ZW0tbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLXN5c3RlbS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFvQyxVQUFVLEVBQStDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEksT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQUsxRixNQUFNLE9BQU8sbUNBQW1DO0lBK0MzQjtJQUNBO0lBQ0E7SUFDdUM7SUFqRDFELGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLFlBQVksQ0FBVTtJQUN0QixnQkFBZ0IsQ0FBVztJQUUzQiwwQkFBMEIsR0FBRyx1Q0FBdUMsQ0FBQztJQUU3RCxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO0lBRXZELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUN4RCxDQUFDO0lBRUQs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SW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmVEYXRhLCBBbGVydFNlcnZpY2UsIERvbWFpbiwgU29ydEhlbHBlciwgU3lzdGVtLCBTeXN0ZW1TZXJ2aWNlLCBWZW5kb3IsIExhbmdMaXN0SXRlbSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkFwaVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgQVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZIH0gZnJvbSAnLi4vbW9kZWxzL2F1dG8tbGFuZ3VhZ2UtZGV0ZWN0aW9uLWtleS5jb25zdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSB7XHJcbiAgbm9TeXN0ZW1zRXJyb3IgPSBmYWxzZTtcclxuICBzeXN0ZW1zOiBTeXN0ZW1bXSA9IFtdO1xyXG4gIHdpZGdldEluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgc3lzTGlzdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFN5c3RlbVtdPigxKTtcclxuICBhY3RpdmVEb21haW4hOiBEb21haW47XHJcbiAgY2FuU3dhcExhbmd1YWdlcyE6IGJvb2xlYW47XHJcblxyXG4gIGRlZmF1bHRFcnJvclRyYW5zbGF0aW9uS2V5ID0gJ1RMRF9UUkFOU0xBVEUuRVJST1JfTk9fU1lTVEVNU19MT0FERUQnO1xyXG5cclxuICBwcml2YXRlIGxvYWRlZFN5c3RlbXNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U3lzdGVtW10+KCk7XHJcblxyXG4gIGdldCBhY3RpdmVWZW5kb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTeXN0ZW0udmVuZG9yIHx8IHRoaXMuZGVmYXVsdFZlbmRvcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0VmVuZG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuZGVmYXVsdFZlbmRvcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0RG9tYWlucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmRlZmF1bHREb21haW5zIGFzIHN0cmluZ1tdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRUYXJnZXRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLmRlZmF1bHRUYXJnZXRMYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWN0aXZlU3lzdGVtITogU3lzdGVtO1xyXG4gIHByaXZhdGUgZG9tYWluczogRG9tYWluW10gPSBbXTtcclxuICBwcml2YXRlIHZlbmRvcnM6IFZlbmRvcltdID0gW107XHJcbiAgcHJpdmF0ZSBzb3VyY2VMYW5ndWFnZSE6IHN0cmluZztcclxuICBwcml2YXRlIHRhcmdldExhbmd1YWdlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgc291cmNlTGFuZ0xpc3Q6IExhbmdMaXN0SXRlbVtdID0gW107XHJcbiAgcHJpdmF0ZSB0YXJnZXRMYW5nTGlzdDogTGFuZ0xpc3RJdGVtW10gPSBbXTtcclxuXHJcbiAgLy8jcmVnaW9uIFJlY2VudCBzeXN0ZW0gdmFyaWFibGVzXHJcbiAgLy8gUG9zc2libHkgZnJvbSBjb25maWdcclxuICBnZXQgcmVjZW50U3lzdGVtc01heENvdW50KCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5tYXhSZWNlbnRTeXN0ZW1Db3VudCBhcyBudW1iZXI7IH1cclxuICBwcml2YXRlIHJlY2VudFN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVjZW50U3lzdGVtS2V5ID0gXCJyZWNlbnRTeXN0ZW1zXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmU6IEJlaGF2aW9yU3ViamVjdDxBY3RpdmVEYXRhPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aXZlRGF0YT4oPGFueT5udWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxhc3RVc2VkU3lzdGVtS2V5OiBzdHJpbmcgPSBcImxhc3RVc2VkU3lzdGVtXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydDogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb25cclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAqIFRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCB3aGVuIGF1dG8gbGFuZ3VhZ2UgZGV0ZWN0aW9uIHdhcyBjaG9zZW4uXHJcbiAgKi9cclxuICBlbmFibGVMYW5ndWFnZURldGVjdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc291cmNlTGFuZ3VhZ2UgPSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVk7XHJcbiAgICB0aGlzLmNoYW5nZUxhbmd1YWdlKHRoaXMuc291cmNlTGFuZ3VhZ2UsIHRoaXMudGFyZ2V0TGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBUaGlzIG1ldGhvZCBpcyBiZWluZyB1c2VkIHRvIHNldCBkZXRlY3RlZCBsYW5ndWFnZSB3aGVuIGFwaSByZXNwb25zZSBoYXMgaXQuXHJcbiAgKiBBbHNvLCB3aGVuIGxhbmd1YWdlIHdhcyBkZXRlY3RlZCBhbmQgd2Ugd2FudCB0byBjbGVhciBzb3VyY2UgdGV4dCwgdGhpcyBtZXRob2QgYWxzbyBpcyBiZWluZyBjYWxsZWQuXHJcbiAgKi9cclxuICBzZXREZXRlY3RlZExhbmd1YWdlKGxhbmdDb2RlOiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZykge1xyXG4gICAgY29uc3QgaXNTb3VyY2VMYW5nQ29kZVNhbWVBZnRlckRldGVjdGlvbiA9IHRoaXMuYWN0aXZlU3lzdGVtPy5kZXRlY3RlZExhbmd1YWdlID09PSB0aGlzLnNvdXJjZUxhbmd1YWdlO1xyXG4gICAgLy8gSGVyZSB3ZSBuZWVkIHRvIGNsZWFyIG91dCBkZXRlY3RlZCBsYW5ndWFnZSwgYnV0IGtlZXAgdGhlIGRldGVjdGlvbiBlbmFibGVkLlxyXG4gICAgaWYgKCFsYW5nQ29kZSAmJiBpc1NvdXJjZUxhbmdDb2RlU2FtZUFmdGVyRGV0ZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc291cmNlTGFuZ3VhZ2UgPSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVk7XHJcbiAgICAgIHRoaXMuYWN0aXZlU3lzdGVtLmRldGVjdGVkTGFuZ3VhZ2UgPSBudWxsO1xyXG4gICAgICB0aGlzLmNoYW5nZUxhbmd1YWdlKHRoaXMuc291cmNlTGFuZ3VhZ2UsIHRoaXMudGFyZ2V0TGFuZ3VhZ2UsIGZhbHNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgaXMgYmVpbmcgY2FsbGVkLCB3aGVuIGxhbmd1YWdlIGlzIGRldGVjdGVkLlxyXG4gICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IGxhbmdDb2RlO1xyXG4gICAgdGhpcy5hY3RpdmVTeXN0ZW0uc291cmNlTGFuZ3VhZ2UgPSBsYW5nQ29kZTtcclxuICAgIHRoaXMuYWN0aXZlU3lzdGVtLmRldGVjdGVkTGFuZ3VhZ2UgPSBsYW5nQ29kZTtcclxuICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UobGFuZ0NvZGUsIHRoaXMudGFyZ2V0TGFuZ3VhZ2UsIGZhbHNlLCBkb21haW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3lzdGVtcygpOiBTeXN0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlTGFuZ3VhZ2Uoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nLCByZXRyYW5zbGF0ZT86IGJvb2xlYW4sIGRvbWFpbj86IHN0cmluZykge1xyXG4gICAgY29uc3Qgc3lzdGVtSWQgPSB0aGlzLmZpbmRDb3JyZWN0U3lzdGVtKHNvdXJjZSwgdGFyZ2V0LCBkb21haW4pO1xyXG4gICAgdGhpcy5jaGFuZ2VTeXN0ZW0oc3lzdGVtSWQsIHJldHJhbnNsYXRlKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmVTeXN0ZW1PYmooKTogU3lzdGVtIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVN5c3RlbTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVZlbmRvcnNBbmREb21haW5zKCkge1xyXG4gICAgaWYgKCF0aGlzLnNvdXJjZUxhbmd1YWdlIHx8ICF0aGlzLnRhcmdldExhbmd1YWdlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHZlbmRvcnM6IFZlbmRvcltdID0gW107XHJcbiAgICBjb25zdCBkb21haW5zOiBEb21haW5bXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3Qgc3lzdGVtIG9mIHRoaXMuc3lzdGVtcykge1xyXG4gICAgICBpZiAoIShzeXN0ZW0uc291cmNlTGFuZ3VhZ2UgPT09IHRoaXMuc291cmNlTGFuZ3VhZ2UgJiYgc3lzdGVtLnRhcmdldExhbmd1YWdlID09PSB0aGlzLnRhcmdldExhbmd1YWdlKSkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRvbWFpbjogRG9tYWluID0ge1xyXG4gICAgICAgIGxhbmd1YWdlSWQ6IHN5c3RlbS5sYW5ndWFnZUlkLFxyXG4gICAgICAgIHRpdGxlOiBzeXN0ZW0uZG9tYWluIGFzIHN0cmluZ1xyXG4gICAgICB9O1xyXG4gICAgICBkb21haW5zLnB1c2goZG9tYWluKTtcclxuICAgICAgY29uc3QgdmVuZG9yOiBWZW5kb3IgPSB7XHJcbiAgICAgICAgbGFuZ3VhZ2VJZDogc3lzdGVtLmxhbmd1YWdlSWQsXHJcbiAgICAgICAgdGl0bGU6IHN5c3RlbS52ZW5kb3JcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF2ZW5kb3JzLmluY2x1ZGVzKHZlbmRvcikpIHtcclxuICAgICAgICB2ZW5kb3JzLnB1c2godmVuZG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGRvbWFpbi5sYW5ndWFnZUlkID09PSB0aGlzLmFjdGl2ZVN5c3RlbS5sYW5ndWFnZUlkKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVEb21haW4gPSBkb21haW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRvbWFpbnMgPSBkb21haW5zO1xyXG4gICAgdGhpcy52ZW5kb3JzID0gdmVuZG9ycztcclxuICB9XHJcblxyXG5cclxuICBnZXRMYXN0VXNlZFN5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubGFzdFVzZWRTeXN0ZW1LZXkpIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGdldFVuaXF1ZUxhbmd1YWdlcyhsaXN0OiBMYW5nTGlzdEl0ZW1bXSk6IHN0cmluZ1tdIHtcclxuICAgIGlmICghbGlzdCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aXRsZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgbGlzdC5mb3JFYWNoKChsYW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxhbmdUaXRsZSA9IGxhbmcubGFuZztcclxuICAgICAgY29uc3QgaXggPSB0aXRsZXMuaW5kZXhPZihsYW5nVGl0bGUgYXMgc3RyaW5nKTtcclxuICAgICAgaWYgKGl4ID09IC0xKSB7XHJcbiAgICAgICAgdGl0bGVzLnB1c2gobGFuZ1RpdGxlIGFzIHN0cmluZyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aXRsZXM7XHJcbiAgfVxyXG5cclxuICBpbml0KGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkOiBzdHJpbmcpIHsgICBcclxuICAgIHRoaXMuc3lzdGVtU2VydmljZS5nZXRTeXN0ZW1MaXN0KCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogU3lzdGVtW10pID0+IHtcclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSByZXM7XHJcbiAgICAgICAgaWYgKHJlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZWRTeXN0ZW1zU3ViamVjdC5uZXh0KHJlcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc3lzdGVtRXhpc3RzKGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkLCB0aGlzLnN5c3RlbXMpICYmIGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkICE9PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgICAgICAgIGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkID0gdGhpcy5zeXN0ZW1zWzBdPy5sYW5ndWFnZUlkO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBzeXN0ZW0gb2YgdGhpcy5zeXN0ZW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZlbmRvciA9IHN5c3RlbS52ZW5kb3I7XHJcbiAgICAgICAgICAgIGlmICh2ZW5kb3IgPT09IHRoaXMuZGVmYXVsdFZlbmRvcikge1xyXG4gICAgICAgICAgICAgIGRlZmF1bHRTeXN0ZW1MYW5ndWFnZUlkID0gc3lzdGVtLmxhbmd1YWdlSWQ7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWZhdWx0U3lzdGVtTGFuZ3VhZ2VJZCA9PT0gQVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZKSB7XHJcbiAgICAgICAgICB0aGlzLnRhcmdldExhbmd1YWdlID0gdGhpcy5kZWZhdWx0VGFyZ2V0TGFuZ3VhZ2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNyZWF0ZVJlY2VudFN5c3RlbUFycmF5KCk7XHJcbiAgICAgICAgdGhpcy5zb3VyY2VMYW5nTGlzdCA9IHRoaXMuY3JlYXRlTGFuZ0xpc3QodGhpcy5zeXN0ZW1zKTtcclxuICAgICAgICB0aGlzLmNoYW5nZVN5c3RlbShkZWZhdWx0U3lzdGVtTGFuZ3VhZ2VJZCk7XHJcbiAgICAgICAgdGhpcy53aWRnZXRJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zeXNMaXN0Lm5leHQodGhpcy5zeXN0ZW1zKTtcclxuICAgICAgICB0aGlzLm5vU3lzdGVtc0Vycm9yID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChkZWZhdWx0U3lzdGVtTGFuZ3VhZ2VJZCA9PT0gQVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZKSB7XHJcbiAgICAgICAgICB0aGlzLmVuYWJsZUxhbmd1YWdlRGV0ZWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ub1N5c3RlbXNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hbGVydC5lcnJvcih0aGlzLmRlZmF1bHRFcnJvclRyYW5zbGF0aW9uS2V5LCBlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldExvYWRlZFN5c3RlbXMoKTogT2JzZXJ2YWJsZTxTeXN0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZGVkU3lzdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMYXN0VXNlZFN5c3RlbShzeXN0ZW1JZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sYXN0VXNlZFN5c3RlbUtleSwgc3lzdGVtSWQpO1xyXG4gIH1cclxuXHJcbiAgc3dhcFN5c3RlbUxhbmd1YWdlcygpIHtcclxuICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UodGhpcy50YXJnZXRMYW5ndWFnZSwgdGhpcy5zb3VyY2VMYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTeXN0ZW0obGFuZ3VhZ2VJZDogc3RyaW5nLCByZXRyYW5zbGF0ZSA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVN5c3RlbT8ubGFuZ3VhZ2VJZCA9PT0gbGFuZ3VhZ2VJZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNlbGVjdGVkU3lzdGVtITogU3lzdGVtO1xyXG5cclxuICAgIGlmICghbGFuZ3VhZ2VJZD8uaW5jbHVkZXMoQVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHN5c3RlbSBvZiB0aGlzLnN5c3RlbXMpIHtcclxuICAgICAgICBpZiAoc3lzdGVtLmxhbmd1YWdlSWQgPT09IGxhbmd1YWdlSWQpIHtcclxuICAgICAgICAgIHNlbGVjdGVkU3lzdGVtID0gc3lzdGVtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZWxlY3RlZFN5c3RlbSA9IHRoaXMuY3JlYXRlU3lzdGVtKCcnLCBsYW5ndWFnZUlkLCBsYW5ndWFnZUlkLCB0aGlzLnNvdXJjZUxhbmd1YWdlLCB0aGlzLnRhcmdldExhbmd1YWdlLCAnJywgbnVsbCwgZmFsc2UpO1xyXG4gICAgICBcclxuICAgICAgdGhpcy50YXJnZXRMYW5nTGlzdCA9IHRoaXMuY3JlYXRlTGFuZ0xpc3QodGhpcy5zeXN0ZW1zLCB0aGlzLnNvdXJjZUxhbmd1YWdlKTtcclxuICAgICAgdGhpcy50YXJnZXRMYW5ndWFnZSA9IHRoaXMudGFyZ2V0TGFuZ3VhZ2U7XHJcbiAgICAgIHRoaXMuc291cmNlTGFuZ3VhZ2UgPSB0aGlzLnNvdXJjZUxhbmd1YWdlO1xyXG4gICAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHNlbGVjdGVkU3lzdGVtO1xyXG4gICAgICB0aGlzLmRvbWFpbnMgPSBbXTtcclxuICAgICAgdGhpcy52ZW5kb3JzID0gW107XHJcbiAgXHJcbiAgICAgIHRoaXMub25BY3RpdmVTeXN0ZW1DaGFuZ2UocmV0cmFuc2xhdGUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0ZWRTeXN0ZW0uZGV0ZWN0ZWRMYW5ndWFnZSA9IHRoaXMuYWN0aXZlU3lzdGVtPy5kZXRlY3RlZExhbmd1YWdlO1xyXG4gIFxyXG4gICAgdGhpcy50YXJnZXRMYW5nTGlzdCA9IHRoaXMuY3JlYXRlTGFuZ0xpc3QodGhpcy5zeXN0ZW1zLCBzZWxlY3RlZFN5c3RlbS5zb3VyY2VMYW5ndWFnZSk7XHJcbiAgICB0aGlzLnRhcmdldExhbmd1YWdlID0gc2VsZWN0ZWRTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2U7XHJcbiAgICB0aGlzLnNvdXJjZUxhbmd1YWdlID0gc2VsZWN0ZWRTeXN0ZW0uc291cmNlTGFuZ3VhZ2U7XHJcbiAgICB0aGlzLmFjdGl2ZVN5c3RlbSA9IHNlbGVjdGVkU3lzdGVtO1xyXG4gICAgdGhpcy5nZXRBY3RpdmVWZW5kb3JzQW5kRG9tYWlucygpO1xyXG5cclxuICAgIHRoaXMub25BY3RpdmVTeXN0ZW1DaGFuZ2UocmV0cmFuc2xhdGUpO1xyXG5cclxuICAgIHRoaXMuc2V0TGFzdFVzZWRTeXN0ZW0oc2VsZWN0ZWRTeXN0ZW0ubGFuZ3VhZ2VJZCk7XHJcbiAgfVxyXG5cclxuICBzeXN0ZW1FeGlzdHMobGFuZ3VhZ2VJZDogc3RyaW5nLCBzeXN0ZW1MaXN0OiBTeXN0ZW1bXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc3lzdGVtcyA9IHN5c3RlbUxpc3QgPz8gdGhpcy5zeXN0ZW1zO1xyXG4gICAgZm9yIChjb25zdCBzeXN0ZW0gb2Ygc3lzdGVtcykge1xyXG4gICAgICBpZiAoc3lzdGVtLmxhbmd1YWdlSWQgPT09IGxhbmd1YWdlSWQpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzVGVybWlub2xvZ3lTdXBwb3J0ZWQoc3lzdGVtOiBTeXN0ZW0pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzeXN0ZW0uaW5jbHVkZXNUZXJtaW5vbG9neSBhcyBib29sZWFuO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU291cmNlTGFuZ3VhZ2Uoc291cmNlTGFuZ3VhZ2VDb2RlOiBzdHJpbmcpIHtcclxuICAgIGlmIChzb3VyY2VMYW5ndWFnZUNvZGUgPT09IHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2Uoc291cmNlTGFuZ3VhZ2VDb2RlLCB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jaGFuZ2VMYW5ndWFnZShzb3VyY2VMYW5ndWFnZUNvZGUsIHRoaXMuYWN0aXZlU3lzdGVtLnRhcmdldExhbmd1YWdlKTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFyZ2V0TGFuZ3VhZ2UodGFyZ2V0TGFuZ3VhZ2VDb2RlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0YXJnZXRMYW5ndWFnZUNvZGUgPT09IHRoaXMuYWN0aXZlU3lzdGVtLnNvdXJjZUxhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlTGFuZ3VhZ2UodGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlQ29kZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jaGFuZ2VMYW5ndWFnZSh0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSwgdGFyZ2V0TGFuZ3VhZ2VDb2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUmVjZW50U3lzdGVtQXJyYXkoKSB7XHJcbiAgICBsZXQgc3lzdGVtSWRBcnJheTogc3RyaW5nW107XHJcbiAgICBjb25zdCByZWNlbnRTeXN0ZW1BcnJheTogU3lzdGVtW10gPSBbXTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHN5c3RlbUlkQXJyYXkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMucmVjZW50U3lzdGVtS2V5KSA/PyBcIltdXCIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzeXN0ZW1JZEFycmF5LmZvckVhY2goKGxhbmd1YWdlSWQpID0+IHtcclxuICAgICAgY29uc3QgZXhpc3RpbmdTeXN0ZW0gPSB0aGlzLnN5c3RlbXMuZmluZChzeXN0ZW0gPT4gc3lzdGVtLmxhbmd1YWdlSWQgPT09IGxhbmd1YWdlSWQpO1xyXG4gICAgICBpZiAoZXhpc3RpbmdTeXN0ZW0gJiYgIXRoaXMucmVjZW50U3lzdGVtcy5pbmNsdWRlcyhleGlzdGluZ1N5c3RlbSkpIHtcclxuICAgICAgICByZWNlbnRTeXN0ZW1BcnJheS5wdXNoKGV4aXN0aW5nU3lzdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMucmVjZW50U3lzdGVtcyA9IHJlY2VudFN5c3RlbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRUb1JlY2VudFN5c3RlbUFycmF5KHN5c3RlbTogU3lzdGVtKSB7XHJcbiAgIGlmIChzeXN0ZW0uaWQgPT09IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWSkge1xyXG4gICAgcmV0dXJuO1xyXG4gICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGV4aXN0aW5nU3lzdGVtID0gdGhpcy5yZWNlbnRTeXN0ZW1zLmZpbmQoZXhpc3RpbmcgPT4gZXhpc3RpbmcubGFuZ3VhZ2VJZCA9PT0gc3lzdGVtLmxhbmd1YWdlSWQpO1xyXG4gICAgLy8gaWYgc3lzdGVtIGFscmVhZHkgaW4gbGlzdCwgcHV0IGl0IHRvIGZpcnN0IHBvc2l0aW9uLiBJZiBpeCAwLCBubyBhY3Rpb24gcmVxdWlyZWQgc2luY2UgbGF0ZXN0IHN5c3RlbSBpcyBhbHJlYWR5IGZpcnN0LlxyXG4gICAgaWYgKGV4aXN0aW5nU3lzdGVtKSB7XHJcbiAgICAgIGNvbnN0IHN5c3RlbUl4SW5SZWNlbnRMaXN0ID0gdGhpcy5yZWNlbnRTeXN0ZW1zLmluZGV4T2YoZXhpc3RpbmdTeXN0ZW0pO1xyXG4gICAgICBpZiAoc3lzdGVtSXhJblJlY2VudExpc3QgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5yZWNlbnRTeXN0ZW1zLnNwbGljZShzeXN0ZW1JeEluUmVjZW50TGlzdCwgMSk7XHJcbiAgICAgICAgdGhpcy5yZWNlbnRTeXN0ZW1zLnNwbGljZSgwLCAwLCBzeXN0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gaWYgbGlzdCB0b28gbG9uZywgcmVtb3ZlIGxhc3QgKG9sZGVzdCBlbGVtZW50KVxyXG4gICAgICB3aGlsZSAodGhpcy5yZWNlbnRTeXN0ZW1zLmxlbmd0aCA+PSB0aGlzLnJlY2VudFN5c3RlbXNNYXhDb3VudCkge1xyXG4gICAgICAgIHRoaXMucmVjZW50U3lzdGVtcy5wb3AoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yZWNlbnRTeXN0ZW1zLnNwbGljZSgwLCAwLCBzeXN0ZW0pO1xyXG4gICAgfVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5yZWNlbnRTeXN0ZW1LZXksIEpTT04uc3RyaW5naWZ5KHRoaXMucmVjZW50U3lzdGVtcy5tYXAoc3lzdGVtID0+IHN5c3RlbS5sYW5ndWFnZUlkKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYW5Td2FwU3lzdGVtTGFuZ3VhZ2VzKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGxhbmdTd2FwQWN0aXZlID0gZmFsc2U7XHJcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5zeXN0ZW1zKSB7XHJcbiAgICAgIGNvbnN0IHN5c3RlbSA9IGVsZW1lbnQ7XHJcbiAgICAgIGlmIChzeXN0ZW0uc291cmNlTGFuZ3VhZ2UgPT0gdGhpcy50YXJnZXRMYW5ndWFnZSAmJiBzeXN0ZW0udGFyZ2V0TGFuZ3VhZ2UgPT0gdGhpcy5zb3VyY2VMYW5ndWFnZSkge1xyXG4gICAgICAgIGxhbmdTd2FwQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYW5Td2FwTGFuZ3VhZ2VzID0gbGFuZ1N3YXBBY3RpdmU7XHJcbiAgICByZXR1cm4gbGFuZ1N3YXBBY3RpdmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxhbmdMaXN0KHN5c3RlbXM6IFN5c3RlbVtdLCBzcmNMYW5nQ29kZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgbGFuZ0xpc3RJdGVtQXJyYXk6IExhbmdMaXN0SXRlbVtdID0gW107XHJcbiAgICBzeXN0ZW1zLmZvckVhY2goKHN5c3RlbSkgPT4ge1xyXG4gICAgICBpZiAoIXNyY0xhbmdDb2RlIHx8IHNyY0xhbmdDb2RlID09PSBzeXN0ZW0uc291cmNlTGFuZ3VhZ2UgfHwgc3JjTGFuZ0NvZGUgPT09IEFVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWSkge1xyXG4gICAgICAgIGxhbmdMaXN0SXRlbUFycmF5LnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGRvbWFpbjogc3lzdGVtLmRvbWFpbiBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIGxhbmc6IHNyY0xhbmdDb2RlID8gc3lzdGVtLnRhcmdldExhbmd1YWdlIDogc3lzdGVtLnNvdXJjZUxhbmd1YWdlLFxyXG4gICAgICAgICAgICBsYW5ndWFnZUlkOiBzeXN0ZW0ubGFuZ3VhZ2VJZCxcclxuICAgICAgICAgICAgdmVuZG9yOiBzeXN0ZW0udmVuZG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBsYW5nTGlzdEl0ZW1BcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZENvcnJlY3RTeXN0ZW0oc291cmNlTGFuZ3VhZ2U6IHN0cmluZywgdGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZywgZG9tYWluPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChzb3VyY2VMYW5ndWFnZSA9PT0gQVVUT19MQU5HVUFHRV9ERVRFQ1RJT05fS0VZKSB7XHJcbiAgICAgIHRoaXMudGFyZ2V0TGFuZ3VhZ2UgPSB0YXJnZXRMYW5ndWFnZTtcclxuICAgICAgdGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2UgPSB0YXJnZXRMYW5ndWFnZTtcclxuICAgICAgcmV0dXJuIGAke0FVVE9fTEFOR1VBR0VfREVURUNUSU9OX0tFWX0tJHt0YXJnZXRMYW5ndWFnZX1gXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3lzdGVtcyA9IHRoaXMuc3lzdGVtcztcclxuXHJcbiAgICBjb25zdCBzeXN0ZW1zRm9yTGFuZ3VhZ2VQYWlyID0gc3lzdGVtcy5maWx0ZXIoc3lzdGVtID0+IHN5c3RlbS5zb3VyY2VMYW5ndWFnZSA9PT0gc291cmNlTGFuZ3VhZ2UgJiYgdGFyZ2V0TGFuZ3VhZ2UgPT09IHN5c3RlbS50YXJnZXRMYW5ndWFnZSk7XHJcbiAgICAvLyBJZGVhbGx5IHRoaXMgY2FzZSBzaG91bGQgbm90IGhhcHBlbiwgYnV0IGl0IGlzIHBvc3NpYmxlLlxyXG4gICAgaWYgKHN5c3RlbXNGb3JMYW5ndWFnZVBhaXIubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN5c3RlbXMuZmluZChzeXN0ZW0gPT4gc3lzdGVtLnNvdXJjZUxhbmd1YWdlID09PSBzb3VyY2VMYW5ndWFnZSk/Lmxhbmd1YWdlSWQgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzeXN0ZW1zV2l0aERlZmF1bHRWZW5kb3IgPSBzeXN0ZW1zRm9yTGFuZ3VhZ2VQYWlyLmZpbHRlcihzeXN0ZW0gPT4gKHN5c3RlbS52ZW5kb3IgfHwgdGhpcy5kZWZhdWx0VmVuZG9yKSA9PT0gdGhpcy5kZWZhdWx0VmVuZG9yKTtcclxuICAgIGlmIChzeXN0ZW1zV2l0aERlZmF1bHRWZW5kb3IubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvciA9IHN5c3RlbXNGb3JMYW5ndWFnZVBhaXI7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN5c3RlbXNXaXRoRGVmYXVsdERvbWFpbiA9IHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvci5maWx0ZXIoc3lzdGVtID0+IGRvbWFpbiA/IHN5c3RlbS5kb21haW4gPT09IGRvbWFpbiA6IHRoaXMuZGVmYXVsdERvbWFpbnMuaW5jbHVkZXMoc3lzdGVtLmRvbWFpbiBhcyBzdHJpbmcpKTtcclxuICAgIGlmIChzeXN0ZW1zV2l0aERlZmF1bHREb21haW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN5c3RlbXNXaXRoRGVmYXVsdERvbWFpbiA9IHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvcjtcclxuICAgIH1cclxuICAgIFNvcnRIZWxwZXIuc29ydEJ5QXJyYXkoc3lzdGVtc1dpdGhEZWZhdWx0RG9tYWluLCB0aGlzLmRlZmF1bHREb21haW5zLCBcImRvbWFpblwiKTtcclxuXHJcblxyXG4gICAgLy8gVjIgZG9lcyBub3QgcHJvdmlkZSBhbnkgaW5mbyBhYm91dCBzdGF0dXNlc1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYxKSB7XHJcbiAgICAgIGNvbnN0IHByZWZlcnJlZFN0YXR1c2VzID0gWydydW5uaW5nJywgJ3F1ZXVpbmd0cmFuc2wnLCAnc3RhbmRieSddO1xyXG4gICAgICBTb3J0SGVscGVyLnNvcnRCeUFycmF5KHN5c3RlbXNXaXRoRGVmYXVsdFZlbmRvciwgcHJlZmVycmVkU3RhdHVzZXMsIFwic3RhdHVzXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzeXN0ZW1zV2l0aERlZmF1bHREb21haW5bMF0ubGFuZ3VhZ2VJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25BY3RpdmVTeXN0ZW1DaGFuZ2UocmV0cmFuc2xhdGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBzeXN0ZW06IFN5c3RlbSA9IHRoaXMuYWN0aXZlU3lzdGVtO1xyXG4gICAgY29uc3QgdmVuZG9yID0gdGhpcy5hY3RpdmVTeXN0ZW0udmVuZG9yO1xyXG5cclxuICAgIGlmICh0aGlzLnNvdXJjZUxhbmd1YWdlICE9PSBBVVRPX0xBTkdVQUdFX0RFVEVDVElPTl9LRVkpIHtcclxuICAgICAgdGhpcy5hZGRUb1JlY2VudFN5c3RlbUFycmF5KHN5c3RlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3RpdmUubmV4dCh7XHJcbiAgICAgIHNvdXJjZUxhbmc6IHtcclxuICAgICAgICBsYW5nOiB0aGlzLnNvdXJjZUxhbmd1YWdlLFxyXG4gICAgICAgIGRvbWFpbjogc3lzdGVtLmRvbWFpbiBhcyBzdHJpbmcsXHJcbiAgICAgICAgdmVuZG9yOiB2ZW5kb3IsXHJcbiAgICAgICAgbGFuZ3VhZ2VJZDogc3lzdGVtLmxhbmd1YWdlSWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHNvdXJjZUxhbmdMaXN0OiB0aGlzLnNvdXJjZUxhbmdMaXN0LFxyXG4gICAgICBzeXN0ZW1JZDogc3lzdGVtLmlkLFxyXG4gICAgICBsYW5ndWFnZUlkOiBzeXN0ZW0ubGFuZ3VhZ2VJZCxcclxuICAgICAgdGFyZ2V0TGFuZzoge1xyXG4gICAgICAgIGRvbWFpbjogc3lzdGVtLmRvbWFpbiBhcyBzdHJpbmcsXHJcbiAgICAgICAgdmVuZG9yOiB2ZW5kb3IsXHJcbiAgICAgICAgbGFuZ3VhZ2VJZDogc3lzdGVtLmxhbmd1YWdlSWQsXHJcbiAgICAgICAgbGFuZzogdGhpcy50YXJnZXRMYW5ndWFnZVxyXG4gICAgICB9LFxyXG4gICAgICB0YXJnZXRMYW5nTGlzdDogdGhpcy50YXJnZXRMYW5nTGlzdCxcclxuICAgICAgdmVuZG9yczogdGhpcy52ZW5kb3JzLFxyXG4gICAgICBkb21haW5zOiB7IGFjdGl2ZTogdGhpcy5hY3RpdmVEb21haW4sIGRvbWFpbnM6IHRoaXMuZG9tYWlucyB9LFxyXG4gICAgICBzd2FwTGFuZ0FjdGl2ZTogdGhpcy5jYW5Td2FwU3lzdGVtTGFuZ3VhZ2VzKCksXHJcbiAgICAgIHN5c3RlbTogc3lzdGVtLFxyXG4gICAgICByZXRyYW5zbGF0ZTogcmV0cmFuc2xhdGUsXHJcbiAgICAgIHJlY2VudFN5c3RlbXM6IHRoaXMucmVjZW50U3lzdGVtcyxcclxuICAgICAgZGV0ZWN0ZWRMYW5ndWFnZTogdGhpcy5hY3RpdmVTeXN0ZW0uZGV0ZWN0ZWRMYW5ndWFnZSA9PT0gdGhpcy5zb3VyY2VMYW5ndWFnZSA/IHRoaXMuYWN0aXZlU3lzdGVtLmRldGVjdGVkTGFuZ3VhZ2UgOiBudWxsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3lzdGVtKGRvbWFpbjogc3RyaW5nLCBpZDogc3RyaW5nLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHNvdXJjZUxhbmd1YWdlOiBzdHJpbmcsIHRhcmdldExhbmd1YWdlOiBzdHJpbmcsIHZlbmRvcjogc3RyaW5nLCBkZXRlY3RlZExhbmd1YWdlOiBzdHJpbmcsIGluY2x1ZGVzVGVybWlub2xvZ3k6IGJvb2xlYW4pOiBTeXN0ZW0ge1xyXG4gICAgcmV0dXJuIHsgZG9tYWluLCBpZCwgbGFuZ3VhZ2VJZCwgc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlLCB2ZW5kb3IsIGRldGVjdGVkTGFuZ3VhZ2UsIGluY2x1ZGVzVGVybWlub2xvZ3kgfVxyXG4gIH1cclxufVxyXG4iXX0=
|