@c8y/ngx-components 1020.14.4 → 1020.14.10
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/core/i18n/i18n.module.d.ts +2 -2
- package/core/i18n/i18n.module.d.ts.map +1 -1
- package/core/i18n/load-locale.d.ts +1 -1
- package/core/i18n/load-locale.d.ts.map +1 -1
- package/esm2022/core/i18n/i18n.module.mjs +9 -2
- package/esm2022/core/i18n/load-locale.mjs +16 -18
- package/esm2022/device-shell/shell/shell.component.mjs +3 -3
- package/esm2022/repository/configuration/list/configuration-detail.component.mjs +13 -6
- package/esm2022/repository/configuration/list/configuration-list.component.mjs +2 -3
- package/esm2022/repository/shared/repository.service.mjs +6 -6
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +3 -3
- package/esm2022/widgets/implementations/map/map-widget.component.mjs +5 -3
- package/fesm2022/c8y-ngx-components-device-shell.mjs +2 -2
- package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +12 -6
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +5 -5
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +4 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +23 -18
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/repository/configuration/list/configuration-detail.component.d.ts +1 -5
- package/repository/configuration/list/configuration-detail.component.d.ts.map +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
- package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
|
@@ -12,11 +12,11 @@ export declare function translateLoaderFactory(httpClient: HttpClient, optionsSe
|
|
|
12
12
|
export declare function localePathFactory(options: OptionsService): string;
|
|
13
13
|
export declare function languagesFactory(options: OptionsService): import("@c8y/options").Languages;
|
|
14
14
|
export declare function localeId(appStateService: AppStateService): {
|
|
15
|
-
readonly lang:
|
|
15
|
+
readonly lang: string;
|
|
16
16
|
toLowerCase(): any;
|
|
17
17
|
toString(): any;
|
|
18
18
|
};
|
|
19
|
-
export declare function getAngularLocalesLanguageString(language?: string):
|
|
19
|
+
export declare function getAngularLocalesLanguageString(language?: string): string;
|
|
20
20
|
/**
|
|
21
21
|
* The angular module definition for i18n (translation).
|
|
22
22
|
* @exports I18nModule
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.module.d.ts","sourceRoot":"","sources":["../../../core/i18n/i18n.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAa,mBAAmB,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAcnF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"i18n.module.d.ts","sourceRoot":"","sources":["../../../core/i18n/i18n.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAa,mBAAmB,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAcnF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;;;;;AAqBnF,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,6BAA6B,EAAE,6BAA6B,EAC5D,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,GAAG,yBASf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,UAExD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,oCAEvD;AAED,wBAAgB,QAAQ,CAAC,eAAe,EAAE,eAAe;;;;EAYxD;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,SAAO,GAAG,MAAM,CAMvE;AAED;;;GAGG;AACH,qBAIa,UAAU;IACrB,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE;IAwB9B,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC,UAAU,CAAC;yCAzBtC,UAAU;0CAAV,UAAU;0CAAV,UAAU;CA+BtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-locale.d.ts","sourceRoot":"","sources":["../../../core/i18n/load-locale.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"load-locale.d.ts","sourceRoot":"","sources":["../../../core/i18n/load-locale.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,gBAclD"}
|
|
@@ -17,6 +17,9 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
/**
|
|
18
18
|
* The @angular/common/locales folder in node_modules contains files with names created based on RFC 3066bis.
|
|
19
19
|
* https://www.w3.org/International/articles/bcp47/
|
|
20
|
+
*
|
|
21
|
+
* Same mapping also in devkit: packages\devkit\src\webpack\config\translation.ts
|
|
22
|
+
* TODO: unify and move to a common place e.g. @c8y/options once this not only includes types
|
|
20
23
|
*/
|
|
21
24
|
const angularLocalesLanguageMap = {
|
|
22
25
|
en: 'en-GB',
|
|
@@ -51,7 +54,11 @@ export function localeId(appStateService) {
|
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
56
|
export function getAngularLocalesLanguageString(language = 'en') {
|
|
54
|
-
|
|
57
|
+
const key = language;
|
|
58
|
+
if (angularLocalesLanguageMap[key]) {
|
|
59
|
+
return angularLocalesLanguageMap[key];
|
|
60
|
+
}
|
|
61
|
+
return language;
|
|
55
62
|
}
|
|
56
63
|
/**
|
|
57
64
|
* The angular module definition for i18n (translation).
|
|
@@ -98,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
98
105
|
imports: [HttpClientModule, BsDatepickerModule]
|
|
99
106
|
}]
|
|
100
107
|
}] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGdCQUFnQixJQUFJLG1CQUFtQixFQUN2QyxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8s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RTtTQUNuRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFO1NBQ2xDLENBQUM7SUFDSixDQUFDOzhHQTlCVSxVQUFVOytHQUFWLFVBQVUsWUFGWCxnQkFBZ0IsRUFBRSxrQkFBa0IsYUFEcEMsa0JBQWtCOytHQUdqQixVQUFVLFlBRlgsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBRHBDLGtCQUFrQjs7MkZBR2pCLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxpRUFBaUU7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBMT0NBTEVfSUQsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgVHJhbnNsYXRlU2VydmljZSBhcyBOZ3hUcmFuc2xhdGVTZXJ2aWNlLFxuICBUcmFuc2xhdGVDb21waWxlcixcbiAgVHJhbnNsYXRlRmFrZUNvbXBpbGVyLFxuICBUcmFuc2xhdGVMb2FkZXIsXG4gIFRyYW5zbGF0ZVBhcnNlcixcbiAgVHJhbnNsYXRlU3RvcmUsXG4gIFVTRV9ERUZBVUxUX0xBTkcsXG4gIFVTRV9TVE9SRSxcbiAgVVNFX0VYVEVORCxcbiAgREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBMQU5HVUFHRVMgfSBmcm9tICcuL2xhbmd1YWdlcyc7XG5pbXBvcnQgeyBMT0NBTEVfUEFUSCB9IGZyb20gJy4vbG9jYWxlLnBhdGgnO1xuaW1wb3J0IHsgTWlzc2luZ1RyYW5zbGF0aW9uQ3VzdG9tSGFuZGxlciB9IGZyb20gJy4vbWlzc2luZy10cmFuc2xhdGlvbi1jdXN0b20uaGFuZGxlcic7XG5pbXBvcnQgeyBNRVNTQUdFU19DT1JFX0kxOE4gfSBmcm9tICcuL3BhdHRlcm4tbWVzc2FnZXMuZGF0YSc7XG5pbXBvcnQgeyBob29rUGF0dGVybk1lc3NhZ2VzIH0gZnJvbSAnLi9wYXR0ZXJucy1tZXNzYWdlLmhvb2snO1xuaW1wb3J0IHsgVHJhbnNsYXRlQ3VzdG9tTG9hZGVyIH0gZnJvbSAnLi90cmFuc2xhdGUubG9hZGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBhcnNlckN1c3RvbSB9IGZyb20gJy4vdHJhbnNsYXRlLnBhcnNlcic7XG5pbXBvcnQgeyBDOHlUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICcuL2M4eS10cmFuc2xhdGUubW9kdWxlJztcbmltcG9ydCB7IENhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZWQtbG9jYWxlLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG4vKipcbiAqIFRoZSBAYW5ndWxhci9jb21tb24vbG9jYWxlcyBmb2xkZXIgaW4gbm9kZV9tb2R1bGVzIGNvbnRhaW5zIGZpbGVzIHdpdGggbmFtZXMgY3JlYXRlZCBiYXNlZCBvbiBSRkMgMzA2NmJpcy5cbiAqIGh0dHBzOi8vd3d3LnczLm9yZy9JbnRlcm5hdGlvbmFsL2FydGljbGVzL2JjcDQ3L1xuICovXG5jb25zdCBhbmd1bGFyTG9jYWxlc0xhbmd1YWdlTWFwID0ge1xuICBlbjogJ2VuLUdCJyxcbiAgJ2VuLUVOJzogJ2VuLUdCJyxcbiAgJ2VuLVVTJzogJ2VuJyxcbiAgJ2phLUpQJzogJ2phJyxcbiAgJ3poLUNOJzogJ3poJyxcbiAgJ3poLVRXJzogJ3poJyxcbiAgJ3B0LUJSJzogJ3B0J1xufTtcblxuLy8gQW9UIHJlcXVpcmVzIGFuIGV4cG9ydGVkIGZ1bmN0aW9uIGZvciBmYWN0b3JpZXNcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVMb2FkZXJGYWN0b3J5KFxuICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICBvcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXG4gIGNhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlOiBDYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSxcbiAgbG9jYWxlUGF0aDogc3RyaW5nLFxuICBsYW5ndWFnZXM6IGFueVxuKSB7XG4gIHJldHVybiBuZXcgVHJhbnNsYXRlQ3VzdG9tTG9hZGVyKFxuICAgIGh0dHBDbGllbnQsXG4gICAgb3B0aW9uc1NlcnZpY2UsXG4gICAgY2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgbG9jYWxlUGF0aCxcbiAgICBsYW5ndWFnZXNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsZVBhdGhGYWN0b3J5KG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlKSB7XG4gIHJldHVybiBvcHRpb25zLmxvY2FsZVBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYW5ndWFnZXNGYWN0b3J5KG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlKSB7XG4gIHJldHVybiBvcHRpb25zLmxhbmd1YWdlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsZUlkKGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlKSB7XG4gIHJldHVybiB7XG4gICAgZ2V0IGxhbmcoKSB7XG4gICAgICByZXR1cm4gZ2V0QW5ndWxhckxvY2FsZXNMYW5ndWFnZVN0cmluZyhhcHBTdGF0ZVNlcnZpY2Uuc3RhdGUubGFuZyk7XG4gICAgfSxcbiAgICB0b0xvd2VyQ2FzZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmcudG9Mb3dlckNhc2UoKTtcbiAgICB9LFxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZztcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmd1bGFyTG9jYWxlc0xhbmd1YWdlU3RyaW5nKGxhbmd1YWdlID0gJ2VuJykge1xuICByZXR1cm4gYW5ndWxhckxvY2FsZXNMYW5ndWFnZU1hcFtsYW5ndWFnZV0gfHwgbGFuZ3VhZ2U7XG59XG5cbi8qKlxuICogVGhlIGFuZ3VsYXIgbW9kdWxlIGRlZmluaXRpb24gZm9yIGkxOG4gKHRyYW5zbGF0aW9uKS5cbiAqIEBleHBvcnRzIEkxOG5Nb2R1bGVcbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW0M4eVRyYW5zbGF0ZU1vZHVsZV0sIC8vIFdlIGV4cG9ydCBjdXN0b20gdHJhbnNsYXRpb24gbW9kdWxlIHRoYXQgZXh0ZW5kcyBuZ3gtdHJhbnNsYXRlXG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBCc0RhdGVwaWNrZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEkxOG5Nb2R1bGUge1xuICBzdGF0aWMgcHJvdmlkZXJzKCk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7IHByb3ZpZGU6IExPQ0FMRV9JRCwgdXNlRmFjdG9yeTogbG9jYWxlSWQsIGRlcHM6IFtBcHBTdGF0ZVNlcnZpY2VdIH0sXG4gICAgICBob29rUGF0dGVybk1lc3NhZ2VzKE1FU1NBR0VTX0NPUkVfSTE4TiksXG4gICAgICB7IHByb3ZpZGU6IExPQ0FMRV9QQVRILCB1c2VGYWN0b3J5OiBsb2NhbGVQYXRoRmFjdG9yeSwgZGVwczogW09wdGlvbnNTZXJ2aWNlXSB9LFxuICAgICAgeyBwcm92aWRlOiBMQU5HVUFHRVMsIHVzZUZhY3Rvcnk6IGxhbmd1YWdlc0ZhY3RvcnksIGRlcHM6IFtPcHRpb25zU2VydmljZV0gfSxcblxuICAgICAgLy8gRXh0cmFjdGVkIGZyb20gcHJvamVjdHMvbmd4LXRyYW5zbGF0ZS9jb3JlL3NyYy9wdWJsaWNfYXBpLnRzXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlRmFjdG9yeTogdHJhbnNsYXRlTG9hZGVyRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIE9wdGlvbnNTZXJ2aWNlLCBDYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSwgTE9DQUxFX1BBVEgsIExBTkdVQUdFU11cbiAgICAgIH0sXG4gICAgICB7IHByb3ZpZGU6IFRyYW5zbGF0ZUNvbXBpbGVyLCB1c2VDbGFzczogVHJhbnNsYXRlRmFrZUNvbXBpbGVyIH0sXG4gICAgICB7IHByb3ZpZGU6IFRyYW5zbGF0ZVBhcnNlciwgdXNlQ2xhc3M6IFRyYW5zbGF0ZVBhcnNlckN1c3RvbSB9LFxuICAgICAgeyBwcm92aWRlOiBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLCB1c2VDbGFzczogTWlzc2luZ1RyYW5zbGF0aW9uQ3VzdG9tSGFuZGxlciB9LFxuICAgICAgVHJhbnNsYXRlU3RvcmUsXG4gICAgICBOZ3hUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgeyBwcm92aWRlOiBVU0VfU1RPUkUsIHVzZVZhbHVlOiB1bmRlZmluZWQgfSxcbiAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfTEFORywgdXNlVmFsdWU6IHVuZGVmaW5lZCB9LFxuICAgICAgeyBwcm92aWRlOiBVU0VfRVhURU5ELCB1c2VWYWx1ZTogZmFsc2UgfSxcbiAgICAgIHsgcHJvdmlkZTogREVGQVVMVF9MQU5HVUFHRSwgdXNlVmFsdWU6IHVuZGVmaW5lZCB9XG4gICAgXTtcbiAgfVxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEkxOG5Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEkxOG5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IEkxOG5Nb2R1bGUucHJvdmlkZXJzKClcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGdCQUFnQixJQUFJLG1CQUFtQixFQUN2QyxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8s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bEQsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDeEMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtTQUNuRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFO1NBQ2xDLENBQUM7SUFDSixDQUFDOzhHQTlCVSxVQUFVOytHQUFWLFVBQVUsWUFGWCxnQkFBZ0IsRUFBRSxrQkFBa0IsYUFEcEMsa0JBQWtCOytHQUdqQixVQUFVLFlBRlgsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBRHBDLGtCQUFrQjs7MkZBR2pCLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxpRUFBaUU7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBMT0NBTEVfSUQsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgVHJhbnNsYXRlU2VydmljZSBhcyBOZ3hUcmFuc2xhdGVTZXJ2aWNlLFxuICBUcmFuc2xhdGVDb21waWxlcixcbiAgVHJhbnNsYXRlRmFrZUNvbXBpbGVyLFxuICBUcmFuc2xhdGVMb2FkZXIsXG4gIFRyYW5zbGF0ZVBhcnNlcixcbiAgVHJhbnNsYXRlU3RvcmUsXG4gIFVTRV9ERUZBVUxUX0xBTkcsXG4gIFVTRV9TVE9SRSxcbiAgVVNFX0VYVEVORCxcbiAgREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBMQU5HVUFHRVMgfSBmcm9tICcuL2xhbmd1YWdlcyc7XG5pbXBvcnQgeyBMT0NBTEVfUEFUSCB9IGZyb20gJy4vbG9jYWxlLnBhdGgnO1xuaW1wb3J0IHsgTWlzc2luZ1RyYW5zbGF0aW9uQ3VzdG9tSGFuZGxlciB9IGZyb20gJy4vbWlzc2luZy10cmFuc2xhdGlvbi1jdXN0b20uaGFuZGxlcic7XG5pbXBvcnQgeyBNRVNTQUdFU19DT1JFX0kxOE4gfSBmcm9tICcuL3BhdHRlcm4tbWVzc2FnZXMuZGF0YSc7XG5pbXBvcnQgeyBob29rUGF0dGVybk1lc3NhZ2VzIH0gZnJvbSAnLi9wYXR0ZXJucy1tZXNzYWdlLmhvb2snO1xuaW1wb3J0IHsgVHJhbnNsYXRlQ3VzdG9tTG9hZGVyIH0gZnJvbSAnLi90cmFuc2xhdGUubG9hZGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBhcnNlckN1c3RvbSB9IGZyb20gJy4vdHJhbnNsYXRlLnBhcnNlcic7XG5pbXBvcnQgeyBDOHlUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICcuL2M4eS10cmFuc2xhdGUubW9kdWxlJztcbmltcG9ydCB7IENhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZWQtbG9jYWxlLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG4vKipcbiAqIFRoZSBAYW5ndWxhci9jb21tb24vbG9jYWxlcyBmb2xkZXIgaW4gbm9kZV9tb2R1bGVzIGNvbnRhaW5zIGZpbGVzIHdpdGggbmFtZXMgY3JlYXRlZCBiYXNlZCBvbiBSRkMgMzA2NmJpcy5cbiAqIGh0dHBzOi8vd3d3LnczLm9yZy9JbnRlcm5hdGlvbmFsL2FydGljbGVzL2JjcDQ3L1xuICpcbiAqIFNhbWUgbWFwcGluZyBhbHNvIGluIGRldmtpdDogcGFja2FnZXNcXGRldmtpdFxcc3JjXFx3ZWJwYWNrXFxjb25maWdcXHRyYW5zbGF0aW9uLnRzXG4gKiBUT0RPOiB1bmlmeSBhbmQgbW92ZSB0byBhIGNvbW1vbiBwbGFjZSBlLmcuIEBjOHkvb3B0aW9ucyBvbmNlIHRoaXMgbm90IG9ubHkgaW5jbHVkZXMgdHlwZXNcbiAqL1xuY29uc3QgYW5ndWxhckxvY2FsZXNMYW5ndWFnZU1hcCA9IHtcbiAgZW46ICdlbi1HQicsXG4gICdlbi1FTic6ICdlbi1HQicsXG4gICdlbi1VUyc6ICdlbicsXG4gICdqYS1KUCc6ICdqYScsXG4gICd6aC1DTic6ICd6aCcsXG4gICd6aC1UVyc6ICd6aCcsXG4gICdwdC1CUic6ICdwdCdcbn0gYXMgY29uc3Q7XG5cbi8vIEFvVCByZXF1aXJlcyBhbiBleHBvcnRlZCBmdW5jdGlvbiBmb3IgZmFjdG9yaWVzXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlTG9hZGVyRmFjdG9yeShcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICBjYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZTogQ2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gIGxvY2FsZVBhdGg6IHN0cmluZyxcbiAgbGFuZ3VhZ2VzOiBhbnlcbikge1xuICByZXR1cm4gbmV3IFRyYW5zbGF0ZUN1c3RvbUxvYWRlcihcbiAgICBodHRwQ2xpZW50LFxuICAgIG9wdGlvbnNTZXJ2aWNlLFxuICAgIGNhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlLFxuICAgIGxvY2FsZVBhdGgsXG4gICAgbGFuZ3VhZ2VzXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVQYXRoRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sb2NhbGVQYXRoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFuZ3VhZ2VzRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVJZChhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSkge1xuICByZXR1cm4ge1xuICAgIGdldCBsYW5nKCkge1xuICAgICAgcmV0dXJuIGdldEFuZ3VsYXJMb2NhbGVzTGFuZ3VhZ2VTdHJpbmcoYXBwU3RhdGVTZXJ2aWNlLnN0YXRlLmxhbmcpO1xuICAgIH0sXG4gICAgdG9Mb3dlckNhc2UoKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nLnRvTG93ZXJDYXNlKCk7XG4gICAgfSxcbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmc7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW5ndWxhckxvY2FsZXNMYW5ndWFnZVN0cmluZyhsYW5ndWFnZSA9ICdlbicpOiBzdHJpbmcge1xuICBjb25zdCBrZXkgPSBsYW5ndWFnZSBhcyBrZXlvZiB0eXBlb2YgYW5ndWxhckxvY2FsZXNMYW5ndWFnZU1hcDtcbiAgaWYgKGFuZ3VsYXJMb2NhbGVzTGFuZ3VhZ2VNYXBba2V5XSkge1xuICAgIHJldHVybiBhbmd1bGFyTG9jYWxlc0xhbmd1YWdlTWFwW2tleV07XG4gIH1cbiAgcmV0dXJuIGxhbmd1YWdlO1xufVxuXG4vKipcbiAqIFRoZSBhbmd1bGFyIG1vZHVsZSBkZWZpbml0aW9uIGZvciBpMThuICh0cmFuc2xhdGlvbikuXG4gKiBAZXhwb3J0cyBJMThuTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtDOHlUcmFuc2xhdGVNb2R1bGVdLCAvLyBXZSBleHBvcnQgY3VzdG9tIHRyYW5zbGF0aW9uIG1vZHVsZSB0aGF0IGV4dGVuZHMgbmd4LXRyYW5zbGF0ZVxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZSwgQnNEYXRlcGlja2VyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJMThuTW9kdWxlIHtcbiAgc3RhdGljIHByb3ZpZGVycygpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZUZhY3Rvcnk6IGxvY2FsZUlkLCBkZXBzOiBbQXBwU3RhdGVTZXJ2aWNlXSB9LFxuICAgICAgaG9va1BhdHRlcm5NZXNzYWdlcyhNRVNTQUdFU19DT1JFX0kxOE4pLFxuICAgICAgeyBwcm92aWRlOiBMT0NBTEVfUEFUSCwgdXNlRmFjdG9yeTogbG9jYWxlUGF0aEZhY3RvcnksIGRlcHM6IFtPcHRpb25zU2VydmljZV0gfSxcbiAgICAgIHsgcHJvdmlkZTogTEFOR1VBR0VTLCB1c2VGYWN0b3J5OiBsYW5ndWFnZXNGYWN0b3J5LCBkZXBzOiBbT3B0aW9uc1NlcnZpY2VdIH0sXG5cbiAgICAgIC8vIEV4dHJhY3RlZCBmcm9tIHByb2plY3RzL25neC10cmFuc2xhdGUvY29yZS9zcmMvcHVibGljX2FwaS50c1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVMb2FkZXIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IHRyYW5zbGF0ZUxvYWRlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBPcHRpb25zU2VydmljZSwgQ2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsIExPQ0FMRV9QQVRILCBMQU5HVUFHRVNdXG4gICAgICB9LFxuICAgICAgeyBwcm92aWRlOiBUcmFuc2xhdGVDb21waWxlciwgdXNlQ2xhc3M6IFRyYW5zbGF0ZUZha2VDb21waWxlciB9LFxuICAgICAgeyBwcm92aWRlOiBUcmFuc2xhdGVQYXJzZXIsIHVzZUNsYXNzOiBUcmFuc2xhdGVQYXJzZXJDdXN0b20gfSxcbiAgICAgIHsgcHJvdmlkZTogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciwgdXNlQ2xhc3M6IE1pc3NpbmdUcmFuc2xhdGlvbkN1c3RvbUhhbmRsZXIgfSxcbiAgICAgIFRyYW5zbGF0ZVN0b3JlLFxuICAgICAgTmd4VHJhbnNsYXRlU2VydmljZSxcbiAgICAgIHsgcHJvdmlkZTogVVNFX1NUT1JFLCB1c2VWYWx1ZTogdW5kZWZpbmVkIH0sXG4gICAgICB7IHByb3ZpZGU6IFVTRV9ERUZBVUxUX0xBTkcsIHVzZVZhbHVlOiB1bmRlZmluZWQgfSxcbiAgICAgIHsgcHJvdmlkZTogVVNFX0VYVEVORCwgdXNlVmFsdWU6IGZhbHNlIH0sXG4gICAgICB7IHByb3ZpZGU6IERFRkFVTFRfTEFOR1VBR0UsIHVzZVZhbHVlOiB1bmRlZmluZWQgfVxuICAgIF07XG4gIH1cbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJMThuTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJMThuTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBJMThuTW9kdWxlLnByb3ZpZGVycygpXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -2,22 +2,20 @@ const cache = new Map();
|
|
|
2
2
|
/**
|
|
3
3
|
* @ignore
|
|
4
4
|
*/
|
|
5
|
-
export function loadLocale(moduleLang) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
});
|
|
5
|
+
export async function loadLocale(moduleLang) {
|
|
6
|
+
if (cache.has(moduleLang)) {
|
|
7
|
+
return cache.get(moduleLang);
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
// Loading @angular/common dynamically aliased to angular.common.
|
|
11
|
+
// Check packages/devkit/src/webpack/config/base.ts for more information.
|
|
12
|
+
const module = await import(`angular-common/locales/${moduleLang}.mjs`);
|
|
13
|
+
cache.set(moduleLang, module);
|
|
14
|
+
return module;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.warn(`Could not load locale for ${moduleLang}`);
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
22
20
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1sb2NhbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vbG9hZC1sb2NhbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN4Qjs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLFVBQWtCO0lBQ2pELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsaUVBQWlFO1FBQ2pFLHlFQUF5RTtRQUN6RSxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsVUFBVSxNQUFNLENBQUMsQ0FBQztRQUN4RSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNhY2hlID0gbmV3IE1hcCgpO1xuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkTG9jYWxlKG1vZHVsZUxhbmc6IHN0cmluZykge1xuICBpZiAoY2FjaGUuaGFzKG1vZHVsZUxhbmcpKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChtb2R1bGVMYW5nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIExvYWRpbmcgQGFuZ3VsYXIvY29tbW9uIGR5bmFtaWNhbGx5IGFsaWFzZWQgdG8gYW5ndWxhci5jb21tb24uXG4gICAgLy8gQ2hlY2sgcGFja2FnZXMvZGV2a2l0L3NyYy93ZWJwYWNrL2NvbmZpZy9iYXNlLnRzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChgYW5ndWxhci1jb21tb24vbG9jYWxlcy8ke21vZHVsZUxhbmd9Lm1qc2ApO1xuICAgIGNhY2hlLnNldChtb2R1bGVMYW5nLCBtb2R1bGUpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgbG9hZCBsb2NhbGUgZm9yICR7bW9kdWxlTGFuZ31gKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl19
|
|
@@ -96,10 +96,10 @@ export class DeviceShellComponent {
|
|
|
96
96
|
this.destroyed$.complete();
|
|
97
97
|
}
|
|
98
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DeviceShellComponent, deps: [{ token: i1.DeviceShellService }, { token: i2.OperationRealtimeService }, { token: i2.ManagedObjectRealtimeService }, { token: i3.OperationService }, { token: i4.ActivatedRoute }, { token: i5.BsModalService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: DeviceShellComponent, selector: "c8y-device-shell", providers: [OperationRealtimeService, ManagedObjectRealtimeService], ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"operationRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-grid grid__col--6-6--md\">\n <div class=\"inner-scroll d-flex d-col bg-level-0\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Command' | translate }}\n </div>\n </div>\n\n <div class=\"card-block d-flex d-col flex-grow large-padding\">\n <div class=\"d-flex p-b-16\">\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n (click)=\"getPredefinedCommand()\"\n [title]=\"'Display a list of predefined commands' | translate\"\n data-cy=\"shell--predefined-commands\"\n >\n {{ 'Predefined commands' | translate }}\n </button>\n\n <div class=\"m-l-auto\">\n <device-status [mo]=\"device$ | async\"></device-status>\n </div>\n </div>\n <textarea\n [attr.aria-label]=\"'Commands' | translate\"\n class=\"form-control inner-scroll flex-grow bg-level-2 text-monospace\"\n [(ngModel)]=\"command.text\"\n data-cy=\"shell-component--commands\"\n (ngModelChange)=\"$event || resetSupportedDeliveryTypes()\"\n placeholder=\"{{ 'Add commands or use predefined commands above.' | translate }}\"\n ></textarea>\n </div>\n\n <div class=\"card-footer large-padding separator\">\n <ng-container *ngFor=\"let deliveryType of deliveryTypes\">\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n *ngIf=\"deliveryType.isSupportedByCommand\"\n [disabled]=\"!command?.text || (sendingCommand$ | async)\"\n (click)=\"execute(deliveryType.name)\"\n >\n <span\n [title]=\"\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n \"\n >\n {{\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n }}\n </span>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-1\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Operations' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <c8y-operations-timeline\n [operations]=\"operations\"\n [sourceId]=\"device.id\"\n [filterPipe]=\"filterPipe\"\n [bodyTemplate]=\"timelineItemBody\"\n [footerTemplates]=\"[timelineItemFooter]\"\n [propertiesToHide]=\"['c8y_Command']\"\n ></c8y-operations-timeline>\n <ng-template #timelineItemBody let-operation>\n <small>{{ operation.c8y_Command?.text || operation.description }}</small>\n </ng-template>\n <ng-template #timelineItemFooter let-operation>\n <div *ngIf=\"operation.c8y_Command?.text\">\n <div class=\"legend form-block\" translate>Command</div>\n <pre class=\"p-8 text-pre
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: DeviceShellComponent, selector: "c8y-device-shell", providers: [OperationRealtimeService, ManagedObjectRealtimeService], ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"operationRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-grid grid__col--6-6--md\">\n <div class=\"inner-scroll d-flex d-col bg-level-0\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Command' | translate }}\n </div>\n </div>\n\n <div class=\"card-block d-flex d-col flex-grow large-padding\">\n <div class=\"d-flex p-b-16\">\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n (click)=\"getPredefinedCommand()\"\n [title]=\"'Display a list of predefined commands' | translate\"\n data-cy=\"shell--predefined-commands\"\n >\n {{ 'Predefined commands' | translate }}\n </button>\n\n <div class=\"m-l-auto\">\n <device-status [mo]=\"device$ | async\"></device-status>\n </div>\n </div>\n <textarea\n [attr.aria-label]=\"'Commands' | translate\"\n class=\"form-control inner-scroll flex-grow bg-level-2 text-monospace\"\n [(ngModel)]=\"command.text\"\n data-cy=\"shell-component--commands\"\n (ngModelChange)=\"$event || resetSupportedDeliveryTypes()\"\n placeholder=\"{{ 'Add commands or use predefined commands above.' | translate }}\"\n ></textarea>\n </div>\n\n <div class=\"card-footer large-padding separator\">\n <ng-container *ngFor=\"let deliveryType of deliveryTypes\">\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n *ngIf=\"deliveryType.isSupportedByCommand\"\n [disabled]=\"!command?.text || (sendingCommand$ | async)\"\n (click)=\"execute(deliveryType.name)\"\n >\n <span\n [title]=\"\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n \"\n >\n {{\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n }}\n </span>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-1\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Operations' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <c8y-operations-timeline\n [operations]=\"operations\"\n [sourceId]=\"device.id\"\n [filterPipe]=\"filterPipe\"\n [bodyTemplate]=\"timelineItemBody\"\n [footerTemplates]=\"[timelineItemFooter]\"\n [propertiesToHide]=\"['c8y_Command']\"\n ></c8y-operations-timeline>\n <ng-template #timelineItemBody let-operation>\n <small>{{ operation.c8y_Command?.text || operation.description }}</small>\n </ng-template>\n <ng-template #timelineItemFooter let-operation>\n <div *ngIf=\"operation.c8y_Command?.text\">\n <div class=\"legend form-block\" translate>Command</div>\n <!-- Keep this in a single line since `pre-text` will preserve all whitespaces in the `pre` tag.-->\n <pre class=\"p-8 text-pre\"><code>{{operation.c8y_Command.text}}</code></pre>\n </div>\n <div *ngIf=\"operation.c8y_Command?.result\">\n <div class=\"legend form-block\" translate>Response</div>\n <!-- Keep this in a single line since `pre-text` will preserve all whitespaces in the `pre` tag.-->\n <pre class=\"p-8 text-pre\"><code>{{operation.c8y_Command.result}}</code></pre>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.DeviceStatusComponent, selector: "device-status, c8y-device-status", inputs: ["mo", "size"] }, { kind: "component", type: i2.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title", "disabled"], outputs: ["onToggle"] }, { kind: "component", type: i8.OperationsTimelineComponent, selector: "c8y-operations-timeline", inputs: ["operations", "sourceId", "filterPipe", "bodyTemplate", "footerTemplates", "propertiesToHide"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DeviceShellComponent, decorators: [{
|
|
102
102
|
type: Component,
|
|
103
|
-
args: [{ selector: 'c8y-device-shell', providers: [OperationRealtimeService, ManagedObjectRealtimeService], template: "<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"operationRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-grid grid__col--6-6--md\">\n <div class=\"inner-scroll d-flex d-col bg-level-0\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Command' | translate }}\n </div>\n </div>\n\n <div class=\"card-block d-flex d-col flex-grow large-padding\">\n <div class=\"d-flex p-b-16\">\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n (click)=\"getPredefinedCommand()\"\n [title]=\"'Display a list of predefined commands' | translate\"\n data-cy=\"shell--predefined-commands\"\n >\n {{ 'Predefined commands' | translate }}\n </button>\n\n <div class=\"m-l-auto\">\n <device-status [mo]=\"device$ | async\"></device-status>\n </div>\n </div>\n <textarea\n [attr.aria-label]=\"'Commands' | translate\"\n class=\"form-control inner-scroll flex-grow bg-level-2 text-monospace\"\n [(ngModel)]=\"command.text\"\n data-cy=\"shell-component--commands\"\n (ngModelChange)=\"$event || resetSupportedDeliveryTypes()\"\n placeholder=\"{{ 'Add commands or use predefined commands above.' | translate }}\"\n ></textarea>\n </div>\n\n <div class=\"card-footer large-padding separator\">\n <ng-container *ngFor=\"let deliveryType of deliveryTypes\">\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n *ngIf=\"deliveryType.isSupportedByCommand\"\n [disabled]=\"!command?.text || (sendingCommand$ | async)\"\n (click)=\"execute(deliveryType.name)\"\n >\n <span\n [title]=\"\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n \"\n >\n {{\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n }}\n </span>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-1\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Operations' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <c8y-operations-timeline\n [operations]=\"operations\"\n [sourceId]=\"device.id\"\n [filterPipe]=\"filterPipe\"\n [bodyTemplate]=\"timelineItemBody\"\n [footerTemplates]=\"[timelineItemFooter]\"\n [propertiesToHide]=\"['c8y_Command']\"\n ></c8y-operations-timeline>\n <ng-template #timelineItemBody let-operation>\n <small>{{ operation.c8y_Command?.text || operation.description }}</small>\n </ng-template>\n <ng-template #timelineItemFooter let-operation>\n <div *ngIf=\"operation.c8y_Command?.text\">\n <div class=\"legend form-block\" translate>Command</div>\n <pre class=\"p-8 text-pre
|
|
103
|
+
args: [{ selector: 'c8y-device-shell', providers: [OperationRealtimeService, ManagedObjectRealtimeService], template: "<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"operationRealtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-grid grid__col--6-6--md\">\n <div class=\"inner-scroll d-flex d-col bg-level-0\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Command' | translate }}\n </div>\n </div>\n\n <div class=\"card-block d-flex d-col flex-grow large-padding\">\n <div class=\"d-flex p-b-16\">\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n (click)=\"getPredefinedCommand()\"\n [title]=\"'Display a list of predefined commands' | translate\"\n data-cy=\"shell--predefined-commands\"\n >\n {{ 'Predefined commands' | translate }}\n </button>\n\n <div class=\"m-l-auto\">\n <device-status [mo]=\"device$ | async\"></device-status>\n </div>\n </div>\n <textarea\n [attr.aria-label]=\"'Commands' | translate\"\n class=\"form-control inner-scroll flex-grow bg-level-2 text-monospace\"\n [(ngModel)]=\"command.text\"\n data-cy=\"shell-component--commands\"\n (ngModelChange)=\"$event || resetSupportedDeliveryTypes()\"\n placeholder=\"{{ 'Add commands or use predefined commands above.' | translate }}\"\n ></textarea>\n </div>\n\n <div class=\"card-footer large-padding separator\">\n <ng-container *ngFor=\"let deliveryType of deliveryTypes\">\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n *ngIf=\"deliveryType.isSupportedByCommand\"\n [disabled]=\"!command?.text || (sendingCommand$ | async)\"\n (click)=\"execute(deliveryType.name)\"\n >\n <span\n [title]=\"\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n \"\n >\n {{\n deliveryType.default\n ? ('Execute' | translate)\n : (executeViaLabel | translate: { deliveryType: deliveryType.name })\n }}\n </span>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-1\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"card-title\">\n {{ 'Operations' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <c8y-operations-timeline\n [operations]=\"operations\"\n [sourceId]=\"device.id\"\n [filterPipe]=\"filterPipe\"\n [bodyTemplate]=\"timelineItemBody\"\n [footerTemplates]=\"[timelineItemFooter]\"\n [propertiesToHide]=\"['c8y_Command']\"\n ></c8y-operations-timeline>\n <ng-template #timelineItemBody let-operation>\n <small>{{ operation.c8y_Command?.text || operation.description }}</small>\n </ng-template>\n <ng-template #timelineItemFooter let-operation>\n <div *ngIf=\"operation.c8y_Command?.text\">\n <div class=\"legend form-block\" translate>Command</div>\n <!-- Keep this in a single line since `pre-text` will preserve all whitespaces in the `pre` tag.-->\n <pre class=\"p-8 text-pre\"><code>{{operation.c8y_Command.text}}</code></pre>\n </div>\n <div *ngIf=\"operation.c8y_Command?.result\">\n <div class=\"legend form-block\" translate>Response</div>\n <!-- Keep this in a single line since `pre-text` will preserve all whitespaces in the `pre` tag.-->\n <pre class=\"p-8 text-pre\"><code>{{operation.c8y_Command.result}}</code></pre>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n" }]
|
|
104
104
|
}], ctorParameters: () => [{ type: i1.DeviceShellService }, { type: i2.OperationRealtimeService }, { type: i2.ManagedObjectRealtimeService }, { type: i3.OperationService }, { type: i4.ActivatedRoute }, { type: i5.BsModalService }, { type: i2.AlertService }] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2aWNlLXNoZWxsL3NoZWxsL3NoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RldmljZS1zaGVsbC9zaGVsbC9zaGVsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUEyQyxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RixPQUFPLEVBQ0wsWUFBWSxFQUNaLE9BQU8sRUFDUCw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBVyxtQkFBbUIsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7QUFPM0YsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsWUFDUyxPQUEyQixFQUMzQixpQkFBMkMsRUFDMUMsVUFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLEtBQXFCLEVBQ3JCLFlBQTRCLEVBQzVCLFlBQTBCO1FBTjNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNC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QUFNLE1BQU0sR0FBRyxtQkFBbUIsS0FBSyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7UUFDL0QsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFN0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXhHVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwyQ0FGcEIsQ0FBQyx3QkFBd0IsRUFBRSw0QkFBNEIsQ0FBQywwQkNuQnJFLHVvSEFtR0E7OzJGRDlFYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBRWpCLENBQUMsd0JBQXdCLEVBQUUsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSU9wZXJhdGlvbiwgSVJlc3VsdExpc3QsIE9wZXJhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gIE9wZXJhdGlvblJlYWx0aW1lU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGluY2x1ZGVzLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBwaXBlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tYW5kVGVtcGxhdGVzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWFuZC10ZW1wbGF0ZXMnO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZERlbGl2ZXJ5VHlwZSwgRGVsaXZlcnlUeXBlLCBEZXZpY2VTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLXNoZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICdzaGVsbC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW09wZXJhdGlvblJlYWx0aW1lU2VydmljZSwgTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGRldmljZTogSU1hbmFnZWRPYmplY3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhO1xuICBkZXZpY2UkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0PiA9IG9mKHt9IGFzIGFueSk7XG4gIGRlbGl2ZXJ5VHlwZXM6IEFycmF5PERlbGl2ZXJ5VHlwZSAmIHsgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ/OiBib29sZWFuIH0+ID0gKFxuICAgIHRoaXMuc2VydmljZS5nZXREZWxpdmVyeVR5cGVzKCkgfHwgW11cbiAgKS5tYXAoZGVsaXZlcnlUeXBlID0+ICh7IC4uLmRlbGl2ZXJ5VHlwZSwgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ6IHRydWUgfSkpO1xuICBjb21tYW5kOiBDb21tYW5kID0ge30gYXMgQ29tbWFuZDtcbiAgc21zRW5hYmxlZCA9IGZhbHNlO1xuICBzZW5kaW5nQ29tbWFuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBvcGVyYXRpb25zOiBJUmVzdWx0TGlzdDxJT3BlcmF0aW9uPjtcbiAgZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgbWFwKChvcGVyYXRpb25zOiBJT3BlcmF0aW9uW10pID0+XG4gICAgICAob3BlcmF0aW9ucyB8fCBbXSkuZmlsdGVyKChvcGVyYXRpb246IElPcGVyYXRpb24pID0+ICEhb3BlcmF0aW9uLmM4eV9Db21tYW5kKVxuICAgIClcbiAgKTtcblxuICBleGVjdXRlVmlhTGFiZWwgPSBnZXR0ZXh0KCdFeGVjdXRlIHZpYSAoe3tkZWxpdmVyeVR5cGV9fSknKTtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBEZXZpY2VTaGVsbFNlcnZpY2UsXG4gICAgcHVibGljIG9wZXJhdGlvblJlYWx0aW1lOiBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb1JlYWx0aW1lOiBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3BlcmF0aW9uU2VydmljZTogT3BlcmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zbXNFbmFibGVkID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmNhblNlbmRDb21tYW5kc1ZpYVNNUygpO1xuXG4gICAgdGhpcy5kZXZpY2UkID0gdGhpcy5tb1JlYWx0aW1lLm9uVXBkYXRlJCh0aGlzLmRldmljZS5pZCkucGlwZShzdGFydFdpdGgodGhpcy5kZXZpY2UpKTtcblxuICAgIHRoaXMub3BlcmF0aW9ucyA9IGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5saXN0KHtcbiAgICAgIGRldmljZUlkOiB0aGlzLmRldmljZS5pZCxcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9Db21tYW5kJyxcbiAgICAgIGRhdGVGcm9tOiBuZXcgRGF0ZSgwKS50b0lTT1N0cmluZygpLFxuICAgICAgZGF0ZVRvOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwYWdlU2l6ZTogNTAsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHJldmVydDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5vcGVyYXRpb25SZWFsdGltZVxuICAgICAgLm9uQ3JlYXRlJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0NvbW1hbmQgc2VudC4nKSkpO1xuXG4gICAgdGhpcy5vcGVyYXRpb25SZWFsdGltZVxuICAgICAgLm9uVXBkYXRlJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIob3AgPT4gb3AuZmFpbHVyZVJlYXNvbiAhPT0gJ09wZXJhdGlvbiBjYW5jZWxsZWQgYnkgdXNlci4nKSwgLy8gYXZvaWQgZHVwbGljYXRlIGFsZXJ0c1xuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0NvbW1hbmQgc3RhdHVzIHVwZGF0ZWQuJykpKTtcbiAgfVxuXG4gIGdldFByZWRlZmluZWRDb21tYW5kKCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmPENvbW1hbmRUZW1wbGF0ZXNDb21wb25lbnQ+ID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhcbiAgICAgIENvbW1hbmRUZW1wbGF0ZXNDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJ1xuICAgICAgfVxuICAgICk7XG4gICAgbW9kYWwuY29udGVudC5vblRlbXBsYXRlU2VsZWN0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLmNvbW1hbmQgPSB7IC4uLihyZXN1bHQgYXMgYW55KS5jb21tYW5kVGVtcGxhdGUgfSBhcyBDb21tYW5kO1xuICAgICAgdGhpcy5kZWxpdmVyeVR5cGVzID0gdGhpcy5kZWxpdmVyeVR5cGVzLm1hcChkZWxpdmVyeVR5cGUgPT4gKHtcbiAgICAgICAgLi4uZGVsaXZlcnlUeXBlLFxuICAgICAgICBpc1N1cHBvcnRlZEJ5Q29tbWFuZDpcbiAgICAgICAgICBpc0VtcHR5KHRoaXMuY29tbWFuZC5kZWxpdmVyeVR5cGVzKSB8fFxuICAgICAgICAgIGluY2x1ZGVzKHRoaXMuY29tbWFuZC5kZWxpdmVyeVR5cGVzLCBkZWxpdmVyeVR5cGUubmFtZSlcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0U3VwcG9ydGVkRGVsaXZlcnlUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGl2ZXJ5VHlwZXMgPSAodGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5VHlwZXMoKSB8fCBbXSkubWFwKGRlbGl2ZXJ5VHlwZSA9PiAoe1xuICAgICAgLi4uZGVsaXZlcnlUeXBlLFxuICAgICAgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGNvbW1hbmREZWxpdmVyeVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB1c2VTTVMgPSBjb21tYW5kRGVsaXZlcnlUeXBlID09PSBDb21tYW5kRGVsaXZlcnlUeXBlLlNNUztcbiAgICBpZiAodXNlU01TICYmICF0aGlzLnNtc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoZ2V0dGV4dCgnU01TIHRyYW5zcG9ydCBpcyBub3QgY29uZmlndXJlZC4nKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VuZGluZ0NvbW1hbmQkLm5leHQodHJ1ZSk7XG5cbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY3JlYXRlQ29tbWFuZE9wZXJhdGlvbih0aGlzLmRldmljZS5pZCwgdGhpcy5jb21tYW5kLCBjb21tYW5kRGVsaXZlcnlUeXBlKTtcblxuICAgIHRoaXMuY29tbWFuZC50ZXh0ID0gJyc7XG4gICAgdGhpcy5jb21tYW5kLm5hbWUgPSAnJztcbiAgICB0aGlzLnJlc2V0U3VwcG9ydGVkRGVsaXZlcnlUeXBlcygpO1xuICAgIHRoaXMuc2VuZGluZ0NvbW1hbmQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxjOHktcmVhbHRpbWUtYnRuIFtzZXJ2aWNlXT1cIm9wZXJhdGlvblJlYWx0aW1lXCI+PC9jOHktcmVhbHRpbWUtYnRuPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlIGQtZ3JpZCBncmlkX19jb2wtLTYtNi0tbWRcIj5cbiAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBkLWZsZXggZC1jb2wgYmctbGV2ZWwtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvciBzdGlja3ktdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxuICAgICAgICB7eyAnQ29tbWFuZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgZC1mbGV4IGQtY29sIGZsZXgtZ3JvdyBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtYi0xNlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ2V0UHJlZGVmaW5lZENvbW1hbmQoKVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidEaXNwbGF5IGEgbGlzdCBvZiBwcmVkZWZpbmVkIGNvbW1hbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgZGF0YS1jeT1cInNoZWxsLS1wcmVkZWZpbmVkLWNvbW1hbmRzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdQcmVkZWZpbmVkIGNvbW1hbmRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICA8ZGV2aWNlLXN0YXR1cyBbbW9dPVwiZGV2aWNlJCB8IGFzeW5jXCI+PC9kZXZpY2Utc3RhdHVzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvbW1hbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlubmVyLXNjcm9sbCBmbGV4LWdyb3cgYmctbGV2ZWwtMiB0ZXh0LW1vbm9zcGFjZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY29tbWFuZC50ZXh0XCJcbiAgICAgICAgZGF0YS1jeT1cInNoZWxsLWNvbXBvbmVudC0tY29tbWFuZHNcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCIkZXZlbnQgfHwgcmVzZXRTdXBwb3J0ZWREZWxpdmVyeVR5cGVzKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdBZGQgY29tbWFuZHMgb3IgdXNlIHByZWRlZmluZWQgY29tbWFuZHMgYWJvdmUuJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGVsaXZlcnlUeXBlIG9mIGRlbGl2ZXJ5VHlwZXNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImRlbGl2ZXJ5VHlwZS5pc1N1cHBvcnRlZEJ5Q29tbWFuZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb21tYW5kPy50ZXh0IHx8IChzZW5kaW5nQ29tbWFuZCQgfCBhc3luYylcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjdXRlKGRlbGl2ZXJ5VHlwZS5uYW1lKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICBkZWxpdmVyeVR5cGUuZGVmYXVsdFxuICAgICAgICAgICAgICAgID8gKCdFeGVjdXRlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6IChleGVjdXRlVmlhTGFiZWwgfCB0cmFuc2xhdGU6IHsgZGVsaXZlcnlUeXBlOiBkZWxpdmVyeVR5cGUubmFtZSB9KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBkZWxpdmVyeVR5cGUuZGVmYXVsdFxuICAgICAgICAgICAgICAgID8gKCdFeGVjdXRlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6IChleGVjdXRlVmlhTGFiZWwgfCB0cmFuc2xhdGU6IHsgZGVsaXZlcnlUeXBlOiBkZWxpdmVyeVR5cGUubmFtZSB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbGFyZ2UtcGFkZGluZyBzZXBhcmF0b3Igc3RpY2t5LXRvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cbiAgICAgICAge3sgJ09wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICA8Yzh5LW9wZXJhdGlvbnMtdGltZWxpbmVcbiAgICAgICAgW29wZXJhdGlvbnNdPVwib3BlcmF0aW9uc1wiXG4gICAgICAgIFtzb3VyY2VJZF09XCJkZXZpY2UuaWRcIlxuICAgICAgICBbZmlsdGVyUGlwZV09XCJmaWx0ZXJQaXBlXCJcbiAgICAgICAgW2JvZHlUZW1wbGF0ZV09XCJ0aW1lbGluZUl0ZW1Cb2R5XCJcbiAgICAgICAgW2Zvb3RlclRlbXBsYXRlc109XCJbdGltZWxpbmVJdGVtRm9vdGVyXVwiXG4gICAgICAgIFtwcm9wZXJ0aWVzVG9IaWRlXT1cIlsnYzh5X0NvbW1hbmQnXVwiXG4gICAgICA+PC9jOHktb3BlcmF0aW9ucy10aW1lbGluZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGltZWxpbmVJdGVtQm9keSBsZXQtb3BlcmF0aW9uPlxuICAgICAgICA8c21hbGw+e3sgb3BlcmF0aW9uLmM4eV9Db21tYW5kPy50ZXh0IHx8IG9wZXJhdGlvbi5kZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICN0aW1lbGluZUl0ZW1Gb290ZXIgbGV0LW9wZXJhdGlvbj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhdGlvbi5jOHlfQ29tbWFuZD8udGV4dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiIHRyYW5zbGF0ZT5Db21tYW5kPC9kaXY+XG4gICAgICAgICAgPHByZSBjbGFzcz1cInAtOCB0ZXh0LXByZS1saW5lXCI+XG4gICAgICAgICAgICAgIDxjb2RlPnt7b3BlcmF0aW9uLmM4eV9Db21tYW5kLnRleHR9fTwvY29kZT5cbiAgICAgICAgICA8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcGVyYXRpb24uYzh5X0NvbW1hbmQ/LnJlc3VsdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiIHRyYW5zbGF0ZT5SZXNwb25zZTwvZGl2PlxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJwLTggdGV4dC1wcmUtbGluZVwiPlxuICAgICAgICAgICAgICA8Y29kZT57e29wZXJhdGlvbi5jOHlfQ29tbWFuZC5yZXN1bHR9fTwvY29kZT5cbiAgICAgICAgICA8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2aWNlLXNoZWxsL3NoZWxsL3NoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RldmljZS1zaGVsbC9zaGVsbC9zaGVsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUEyQyxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RixPQUFPLEVBQ0wsWUFBWSxFQUNaLE9BQU8sRUFDUCw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBVyxtQkFBbUIsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7QUFPM0YsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsWUFDUyxPQUEyQixFQUMzQixpQkFBMkMsRUFDMUMsVUFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLEtBQXFCLEVBQ3JCLFlBQTRCLEVBQzVCLFlBQTBCO1FBTjNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNC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QUFNLE1BQU0sR0FBRyxtQkFBbUIsS0FBSyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7UUFDL0QsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFN0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXhHVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwyQ0FGcEIsQ0FBQyx3QkFBd0IsRUFBRSw0QkFBNEIsQ0FBQywwQkNuQnJFLG15SEFpR0E7OzJGRDVFYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBRWpCLENBQUMsd0JBQXdCLEVBQUUsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSU9wZXJhdGlvbiwgSVJlc3VsdExpc3QsIE9wZXJhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gIE9wZXJhdGlvblJlYWx0aW1lU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGluY2x1ZGVzLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBwaXBlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tYW5kVGVtcGxhdGVzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWFuZC10ZW1wbGF0ZXMnO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZERlbGl2ZXJ5VHlwZSwgRGVsaXZlcnlUeXBlLCBEZXZpY2VTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLXNoZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICdzaGVsbC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW09wZXJhdGlvblJlYWx0aW1lU2VydmljZSwgTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGRldmljZTogSU1hbmFnZWRPYmplY3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhO1xuICBkZXZpY2UkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0PiA9IG9mKHt9IGFzIGFueSk7XG4gIGRlbGl2ZXJ5VHlwZXM6IEFycmF5PERlbGl2ZXJ5VHlwZSAmIHsgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ/OiBib29sZWFuIH0+ID0gKFxuICAgIHRoaXMuc2VydmljZS5nZXREZWxpdmVyeVR5cGVzKCkgfHwgW11cbiAgKS5tYXAoZGVsaXZlcnlUeXBlID0+ICh7IC4uLmRlbGl2ZXJ5VHlwZSwgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ6IHRydWUgfSkpO1xuICBjb21tYW5kOiBDb21tYW5kID0ge30gYXMgQ29tbWFuZDtcbiAgc21zRW5hYmxlZCA9IGZhbHNlO1xuICBzZW5kaW5nQ29tbWFuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBvcGVyYXRpb25zOiBJUmVzdWx0TGlzdDxJT3BlcmF0aW9uPjtcbiAgZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgbWFwKChvcGVyYXRpb25zOiBJT3BlcmF0aW9uW10pID0+XG4gICAgICAob3BlcmF0aW9ucyB8fCBbXSkuZmlsdGVyKChvcGVyYXRpb246IElPcGVyYXRpb24pID0+ICEhb3BlcmF0aW9uLmM4eV9Db21tYW5kKVxuICAgIClcbiAgKTtcblxuICBleGVjdXRlVmlhTGFiZWwgPSBnZXR0ZXh0KCdFeGVjdXRlIHZpYSAoe3tkZWxpdmVyeVR5cGV9fSknKTtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBEZXZpY2VTaGVsbFNlcnZpY2UsXG4gICAgcHVibGljIG9wZXJhdGlvblJlYWx0aW1lOiBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb1JlYWx0aW1lOiBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3BlcmF0aW9uU2VydmljZTogT3BlcmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zbXNFbmFibGVkID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmNhblNlbmRDb21tYW5kc1ZpYVNNUygpO1xuXG4gICAgdGhpcy5kZXZpY2UkID0gdGhpcy5tb1JlYWx0aW1lLm9uVXBkYXRlJCh0aGlzLmRldmljZS5pZCkucGlwZShzdGFydFdpdGgodGhpcy5kZXZpY2UpKTtcblxuICAgIHRoaXMub3BlcmF0aW9ucyA9IGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5saXN0KHtcbiAgICAgIGRldmljZUlkOiB0aGlzLmRldmljZS5pZCxcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9Db21tYW5kJyxcbiAgICAgIGRhdGVGcm9tOiBuZXcgRGF0ZSgwKS50b0lTT1N0cmluZygpLFxuICAgICAgZGF0ZVRvOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwYWdlU2l6ZTogNTAsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHJldmVydDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5vcGVyYXRpb25SZWFsdGltZVxuICAgICAgLm9uQ3JlYXRlJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0NvbW1hbmQgc2VudC4nKSkpO1xuXG4gICAgdGhpcy5vcGVyYXRpb25SZWFsdGltZVxuICAgICAgLm9uVXBkYXRlJCh0aGlzLmRldmljZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIob3AgPT4gb3AuZmFpbHVyZVJlYXNvbiAhPT0gJ09wZXJhdGlvbiBjYW5jZWxsZWQgYnkgdXNlci4nKSwgLy8gYXZvaWQgZHVwbGljYXRlIGFsZXJ0c1xuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0NvbW1hbmQgc3RhdHVzIHVwZGF0ZWQuJykpKTtcbiAgfVxuXG4gIGdldFByZWRlZmluZWRDb21tYW5kKCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmPENvbW1hbmRUZW1wbGF0ZXNDb21wb25lbnQ+ID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhcbiAgICAgIENvbW1hbmRUZW1wbGF0ZXNDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJ1xuICAgICAgfVxuICAgICk7XG4gICAgbW9kYWwuY29udGVudC5vblRlbXBsYXRlU2VsZWN0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLmNvbW1hbmQgPSB7IC4uLihyZXN1bHQgYXMgYW55KS5jb21tYW5kVGVtcGxhdGUgfSBhcyBDb21tYW5kO1xuICAgICAgdGhpcy5kZWxpdmVyeVR5cGVzID0gdGhpcy5kZWxpdmVyeVR5cGVzLm1hcChkZWxpdmVyeVR5cGUgPT4gKHtcbiAgICAgICAgLi4uZGVsaXZlcnlUeXBlLFxuICAgICAgICBpc1N1cHBvcnRlZEJ5Q29tbWFuZDpcbiAgICAgICAgICBpc0VtcHR5KHRoaXMuY29tbWFuZC5kZWxpdmVyeVR5cGVzKSB8fFxuICAgICAgICAgIGluY2x1ZGVzKHRoaXMuY29tbWFuZC5kZWxpdmVyeVR5cGVzLCBkZWxpdmVyeVR5cGUubmFtZSlcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0U3VwcG9ydGVkRGVsaXZlcnlUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGl2ZXJ5VHlwZXMgPSAodGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5VHlwZXMoKSB8fCBbXSkubWFwKGRlbGl2ZXJ5VHlwZSA9PiAoe1xuICAgICAgLi4uZGVsaXZlcnlUeXBlLFxuICAgICAgaXNTdXBwb3J0ZWRCeUNvbW1hbmQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGNvbW1hbmREZWxpdmVyeVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB1c2VTTVMgPSBjb21tYW5kRGVsaXZlcnlUeXBlID09PSBDb21tYW5kRGVsaXZlcnlUeXBlLlNNUztcbiAgICBpZiAodXNlU01TICYmICF0aGlzLnNtc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoZ2V0dGV4dCgnU01TIHRyYW5zcG9ydCBpcyBub3QgY29uZmlndXJlZC4nKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VuZGluZ0NvbW1hbmQkLm5leHQodHJ1ZSk7XG5cbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY3JlYXRlQ29tbWFuZE9wZXJhdGlvbih0aGlzLmRldmljZS5pZCwgdGhpcy5jb21tYW5kLCBjb21tYW5kRGVsaXZlcnlUeXBlKTtcblxuICAgIHRoaXMuY29tbWFuZC50ZXh0ID0gJyc7XG4gICAgdGhpcy5jb21tYW5kLm5hbWUgPSAnJztcbiAgICB0aGlzLnJlc2V0U3VwcG9ydGVkRGVsaXZlcnlUeXBlcygpO1xuICAgIHRoaXMuc2VuZGluZ0NvbW1hbmQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxjOHktcmVhbHRpbWUtYnRuIFtzZXJ2aWNlXT1cIm9wZXJhdGlvblJlYWx0aW1lXCI+PC9jOHktcmVhbHRpbWUtYnRuPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlIGQtZ3JpZCBncmlkX19jb2wtLTYtNi0tbWRcIj5cbiAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBkLWZsZXggZC1jb2wgYmctbGV2ZWwtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvciBzdGlja3ktdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxuICAgICAgICB7eyAnQ29tbWFuZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgZC1mbGV4IGQtY29sIGZsZXgtZ3JvdyBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtYi0xNlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ2V0UHJlZGVmaW5lZENvbW1hbmQoKVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidEaXNwbGF5IGEgbGlzdCBvZiBwcmVkZWZpbmVkIGNvbW1hbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgZGF0YS1jeT1cInNoZWxsLS1wcmVkZWZpbmVkLWNvbW1hbmRzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdQcmVkZWZpbmVkIGNvbW1hbmRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICA8ZGV2aWNlLXN0YXR1cyBbbW9dPVwiZGV2aWNlJCB8IGFzeW5jXCI+PC9kZXZpY2Utc3RhdHVzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvbW1hbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlubmVyLXNjcm9sbCBmbGV4LWdyb3cgYmctbGV2ZWwtMiB0ZXh0LW1vbm9zcGFjZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY29tbWFuZC50ZXh0XCJcbiAgICAgICAgZGF0YS1jeT1cInNoZWxsLWNvbXBvbmVudC0tY29tbWFuZHNcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCIkZXZlbnQgfHwgcmVzZXRTdXBwb3J0ZWREZWxpdmVyeVR5cGVzKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdBZGQgY29tbWFuZHMgb3IgdXNlIHByZWRlZmluZWQgY29tbWFuZHMgYWJvdmUuJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGVsaXZlcnlUeXBlIG9mIGRlbGl2ZXJ5VHlwZXNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImRlbGl2ZXJ5VHlwZS5pc1N1cHBvcnRlZEJ5Q29tbWFuZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb21tYW5kPy50ZXh0IHx8IChzZW5kaW5nQ29tbWFuZCQgfCBhc3luYylcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjdXRlKGRlbGl2ZXJ5VHlwZS5uYW1lKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICBkZWxpdmVyeVR5cGUuZGVmYXVsdFxuICAgICAgICAgICAgICAgID8gKCdFeGVjdXRlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6IChleGVjdXRlVmlhTGFiZWwgfCB0cmFuc2xhdGU6IHsgZGVsaXZlcnlUeXBlOiBkZWxpdmVyeVR5cGUubmFtZSB9KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBkZWxpdmVyeVR5cGUuZGVmYXVsdFxuICAgICAgICAgICAgICAgID8gKCdFeGVjdXRlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6IChleGVjdXRlVmlhTGFiZWwgfCB0cmFuc2xhdGU6IHsgZGVsaXZlcnlUeXBlOiBkZWxpdmVyeVR5cGUubmFtZSB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbGFyZ2UtcGFkZGluZyBzZXBhcmF0b3Igc3RpY2t5LXRvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cbiAgICAgICAge3sgJ09wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICA8Yzh5LW9wZXJhdGlvbnMtdGltZWxpbmVcbiAgICAgICAgW29wZXJhdGlvbnNdPVwib3BlcmF0aW9uc1wiXG4gICAgICAgIFtzb3VyY2VJZF09XCJkZXZpY2UuaWRcIlxuICAgICAgICBbZmlsdGVyUGlwZV09XCJmaWx0ZXJQaXBlXCJcbiAgICAgICAgW2JvZHlUZW1wbGF0ZV09XCJ0aW1lbGluZUl0ZW1Cb2R5XCJcbiAgICAgICAgW2Zvb3RlclRlbXBsYXRlc109XCJbdGltZWxpbmVJdGVtRm9vdGVyXVwiXG4gICAgICAgIFtwcm9wZXJ0aWVzVG9IaWRlXT1cIlsnYzh5X0NvbW1hbmQnXVwiXG4gICAgICA+PC9jOHktb3BlcmF0aW9ucy10aW1lbGluZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGltZWxpbmVJdGVtQm9keSBsZXQtb3BlcmF0aW9uPlxuICAgICAgICA8c21hbGw+e3sgb3BlcmF0aW9uLmM4eV9Db21tYW5kPy50ZXh0IHx8IG9wZXJhdGlvbi5kZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICN0aW1lbGluZUl0ZW1Gb290ZXIgbGV0LW9wZXJhdGlvbj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhdGlvbi5jOHlfQ29tbWFuZD8udGV4dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiIHRyYW5zbGF0ZT5Db21tYW5kPC9kaXY+XG4gICAgICAgICAgPCEtLSBLZWVwIHRoaXMgaW4gYSBzaW5nbGUgbGluZSBzaW5jZSBgcHJlLXRleHRgIHdpbGwgcHJlc2VydmUgYWxsIHdoaXRlc3BhY2VzIGluIHRoZSBgcHJlYCB0YWcuLS0+XG4gICAgICAgICAgPHByZSBjbGFzcz1cInAtOCB0ZXh0LXByZVwiPjxjb2RlPnt7b3BlcmF0aW9uLmM4eV9Db21tYW5kLnRleHR9fTwvY29kZT48L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcGVyYXRpb24uYzh5X0NvbW1hbmQ/LnJlc3VsdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiIHRyYW5zbGF0ZT5SZXNwb25zZTwvZGl2PlxuICAgICAgICAgIDwhLS0gS2VlcCB0aGlzIGluIGEgc2luZ2xlIGxpbmUgc2luY2UgYHByZS10ZXh0YCB3aWxsIHByZXNlcnZlIGFsbCB3aGl0ZXNwYWNlcyBpbiB0aGUgYHByZWAgdGFnLi0tPlxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJwLTggdGV4dC1wcmVcIj48Y29kZT57e29wZXJhdGlvbi5jOHlfQ29tbWFuZC5yZXN1bHR9fTwvY29kZT48L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -38,9 +38,10 @@ export class ConfigurationDetailComponent {
|
|
|
38
38
|
}
|
|
39
39
|
async ngOnInit() {
|
|
40
40
|
this.configs = await this.repositoryService.listRepositoryEntries(RepositoryType.CONFIGURATION);
|
|
41
|
-
if (this.
|
|
41
|
+
if (this.mo) {
|
|
42
42
|
this.uploadChoice = this.binary.file ? 'uploadBinary' : 'uploadUrl';
|
|
43
43
|
this.existingBinary = this.binary.file;
|
|
44
|
+
this.configurationTypeMO = this.mo;
|
|
44
45
|
}
|
|
45
46
|
this.setPipe('');
|
|
46
47
|
this.submitButtonTitle = this.mo.id
|
|
@@ -82,11 +83,17 @@ export class ConfigurationDetailComponent {
|
|
|
82
83
|
async save() {
|
|
83
84
|
try {
|
|
84
85
|
this.saving = true;
|
|
85
|
-
const {
|
|
86
|
+
const { version, description, binary, deviceType } = this;
|
|
86
87
|
if (this.existingBinary === this.binary.file) {
|
|
87
88
|
binary.file = undefined;
|
|
88
89
|
}
|
|
89
|
-
await this.repositoryService.create({
|
|
90
|
+
await this.repositoryService.create({
|
|
91
|
+
version,
|
|
92
|
+
description,
|
|
93
|
+
binary,
|
|
94
|
+
deviceType,
|
|
95
|
+
configurationType: this.configurationTypeMO?.configurationType
|
|
96
|
+
}, RepositoryType.CONFIGURATION, this.mo);
|
|
90
97
|
this.alert.success(this.mo.id ? gettext('Configuration updated.') : gettext('Configuration created.'));
|
|
91
98
|
this.bsModalRef.hide();
|
|
92
99
|
this._save();
|
|
@@ -100,13 +107,13 @@ export class ConfigurationDetailComponent {
|
|
|
100
107
|
}
|
|
101
108
|
}
|
|
102
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ConfigurationDetailComponent, deps: [{ token: i1.RepositoryService }, { token: i2.BsModalRef }, { token: i3.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: ConfigurationDetailComponent, selector: "c8y-configuration-detail", viewQueries: [{ propertyName: "configurationForm", first: true, predicate: ["configurationForm"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: ConfigurationDetailComponent, selector: "c8y-configuration-detail", viewQueries: [{ propertyName: "configurationForm", first: true, predicate: ["configurationForm"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div\n class=\"modal-header dialog-header\"\n id=\"configurationModalTitle\"\n >\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4\n id=\"modal-title\"\n translate\n *ngIf=\"mo.id\"\n >\n Update configuration\n </h4>\n <h4\n id=\"modal-title\"\n translate\n *ngIf=\"!mo.id\"\n >\n Add configuration\n </h4>\n </div>\n\n <form\n class=\"d-contents\"\n #configurationForm=\"ngForm\"\n (ngSubmit)=\"configurationForm.form.valid && save()\"\n >\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <div\n class=\"modal-body\"\n id=\"configurationModalDescription\"\n >\n <c8y-form-group>\n <label translate>Name</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n name=\"version\"\n type=\"text\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n name=\"deviceType\"\n type=\"text\"\n autocomplete=\"off\"\n maxlength=\"254\"\n [(ngModel)]=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n name=\"description\"\n type=\"text\"\n autocomplete=\"off\"\n maxlength=\"254\"\n [(ngModel)]=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n name=\"confType\"\n [(ngModel)]=\"configurationTypeMO\"\n maxlength=\"254\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n (click)=\"configurationTypeMO = config; setPipe('')\"\n [active]=\"configurationTypeMO === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-level-2 p-8\"\n *ngIf=\"pattern.length > 0\"\n >\n <span translate>No match found.</span>\n <button\n class=\"btn btn-primary btn-xs m-l-8\"\n title=\"{{ 'Add new`configuration type`' | translate }}\"\n type=\"button\"\n translate\n >\n Add new`configuration type`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div\n class=\"legend form-block m-t-40\"\n translate\n >\n Configuration file\n </div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n [fileUrlPopover]=\"textForConfigurationUrlPopover\"\n ></c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ submitButtonTitle | translate }}\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i3.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i3.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.FilePickerComponent, selector: "c8y-file-picker", inputs: ["maxAllowedFiles", "uploadChoice", "fileUrl", "fileBinary", "config", "filePickerIndex", "fileUrlPopover"], outputs: ["onFilesPicked"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
104
111
|
}
|
|
105
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ConfigurationDetailComponent, decorators: [{
|
|
106
113
|
type: Component,
|
|
107
|
-
args: [{ selector: 'c8y-configuration-detail', template: "<div class=\"viewport-modal\">\n <div
|
|
114
|
+
args: [{ selector: 'c8y-configuration-detail', template: "<div class=\"viewport-modal\">\n <div\n class=\"modal-header dialog-header\"\n id=\"configurationModalTitle\"\n >\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4\n id=\"modal-title\"\n translate\n *ngIf=\"mo.id\"\n >\n Update configuration\n </h4>\n <h4\n id=\"modal-title\"\n translate\n *ngIf=\"!mo.id\"\n >\n Add configuration\n </h4>\n </div>\n\n <form\n class=\"d-contents\"\n #configurationForm=\"ngForm\"\n (ngSubmit)=\"configurationForm.form.valid && save()\"\n >\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <div\n class=\"modal-body\"\n id=\"configurationModalDescription\"\n >\n <c8y-form-group>\n <label translate>Name</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n name=\"version\"\n type=\"text\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n name=\"deviceType\"\n type=\"text\"\n autocomplete=\"off\"\n maxlength=\"254\"\n [(ngModel)]=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n name=\"description\"\n type=\"text\"\n autocomplete=\"off\"\n maxlength=\"254\"\n [(ngModel)]=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n name=\"confType\"\n [(ngModel)]=\"configurationTypeMO\"\n maxlength=\"254\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n (click)=\"configurationTypeMO = config; setPipe('')\"\n [active]=\"configurationTypeMO === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-level-2 p-8\"\n *ngIf=\"pattern.length > 0\"\n >\n <span translate>No match found.</span>\n <button\n class=\"btn btn-primary btn-xs m-l-8\"\n title=\"{{ 'Add new`configuration type`' | translate }}\"\n type=\"button\"\n translate\n >\n Add new`configuration type`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div\n class=\"legend form-block m-t-40\"\n translate\n >\n Configuration file\n </div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n [fileUrlPopover]=\"textForConfigurationUrlPopover\"\n ></c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ submitButtonTitle | translate }}\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n" }]
|
|
108
115
|
}], ctorParameters: () => [{ type: i1.RepositoryService }, { type: i2.BsModalRef }, { type: i3.AlertService }], propDecorators: { configurationForm: [{
|
|
109
116
|
type: ViewChild,
|
|
110
117
|
args: ['configurationForm', { static: true }]
|
|
111
118
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uL2xpc3QvY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uL2xpc3QvY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsY0FBYyxFQUNmLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBTXJDLE1BQU0sT0FBTyw0QkFBNEI7SUFtQ3ZDLFlBQ1UsaUJBQW9DLEVBQ3BDLFVBQXNCLEVBQ3RCLEtBQW1CO1FBRm5CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBakM3QixXQUFNLEdBQWtDO1lBQ3RDLElBQUksRUFBRSxTQUFTO1lBQ2YsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBR0YsWUFBTyxHQUFHLEVBQUUsQ0FB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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBGb3JPZkZpbHRlclBpcGUsIGdldHRleHQsIFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBNb2RhbE1vZGVsLFxuICBSZXBvc2l0b3J5U2VydmljZSxcbiAgUmVwb3NpdG9yeVR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5L3NoYXJlZCc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWNvbmZpZ3VyYXRpb24tZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyYXRpb24tZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgTW9kYWxNb2RlbCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpZ3VyYXRpb25Gb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgY29uZmlndXJhdGlvbkZvcm06IE5nRm9ybTtcbiAgc2VsZWN0ZWQ6IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGJpbmFyeTogeyBmaWxlPzogRmlsZTsgdXJsPzogc3RyaW5nIH0gPSB7XG4gICAgZmlsZTogdW5kZWZpbmVkLFxuICAgIHVybDogdW5kZWZpbmVkXG4gIH07XG4gIGRldmljZVR5cGU6IHN0cmluZztcblxuICBwYXR0ZXJuID0gJyc7XG4gIGZpbHRlclBpcGU6IEZvck9mRmlsdGVyUGlwZTtcbiAgY29uZmlncztcbiAgbW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+ID0ge307XG4gIHNhdmluZyA9IGZhbHNlO1xuICB1cGxvYWRDaG9pY2U6ICd1cGxvYWRCaW5hcnknIHwgJ3VwbG9hZFVybCcgPSAndXBsb2FkQmluYXJ5JztcbiAgZXhpc3RpbmdCaW5hcnk6IEZpbGU7XG4gIHN1Ym1pdEJ1dHRvblRpdGxlOiBzdHJpbmc7XG4gIHRleHRGb3JDb25maWd1cmF0aW9uVXJsUG9wb3Zlcjogc3RyaW5nID1cbiAgICBnZXR0ZXh0KGBQYXRoIGZvciBiaW5hcmllcyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gZGV2aWNlIGFnZW50IGltcGxlbWVudGF0aW9uLCBmb3IgZXhhbXBsZTpcbiAgICAvY29uZmlndXJhdGlvbi9iaW5hcmllcy9jb25maWd1cmF0aW9uMS5iaW5cbiAgICBodHRwczovL2NvbmZpZ3VyYXRpb24vYmluYXJ5LzEyM1xuICAgIGZ0cDovL2NvbmZpZ3VyYXRpb24vYmluYXJ5LzEyMy50YXIuZ3pcbiAgICBDb25maWd1cmF0aW9ucyB3aXRoIGV4dGVybmFsIFVSTHMgb25seSB3b3JrIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gdHlwZWQgZGV2aWNlcyAoZmlsZS1iYXNlZCBjb25maWd1cmF0aW9uKSwgbm90IHdpdGggZGV2aWNlcyB3aXRoIGEgbGVnYWN5IGNvbmZpZ3VyYXRpb24uXG4gIGApO1xuXG4gIHJlc3VsdDogUHJvbWlzZTx2b2lkPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9zYXZlID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9jYW5jZWwgPSByZWplY3Q7XG4gIH0pO1xuXG4gIHByaXZhdGUgX3NhdmU7XG4gIHByaXZhdGUgX2NhbmNlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbmZpZ3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmxpc3RSZXBvc2l0b3J5RW50cmllcyhSZXBvc2l0b3J5VHlwZS5DT05GSUdVUkFUSU9OKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy51cGxvYWRDaG9pY2UgPSB0aGlzLmJpbmFyeS5maWxlID8gJ3VwbG9hZEJpbmFyeScgOiAndXBsb2FkVXJsJztcbiAgICAgIHRoaXMuZXhpc3RpbmdCaW5hcnkgPSB0aGlzLmJpbmFyeS5maWxlO1xuICAgIH1cbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICAgIHRoaXMuc3VibWl0QnV0dG9uVGl0bGUgPSB0aGlzLm1vLmlkXG4gICAgICA/IGdldHRleHQoJ1VwZGF0ZSBjb25maWd1cmF0aW9uJylcbiAgICAgIDogZ2V0dGV4dCgnQWRkIGNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuX2NhbmNlbCgpO1xuICB9XG5cbiAgc2V0UGlwZShmaWx0ZXJTdHI6IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IGZpbHRlclN0cjtcbiAgICB0aGlzLmZpbHRlclBpcGUgPSBwaXBlKFxuICAgICAgbWFwKGRhdGEgPT4gdW5pcUJ5KGRhdGEsICdjb25maWd1cmF0aW9uVHlwZScpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZmlsdGVyKFxuICAgICAgICAgIG1vID0+XG4gICAgICAgICAgICBtby5jb25maWd1cmF0aW9uVHlwZSAmJlxuICAgICAgICAgICAgbW8uY29uZmlndXJhdGlvblR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkZpbGUoZHJvcHBlZDogUGlja2VkRmlsZXMpIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25Gb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGRyb3BwZWQudXJsKSkge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIHVybDogZHJvcHBlZC51cmxcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChkcm9wcGVkLmRyb3BwZWRGaWxlcykge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIGZpbGU6IGRyb3BwZWQuZHJvcHBlZEZpbGVzWzBdLmZpbGVcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICAgIHVybDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZlcnNpb24sIGRlc2NyaXB0aW9uLCBiaW5hcnksIGRldmljZVR5cGUgfSA9IHRoaXM7XG4gICAgICBpZiAodGhpcy5leGlzdGluZ0JpbmFyeSA9PT0gdGhpcy5iaW5hcnkuZmlsZSkge1xuICAgICAgICBiaW5hcnkuZmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuY3JlYXRlKFxuICAgICAgICB7IHNlbGVjdGVkLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbiwgYmluYXJ5LCBkZXZpY2VUeXBlIH0sXG4gICAgICAgIFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04sXG4gICAgICAgIHRoaXMubW9cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoXG4gICAgICAgIHRoaXMubW8uaWQgPyBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIHVwZGF0ZWQuJykgOiBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIGNyZWF0ZWQuJylcbiAgICAgICk7XG4gICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgdGhpcy5fc2F2ZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgdGhpcy5fY2FuY2VsKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlld3BvcnQtbW9kYWxcIj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBkaWFsb2ctaGVhZGVyXCIgaWQ9XCJjb25maWd1cmF0aW9uTW9kYWxUaXRsZVwiPlxuICAgIDxpIFtjOHlJY29uXT1cIidjb2dzJ1wiPjwvaT5cbiAgICA8aDQgaWQ9XCJtb2RhbC10aXRsZVwiIHRyYW5zbGF0ZSAqbmdJZj1cIm1vLmlkXCI+VXBkYXRlIGNvbmZpZ3VyYXRpb248L2g0PlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCIgdHJhbnNsYXRlICpuZ0lmPVwiIW1vLmlkXCI+QWRkIGNvbmZpZ3VyYXRpb248L2g0PlxuICA8L2Rpdj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgI2NvbmZpZ3VyYXRpb25Gb3JtPVwibmdGb3JtXCJcbiAgICAobmdTdWJtaXQpPVwiY29uZmlndXJhdGlvbkZvcm0uZm9ybS52YWxpZCAmJiBzYXZlKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWlubmVyLXNjcm9sbFwiIGlkPVwibW9kYWwtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiBpZD1cImNvbmZpZ3VyYXRpb25Nb2RhbERlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPk5hbWU8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gaG9zdHNcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2ZXJzaW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJ2ZXJzaW9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkRldmljZSB0eXBlPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IGM4eV9MaW51eFwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTRcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGV2aWNlVHlwZVwiXG4gICAgICAgICAgICBuYW1lPVwiZGV2aWNlVHlwZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIEhvc3QgY29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfX0gYzh5X0xpbnV4XCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+Q29uZmlndXJhdGlvbiB0eXBlPC9sYWJlbD5cbiAgICAgICAgICA8Yzh5LXR5cGVhaGVhZFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBuYW1lPVwiY29uZlR5cGVcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gc3NoXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NFwiXG4gICAgICAgICAgICAob25TZWFyY2gpPVwic2V0UGlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0eT1cImNvbmZpZ3VyYXRpb25UeXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgICAgICpjOHlGb3I9XCJsZXQgY29uZmlnIG9mIGNvbmZpZ3M7IHBpcGU6IGZpbHRlclBpcGU7IG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGlua1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZCA9IGNvbmZpZzsgc2V0UGlwZSgnJylcIlxuICAgICAgICAgICAgICBbYWN0aXZlXT1cInNlbGVjdGVkID09PSBjb25maWdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cImNvbmZpZy5jb25maWd1cmF0aW9uVHlwZSB8fCAnLS0nXCJcbiAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RGb3VuZFRlbXBsYXRlPlxuICAgICAgICAgICAgICA8Yzh5LWxpIGNsYXNzPVwiYmctbGV2ZWwtMiBwLThcIiAqbmdJZj1cInBhdHRlcm4ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5ObyBtYXRjaCBmb3VuZC48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIG5ld2Bjb25maWd1cmF0aW9uIHR5cGVgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi14cyBtLWwtOFwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBBZGQgbmV3YGNvbmZpZ3VyYXRpb24gdHlwZWBcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrIG0tdC00MFwiIHRyYW5zbGF0ZT5Db25maWd1cmF0aW9uIGZpbGU8L2Rpdj5cbiAgICAgICAgICA8Yzh5LWZpbGUtcGlja2VyXG4gICAgICAgICAgICBbbWF4QWxsb3dlZEZpbGVzXT1cIjFcIlxuICAgICAgICAgICAgKG9uRmlsZXNQaWNrZWQpPVwib25GaWxlKCRldmVudClcIlxuICAgICAgICAgICAgW3VwbG9hZENob2ljZV09XCJ1cGxvYWRDaG9pY2VcIlxuICAgICAgICAgICAgW2ZpbGVVcmxdPVwiYmluYXJ5LnVybFwiXG4gICAgICAgICAgICBbZmlsZUJpbmFyeV09XCJiaW5hcnkuZmlsZVwiXG4gICAgICAgICAgICBbZmlsZVVybFBvcG92ZXJdPVwidGV4dEZvckNvbmZpZ3VyYXRpb25VcmxQb3BvdmVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9jOHktZmlsZS1waWNrZXI+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzYXZpbmdcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiB0cmFuc2xhdGU+Q2FuY2VsPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIHRpdGxlPVwie3sgc3VibWl0QnV0dG9uVGl0bGUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IHNhdmluZyB9XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICFjb25maWd1cmF0aW9uRm9ybS52YWxpZCB8fFxuICAgICAgICAgIGNvbmZpZ3VyYXRpb25Gb3JtLnByaXN0aW5lIHx8XG4gICAgICAgICAgKCFiaW5hcnk/LnVybCAmJiAhYmluYXJ5Py5maWxlKSB8fFxuICAgICAgICAgIHNhdmluZ1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBzdWJtaXRCdXR0b25UaXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uL2xpc3QvY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uL2xpc3QvY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsY0FBYyxFQUNmLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBTXJDLE1BQU0sT0FBTyw0QkFBNEI7SUFtQ3ZDLFlBQ1UsaUJBQW9DLEVBQ3BDLFVBQXNCLEVBQ3RCLEtBQW1CO1FBRm5CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBbEM3QixXQUFNLEdBQWtDO1lBQ3RDLElBQUksRUFBRSxTQUFTO1lBQ2YsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBSUYsWUFBTyxHQUFHLEVBQUUsQ0FB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OzsyRkQvSWEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDBCQUEwQjswSUFJYyxpQkFBaUI7c0JBQWxFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBGb3JPZkZpbHRlclBpcGUsIFBpY2tlZEZpbGVzLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBNb2RhbE1vZGVsLFxuICBSZXBvc2l0b3J5U2VydmljZSxcbiAgUmVwb3NpdG9yeVR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5L3NoYXJlZCc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWNvbmZpZ3VyYXRpb24tZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyYXRpb24tZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgTW9kYWxNb2RlbCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpZ3VyYXRpb25Gb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgY29uZmlndXJhdGlvbkZvcm06IE5nRm9ybTtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBiaW5hcnk6IHsgZmlsZT86IEZpbGU7IHVybD86IHN0cmluZyB9ID0ge1xuICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICB1cmw6IHVuZGVmaW5lZFxuICB9O1xuICBkZXZpY2VUeXBlOiBzdHJpbmc7XG4gIGNvbmZpZ3VyYXRpb25UeXBlTU86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+O1xuXG4gIHBhdHRlcm4gPSAnJztcbiAgZmlsdGVyUGlwZTogRm9yT2ZGaWx0ZXJQaXBlO1xuICBjb25maWdzO1xuICBtbzogUGFydGlhbDxJTWFuYWdlZE9iamVjdD4gPSB7fTtcbiAgc2F2aW5nID0gZmFsc2U7XG4gIHVwbG9hZENob2ljZTogJ3VwbG9hZEJpbmFyeScgfCAndXBsb2FkVXJsJyA9ICd1cGxvYWRCaW5hcnknO1xuICBleGlzdGluZ0JpbmFyeTogRmlsZTtcbiAgc3VibWl0QnV0dG9uVGl0bGU6IHN0cmluZztcbiAgdGV4dEZvckNvbmZpZ3VyYXRpb25VcmxQb3BvdmVyOiBzdHJpbmcgPVxuICAgIGdldHRleHQoYFBhdGggZm9yIGJpbmFyaWVzIGNhbiB2YXJ5IGRlcGVuZGluZyBvbiBkZXZpY2UgYWdlbnQgaW1wbGVtZW50YXRpb24sIGZvciBleGFtcGxlOlxuICAgIC9jb25maWd1cmF0aW9uL2JpbmFyaWVzL2NvbmZpZ3VyYXRpb24xLmJpblxuICAgIGh0dHBzOi8vY29uZmlndXJhdGlvbi9iaW5hcnkvMTIzXG4gICAgZnRwOi8vY29uZmlndXJhdGlvbi9iaW5hcnkvMTIzLnRhci5nelxuICAgIENvbmZpZ3VyYXRpb25zIHdpdGggZXh0ZXJuYWwgVVJMcyBvbmx5IHdvcmsgd2l0aCB0aGUgY29uZmlndXJhdGlvbiB0eXBlZCBkZXZpY2VzIChmaWxlLWJhc2VkIGNvbmZpZ3VyYXRpb24pLCBub3Qgd2l0aCBkZXZpY2VzIHdpdGggYSBsZWdhY3kgY29uZmlndXJhdGlvbi5cbiAgYCk7XG5cbiAgcmVzdWx0OiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRoaXMuX3NhdmUgPSByZXNvbHZlO1xuICAgIHRoaXMuX2NhbmNlbCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfc2F2ZTtcbiAgcHJpdmF0ZSBfY2FuY2VsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeVNlcnZpY2U6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZixcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZmlncyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04pO1xuICAgIGlmICh0aGlzLm1vKSB7XG4gICAgICB0aGlzLnVwbG9hZENob2ljZSA9IHRoaXMuYmluYXJ5LmZpbGUgPyAndXBsb2FkQmluYXJ5JyA6ICd1cGxvYWRVcmwnO1xuICAgICAgdGhpcy5leGlzdGluZ0JpbmFyeSA9IHRoaXMuYmluYXJ5LmZpbGU7XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25UeXBlTU8gPSB0aGlzLm1vO1xuICAgIH1cbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICAgIHRoaXMuc3VibWl0QnV0dG9uVGl0bGUgPSB0aGlzLm1vLmlkXG4gICAgICA/IGdldHRleHQoJ1VwZGF0ZSBjb25maWd1cmF0aW9uJylcbiAgICAgIDogZ2V0dGV4dCgnQWRkIGNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuX2NhbmNlbCgpO1xuICB9XG5cbiAgc2V0UGlwZShmaWx0ZXJTdHI6IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IGZpbHRlclN0cjtcbiAgICB0aGlzLmZpbHRlclBpcGUgPSBwaXBlKFxuICAgICAgbWFwKGRhdGEgPT4gdW5pcUJ5KGRhdGEsICdjb25maWd1cmF0aW9uVHlwZScpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZmlsdGVyKFxuICAgICAgICAgIG1vID0+XG4gICAgICAgICAgICBtby5jb25maWd1cmF0aW9uVHlwZSAmJlxuICAgICAgICAgICAgbW8uY29uZmlndXJhdGlvblR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkZpbGUoZHJvcHBlZDogUGlja2VkRmlsZXMpIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25Gb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGRyb3BwZWQudXJsKSkge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIHVybDogZHJvcHBlZC51cmxcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChkcm9wcGVkLmRyb3BwZWRGaWxlcykge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIGZpbGU6IGRyb3BwZWQuZHJvcHBlZEZpbGVzWzBdLmZpbGVcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICAgIHVybDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHsgdmVyc2lvbiwgZGVzY3JpcHRpb24sIGJpbmFyeSwgZGV2aWNlVHlwZSB9ID0gdGhpcztcbiAgICAgIGlmICh0aGlzLmV4aXN0aW5nQmluYXJ5ID09PSB0aGlzLmJpbmFyeS5maWxlKSB7XG4gICAgICAgIGJpbmFyeS5maWxlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5jcmVhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgIGJpbmFyeSxcbiAgICAgICAgICBkZXZpY2VUeXBlLFxuICAgICAgICAgIGNvbmZpZ3VyYXRpb25UeXBlOiB0aGlzLmNvbmZpZ3VyYXRpb25UeXBlTU8/LmNvbmZpZ3VyYXRpb25UeXBlXG4gICAgICAgIH0sXG4gICAgICAgIFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04sXG4gICAgICAgIHRoaXMubW9cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoXG4gICAgICAgIHRoaXMubW8uaWQgPyBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIHVwZGF0ZWQuJykgOiBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIGNyZWF0ZWQuJylcbiAgICAgICk7XG4gICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgdGhpcy5fc2F2ZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgdGhpcy5fY2FuY2VsKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlld3BvcnQtbW9kYWxcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIlxuICAgIGlkPVwiY29uZmlndXJhdGlvbk1vZGFsVGl0bGVcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiJ2NvZ3MnXCI+PC9pPlxuICAgIDxoNFxuICAgICAgaWQ9XCJtb2RhbC10aXRsZVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICAgICpuZ0lmPVwibW8uaWRcIlxuICAgID5cbiAgICAgIFVwZGF0ZSBjb25maWd1cmF0aW9uXG4gICAgPC9oND5cbiAgICA8aDRcbiAgICAgIGlkPVwibW9kYWwtdGl0bGVcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgICAqbmdJZj1cIiFtby5pZFwiXG4gICAgPlxuICAgICAgQWRkIGNvbmZpZ3VyYXRpb25cbiAgICA8L2g0PlxuICA8L2Rpdj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgI2NvbmZpZ3VyYXRpb25Gb3JtPVwibmdGb3JtXCJcbiAgICAobmdTdWJtaXQpPVwiY29uZmlndXJhdGlvbkZvcm0uZm9ybS52YWxpZCAmJiBzYXZlKClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtb2RhbC1pbm5lci1zY3JvbGxcIlxuICAgICAgaWQ9XCJtb2RhbC1ib2R5XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibW9kYWwtYm9keVwiXG4gICAgICAgIGlkPVwiY29uZmlndXJhdGlvbk1vZGFsRGVzY3JpcHRpb25cIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5OYW1lPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IGhvc3RzXCJcbiAgICAgICAgICAgIG5hbWU9XCJ2ZXJzaW9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmVyc2lvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5EZXZpY2UgdHlwZTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSBjOHlfTGludXhcIlxuICAgICAgICAgICAgbmFtZT1cImRldmljZVR5cGVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRldmljZVR5cGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+RGVzY3JpcHRpb248L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiBIb3N0IGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlIH19IGM4eV9MaW51eFwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkNvbmZpZ3VyYXRpb24gdHlwZTwvbGFiZWw+XG4gICAgICAgICAgPGM4eS10eXBlYWhlYWRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IHNzaFwiXG4gICAgICAgICAgICBuYW1lPVwiY29uZlR5cGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWd1cmF0aW9uVHlwZU1PXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NFwiXG4gICAgICAgICAgICAob25TZWFyY2gpPVwic2V0UGlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0eT1cImNvbmZpZ3VyYXRpb25UeXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1sLTggcC1yLTggYzh5LWxpc3RfX2l0ZW0tLWxpbmtcIlxuICAgICAgICAgICAgICAqYzh5Rm9yPVwibGV0IGNvbmZpZyBvZiBjb25maWdzOyBwaXBlOiBmaWx0ZXJQaXBlOyBub3RGb3VuZDogbm90Rm91bmRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb25maWd1cmF0aW9uVHlwZU1PID0gY29uZmlnOyBzZXRQaXBlKCcnKVwiXG4gICAgICAgICAgICAgIFthY3RpdmVdPVwiY29uZmlndXJhdGlvblR5cGVNTyA9PT0gY29uZmlnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGM4eS1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJjb25maWcuY29uZmlndXJhdGlvblR5cGUgfHwgJy0tJ1wiXG4gICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGM4eS1saVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctbGV2ZWwtMiBwLThcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwicGF0dGVybi5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5ObyBtYXRjaCBmb3VuZC48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXhzIG0tbC04XCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBuZXdgY29uZmlndXJhdGlvbiB0eXBlYCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBBZGQgbmV3YGNvbmZpZ3VyYXRpb24gdHlwZWBcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBtLXQtNDBcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBmaWxlXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGM4eS1maWxlLXBpY2tlclxuICAgICAgICAgICAgW21heEFsbG93ZWRGaWxlc109XCIxXCJcbiAgICAgICAgICAgIChvbkZpbGVzUGlja2VkKT1cIm9uRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt1cGxvYWRDaG9pY2VdPVwidXBsb2FkQ2hvaWNlXCJcbiAgICAgICAgICAgIFtmaWxlVXJsXT1cImJpbmFyeS51cmxcIlxuICAgICAgICAgICAgW2ZpbGVCaW5hcnldPVwiYmluYXJ5LmZpbGVcIlxuICAgICAgICAgICAgW2ZpbGVVcmxQb3BvdmVyXT1cInRleHRGb3JDb25maWd1cmF0aW9uVXJsUG9wb3ZlclwiXG4gICAgICAgICAgPjwvYzh5LWZpbGUtcGlja2VyPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkNhbmNlbDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgIHRpdGxlPVwie3sgc3VibWl0QnV0dG9uVGl0bGUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBzYXZpbmcgfVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAhY29uZmlndXJhdGlvbkZvcm0udmFsaWQgfHxcbiAgICAgICAgICBjb25maWd1cmF0aW9uRm9ybS5wcmlzdGluZSB8fFxuICAgICAgICAgICghYmluYXJ5Py51cmwgJiYgIWJpbmFyeT8uZmlsZSkgfHxcbiAgICAgICAgICBzYXZpbmdcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgc3VibWl0QnV0dG9uVGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
|