@c8y/ngx-components 1021.22.140 → 1021.22.144
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/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
- package/core/common/ApplicationOptions.d.ts +4 -4
- package/core/common/ApplicationOptions.d.ts.map +1 -1
- package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
- package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
- package/esm2022/core/common/ApplicationOptions.mjs +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-mapping.component.d.ts","sourceRoot":"","sources":["../../../../../auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAU,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAEhF,qBAKa,sBAAsB;IA8BrB,OAAO,CAAC,gBAAgB;IA7B3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,aAAa,MAAC;IAEvB,2CAA2C,sLAEzC;IACF,0CAA0C,qDAExC;IAEF,4DAA4D,8MAE1D;IACF,2DAA2D,mHAEzD;IAEF,8CAA8C,8MAE5C;IACF,6CAA6C,iHAE3C;IAEF,yBAAyB,+BAAyC;IAClE,qBAAqB,2BAAqC;gBAEtC,gBAAgB,EAAE,gBAAgB;IAEtD,WAAW,IAAI,IAAI;IAMnB,gBAAgB;IAYhB,mBAAmB;IAWnB,QAAQ,CAAC,aAAa,EAAE,aAAa;IAIrC,wBAAwB,CAAC,gBAAgB,EAAE,gBAAgB;IAI3D,8BAA8B,CAC5B,sBAAsB,EAAE,OAAO,EAC/B,gCAAgC,UAAQ;IAQ1C,IAAI,sBAAsB,QAEzB;IAED,IAAI,gCAAgC,QAEnC;IAED,IAAI,cAAc,QAEjB;IAED,iBAAiB,CAAC,cAAc,KAAA;IAKhC,OAAO,KAAK,2BAA2B,GAEtC;IAED,OAAO,CAAC,iBAAiB;yCApGd,sBAAsB;2CAAtB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"access-mapping.component.d.ts","sourceRoot":"","sources":["../../../../../auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAU,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAEhF,qBAKa,sBAAsB;IA8BrB,OAAO,CAAC,gBAAgB;IA7B3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,aAAa,MAAC;IAEvB,2CAA2C,sLAEzC;IACF,0CAA0C,qDAExC;IAEF,4DAA4D,8MAE1D;IACF,2DAA2D,mHAEzD;IAEF,8CAA8C,8MAE5C;IACF,6CAA6C,iHAE3C;IAEF,yBAAyB,+BAAyC;IAClE,qBAAqB,2BAAqC;gBAEtC,gBAAgB,EAAE,gBAAgB;IAEtD,WAAW,IAAI,IAAI;IAMnB,gBAAgB;IAYhB,mBAAmB;IAWnB,QAAQ,CAAC,aAAa,EAAE,aAAa;IAIrC,wBAAwB,CAAC,gBAAgB,EAAE,gBAAgB;IAI3D,8BAA8B,CAC5B,sBAAsB,EAAE,OAAO,EAC/B,gCAAgC,UAAQ;IAQ1C,IAAI,sBAAsB,QAEzB;IAED,IAAI,gCAAgC,QAEnC;IAED,IAAI,cAAc,QAEjB;IAED,iBAAiB,CAAC,cAAc,KAAA;IAKhC,OAAO,KAAK,2BAA2B,GAEtC;IAED,OAAO,CAAC,iBAAiB;yCApGd,sBAAsB;2CAAtB,sBAAsB;CAuHlC"}
|
|
@@ -27,11 +27,11 @@ export declare class ApplicationOptions implements AppOptions {
|
|
|
27
27
|
dynamicOptionsUrl?: string | boolean;
|
|
28
28
|
/** URL to favicon. */
|
|
29
29
|
faviconUrl?: string;
|
|
30
|
-
/** URL to
|
|
30
|
+
/** URL to `*.css` file which will replace default branding. Will be ignored for security reasons if provided as a URL query parameter. */
|
|
31
31
|
brandingUrl?: string;
|
|
32
32
|
/** Enables the branding preview mode. If set to true, the `dynamicOptionsUrl` will be polled regularly for changes. In case the `lastUpdated` field of the dynamic options changes, the page is reloaded in order to apply the new branding. */
|
|
33
33
|
brandingPreview?: boolean;
|
|
34
|
-
/** Object with properties that will be converted to CSS custom variables. */
|
|
34
|
+
/** Object with properties that will be converted to CSS custom variables. Will be ignored for security reasons if provided as a URL query parameter. */
|
|
35
35
|
brandingCssVars?: BrandingCssVars;
|
|
36
36
|
/**
|
|
37
37
|
* Allows for adding or overriding languages available in the application.
|
|
@@ -76,9 +76,9 @@ export declare class ApplicationOptions implements AppOptions {
|
|
|
76
76
|
i18nExtra?: I18nExtra;
|
|
77
77
|
/** Path to the folder from which *.po files will be loaded. */
|
|
78
78
|
localePath?: string;
|
|
79
|
-
/** Array of URLs to additional
|
|
79
|
+
/** Array of URLs to additional `*.css` files to be loaded at runtime. Will be ignored for security reasons if provided as a URL query parameter. */
|
|
80
80
|
extraCssUrls?: string[];
|
|
81
|
-
/** Stylesheet (CSS) that will be added at runtime. The string should actually contain the CSS not a path or URL to it. */
|
|
81
|
+
/** Stylesheet (CSS) that will be added at runtime. The string should actually contain the CSS not a path or URL to it. Will be ignored for security reasons if provided as a URL query parameter. */
|
|
82
82
|
extraCss?: string;
|
|
83
83
|
/** Documentation links settings. */
|
|
84
84
|
docs?: Docs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationOptions.d.ts","sourceRoot":"","sources":["../../../core/common/ApplicationOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,IAAI,UAAU,EAChC,eAAe,EACf,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAYtB,qBAAa,kBAAmB,YAAW,UAAU;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;SAIK;IACL,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"ApplicationOptions.d.ts","sourceRoot":"","sources":["../../../core/common/ApplicationOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,18 +82,23 @@ export class AccessMappingComponent {
|
|
|
82
82
|
inventoryMappings: [],
|
|
83
83
|
configuration: {
|
|
84
84
|
mapRolesOnlyForNewUser: false,
|
|
85
|
-
manageRolesOnlyFromAccessMapping: false
|
|
86
|
-
mapFromIdToken: true
|
|
85
|
+
manageRolesOnlyFromAccessMapping: false
|
|
87
86
|
}
|
|
88
87
|
}
|
|
89
88
|
});
|
|
89
|
+
const { configuration } = this.templateModel.onNewUser.dynamicMapping;
|
|
90
|
+
const { mapRolesOnlyForNewUser, manageRolesOnlyFromAccessMapping, mapFromIdToken } = configuration;
|
|
91
|
+
configuration.mapFromIdToken =
|
|
92
|
+
mapFromIdToken !== undefined
|
|
93
|
+
? mapFromIdToken
|
|
94
|
+
: mapRolesOnlyForNewUser === false && manageRolesOnlyFromAccessMapping === false;
|
|
90
95
|
}
|
|
91
96
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AccessMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: { apps: "apps", groups: "groups", inventoryRoles: "inventoryRoles", templateModel: "templateModel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i5.DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: ["groups", "apps", "accessMapping", "accessMappingIndex"], outputs: ["onRemoveAccessMapping"] }, { kind: "component", type: i6.InventoryRolesMappingComponent, selector: "c8y-sso-inventory-roles-mapping", inputs: ["inventoryMapping", "inventoryMappingIndex", "inventoryRoles"], outputs: ["onRemoveInventoryMapping"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: { apps: "apps", groups: "groups", inventoryRoles: "inventoryRoles", templateModel: "templateModel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-access-token\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-id-token\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i5.DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: ["groups", "apps", "accessMapping", "accessMappingIndex"], outputs: ["onRemoveAccessMapping"] }, { kind: "component", type: i6.InventoryRolesMappingComponent, selector: "c8y-sso-inventory-roles-mapping", inputs: ["inventoryMapping", "inventoryMappingIndex", "inventoryRoles"], outputs: ["onRemoveInventoryMapping"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
93
98
|
}
|
|
94
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AccessMappingComponent, decorators: [{
|
|
95
100
|
type: Component,
|
|
96
|
-
args: [{ selector: 'c8y-sso-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
|
|
101
|
+
args: [{ selector: 'c8y-sso-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-access-token\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-id-token\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
|
|
97
102
|
}], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { apps: [{
|
|
98
103
|
type: Input
|
|
99
104
|
}], groups: [{
|
|
@@ -103,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
103
108
|
}], templateModel: [{
|
|
104
109
|
type: Input
|
|
105
110
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL2FjY2Vzcy1tYXBwaW5nL2FjY2Vzcy1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy9hY2Nlc3MtbWFwcGluZy9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sc0JBQXNCO0lBOEJqQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQsZ0RBQTJDLEdBQUcsT0FBTyxDQUNuRCxtTEFBbUwsQ0FDcEwsQ0FBQztRQUNGLCtDQUEwQyxHQUFHLE9BQU8sQ0FDbEQsa0RBQWtELENBQ25ELENBQUM7UUFFRixpRUFBNEQsR0FBRyxPQUFPLENBQ3BFLDJNQUEyTSxDQUM1TSxDQUFDO1FBQ0YsZ0VBQTJELEdBQUcsT0FBTyxDQUNuRSxnSEFBZ0gsQ0FDakgsQ0FBQztRQUVGLG1EQUE4QyxHQUFHLE9BQU8sQ0FDdEQsMk1BQTJNLENBQzVNLENBQUM7UUFDRixrREFBNkMsR0FBRyxPQUFPLENBQ3JELDhHQUE4RyxDQUMvRyxDQUFDO1FBRUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFlBQVksR0FBa0I7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGVBQWUsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUNwRTtZQUNELFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLHFCQUFxQixHQUFxQjtZQUM5QyxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsZUFBZSxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ3BFO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxRQUFRLENBQUMsYUFBNEI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELHdCQUF3QixDQUFDLGdCQUFrQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELDhCQUE4QixDQUM1QixzQkFBK0IsRUFDL0IsZ0NBQWdDLEdBQUcsS0FBSztRQUV4QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDakYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdDQUFnQztZQUMvRCxnQ0FBZ0MsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxzQkFBc0IsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxnQ0FBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0NBQWdDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQWM7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBWSwyQkFBMkI7UUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ3pDLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixhQUFhLEVBQUU7b0JBQ2Isc0JBQXNCLEVBQUUsS0FBSztvQkFDN0IsZ0NBQWdDLEVBQUUsS0FBSztvQkFDdkMsY0FBYyxFQUFFLElBQUk7aUJBQ3JCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhIVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpTUNabkMsMm5QQTRNQSxraEREbE1pQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7MkZBRXhELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FGQUcxRCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHB1bGwsIGRlZmF1bHRzRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElJZGVudGlmaWVkLCBJVXNlckdyb3VwIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW52ZW50b3J5TWFwcGluZywgQWNjZXNzTWFwcGluZyB9IGZyb20gJy4uLy4uL3Nzby1jb25maWd1cmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNzby1hY2Nlc3MtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFwcHM6IElBcHBsaWNhdGlvbltdO1xuICBASW5wdXQoKSBncm91cHM6IElVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgaW52ZW50b3J5Um9sZXM6IElJZGVudGlmaWVkW107XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG5cbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4sIHRoZXNlIG1hcHBpbmdzIHdpbGwgbm90IGJlIGV4ZWN1dGVkLidcbiAgKTtcbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OID0gZ2V0dGV4dChcbiAgICAnVXNlIGR5bmFtaWMgYWNjZXNzIG1hcHBpbmcgb25seSBvbiB1c2VyIGNyZWF0aW9uJ1xuICApO1xuXG4gIFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gb25seSB0aGUgcm9sZXMgbGlzdGVkIGluIHRoZSBhY2Nlc3MgbWFwcGluZ3Mgd2lsbCBiZSB1cGRhdGVkLidcbiAgKTtcbiAgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIHVuY2hhbmdlZCdcbiAgKTtcblxuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9UT09MVElQID0gZ2V0dGV4dChcbiAgICAnVGhlIGFjY2VzcyBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgZHVyaW5nIHRoZSBmaXJzdCBsb2dpbi4gVGhlIGFkbWluaXN0cmF0b3IgY2Fubm90IGVkaXQgdGhlIFNTTyB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gYWxsIHRoZSByb2xlcyB3aWxsIGJlIGNsZWFyZWQgYW5kIHRoZSBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgYWdhaW4uJ1xuICApO1xuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIGNsZWFyZWQnXG4gICk7XG5cbiAgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gQWNjZXNzIHRva2VuJyk7XG4gIFJFVFJJVkVfRlJPTV9JRF9UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gSUQgdG9rZW4nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVNb2RlbCAmJiB0aGlzLmFwcHMgJiYgdGhpcy5ncm91cHMpIHtcbiAgICAgIHRoaXMuc2V0RHluYW1pY01hcHBpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhZGRBY2Nlc3NNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5TWFwcGluZzogQWNjZXNzTWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkdyb3VwczogW10sXG4gICAgICB0aGVuQXBwbGljYXRpb25zOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncy5wdXNoKGVtcHR5TWFwcGluZyk7XG4gIH1cblxuICBhZGRJbnZlbnRvcnlNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5SW52ZW50b3J5TWFwcGluZzogSW52ZW50b3J5TWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkludmVudG9yeVJvbGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5wdXNoKGVtcHR5SW52ZW50b3J5TWFwcGluZyk7XG4gIH1cblxuICBvblJlbW92ZShhY2Nlc3NNYXBwaW5nOiBBY2Nlc3NNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLCBhY2Nlc3NNYXBwaW5nKTtcbiAgfVxuXG4gIG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyhpbnZlbnRvcnlNYXBwaW5nOiBJbnZlbnRvcnlNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLCBpbnZlbnRvcnlNYXBwaW5nKTtcbiAgfVxuXG4gIHNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihcbiAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBib29sZWFuLFxuICAgIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwUm9sZXNPbmx5Rm9yTmV3VXNlciA9IG1hcFJvbGVzT25seUZvck5ld1VzZXI7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmcgPVxuICAgICAgbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmc7XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGdldCBtYXBSb2xlc09ubHlGb3JOZXdVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYXBSb2xlc09ubHlGb3JOZXdVc2VyO1xuICB9XG5cbiAgZ2V0IG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZztcbiAgfVxuXG4gIGdldCBtYXBGcm9tSWRUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwRnJvbUlkVG9rZW47XG4gIH1cblxuICBzZXRNYXBGcm9tSWRUb2tlbihtYXBGcm9tSWRUb2tlbikge1xuICAgIHRoaXMuZHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uLm1hcEZyb21JZFRva2VuID0gbWFwRnJvbUlkVG9rZW47XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5jb25maWd1cmF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREeW5hbWljTWFwcGluZygpIHtcbiAgICBkZWZhdWx0c0RlZXAodGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlciwge1xuICAgICAgZHluYW1pY01hcHBpbmc6IHtcbiAgICAgICAgbWFwcGluZ3M6IFtdLFxuICAgICAgICBpbnZlbnRvcnlNYXBwaW5nczogW10sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBmYWxzZSxcbiAgICAgICAgICBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZzogZmFsc2UsXG4gICAgICAgICAgbWFwRnJvbUlkVG9rZW46IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0yNFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMlwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImg0IHRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEFjY2VzcyBtYXBwaW5nXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwIGNvbC1sZy05XCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICA8bGVnZW5kPnt7ICdTb3VyY2Ugb2YgZHluYW1pYyBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nU291cmNlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIW1hcEZyb21JZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRNYXBGcm9tSWRUb2tlbihmYWxzZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgUkVUUklWRV9GUk9NX0lEX1RPS0VOIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nU291cmNlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWFwRnJvbUlkVG9rZW5cIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldE1hcEZyb21JZFRva2VuKHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ0R5bmFtaWMgYWNjZXNzIG1hcHBpbmcgcHJpbmNpcGxlJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFVTRV9BQ0NFU1NfTUFQUElOR19PTl9VU0VSX0NSRUFUSU9OX09QVElPTiB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1yYWRpbyBpbnB1dC1zbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJkeW5hbWljQWNjZXNzTWFwcGluZ0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWludmVudG9yeS1yb2xlcy1tYXBwaW5nLS1vbi11c2VyLWNyZWF0aW9uXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWFwUm9sZXNPbmx5Rm9yTmV3VXNlclwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0RHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uKHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBVU0VfQUNDRVNTX01BUFBJTkdfT05fVVNFUl9DUkVBVElPTl9PUFRJT04gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW90aGVyLW9uZXMtd2lsbC1iZS11bmNoYW5nZWRcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhbWFwUm9sZXNPbmx5Rm9yTmV3VXNlciAmJiBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZ1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0RHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uKGZhbHNlLCB0cnVlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7IFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9UT09MVElQIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW90aGVyLW9uZXMtd2lsbC1iZS1jbGVhcmVkXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIW1hcFJvbGVzT25seUZvck5ld1VzZXIgJiYgIW1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24oZmFsc2UsIGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7IENMRUFSX0FORF9VUERBVEVEX1JPTEVTX09OX0VBQ0hfTE9HX0lOX09QVElPTiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgcG9wb3Zlcj1cInt7IENMRUFSX0FORF9VUERBVEVEX1JPTEVTX09OX0VBQ0hfTE9HX0lOX1RPT0xUSVAgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9maWVsZHNldD5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTE2XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ0R5bmFtaWMgYWNjZXNzIG1hcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgW2ljb25dPVwiJ2xpc3QnXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ05vIGFjY2VzcyBtYXBwaW5nIHJ1bGVzIGRlZmluZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3N1YnRpdGxlXT1cIidDbGljayBiZWxvdyB0byBhZGQgYSBuZXcgbWFwcGluZy4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgYWNjZXNzTWFwcGluZyBvZiB0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncztcbiAgICAgICAgICAgIGluZGV4IGFzIGlkeFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LXNzby1keW5hbWljLWFjY2Vzcy1tYXBwaW5nXG4gICAgICAgICAgICBbYWNjZXNzTWFwcGluZ109XCJhY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgIChvblJlbW92ZUFjY2Vzc01hcHBpbmcpPVwib25SZW1vdmUoYWNjZXNzTWFwcGluZylcIlxuICAgICAgICAgICAgW2FwcHNdPVwiYXBwc1wiXG4gICAgICAgICAgICBbZ3JvdXBzXT1cImdyb3Vwc1wiXG4gICAgICAgICAgICBbYWNjZXNzTWFwcGluZ0luZGV4XT1cImlkeFwiXG4gICAgICAgICAgPjwvYzh5LXNzby1keW5hbWljLWFjY2Vzcy1tYXBwaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtdC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWRkLWFjY2Vzcy1tYXBwaW5nLWJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZEFjY2Vzc01hcHBpbmcoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAge3sgJ0FkZCBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMTZcIj5cbiAgICAgICAgPGxlZ2VuZD5cbiAgICAgICAgICB7eyAnSW52ZW50b3J5IHJvbGVzIG1hcHBpbmcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbGVnZW5kPlxuICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgIFtpY29uXT1cIidsaXN0J1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidObyBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZyBydWxlcyBkZWZpbmVkLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtzdWJ0aXRsZV09XCInQ2xpY2sgYmVsb3cgdG8gYWRkIGEgbmV3IG1hcHBpbmcuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGludmVudG9yeU1hcHBpbmcgb2YgdGVtcGxhdGVNb2RlbC5vbk5ld1VzZXIuZHluYW1pY01hcHBpbmcuaW52ZW50b3J5TWFwcGluZ3M7XG4gICAgICAgICAgICBpbmRleCBhcyBpZHhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1zc28taW52ZW50b3J5LXJvbGVzLW1hcHBpbmdcbiAgICAgICAgICAgIFtpbnZlbnRvcnlSb2xlc109XCJpbnZlbnRvcnlSb2xlc1wiXG4gICAgICAgICAgICBbaW52ZW50b3J5TWFwcGluZ109XCJpbnZlbnRvcnlNYXBwaW5nXCJcbiAgICAgICAgICAgIChvblJlbW92ZUludmVudG9yeU1hcHBpbmcpPVwib25SZW1vdmVJbnZlbnRvcnlNYXBwaW5nKGludmVudG9yeU1hcHBpbmcpXCJcbiAgICAgICAgICAgIFtpbnZlbnRvcnlNYXBwaW5nSW5kZXhdPVwiaWR4XCJcbiAgICAgICAgICA+PC9jOHktc3NvLWludmVudG9yeS1yb2xlcy1tYXBwaW5nPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtdC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWRkLWludmVudG9yeS1tYXBwaW5nLWJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZEludmVudG9yeU1hcHBpbmcoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAge3sgJ0FkZCBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL2FjY2Vzcy1tYXBwaW5nL2FjY2Vzcy1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy9hY2Nlc3MtbWFwcGluZy9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sc0JBQXNCO0lBOEJqQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQsZ0RBQTJDLEdBQUcsT0FBTyxDQUNuRCxtTEFBbUwsQ0FDcEwsQ0FBQztRQUNGLCtDQUEwQyxHQUFHLE9BQU8sQ0FDbEQsa0RBQWtELENBQ25ELENBQUM7UUFFRixpRUFBNEQsR0FBRyxPQUFPLENBQ3BFLDJNQUEyTSxDQUM1TSxDQUFDO1FBQ0YsZ0VBQTJELEdBQUcsT0FBTyxDQUNuRSxnSEFBZ0gsQ0FDakgsQ0FBQztRQUVGLG1EQUE4QyxHQUFHLE9BQU8sQ0FDdEQsMk1BQTJNLENBQzVNLENBQUM7UUFDRixrREFBNkMsR0FBRyxPQUFPLENBQ3JELDhHQUE4RyxDQUMvRyxDQUFDO1FBRUYsOEJB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RTtnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixhQUFhLEVBQUU7b0JBQ2Isc0JBQXNCLEVBQUUsS0FBSztvQkFDN0IsZ0NBQWdDLEVBQUUsS0FBSztpQkFDeEM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFDdEUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSxHQUNoRixhQUFhLENBQUM7UUFDaEIsYUFBYSxDQUFDLGNBQWM7WUFDMUIsY0FBYyxLQUFLLFNBQVM7Z0JBQzFCLENBQUMsQ0FBQyxjQUFjO2dCQUNoQixDQUFDLENBQUMsc0JBQXNCLEtBQUssS0FBSyxJQUFJLGdDQUFnQyxLQUFLLEtBQUssQ0FBQztJQUN2RixDQUFDOzhHQXRIVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpTUNabkMsK3ZQQThNQSxraEREcE1pQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7MkZBRXhELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FGQUcxRCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHB1bGwsIGRlZmF1bHRzRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElJZGVudGlmaWVkLCBJVXNlckdyb3VwIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW52ZW50b3J5TWFwcGluZywgQWNjZXNzTWFwcGluZyB9IGZyb20gJy4uLy4uL3Nzby1jb25maWd1cmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNzby1hY2Nlc3MtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFwcHM6IElBcHBsaWNhdGlvbltdO1xuICBASW5wdXQoKSBncm91cHM6IElVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgaW52ZW50b3J5Um9sZXM6IElJZGVudGlmaWVkW107XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG5cbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4sIHRoZXNlIG1hcHBpbmdzIHdpbGwgbm90IGJlIGV4ZWN1dGVkLidcbiAgKTtcbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OID0gZ2V0dGV4dChcbiAgICAnVXNlIGR5bmFtaWMgYWNjZXNzIG1hcHBpbmcgb25seSBvbiB1c2VyIGNyZWF0aW9uJ1xuICApO1xuXG4gIFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gb25seSB0aGUgcm9sZXMgbGlzdGVkIGluIHRoZSBhY2Nlc3MgbWFwcGluZ3Mgd2lsbCBiZSB1cGRhdGVkLidcbiAgKTtcbiAgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIHVuY2hhbmdlZCdcbiAgKTtcblxuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9UT09MVElQID0gZ2V0dGV4dChcbiAgICAnVGhlIGFjY2VzcyBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgZHVyaW5nIHRoZSBmaXJzdCBsb2dpbi4gVGhlIGFkbWluaXN0cmF0b3IgY2Fubm90IGVkaXQgdGhlIFNTTyB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gYWxsIHRoZSByb2xlcyB3aWxsIGJlIGNsZWFyZWQgYW5kIHRoZSBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgYWdhaW4uJ1xuICApO1xuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIGNsZWFyZWQnXG4gICk7XG5cbiAgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gQWNjZXNzIHRva2VuJyk7XG4gIFJFVFJJVkVfRlJPTV9JRF9UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gSUQgdG9rZW4nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVNb2RlbCAmJiB0aGlzLmFwcHMgJiYgdGhpcy5ncm91cHMpIHtcbiAgICAgIHRoaXMuc2V0RHluYW1pY01hcHBpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhZGRBY2Nlc3NNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5TWFwcGluZzogQWNjZXNzTWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkdyb3VwczogW10sXG4gICAgICB0aGVuQXBwbGljYXRpb25zOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncy5wdXNoKGVtcHR5TWFwcGluZyk7XG4gIH1cblxuICBhZGRJbnZlbnRvcnlNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5SW52ZW50b3J5TWFwcGluZzogSW52ZW50b3J5TWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkludmVudG9yeVJvbGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5wdXNoKGVtcHR5SW52ZW50b3J5TWFwcGluZyk7XG4gIH1cblxuICBvblJlbW92ZShhY2Nlc3NNYXBwaW5nOiBBY2Nlc3NNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLCBhY2Nlc3NNYXBwaW5nKTtcbiAgfVxuXG4gIG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyhpbnZlbnRvcnlNYXBwaW5nOiBJbnZlbnRvcnlNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLCBpbnZlbnRvcnlNYXBwaW5nKTtcbiAgfVxuXG4gIHNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihcbiAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBib29sZWFuLFxuICAgIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwUm9sZXNPbmx5Rm9yTmV3VXNlciA9IG1hcFJvbGVzT25seUZvck5ld1VzZXI7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmcgPVxuICAgICAgbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmc7XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGdldCBtYXBSb2xlc09ubHlGb3JOZXdVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYXBSb2xlc09ubHlGb3JOZXdVc2VyO1xuICB9XG5cbiAgZ2V0IG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZztcbiAgfVxuXG4gIGdldCBtYXBGcm9tSWRUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwRnJvbUlkVG9rZW47XG4gIH1cblxuICBzZXRNYXBGcm9tSWRUb2tlbihtYXBGcm9tSWRUb2tlbikge1xuICAgIHRoaXMuZHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uLm1hcEZyb21JZFRva2VuID0gbWFwRnJvbUlkVG9rZW47XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5jb25maWd1cmF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREeW5hbWljTWFwcGluZygpIHtcbiAgICBkZWZhdWx0c0RlZXAodGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlciwge1xuICAgICAgZHluYW1pY01hcHBpbmc6IHtcbiAgICAgICAgbWFwcGluZ3M6IFtdLFxuICAgICAgICBpbnZlbnRvcnlNYXBwaW5nczogW10sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBmYWxzZSxcbiAgICAgICAgICBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZzogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbiB9ID0gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZztcbiAgICBjb25zdCB7IG1hcFJvbGVzT25seUZvck5ld1VzZXIsIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nLCBtYXBGcm9tSWRUb2tlbiB9ID1cbiAgICAgIGNvbmZpZ3VyYXRpb247XG4gICAgY29uZmlndXJhdGlvbi5tYXBGcm9tSWRUb2tlbiA9XG4gICAgICBtYXBGcm9tSWRUb2tlbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbWFwRnJvbUlkVG9rZW5cbiAgICAgICAgOiBtYXBSb2xlc09ubHlGb3JOZXdVc2VyID09PSBmYWxzZSAmJiBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZyA9PT0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaDQgdGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHNcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgQWNjZXNzIG1hcHBpbmdcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTAgY29sLWxnLTlcIj5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ1NvdXJjZSBvZiBkeW5hbWljIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiZHluYW1pYy1hY2Nlc3MtbWFwcGluZy1mcm9tLWFjY2Vzcy10b2tlblwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFtYXBGcm9tSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TWFwRnJvbUlkVG9rZW4oZmFsc2UpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9JRF9UT0tFTiB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1yYWRpbyBpbnB1dC1zbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJkeW5hbWljQWNjZXNzTWFwcGluZ1NvdXJjZVwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJkeW5hbWljLWFjY2Vzcy1tYXBwaW5nLWZyb20taWQtdG9rZW5cIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJtYXBGcm9tSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TWFwRnJvbUlkVG9rZW4odHJ1ZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFJFVFJJVkVfRlJPTV9JRF9UT0tFTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9maWVsZHNldD5cblxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnRHluYW1pYyBhY2Nlc3MgbWFwcGluZyBwcmluY2lwbGUnIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW9uLXVzZXItY3JlYXRpb25cIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJtYXBSb2xlc09ubHlGb3JOZXdVc2VyXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24odHJ1ZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFVTRV9BQ0NFU1NfTUFQUElOR19PTl9VU0VSX0NSRUFUSU9OX09QVElPTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBVU0VfQUNDRVNTX01BUFBJTkdfT05fVVNFUl9DUkVBVElPTl9UT09MVElQIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1pbnZlbnRvcnktcm9sZXMtbWFwcGluZy0tb3RoZXItb25lcy13aWxsLWJlLXVuY2hhbmdlZFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFtYXBSb2xlc09ubHlGb3JOZXdVc2VyICYmIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24oZmFsc2UsIHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAge3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBVUERBVEVfUk9MRVNfTElTVEVEX0lOX0FDQ0VTU19NQVBQSU5HX09OX0VBQ0hfTE9HX0lOX1RPT0xUSVAgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1pbnZlbnRvcnktcm9sZXMtbWFwcGluZy0tb3RoZXItb25lcy13aWxsLWJlLWNsZWFyZWRcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhbWFwUm9sZXNPbmx5Rm9yTmV3VXNlciAmJiAhbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmdcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihmYWxzZSwgZmFsc2UpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAge3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMTZcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnRHluYW1pYyBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVNb2RlbC5vbk5ld1VzZXIuZHluYW1pY01hcHBpbmcubWFwcGluZ3MubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICBbaWNvbl09XCInbGlzdCdcIlxuICAgICAgICAgIFt0aXRsZV09XCInTm8gYWNjZXNzIG1hcHBpbmcgcnVsZXMgZGVmaW5lZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiJ0NsaWNrIGJlbG93IHRvIGFkZCBhIG5ldyBtYXBwaW5nLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgICAgICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBhY2Nlc3NNYXBwaW5nIG9mIHRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzO1xuICAgICAgICAgICAgaW5kZXggYXMgaWR4XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjOHktc3NvLWR5bmFtaWMtYWNjZXNzLW1hcHBpbmdcbiAgICAgICAgICAgIFthY2Nlc3NNYXBwaW5nXT1cImFjY2Vzc01hcHBpbmdcIlxuICAgICAgICAgICAgKG9uUmVtb3ZlQWNjZXNzTWFwcGluZyk9XCJvblJlbW92ZShhY2Nlc3NNYXBwaW5nKVwiXG4gICAgICAgICAgICBbYXBwc109XCJhcHBzXCJcbiAgICAgICAgICAgIFtncm91cHNdPVwiZ3JvdXBzXCJcbiAgICAgICAgICAgIFthY2Nlc3NNYXBwaW5nSW5kZXhdPVwiaWR4XCJcbiAgICAgICAgICA+PC9jOHktc3NvLWR5bmFtaWMtYWNjZXNzLW1hcHBpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC10LTE2XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhZGQtYWNjZXNzLW1hcHBpbmctYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkQWNjZXNzTWFwcGluZygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyAnQWRkIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0xNlwiPlxuICAgICAgICA8bGVnZW5kPlxuICAgICAgICAgIHt7ICdJbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgW2ljb25dPVwiJ2xpc3QnXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ05vIGludmVudG9yeSByb2xlcyBtYXBwaW5nIHJ1bGVzIGRlZmluZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3N1YnRpdGxlXT1cIidDbGljayBiZWxvdyB0byBhZGQgYSBuZXcgbWFwcGluZy4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaW52ZW50b3J5TWFwcGluZyBvZiB0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncztcbiAgICAgICAgICAgIGluZGV4IGFzIGlkeFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LXNzby1pbnZlbnRvcnktcm9sZXMtbWFwcGluZ1xuICAgICAgICAgICAgW2ludmVudG9yeVJvbGVzXT1cImludmVudG9yeVJvbGVzXCJcbiAgICAgICAgICAgIFtpbnZlbnRvcnlNYXBwaW5nXT1cImludmVudG9yeU1hcHBpbmdcIlxuICAgICAgICAgICAgKG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyk9XCJvblJlbW92ZUludmVudG9yeU1hcHBpbmcoaW52ZW50b3J5TWFwcGluZylcIlxuICAgICAgICAgICAgW2ludmVudG9yeU1hcHBpbmdJbmRleF09XCJpZHhcIlxuICAgICAgICAgID48L2M4eS1zc28taW52ZW50b3J5LXJvbGVzLW1hcHBpbmc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC10LTE2XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhZGQtaW52ZW50b3J5LW1hcHBpbmctYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIGludmVudG9yeSByb2xlcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkSW52ZW50b3J5TWFwcGluZygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyAnQWRkIGludmVudG9yeSByb2xlcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs
CHANGED
|
@@ -18,19 +18,19 @@ export class UserDataMappingComponent {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
get useIdToken() {
|
|
21
|
-
return this.templateModel.useIdToken;
|
|
21
|
+
return this.templateModel.useIdToken || false;
|
|
22
22
|
}
|
|
23
23
|
setUseIdToken(useIdToken) {
|
|
24
24
|
this.templateModel.useIdToken = useIdToken;
|
|
25
25
|
this.controlContainer.control.markAsDirty();
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserDataMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-access-token\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-id-token\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserDataMappingComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{ selector: 'c8y-sso-user-data-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
|
|
32
|
+
args: [{ selector: 'c8y-sso-user-data-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-access-token\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-id-token\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
|
|
33
33
|
}], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { templateModel: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL3VzZXItZGF0YS1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy91c2VyLWRhdGEtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU8xRCxNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTHRELGdCQUFXLEdBQUcsT0FBTyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7UUFFOUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBdEJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDZHQ1RyQyx1a0pBMklBLDZ1Q0RwSWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzsyRkFFeEQsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLDJCQUEyQixpQkFFdEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7cUZBRzFELGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zc28tdXNlci1kYXRhLW1hcHBpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1kYXRhLW1hcHBpbmcuY29tcG9uZW50Lmh0bWwnLFxuICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1dXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJEYXRhTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG4gIENMQUlNX05BTUVTID0gZ2V0dGV4dCgnVG9rZW4gY2xhaW1zIGNhbiBiZSBjaGVja2VkIGluIEF1ZGl0IExvZ3MgdW5kZXIgU2luZ2xlIHNpZ24tb24gdHlwZS4nKTtcblxuICBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOID0gZ2V0dGV4dCgnUmV0cmlldmUgZnJvbSBBY2Nlc3MgdG9rZW4nKTtcbiAgUkVUUklWRV9GUk9NX0lEX1RPS0VOID0gZ2V0dGV4dCgnUmV0cmlldmUgZnJvbSBJRCB0b2tlbicpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncyA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGdldCB1c2VJZFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTW9kZWwudXNlSWRUb2tlbiB8fCBmYWxzZTtcbiAgfVxuXG4gIHNldFVzZUlkVG9rZW4odXNlSWRUb2tlbikge1xuICAgIHRoaXMudGVtcGxhdGVNb2RlbC51c2VJZFRva2VuID0gdXNlSWRUb2tlbjtcbiAgICB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0yNFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMlwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImg0IHRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIFVzZXIgZGF0YSBtYXBwaW5nc1xuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMCBjb2wtbGctOVwiPlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnU291cmNlIG9mIHVzZXIgZGF0YSBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwidXNlckFjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwidXNlci1hY2Nlc3MtbWFwcGluZy1mcm9tLWFjY2Vzcy10b2tlblwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiF1c2VJZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRVc2VJZFRva2VuKGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwidXNlckFjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwidXNlci1hY2Nlc3MtbWFwcGluZy1mcm9tLWlkLXRva2VuXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwidXNlSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0VXNlSWRUb2tlbih0cnVlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgUkVUUklWRV9GUk9NX0lEX1RPS0VOIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICA8bGVnZW5kPlxuICAgICAgICAgIHt7ICdDbGFpbSBuYW1lcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwIGJ0bi1oZWxwLS1zbVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBDTEFJTV9OQU1FUyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvbGVnZW5kPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgRmlyc3QgbmFtZVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncy5maXJzdE5hbWVDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZ2l2ZW5fbmFtZScgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJsYXN0TmFtZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExhc3QgbmFtZVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBpZD1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MubGFzdE5hbWVDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZmFtaWx5X25hbWUnIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBFbWFpbFxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MuZW1haWxDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZW1haWwnIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwicGhvbmVOdW1iZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBQaG9uZSBudW1iZXJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgaWQ9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZW1wbGF0ZU1vZGVsLmFjY2Vzc1Rva2VuVG9Vc2VyRGF0YU1hcHBpbmdzLnBob25lTnVtYmVyQ2xhaW1OYW1lXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJ3Bob25lX251bWJlcicgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -33,4 +33,4 @@ export var PluginsExportScopes;
|
|
|
33
33
|
*/
|
|
34
34
|
PluginsExportScopes["DEFAULT"] = "";
|
|
35
35
|
})(PluginsExportScopes || (PluginsExportScopes = {}));
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBb1E5QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksbUJBa0JYO0FBbEJELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsb0NBQWEsQ0FBQTtJQUNiOzs7T0FHRztJQUNILHdDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsc0RBQStCLENBQUE7SUFDL0I7O09BRUc7SUFDSCxtQ0FBWSxDQUFBO0FBQ2QsQ0FBQyxFQWxCVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBa0I5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiwgVmVyc2lvbmluZ01hdHJpeCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb25PcHRpb25zIGFzIEFwcE9wdGlvbnMsXG4gIEJyYW5kaW5nQ3NzVmFycyxcbiAgTGFuZ3VhZ2VzLFxuICBJMThuRXh0cmEsXG4gIERvY3MsXG4gIEljb24sXG4gIExvZ2luRXh0cmFMaW5rLFxuICBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uLFxuICBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb24sXG4gIFJlbW90ZVBsdWdpbnMsXG4gIE1hcFRpbGVMYXllcixcbiAgTWFwRGVmYXVsdENvbmZpZyxcbiAgUGx1Z2luc0V4cG9ydHMsXG4gIE1lc3NhZ2VCYW5uZXJDb25maWd1cmF0aW9uXG59IGZyb20gJ0BjOHkvb3B0aW9ucyc7XG5cbi8qXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdBUk5JTkctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW4gQXBwT3B0aW9uc1xuICogKipORVZFUioqIGNoYW5nZSB0aGlzIGZpbGUgZGlyZWN0bHkuIEluc3RlYWQgZG86XG4gKiAxLiBvcGVuIHBhY2thZ2VzL29wdGlvbnMvc3JjL0FwcGxpY2F0aW9uT3B0aW9ucy50cyBhbmQgYWRkIHlvdXIgcHJvcGVydHkgdGhlcmVcbiAqIDIuIGNoZWNrIGluIHRoaXMgZmlsZSBpZiBhbGwgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogVE9ETzogVGhpcyBmaWxlIHNob3VsZCB0aHJvdyB3aGVuIGEgcHJvcGVydHkgaXMgaW4gdGhlIEFwcE9wdGlvbnMgYnV0IG5vdCBpbXBsZW1lbnRlZCBoZXJlLlxuICogICAgICAgVGhpcyBzZWVtcyBub3QgdG8gd29yayBhdG0uIFdlIG5lZWQgdG8gY2hlY2sgd2h5LlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25PcHRpb25zIGltcGxlbWVudHMgQXBwT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29udGV4dFBhdGg6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgd2ViU2RrVmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFNldCB0byBgdHJ1ZWAgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIGh5YnJpZCBhbmQgdXNlcyBBbmd1bGFyIGFuZCBBbmd1bGFySlMgc2ltdWx0YW5lb3VzbHkuICovXG4gIHVwZ3JhZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgYnJhbmRpbmcgZW50cnkgZmlsZS4gKFNldCBpdCB0byBmYWxzZSB0byBkaXNhYmxlIGFueSBzdHlsaW5nLiBZb3UgY2FuIGhhbmRsZSB0aGUgc3R5bGluZyB0aGVuIG9uIHlvdXIgb3duIGUuZy4gaW4gYW4gYW5ndWxhci5qc29uIGZpbGUgdXNpbmcgbmctY2xpKVxuICAgKiBAZGVwcmVjYXRlZCBBZGQgeW91ciBnbG9iYWwgc3R5bGVzIHZpYSB0aGUgYW5ndWxhci5qc29uIGZpbGUuXG4gICAqL1xuICBicmFuZGluZ0VudHJ5PzogZmFsc2U7XG4gIC8qKiBQYXRoIHRvIHRzY2NuZmlnLmpzb24gZmlsZSBpZiBUeXBlU2NyaXB0IGlzIHVzZWQgKGRlZmF1bHQ6IC4vdHNjb25maWcuanNvbikuICovXG4gIHRzQ29uZmlnUGF0aD86IHN0cmluZztcbiAgLyoqIEVudHJ5IG1vZHVsZSBmb3IgQW5ndWxhciBjb21waWxlciAob25seSB1c2VkIHdpdGggbGF6eSBsb2FkZWQgcm91dGVzKSwgZS5nLiBgJ2FwcC5tb2R1bGUudHMjQXBwTW9kdWxlJ2AuICovXG4gIGVudHJ5TW9kdWxlPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byBjdXN0b20gaW5kZXguaHRtbCAob3RoZXJ3aXNlIGRlZmF1bHQgb25lIHdpbGwgYmUgdXNlZCkuICovXG4gIGluZGV4VGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVUkwgdG8gZHluYW1pY2FsbHkgZmV0Y2hlZCBvcHRpb25zLlxuICAgKiBJZiBzZXQgdG8gYHRydWVgIG9yIGxlZnQgdW5kZWZpbmVkLCBhbiBVUkwgd2lsbCBiZSB1c2VkIGJhc2VkIG9uIHRoZSBhcHBsaWNhdGlvbnMgY29udGV4dFBhdGguXG4gICAqIElmIHNldCB0byBgZmFsc2VgLCBubyBkeW5hbWljIG9wdGlvbnMgd2lsbCBiZSBmZXRjaGVkLlxuICAgKiAqL1xuICBkeW5hbWljT3B0aW9uc1VybD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKiBVUkwgdG8gZmF2aWNvbi4gKi9cbiAgZmF2aWNvblVybD86IHN0cmluZztcbiAgLyoqIFVSTCB0byAqLmNzcyBmaWxlIHdoaWNoIHdpbGwgcmVwbGFjZSBkZWZhdWx0IGJyYW5kaW5nLiAqL1xuICBicmFuZGluZ1VybD86IHN0cmluZztcbiAgLyoqIEVuYWJsZXMgdGhlIGJyYW5kaW5nIHByZXZpZXcgbW9kZS4gSWYgc2V0IHRvIHRydWUsIHRoZSBgZHluYW1pY09wdGlvbnNVcmxgIHdpbGwgYmUgcG9sbGVkIHJlZ3VsYXJseSBmb3IgY2hhbmdlcy4gSW4gY2FzZSB0aGUgYGxhc3RVcGRhdGVkYCBmaWVsZCBvZiB0aGUgZHluYW1pYyBvcHRpb25zIGNoYW5nZXMsIHRoZSBwYWdlIGlzIHJlbG9hZGVkIGluIG9yZGVyIHRvIGFwcGx5IHRoZSBuZXcgYnJhbmRpbmcuICovXG4gIGJyYW5kaW5nUHJldmlldz86IGJvb2xlYW47XG4gIC8qKiBPYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gQ1NTIGN1c3RvbSB2YXJpYWJsZXMuICovXG4gIGJyYW5kaW5nQ3NzVmFycz86IEJyYW5kaW5nQ3NzVmFycztcbiAgLyoqXG4gICAqIEFsbG93cyBmb3IgYWRkaW5nIG9yIG92ZXJyaWRpbmcgbGFuZ3VhZ2VzIGF2YWlsYWJsZSBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEl0cyBrZXlzIGFyZSBsYW5ndWFnZSBjb2RlcyBhbmQgaXRzIHZhbHVlcyBhcmUgb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICpcbiAgICogLSBgbmFtZWA6IEVuZ2xpc2ggbmFtZSBvZiB0aGUgbGFuZ3VhZ2UsXG4gICAqIC0gYG5hdGl2ZU5hbWVgOiBuYXRpdmUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UsXG4gICAqIC0gYHVybGA6IGZ1bGwgVVJMIHRvIEpTT04gZmlsZSB3aXRoIGNvbXBpbGVkIHRyYW5zbGF0aW9ucztcbiAgICogICAgaWYgbm90IGRlZmluZWQsIHRyYW5zbGF0aW9ucyB3aWxsIGJlIGxvYWRlZCBmcm9tIGAke2xvY2FsZVBhdGh9LyR7bGFuZ0NvZGV9Lmpzb25gLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBgYGBqc29uXG4gICAqIFwibGFuZ3VhZ2VzXCI6IHtcbiAgICogICBcImRlXCI6IHtcbiAgICogICAgIFwibmFtZVwiOiBcIkdlcm1hblwiLFxuICAgKiAgICAgXCJuYXRpdmVOYW1lXCI6IFwiRGV1dHNjaFwiLFxuICAgKiAgICAgXCJ1cmxcIjogXCIvYXBwcy9wdWJsaWMvdWktYXNzZXRzL2RlLmpzb25cIlxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGxhbmd1YWdlcz86IExhbmd1YWdlcztcbiAgLyoqXG4gICAqIEFsbG93cyB0byBhZGQgY3VzdG9tIHRyYW5zbGF0aW9ucy4gSXQgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkuXG4gICAqXG4gICAqIEl0cyBrZXlzIGFyZSBsYW5ndWFnZSBjb2RlcyAoaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9ndWlkZXMvdXNlcnMtZ3VpZGUvZ2V0dGluZy1zdGFydGVkLyNhLW5hbWUtbGFuZ3VhZ2VzLWEtYXZhaWxhYmxlLWxhbmd1YWdlcylcbiAgICogYW5kIGl0cyB2YWx1ZXMgYXJlIG9iamVjdHMgd2l0aCBrZXktdmFsdWUgcGFpcnMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIG9yaWdpbmFsIHN0cmluZyBpbiBFbmdsaXNoIGFuZCB0aGUgdmFsdWUgLSBpdHMgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqIC0gYEhvbWVgOiBcIlN0YXJ0c2VpdGVcIlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSB5b3UgY2FuIGFkZCB0aGUgdHJhbnNsYXRpb24gb2YgeW91ciBjdXN0b20gY29va2llIGJhbm5lciBjb25maWd1cmVkIGluIHRoZSBicmFuZGluZyBzZXR0aW5nczpcbiAgICogYGBganNvblxuICAgKiBcImkxOG5FeHRyYVwiOiB7XG4gICAqICAgXCJkZVwiOiB7XG4gICAqICAgICBcIkFib3V0IGNvb2tpZXMgb24gQ3VtdWxvY2l0eSBJb1RcIjogXCJJbmZvcm1hdGlvbmVuIHp1IENvb2tpZXMgaW4gQ3VtdWxvY2l0eSBJb1RcIixcbiAgICogICAgIFwiQ2xpY2sgQWdyZWUgYW5kIFByb2NlZWQgdG8gYWNjZXB0IGNvb2tpZXMgYW5kIGdvIGRpcmVjdGx5IHRvIHRoZSBwbGF0Zm9ybSBvciBjbGljayBvbiBQcml2YWN5IFBvbGljeSB0byBzZWUgZGV0YWlsZWQgZGVzY3JpcHRpb25zIG9mIHRoZSB1c2VkIGNvb2tpZXMuXCI6IFwiS2xpY2tlbiBTaWUgYXVmIFp1c3RpbW1lbiB1bmQgZm9ydGZhaHJlbiwgdW0gQ29va2llcyB6dSBha3plcHRpZXJlbiB1bmQgZGlyZWt0IHp1ciBQbGF0dGZvcm0genUgZ2VsYW5nZW4sIG9kZXIga2xpY2tlbiBTaWUgYXVmIERhdGVuc2NodXR6cmljaHRsaW5pZSwgdW0gZGV0YWlsbGllcnRlIEJlc2NocmVpYnVuZ2VuIGRlciB2ZXJ3ZW5kZXRlbiBDb29raWVzIGFuenV6ZWlnZW4uXCJcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBpMThuRXh0cmE/OiBJMThuRXh0cmE7XG4gIC8qKiBQYXRoIHRvIHRoZSBmb2xkZXIgZnJvbSB3aGljaCAqLnBvIGZpbGVzIHdpbGwgYmUgbG9hZGVkLiAqL1xuICBsb2NhbGVQYXRoPzogc3RyaW5nO1xuICAvKiogQXJyYXkgb2YgVVJMcyB0byBhZGRpdGlvbmFsICouY3NzIGZpbGVzIHRvIGJlIGxvYWRlZCBhdCBydW50aW1lLiAqL1xuICBleHRyYUNzc1VybHM/OiBzdHJpbmdbXTtcbiAgLyoqIFN0eWxlc2hlZXQgKENTUykgdGhhdCB3aWxsIGJlIGFkZGVkIGF0IHJ1bnRpbWUuIFRoZSBzdHJpbmcgc2hvdWxkIGFjdHVhbGx5IGNvbnRhaW4gdGhlIENTUyBub3QgYSBwYXRoIG9yIFVSTCB0byBpdC4gKi9cbiAgZXh0cmFDc3M/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uIGxpbmtzIHNldHRpbmdzLiAqL1xuICBkb2NzPzogRG9jcztcbiAgLyoqIEFwcGxpY2F0aW9uIGljb24gdG8gYmUgZGlzcGxheWVkIGluIGFwcCBzd2l0Y2hlciBhbmQgaGVhZGVyIGJhci4gKi9cbiAgaWNvbj86IEljb247XG5cbiAgLy8gVGhlc2UgYXJlIHRoZSBvbGQgb3B0aW9uc1xuICAvKiogSGlkZSBhcHBsaWNhdGlvbiBpbiBhcHAgc3dpdGNoZXIgKHNhdmVkIHRvIHRoZSBzZXJ2ZXIpLiAqL1xuICBub0FwcFN3aXRjaGVyPzogYm9vbGVhbjtcbiAgLyoqIEhUTUwgcGFnZSB0aXRsZS4gKi9cbiAgZ2xvYmFsVGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBIaWRlIFwicG93ZXJlZCBieVwiIGFuZCB2ZXJzaW9uIGluZm8gYXQgdGhlIGJvdHRvbSBvZiB0aGUgbmF2aWdhdG9yIGFuZCBpbiB0aGUgcmlnaHQgZHJhd2VyLiAqL1xuICBoaWRlUG93ZXJlZD86IGJvb2xlYW47XG4gIC8qKiBIaWRlcyB0aGUgaGVhZGVyIGJhciAqL1xuICBoaWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgLyoqIEhpZGVzIHRoZSBcIlBsYXRmb3JtIGluZm9ybWF0aW9uXCIgaW4gdGhlIHJpZ2h0IGRyYXdlciwgd2lsbCBvdmVycnVsZSB0aGUgXCJoaWRlUG93ZXJlZFwiIG9wdGlvbiAqL1xuICBoaWRlUGxhdGZvcm1JbmZvcm1hdGlvbj86IGJvb2xlYW47XG4gIC8qKiBVUkwgdG8gc3VwcG9ydCBwYWdlIChzZXQgdG8gYGZhbHNlYCB0byBoaWRlIHRoZSBsaW5rKS4gKi9cbiAgc3VwcG9ydFVybD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXBsYWNlbWVudCBzdHJpbmcgZm9yIGB1c2VyYCBmaWVsZCBpbiBhdWRpdCBsb2dzIGZvciBhY3Rpb25zIHBlcmZvcm1lZCBieSBhIHN1cHBvcnQgdXNlclxuICAgKiAoYXZhaWxhYmxlIHBsYWNlaG9sZGVyczogYHt7c3VwcG9ydF91c2VyfX1gLCBge3tzdXBwb3J0ZWRfdXNlcn19YCkuXG4gICAqL1xuICBzdXBwb3J0VXNlclN0cmluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIERpc2FibGVzIHJlYWx0aW1lIHVwZGF0ZXMgb24gdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFJlYWx0aW1lRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGFkanVzdCB0aGUgZGVmYXVsdCBwYWdlc2l6ZSBvZiAxMDAgaXRlbXMgb2YgdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFBhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGhpZGUgdGhlIGhpbnQgdGhhdCB0aGVyZSBhcmUgbW9yZSBkZXZpY2VzIHdpdGggZ2VvIGNvb3JkaW5hdGVzIHRoZW4gZGlzcGxheWVkIG9uIHRoZSBtYXAgd2lkZ2V0IGFuZCBtYXBzIGluIGdlbmVyYWwuXG4gICAqL1xuICBtYXBXaWRnZXRIaWRlTWF4RGV2aWNlT25NYXBIaW50PzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSByaWdodCBkcmF3ZXIuICovXG4gIHJpZ2h0RHJhd2VyPzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIGJyZWFkY3J1bWJzIGluIHRoZSBoZWFkZXIgZm9yIGdyb3VwcyBhbmQgZGV2aWNlcyAoZGVmYXVsdDogZmFsc2UpLiAqL1xuICBicmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKiBDb2xsYXBzZSBuYXZpZ2F0b3Igb24gaW5pdGlhbCBsb2FkLiAqL1xuICBoaWRlTmF2aWdhdG9yPzogYm9vbGVhbjtcbiAgLyoqIFNob3cgdGFicyBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS4gKi9cbiAgdGFic0hvcml6b250YWw/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBsaW5rKHMpIHRvIGRpc3BsYXkgb24gbG9naW4gc2NyZWVuLiAqL1xuICBsb2dpbkV4dHJhTGluaz86IExvZ2luRXh0cmFMaW5rIHwgTG9naW5FeHRyYUxpbmtbXTtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIHN0b3JhZ2UgbGltaXRhdGlvbiBmZWF0dXJlLiAqL1xuICBzdG9yYWdlTGltaXRhdGlvbkZlYXR1cmVFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIE5hbWUgb2YgY29tcGFueSBoYW5kbGluZyBzdXBwb3J0IHJlcXVlc3RzIGZyb20gYXBwIHVzZXJzIChkaXNwbGF5ZWQgaW4gbm90aWZpY2F0aW9uIG1lc3NhZ2UpLiAqL1xuICBjb21wYW55TmFtZT86IHN0cmluZztcbiAgLyoqIFVSTCB0ZW1wbGF0ZSBmb3IgZG9jdW1lbnRhdGlvbiBsaW5rcyAoZGVmYXVsdDogYCcke2RvY3NCYXNlVXJsfSR7cGFydGlhbFVybH0nYCkuICovXG4gIGd1aWRlSHJlZlRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogQmFzZSBVUkwgZm9yIGRvY3VtZW50YXRpb24gbGlua3MgKGluY2x1ZGUgYHt7IHZlcnNpb24gfX1gIHBsYWNlaG9sZGVyLCBpZiB5b3Ugd2FudCB2ZXJzaW9uZWQgbGlua3MpLiAqL1xuICBkb2NzQmFzZVVybD86IHN0cmluZztcbiAgLyoqIENTUCBzdHJpbmcgdG8gYmUgYXBwbGllZCB0byBgaW5kZXguaHRtbGAgYnkgcmVwbGFjaW5nIGRlZmF1bHQgdmFsdWVzLiAqL1xuICBjb250ZW50U2VjdXJpdHlQb2xpY3k/OiBzdHJpbmc7XG4gIC8qKiBFbmFibGVzIGNsb3VkIHNlbnNvciB3aXphcmQgKi9cbiAgc2Vuc29yUGhvbmU/OiBib29sZWFuO1xuICAvKiogU2hvdyBvciBoaWRlIGEgbmV3c2xldHRlciBzdWJzY3JpcHRpb24gY2hlY2tib3ggaW4gZWRpdCB1c2VyIG1vZGFsLiAqL1xuICBuZXdzbGV0dGVyPzogYm9vbGVhbjtcbiAgLyoqIFBhdGggdG8gdGhlIHJvb3Qgbm9kZV9tb2R1bGVzIGRpciAodXNlZnVsIHdoZW4gd29ya2luZyBpbiBtb25vcmVwbyBzZXR1cCwgZS5nLiB5YXJuIHdvcmtzcGFjZXMpLiAqL1xuICByb290Tm9kZU1vZHVsZXNQYXRoPzogc3RyaW5nO1xuICAvKiogQ29va2llIEJhbm5lciBjb25maWd1cmF0aW9uICovXG4gIGNvb2tpZUJhbm5lcj86IENvb2tpZUJhbm5lckNvbmZpZ3VyYXRpb247XG4gIC8qKiBDb29raWUgcHJlZmVyZW5jZXMgY29uZmlndXJhdGlvbi4gSGVyZSB5b3UgY2FuIGVuYWJsZSBvciBkaXNhYmxlIGNvb2tpZSBjYXRlZ29yaWVzICovXG4gIGNvb2tpZVByZWZlcmVuY2VzPzogQ29va2llUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uO1xuICAvKiogTWVzc2FnZSBCYW5uZXIgY29uZmlndXJhdGlvbiAqL1xuICBtZXNzYWdlQmFubmVyPzogTWVzc2FnZUJhbm5lckNvbmZpZ3VyYXRpb247XG4gIC8qKiBBIGtleSBmb3IgdGhlIHByb2R1Y3QgZXhwZXJpZW5jZSBzb2Z0d2FyZSBHYWluc2lnaHQuICovXG4gIGdhaW5zaWdodEtleT86IHN0cmluZztcbiAgLyoqIERpc2FibGUgdXNlciB0cmFja2luZyAqL1xuICBkaXNhYmxlVHJhY2tpbmc/OiBib29sZWFuO1xuICAvKiogTmdNb2R1bGUgZXhwb3J0IGZvciBwbHVnaW5zLiAqL1xuICBleHBvcnRzPzogUGx1Z2luc0V4cG9ydHNbXTtcbiAgLyoqIExpc3Qgb2YgaW1wb3J0ZWQgcmVtb3RlIHBsdWdpbnMuICovXG4gIHJlbW90ZXM/OiBSZW1vdGVQbHVnaW5zO1xuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgcmVtb3RlcyBkZWZpbmVkIGluIHRoZSBgcmVtb3Rlc2AgcXVlcnkgcGFyYW1ldGVyIHdpbGwgYmUgbG9hZGVkLiAqL1xuICBmb3JjZVVybFJlbW90ZXM/OiBib29sZWFuO1xuICAvKiogVGhlIHBhY2thZ2Ugc291cmNlIGEgYXBwbGljYXRpb24gb3JpZ2lucyBmcm9tIGFzIElBcHBsaWNhdGlvbiBvciBzaW1wbHkgdGhlIGlkIG9mIHRoZSBzb3VyY2UgKi9cbiAgc291cmNlPzogc3RyaW5nIHwgbnVtYmVyIHwgSUFwcGxpY2F0aW9uO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBhc3NldHMgdG8gY29weSB0byB0aGUgYnVpbGQgb3V0cHV0LlxuICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9jb3B5LXdlYnBhY2stcGx1Z2luIGZvciBtb3JlIGluZm9ybWF0aW9uXG4gICAqIGFib3V0IHRoZSBwYXR0ZXJucyB0byBhZGQgaGVyZS5cbiAgICovXG4gIGNvcHk/OiBbXTtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBlbmFibGUgb3IgZGlzYWJsZSBjb250ZXh0IGhlbHAsIG9yIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJhc2UgVVJMIHVzZWQgdG8gbG9hZCBpdHMgY29udGVudHMuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZXh0IGhlbHAgdXNlcyB0aGUgc2FtZSBiYXNlIFVSTCBhcyBkZWZpbmVkIGluIHRoZSBgZG9jc0Jhc2VVcmxgIG9wdGlvblxuICAgKiAoaWYgdGhpcyBvcHRpb24gaXMgdW5kZWZpbmVkLCB0aGVuIHRoZSBmb2xsb3dpbmcgdmFsdWUgd2lsbCBiZSB1c2VkOiBgaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9ndWlkZXMve3t2ZXJzaW9ufX1gKS5cbiAgICogQWx0ZXJuYXRpdmVseSwgaWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQgaGVyZSwgaXQnbGwgYmUgdXNlZCBhcyB0aGUgYmFzZSBVUkxcbiAgICogYW5kIGFueSBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXIgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSByZWxldmFudCBkb2NzIHZlcnNpb24uXG4gICAqL1xuICBjb250ZXh0SGVscD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBjb2NrcGl0IGFuZCBkZXZpY2VtYW5hZ2VtZW50IHVzZSB0aGUgb25seVJvb3RzIHF1ZXJ5IHRvIHJlc29sdmUgcm9vdCBub2Rlcy4gVGhpc1xuICAgKiBjb3VsZCBsZWFkIHRvIHBlcmZvcm1hbmNlIGlzc3VlcywgaWYgYSBjdXN0b21lciBoYXMgYSBsb3Qgb2Ygcm9vdCBub2Rlcy4gVGhlcmVmb3JlIHlvdSBjYW4gZGlzYWJsZVxuICAgKiB0aGUgdXNlIG9mIHRoaXMgcXVlcnkgd2l0aCB0aGlzIGZsYWcuXG4gICAqL1xuICBkaXNhYmxlT25seVJvb3RzUXVlcnk/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGZvcmNlIHNob3dpbmcgdGhlIHNldHVwIHdpemFyZC5cbiAgICovXG4gIGZvcmNlU2V0dXA/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBhcHBsaWNhdGlvbiBuZWVkcyB0byBzaG93IHRoZSBzZXR1cCB3aXphcmQuXG4gICAqL1xuICBpc1NldHVwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgYSBXZWJTREsgYXBwIHJlcXVpcmVzIHRoZSB1c2VyIHRvIGJlIGxvZ2dlZCBpbi5cbiAgICogSW4gY2FzZSB5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wIGp1c3QgYSBzdGF0aWMgYXBwbGljYXRpb24sIHRoYXQgZG9lcyBub3QgcmVxdWlyZSBhbnkga2luZCBvZiBhY2Nlc3MgdG8gdGhlIGJhY2tlbmQsXG4gICAqIHlvdSBjYW4gdXNlIHRoaXMgZmxhZyB0byBkaXNhYmxlIHRoZSBsb2dpbiBzY3JlZW4uXG4gICAqIE5PVEU6IG5vdCBhbGwgV2ViU0RLIGNvbXBvbmVudHMgc3VwcG9ydCB0aGlzLCBzb21lIG1pZ2h0IHJlcXVpcmUgdGhlIHVzZXIgdG8gYmUgbG9nZ2VkIGluIGFuZCB3b24ndCB3b3JrLlxuICAgKi9cbiAgbm9Mb2dpbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gb3B0IG91dCBvZiBzdXBwb3J0aW5nL2xvYWRpbmcgcGx1Z2lucyBmb3IgdGhpcyBhcHBsaWNhdGlvbi5cbiAgICovXG4gIG5vUGx1Z2lucz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gb3B0IG91dCBvZiB0aGUgdmVyc2lvbiB3YXJuaW5nIHdoaWNoIGlzIHNob3duIGluIHRoZSBkZXYgdG9vbHMuXG4gICAqL1xuICBub1ZlcnNpb25XYXJuaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBzZXQgdGhlIG1hcCBsYXllcnMuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIG9wZW4gc3RyZWV0IG1hcCBsYXllci5cbiAgICovXG4gIG1hcExheWVycz86IE1hcFRpbGVMYXllcltdO1xuICAvKipcbiAgICogQWxsb3dzIHRvIHNldCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIG9uIHRoZSBtYXBzLlxuICAgKi9cbiAgbWFwQ29uZmlnPzogTWFwRGVmYXVsdENvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBVUkwgdXNlZCB0byBsb29rdXAgZ2VvIGNvb3JkaW5hdGVzIGZvciBhIHVzZXIgcHJvdmlkZWQgYWRkcmVzcyB2aWEgW25vbWluYXRpbSBBUEldKGh0dHBzOi8vbm9taW5hdGltLm9yZy9yZWxlYXNlLWRvY3MvZGV2ZWxvcC9hcGkvU2VhcmNoLykuXG4gICAqIENhbiBiZSBzZXQgdG8gZW1wdHkgdG8gZGlzYWJsZSB0aGUgZmluZCBhZGRyZXNzIGZlYXR1cmUgb24gdGhlIGxvY2F0aW9uIHRhYi5cbiAgICogVXNlczogYGh0dHBzOi8vbm9taW5hdGltLm9wZW5zdHJlZXRtYXAub3JnL3NlYXJjaD9mb3JtYXQ9anNvbiZxPXtzZWFyY2hUZXJtfWAgaWYgbm90IHNldC5cbiAgICovXG4gIG1hcE5vbWluYXRpbVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByb290IGVsZW1lbnQuIEJ5IGRlZmF1bHQgYzh5LWJvb3RzdHJhcC5cbiAgICovXG4gIHJvb3RUYWdOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogSGlkZXMgcG9zc2liaWxpdHkgdG8gY3JlYXRlIHR5cGVkIGRhc2hib2FyZHMgZm9yIGFzc2V0cyAoYW5kIGdyb3VwcykuIElmIHRydWUsIHR5cGVkIGRhc2hib2FyZHMgY2FuIGJlIGNyZWF0ZWQgb25seSBmb3IgZGV2aWNlcy5cbiAgICogSXQgaXMgdHJ1ZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgaGlkZVR5cGVEYXNoYm9hcmRGb3JBc3NldHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQSBtYXRyaXggb2YgdmVyc2lvbnMgaW5kaWNhdGluZyB3aGljaCB2ZXJzaW9ucyBvZiB0aGUgYXBwbGljYXRpb24gKGtleSkgYXJlIGRlcGVuZGVudCBvbiB3aGljaCB2ZXJzaW9uIG9mIGEgY3VtdWxvY2l0eSBjb21wb25lbnQgKEFQSSB2ZXJzaW9uIGFuZCBXZWIgU0RLIHZlcnNpb24gb2YgdGhlIHNoZWxsIGFwcGxpY2F0aW9uIGN1cnJlbnRseSBzdXBwb3J0ZWQsIGluZGljYXRlZCBieSB0aGUgdmFsdWUpLlxuICAgKiBUaGUgdmVyc2lvbnMgb2YgdGhlIGRlcGVuZGVudCBjb21wb25lbnRzIGNhbiBiZSBpbmRpY2F0ZWQgYnkgYSBzZW12ZXIgcmFuZ2UuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGpzb25cbiAgICoge1xuICAgKiAgXCIxLjAuMFwiOiB7XG4gICAqICAgIFwic2RrXCI6IFwiPj0xMDE2LjAuMCA8MTAxNy4wLjBcIixcbiAgICogICAgXCJhcGlcIjogXCI+PTEwMTYuMC4wIDwxMDE3LjAuMFwiXG4gICAqICB9LFxuICAgKiAgXCIyLjAuMFwiOiB7XG4gICAqICAgIFwic2RrXCI6IFwifjEwMTcuMC4wXCIsXG4gICAqICAgIFwiYXBpXCI6IFwifjEwMTcuMC4wXCJcbiAgICogIH0sXG4gICAqICBcIjMuMC4wXCI6IHtcbiAgICogICAgXCJzZGtcIjogXCI+PTEwMTguMC4wXCIsXG4gICAqICAgIFwiYXBpXCI6IFwiPj0xMDE4LjAuMFwiXG4gICAqICB9LFxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgdmVyc2lvbmluZ01hdHJpeD86IFZlcnNpb25pbmdNYXRyaXg7XG4gIC8qKlxuICAgKiBJcyB1c2VkIGZvciBwbHVnaW5zIHRvIGluZGljYXRlIHRoZWlyIG93bmVyLiBTb2Z0d2FyZSBBRyBwbHVnaW5zIGFyZSBtYXJrZWQgd2l0aCBPRkZJQ0lBTCBsYWJlbC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiByZWZyZXNoIG1lY2hhbmlzbSB1c2VkIGZvciBhbGFybXMgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiAtICdyZWFsdGltZSc6IFV0aWxpemVzIGEgcmVhbHRpbWUgbWVjaGFuaXNtIGZvciB1cGRhdGluZyBhbGFybXMuXG4gICAqIC0gJ2ludGVydmFsJzogVXRpbGl6ZXMgSFRUUCBwb2xsaW5nIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIHRvIHJlZnJlc2ggdGhlIGFsYXJtcy5cbiAgICpcbiAgICogVGhpcyBzZXR0aW5nIGFsbG93cyB0byBzd2l0Y2ggYmV0d2VlbiByZWFsdGltZSBhbmQgaW50ZXJ2YWwtYmFzZWQgcmVmcmVzaCBtZXRob2RzLlxuICAgKi9cbiAgYWxhcm1zUmVmcmVzaFR5cGU/OiAnaW50ZXJ2YWwnIHwgJ3JlYWx0aW1lJztcbn1cblxuLyoqXG4gKiBUZWxscyBob3cgYSBwbHVnaW4gaXMgc2NvcGVkLlxuICovXG5leHBvcnQgZW51bSBQbHVnaW5zRXhwb3J0U2NvcGVzIHtcbiAgLyoqXG4gICAqIExpbWl0IHRoZSBwbHVnaW4gdG8gdGhlIGN1cnJlbnQgYXBwbGljYXRpb24uIEl0IGlzIGltcG9ydGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBTRUxGID0gJ3NlbGYnLFxuICAvKipcbiAgICogQWxsb3dzIHRvIGFkZCB0aGUgcGx1Z2luIHRvIGEgZ2xvYmFsIHNjb3BlLCBtZWFuaW5nIGl0IGlzIGltcG9ydGVkIHRvIGFsbCBhcHBsaWNhdGlvbnMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogVGhpcyBpcyBub3QgdXNlZCBhdCB0aGUgbW9tZW50IGJ1dCBwbGFubmVkIHRvIGJlIGltcGxlbWVudGVkIGluIHRoZSBuZXcgYnJhbmRpbmcgZWRpdG9yLlxuICAgKi9cbiAgR0xPQkFMID0gJ2dsb2JhbCcsXG4gIC8qKlxuICAgKiBMaW1pdCB0aGUgcGx1Z2luIHRvIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uLiBUaGUgcGx1Z2luIGlzIG5vdCBpbXBvcnRlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgU0VMRl9PUFRJT05BTCA9ICdzZWxmLW9wdGlvbmFsJyxcbiAgLyoqXG4gICAqIExpa2UgdW5kZWZpbmVkIHRoZSBwbHVnaW4gaXMgYXZhaWxhYmxlIGZvciBhbnkgcHJpdmF0ZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIERFRkFVTFQgPSAnJ1xufVxuIl19
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBb1E5QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksbUJBa0JYO0FBbEJELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsb0NBQWEsQ0FBQTtJQUNiOzs7T0FHRztJQUNILHdDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsc0RBQStCLENBQUE7SUFDL0I7O09BRUc7SUFDSCxtQ0FBWSxDQUFBO0FBQ2QsQ0FBQyxFQWxCVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBa0I5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiwgVmVyc2lvbmluZ01hdHJpeCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb25PcHRpb25zIGFzIEFwcE9wdGlvbnMsXG4gIEJyYW5kaW5nQ3NzVmFycyxcbiAgTGFuZ3VhZ2VzLFxuICBJMThuRXh0cmEsXG4gIERvY3MsXG4gIEljb24sXG4gIExvZ2luRXh0cmFMaW5rLFxuICBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uLFxuICBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb24sXG4gIFJlbW90ZVBsdWdpbnMsXG4gIE1hcFRpbGVMYXllcixcbiAgTWFwRGVmYXVsdENvbmZpZyxcbiAgUGx1Z2luc0V4cG9ydHMsXG4gIE1lc3NhZ2VCYW5uZXJDb25maWd1cmF0aW9uXG59IGZyb20gJ0BjOHkvb3B0aW9ucyc7XG5cbi8qXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdBUk5JTkctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW4gQXBwT3B0aW9uc1xuICogKipORVZFUioqIGNoYW5nZSB0aGlzIGZpbGUgZGlyZWN0bHkuIEluc3RlYWQgZG86XG4gKiAxLiBvcGVuIHBhY2thZ2VzL29wdGlvbnMvc3JjL0FwcGxpY2F0aW9uT3B0aW9ucy50cyBhbmQgYWRkIHlvdXIgcHJvcGVydHkgdGhlcmVcbiAqIDIuIGNoZWNrIGluIHRoaXMgZmlsZSBpZiBhbGwgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogVE9ETzogVGhpcyBmaWxlIHNob3VsZCB0aHJvdyB3aGVuIGEgcHJvcGVydHkgaXMgaW4gdGhlIEFwcE9wdGlvbnMgYnV0IG5vdCBpbXBsZW1lbnRlZCBoZXJlLlxuICogICAgICAgVGhpcyBzZWVtcyBub3QgdG8gd29yayBhdG0uIFdlIG5lZWQgdG8gY2hlY2sgd2h5LlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25PcHRpb25zIGltcGxlbWVudHMgQXBwT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29udGV4dFBhdGg6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgd2ViU2RrVmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFNldCB0byBgdHJ1ZWAgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIGh5YnJpZCBhbmQgdXNlcyBBbmd1bGFyIGFuZCBBbmd1bGFySlMgc2ltdWx0YW5lb3VzbHkuICovXG4gIHVwZ3JhZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgYnJhbmRpbmcgZW50cnkgZmlsZS4gKFNldCBpdCB0byBmYWxzZSB0byBkaXNhYmxlIGFueSBzdHlsaW5nLiBZb3UgY2FuIGhhbmRsZSB0aGUgc3R5bGluZyB0aGVuIG9uIHlvdXIgb3duIGUuZy4gaW4gYW4gYW5ndWxhci5qc29uIGZpbGUgdXNpbmcgbmctY2xpKVxuICAgKiBAZGVwcmVjYXRlZCBBZGQgeW91ciBnbG9iYWwgc3R5bGVzIHZpYSB0aGUgYW5ndWxhci5qc29uIGZpbGUuXG4gICAqL1xuICBicmFuZGluZ0VudHJ5PzogZmFsc2U7XG4gIC8qKiBQYXRoIHRvIHRzY2NuZmlnLmpzb24gZmlsZSBpZiBUeXBlU2NyaXB0IGlzIHVzZWQgKGRlZmF1bHQ6IC4vdHNjb25maWcuanNvbikuICovXG4gIHRzQ29uZmlnUGF0aD86IHN0cmluZztcbiAgLyoqIEVudHJ5IG1vZHVsZSBmb3IgQW5ndWxhciBjb21waWxlciAob25seSB1c2VkIHdpdGggbGF6eSBsb2FkZWQgcm91dGVzKSwgZS5nLiBgJ2FwcC5tb2R1bGUudHMjQXBwTW9kdWxlJ2AuICovXG4gIGVudHJ5TW9kdWxlPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byBjdXN0b20gaW5kZXguaHRtbCAob3RoZXJ3aXNlIGRlZmF1bHQgb25lIHdpbGwgYmUgdXNlZCkuICovXG4gIGluZGV4VGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVUkwgdG8gZHluYW1pY2FsbHkgZmV0Y2hlZCBvcHRpb25zLlxuICAgKiBJZiBzZXQgdG8gYHRydWVgIG9yIGxlZnQgdW5kZWZpbmVkLCBhbiBVUkwgd2lsbCBiZSB1c2VkIGJhc2VkIG9uIHRoZSBhcHBsaWNhdGlvbnMgY29udGV4dFBhdGguXG4gICAqIElmIHNldCB0byBgZmFsc2VgLCBubyBkeW5hbWljIG9wdGlvbnMgd2lsbCBiZSBmZXRjaGVkLlxuICAgKiAqL1xuICBkeW5hbWljT3B0aW9uc1VybD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKiBVUkwgdG8gZmF2aWNvbi4gKi9cbiAgZmF2aWNvblVybD86IHN0cmluZztcbiAgLyoqIFVSTCB0byBgKi5jc3NgIGZpbGUgd2hpY2ggd2lsbCByZXBsYWNlIGRlZmF1bHQgYnJhbmRpbmcuIFdpbGwgYmUgaWdub3JlZCBmb3Igc2VjdXJpdHkgcmVhc29ucyBpZiBwcm92aWRlZCBhcyBhIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gIGJyYW5kaW5nVXJsPzogc3RyaW5nO1xuICAvKiogRW5hYmxlcyB0aGUgYnJhbmRpbmcgcHJldmlldyBtb2RlLiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGBkeW5hbWljT3B0aW9uc1VybGAgd2lsbCBiZSBwb2xsZWQgcmVndWxhcmx5IGZvciBjaGFuZ2VzLiBJbiBjYXNlIHRoZSBgbGFzdFVwZGF0ZWRgIGZpZWxkIG9mIHRoZSBkeW5hbWljIG9wdGlvbnMgY2hhbmdlcywgdGhlIHBhZ2UgaXMgcmVsb2FkZWQgaW4gb3JkZXIgdG8gYXBwbHkgdGhlIG5ldyBicmFuZGluZy4gKi9cbiAgYnJhbmRpbmdQcmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqIE9iamVjdCB3aXRoIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBDU1MgY3VzdG9tIHZhcmlhYmxlcy4gV2lsbCBiZSBpZ25vcmVkIGZvciBzZWN1cml0eSByZWFzb25zIGlmIHByb3ZpZGVkIGFzIGEgVVJMIHF1ZXJ5IHBhcmFtZXRlci4gKi9cbiAgYnJhbmRpbmdDc3NWYXJzPzogQnJhbmRpbmdDc3NWYXJzO1xuICAvKipcbiAgICogQWxsb3dzIGZvciBhZGRpbmcgb3Igb3ZlcnJpZGluZyBsYW5ndWFnZXMgYXZhaWxhYmxlIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogSXRzIGtleXMgYXJlIGxhbmd1YWdlIGNvZGVzIGFuZCBpdHMgdmFsdWVzIGFyZSBvYmplY3RzIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgKlxuICAgKiAtIGBuYW1lYDogRW5nbGlzaCBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgbmF0aXZlTmFtZWA6IG5hdGl2ZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgdXJsYDogZnVsbCBVUkwgdG8gSlNPTiBmaWxlIHdpdGggY29tcGlsZWQgdHJhbnNsYXRpb25zO1xuICAgKiAgICBpZiBub3QgZGVmaW5lZCwgdHJhbnNsYXRpb25zIHdpbGwgYmUgbG9hZGVkIGZyb20gYCR7bG9jYWxlUGF0aH0vJHtsYW5nQ29kZX0uanNvbmAuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYGpzb25cbiAgICogXCJsYW5ndWFnZXNcIjoge1xuICAgKiAgIFwiZGVcIjoge1xuICAgKiAgICAgXCJuYW1lXCI6IFwiR2VybWFuXCIsXG4gICAqICAgICBcIm5hdGl2ZU5hbWVcIjogXCJEZXV0c2NoXCIsXG4gICAqICAgICBcInVybFwiOiBcIi9hcHBzL3B1YmxpYy91aS1hc3NldHMvZGUuanNvblwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgbGFuZ3VhZ2VzPzogTGFuZ3VhZ2VzO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGFkZCBjdXN0b20gdHJhbnNsYXRpb25zLiBJdCBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eS5cbiAgICpcbiAgICogSXRzIGtleXMgYXJlIGxhbmd1YWdlIGNvZGVzIChodHRwczovL2N1bXVsb2NpdHkuY29tL2d1aWRlcy91c2Vycy1ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQvI2EtbmFtZS1sYW5ndWFnZXMtYS1hdmFpbGFibGUtbGFuZ3VhZ2VzKVxuICAgKiBhbmQgaXRzIHZhbHVlcyBhcmUgb2JqZWN0cyB3aXRoIGtleS12YWx1ZSBwYWlycywgd2hlcmUgdGhlIGtleSBpcyB0aGUgb3JpZ2luYWwgc3RyaW5nIGluIEVuZ2xpc2ggYW5kIHRoZSB2YWx1ZSAtIGl0cyB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogLSBgSG9tZWA6IFwiU3RhcnRzZWl0ZVwiXG4gICAqXG4gICAqIEZvciBleGFtcGxlIHlvdSBjYW4gYWRkIHRoZSB0cmFuc2xhdGlvbiBvZiB5b3VyIGN1c3RvbSBjb29raWUgYmFubmVyIGNvbmZpZ3VyZWQgaW4gdGhlIGJyYW5kaW5nIHNldHRpbmdzOlxuICAgKiBgYGBqc29uXG4gICAqIFwiaTE4bkV4dHJhXCI6IHtcbiAgICogICBcImRlXCI6IHtcbiAgICogICAgIFwiQWJvdXQgY29va2llcyBvbiBDdW11bG9jaXR5IElvVFwiOiBcIkluZm9ybWF0aW9uZW4genUgQ29va2llcyBpbiBDdW11bG9jaXR5IElvVFwiLFxuICAgKiAgICAgXCJDbGljayBBZ3JlZSBhbmQgUHJvY2VlZCB0byBhY2NlcHQgY29va2llcyBhbmQgZ28gZGlyZWN0bHkgdG8gdGhlIHBsYXRmb3JtIG9yIGNsaWNrIG9uIFByaXZhY3kgUG9saWN5IHRvIHNlZSBkZXRhaWxlZCBkZXNjcmlwdGlvbnMgb2YgdGhlIHVzZWQgY29va2llcy5cIjogXCJLbGlja2VuIFNpZSBhdWYgWnVzdGltbWVuIHVuZCBmb3J0ZmFocmVuLCB1bSBDb29raWVzIHp1IGFremVwdGllcmVuIHVuZCBkaXJla3QgenVyIFBsYXR0Zm9ybSB6dSBnZWxhbmdlbiwgb2RlciBrbGlja2VuIFNpZSBhdWYgRGF0ZW5zY2h1dHpyaWNodGxpbmllLCB1bSBkZXRhaWxsaWVydGUgQmVzY2hyZWlidW5nZW4gZGVyIHZlcndlbmRldGVuIENvb2tpZXMgYW56dXplaWdlbi5cIlxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGkxOG5FeHRyYT86IEkxOG5FeHRyYTtcbiAgLyoqIFBhdGggdG8gdGhlIGZvbGRlciBmcm9tIHdoaWNoICoucG8gZmlsZXMgd2lsbCBiZSBsb2FkZWQuICovXG4gIGxvY2FsZVBhdGg/OiBzdHJpbmc7XG4gIC8qKiBBcnJheSBvZiBVUkxzIHRvIGFkZGl0aW9uYWwgYCouY3NzYCBmaWxlcyB0byBiZSBsb2FkZWQgYXQgcnVudGltZS4gV2lsbCBiZSBpZ25vcmVkIGZvciBzZWN1cml0eSByZWFzb25zIGlmIHByb3ZpZGVkIGFzIGEgVVJMIHF1ZXJ5IHBhcmFtZXRlci4gKi9cbiAgZXh0cmFDc3NVcmxzPzogc3RyaW5nW107XG4gIC8qKiBTdHlsZXNoZWV0IChDU1MpIHRoYXQgd2lsbCBiZSBhZGRlZCBhdCBydW50aW1lLiBUaGUgc3RyaW5nIHNob3VsZCBhY3R1YWxseSBjb250YWluIHRoZSBDU1Mgbm90IGEgcGF0aCBvciBVUkwgdG8gaXQuIFdpbGwgYmUgaWdub3JlZCBmb3Igc2VjdXJpdHkgcmVhc29ucyBpZiBwcm92aWRlZCBhcyBhIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gIGV4dHJhQ3NzPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbiBsaW5rcyBzZXR0aW5ncy4gKi9cbiAgZG9jcz86IERvY3M7XG4gIC8qKiBBcHBsaWNhdGlvbiBpY29uIHRvIGJlIGRpc3BsYXllZCBpbiBhcHAgc3dpdGNoZXIgYW5kIGhlYWRlciBiYXIuICovXG4gIGljb24/OiBJY29uO1xuXG4gIC8vIFRoZXNlIGFyZSB0aGUgb2xkIG9wdGlvbnNcbiAgLyoqIEhpZGUgYXBwbGljYXRpb24gaW4gYXBwIHN3aXRjaGVyIChzYXZlZCB0byB0aGUgc2VydmVyKS4gKi9cbiAgbm9BcHBTd2l0Y2hlcj86IGJvb2xlYW47XG4gIC8qKiBIVE1MIHBhZ2UgdGl0bGUuICovXG4gIGdsb2JhbFRpdGxlPzogc3RyaW5nO1xuICAvKiogSGlkZSBcInBvd2VyZWQgYnlcIiBhbmQgdmVyc2lvbiBpbmZvIGF0IHRoZSBib3R0b20gb2YgdGhlIG5hdmlnYXRvciBhbmQgaW4gdGhlIHJpZ2h0IGRyYXdlci4gKi9cbiAgaGlkZVBvd2VyZWQ/OiBib29sZWFuO1xuICAvKiogSGlkZXMgdGhlIGhlYWRlciBiYXIgKi9cbiAgaGlkZUhlYWRlcj86IGJvb2xlYW47XG4gIC8qKiBIaWRlcyB0aGUgXCJQbGF0Zm9ybSBpbmZvcm1hdGlvblwiIGluIHRoZSByaWdodCBkcmF3ZXIsIHdpbGwgb3ZlcnJ1bGUgdGhlIFwiaGlkZVBvd2VyZWRcIiBvcHRpb24gKi9cbiAgaGlkZVBsYXRmb3JtSW5mb3JtYXRpb24/OiBib29sZWFuO1xuICAvKiogVVJMIHRvIHN1cHBvcnQgcGFnZSAoc2V0IHRvIGBmYWxzZWAgdG8gaGlkZSB0aGUgbGluaykuICovXG4gIHN1cHBvcnRVcmw/OiBib29sZWFuIHwgc3RyaW5nO1xuICAvKipcbiAgICogUmVwbGFjZW1lbnQgc3RyaW5nIGZvciBgdXNlcmAgZmllbGQgaW4gYXVkaXQgbG9ncyBmb3IgYWN0aW9ucyBwZXJmb3JtZWQgYnkgYSBzdXBwb3J0IHVzZXJcbiAgICogKGF2YWlsYWJsZSBwbGFjZWhvbGRlcnM6IGB7e3N1cHBvcnRfdXNlcn19YCwgYHt7c3VwcG9ydGVkX3VzZXJ9fWApLlxuICAgKi9cbiAgc3VwcG9ydFVzZXJTdHJpbmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNhYmxlcyByZWFsdGltZSB1cGRhdGVzIG9uIHRoZSBtYXAgd2lkZ2V0IGFuZCBtYXBzIGluIGdlbmVyYWwuXG4gICAqL1xuICBtYXBXaWRnZXRSZWFsdGltZURpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBhZGp1c3QgdGhlIGRlZmF1bHQgcGFnZXNpemUgb2YgMTAwIGl0ZW1zIG9mIHRoZSBtYXAgd2lkZ2V0IGFuZCBtYXBzIGluIGdlbmVyYWwuXG4gICAqL1xuICBtYXBXaWRnZXRQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBoaWRlIHRoZSBoaW50IHRoYXQgdGhlcmUgYXJlIG1vcmUgZGV2aWNlcyB3aXRoIGdlbyBjb29yZGluYXRlcyB0aGVuIGRpc3BsYXllZCBvbiB0aGUgbWFwIHdpZGdldCBhbmQgbWFwcyBpbiBnZW5lcmFsLlxuICAgKi9cbiAgbWFwV2lkZ2V0SGlkZU1heERldmljZU9uTWFwSGludD86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgcmlnaHQgZHJhd2VyLiAqL1xuICByaWdodERyYXdlcj86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgb3IgZGlzYWJsZSBicmVhZGNydW1icyBpbiB0aGUgaGVhZGVyIGZvciBncm91cHMgYW5kIGRldmljZXMgKGRlZmF1bHQ6IGZhbHNlKS4gKi9cbiAgYnJlYWRjcnVtYnM/OiBib29sZWFuO1xuICAvKiogQ29sbGFwc2UgbmF2aWdhdG9yIG9uIGluaXRpYWwgbG9hZC4gKi9cbiAgaGlkZU5hdmlnYXRvcj86IGJvb2xlYW47XG4gIC8qKiBTaG93IHRhYnMgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuICovXG4gIHRhYnNIb3Jpem9udGFsPzogYm9vbGVhbjtcbiAgLyoqIEFkZGl0aW9uYWwgbGluayhzKSB0byBkaXNwbGF5IG9uIGxvZ2luIHNjcmVlbi4gKi9cbiAgbG9naW5FeHRyYUxpbms/OiBMb2dpbkV4dHJhTGluayB8IExvZ2luRXh0cmFMaW5rW107XG4gIC8qKiBFbmFibGUgb3IgZGlzYWJsZSBzdG9yYWdlIGxpbWl0YXRpb24gZmVhdHVyZS4gKi9cbiAgc3RvcmFnZUxpbWl0YXRpb25GZWF0dXJlRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBOYW1lIG9mIGNvbXBhbnkgaGFuZGxpbmcgc3VwcG9ydCByZXF1ZXN0cyBmcm9tIGFwcCB1c2VycyAoZGlzcGxheWVkIGluIG5vdGlmaWNhdGlvbiBtZXNzYWdlKS4gKi9cbiAgY29tcGFueU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgdGVtcGxhdGUgZm9yIGRvY3VtZW50YXRpb24gbGlua3MgKGRlZmF1bHQ6IGAnJHtkb2NzQmFzZVVybH0ke3BhcnRpYWxVcmx9J2ApLiAqL1xuICBndWlkZUhyZWZUZW1wbGF0ZT86IHN0cmluZztcbiAgLyoqIEJhc2UgVVJMIGZvciBkb2N1bWVudGF0aW9uIGxpbmtzIChpbmNsdWRlIGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlciwgaWYgeW91IHdhbnQgdmVyc2lvbmVkIGxpbmtzKS4gKi9cbiAgZG9jc0Jhc2VVcmw/OiBzdHJpbmc7XG4gIC8qKiBDU1Agc3RyaW5nIHRvIGJlIGFwcGxpZWQgdG8gYGluZGV4Lmh0bWxgIGJ5IHJlcGxhY2luZyBkZWZhdWx0IHZhbHVlcy4gKi9cbiAgY29udGVudFNlY3VyaXR5UG9saWN5Pzogc3RyaW5nO1xuICAvKiogRW5hYmxlcyBjbG91ZCBzZW5zb3Igd2l6YXJkICovXG4gIHNlbnNvclBob25lPzogYm9vbGVhbjtcbiAgLyoqIFNob3cgb3IgaGlkZSBhIG5ld3NsZXR0ZXIgc3Vic2NyaXB0aW9uIGNoZWNrYm94IGluIGVkaXQgdXNlciBtb2RhbC4gKi9cbiAgbmV3c2xldHRlcj86IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSByb290IG5vZGVfbW9kdWxlcyBkaXIgKHVzZWZ1bCB3aGVuIHdvcmtpbmcgaW4gbW9ub3JlcG8gc2V0dXAsIGUuZy4geWFybiB3b3Jrc3BhY2VzKS4gKi9cbiAgcm9vdE5vZGVNb2R1bGVzUGF0aD86IHN0cmluZztcbiAgLyoqIENvb2tpZSBCYW5uZXIgY29uZmlndXJhdGlvbiAqL1xuICBjb29raWVCYW5uZXI/OiBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uO1xuICAvKiogQ29va2llIHByZWZlcmVuY2VzIGNvbmZpZ3VyYXRpb24uIEhlcmUgeW91IGNhbiBlbmFibGUgb3IgZGlzYWJsZSBjb29raWUgY2F0ZWdvcmllcyAqL1xuICBjb29raWVQcmVmZXJlbmNlcz86IENvb2tpZVByZWZlcmVuY2VzQ29uZmlndXJhdGlvbjtcbiAgLyoqIE1lc3NhZ2UgQmFubmVyIGNvbmZpZ3VyYXRpb24gKi9cbiAgbWVzc2FnZUJhbm5lcj86IE1lc3NhZ2VCYW5uZXJDb25maWd1cmF0aW9uO1xuICAvKiogQSBrZXkgZm9yIHRoZSBwcm9kdWN0IGV4cGVyaWVuY2Ugc29mdHdhcmUgR2FpbnNpZ2h0LiAqL1xuICBnYWluc2lnaHRLZXk/OiBzdHJpbmc7XG4gIC8qKiBEaXNhYmxlIHVzZXIgdHJhY2tpbmcgKi9cbiAgZGlzYWJsZVRyYWNraW5nPzogYm9vbGVhbjtcbiAgLyoqIE5nTW9kdWxlIGV4cG9ydCBmb3IgcGx1Z2lucy4gKi9cbiAgZXhwb3J0cz86IFBsdWdpbnNFeHBvcnRzW107XG4gIC8qKiBMaXN0IG9mIGltcG9ydGVkIHJlbW90ZSBwbHVnaW5zLiAqL1xuICByZW1vdGVzPzogUmVtb3RlUGx1Z2lucztcbiAgLyoqIElmIHNldCB0byB0cnVlLCBvbmx5IHJlbW90ZXMgZGVmaW5lZCBpbiB0aGUgYHJlbW90ZXNgIHF1ZXJ5IHBhcmFtZXRlciB3aWxsIGJlIGxvYWRlZC4gKi9cbiAgZm9yY2VVcmxSZW1vdGVzPzogYm9vbGVhbjtcbiAgLyoqIFRoZSBwYWNrYWdlIHNvdXJjZSBhIGFwcGxpY2F0aW9uIG9yaWdpbnMgZnJvbSBhcyBJQXBwbGljYXRpb24gb3Igc2ltcGx5IHRoZSBpZCBvZiB0aGUgc291cmNlICovXG4gIHNvdXJjZT86IHN0cmluZyB8IG51bWJlciB8IElBcHBsaWNhdGlvbjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXNzZXRzIHRvIGNvcHkgdG8gdGhlIGJ1aWxkIG91dHB1dC5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvY29weS13ZWJwYWNrLXBsdWdpbiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgcGF0dGVybnMgdG8gYWRkIGhlcmUuXG4gICAqL1xuICBjb3B5PzogW107XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZW5hYmxlIG9yIGRpc2FibGUgY29udGV4dCBoZWxwLCBvciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiYXNlIFVSTCB1c2VkIHRvIGxvYWQgaXRzIGNvbnRlbnRzLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29udGV4dCBoZWxwIHVzZXMgdGhlIHNhbWUgYmFzZSBVUkwgYXMgZGVmaW5lZCBpbiB0aGUgYGRvY3NCYXNlVXJsYCBvcHRpb25cbiAgICogKGlmIHRoaXMgb3B0aW9uIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgZm9sbG93aW5nIHZhbHVlIHdpbGwgYmUgdXNlZDogYGh0dHBzOi8vY3VtdWxvY2l0eS5jb20vZ3VpZGVzL3t7dmVyc2lvbn19YCkuXG4gICAqIEFsdGVybmF0aXZlbHksIGlmIGEgc3RyaW5nIGlzIHByb3ZpZGVkIGhlcmUsIGl0J2xsIGJlIHVzZWQgYXMgdGhlIGJhc2UgVVJMXG4gICAqIGFuZCBhbnkgYHt7IHZlcnNpb24gfX1gIHBsYWNlaG9sZGVyIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgcmVsZXZhbnQgZG9jcyB2ZXJzaW9uLlxuICAgKi9cbiAgY29udGV4dEhlbHA/OiBib29sZWFuIHwgc3RyaW5nO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgY29ja3BpdCBhbmQgZGV2aWNlbWFuYWdlbWVudCB1c2UgdGhlIG9ubHlSb290cyBxdWVyeSB0byByZXNvbHZlIHJvb3Qgbm9kZXMuIFRoaXNcbiAgICogY291bGQgbGVhZCB0byBwZXJmb3JtYW5jZSBpc3N1ZXMsIGlmIGEgY3VzdG9tZXIgaGFzIGEgbG90IG9mIHJvb3Qgbm9kZXMuIFRoZXJlZm9yZSB5b3UgY2FuIGRpc2FibGVcbiAgICogdGhlIHVzZSBvZiB0aGlzIHF1ZXJ5IHdpdGggdGhpcyBmbGFnLlxuICAgKi9cbiAgZGlzYWJsZU9ubHlSb290c1F1ZXJ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBmb3JjZSBzaG93aW5nIHRoZSBzZXR1cCB3aXphcmQuXG4gICAqL1xuICBmb3JjZVNldHVwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgYXBwbGljYXRpb24gbmVlZHMgdG8gc2hvdyB0aGUgc2V0dXAgd2l6YXJkLlxuICAgKi9cbiAgaXNTZXR1cD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IGEgV2ViU0RLIGFwcCByZXF1aXJlcyB0aGUgdXNlciB0byBiZSBsb2dnZWQgaW4uXG4gICAqIEluIGNhc2UgeW91IHdvdWxkIGxpa2UgdG8gZGV2ZWxvcCBqdXN0IGEgc3RhdGljIGFwcGxpY2F0aW9uLCB0aGF0IGRvZXMgbm90IHJlcXVpcmUgYW55IGtpbmQgb2YgYWNjZXNzIHRvIHRoZSBiYWNrZW5kLFxuICAgKiB5b3UgY2FuIHVzZSB0aGlzIGZsYWcgdG8gZGlzYWJsZSB0aGUgbG9naW4gc2NyZWVuLlxuICAgKiBOT1RFOiBub3QgYWxsIFdlYlNESyBjb21wb25lbnRzIHN1cHBvcnQgdGhpcywgc29tZSBtaWdodCByZXF1aXJlIHRoZSB1c2VyIHRvIGJlIGxvZ2dlZCBpbiBhbmQgd29uJ3Qgd29yay5cbiAgICovXG4gIG5vTG9naW4/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIG9wdCBvdXQgb2Ygc3VwcG9ydGluZy9sb2FkaW5nIHBsdWdpbnMgZm9yIHRoaXMgYXBwbGljYXRpb24uXG4gICAqL1xuICBub1BsdWdpbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIG9wdCBvdXQgb2YgdGhlIHZlcnNpb24gd2FybmluZyB3aGljaCBpcyBzaG93biBpbiB0aGUgZGV2IHRvb2xzLlxuICAgKi9cbiAgbm9WZXJzaW9uV2FybmluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gc2V0IHRoZSBtYXAgbGF5ZXJzLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBvcGVuIHN0cmVldCBtYXAgbGF5ZXIuXG4gICAqL1xuICBtYXBMYXllcnM/OiBNYXBUaWxlTGF5ZXJbXTtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBzZXQgZGVmYXVsdCBjb25maWd1cmF0aW9ucyBvbiB0aGUgbWFwcy5cbiAgICovXG4gIG1hcENvbmZpZz86IE1hcERlZmF1bHRDb25maWc7XG4gIC8qKlxuICAgKiBUaGUgVVJMIHVzZWQgdG8gbG9va3VwIGdlbyBjb29yZGluYXRlcyBmb3IgYSB1c2VyIHByb3ZpZGVkIGFkZHJlc3MgdmlhIFtub21pbmF0aW0gQVBJXShodHRwczovL25vbWluYXRpbS5vcmcvcmVsZWFzZS1kb2NzL2RldmVsb3AvYXBpL1NlYXJjaC8pLlxuICAgKiBDYW4gYmUgc2V0IHRvIGVtcHR5IHRvIGRpc2FibGUgdGhlIGZpbmQgYWRkcmVzcyBmZWF0dXJlIG9uIHRoZSBsb2NhdGlvbiB0YWIuXG4gICAqIFVzZXM6IGBodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9zZWFyY2g/Zm9ybWF0PWpzb24mcT17c2VhcmNoVGVybX1gIGlmIG5vdCBzZXQuXG4gICAqL1xuICBtYXBOb21pbmF0aW1Vcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcm9vdCBlbGVtZW50LiBCeSBkZWZhdWx0IGM4eS1ib290c3RyYXAuXG4gICAqL1xuICByb290VGFnTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEhpZGVzIHBvc3NpYmlsaXR5IHRvIGNyZWF0ZSB0eXBlZCBkYXNoYm9hcmRzIGZvciBhc3NldHMgKGFuZCBncm91cHMpLiBJZiB0cnVlLCB0eXBlZCBkYXNoYm9hcmRzIGNhbiBiZSBjcmVhdGVkIG9ubHkgZm9yIGRldmljZXMuXG4gICAqIEl0IGlzIHRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGhpZGVUeXBlRGFzaGJvYXJkRm9yQXNzZXRzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEEgbWF0cml4IG9mIHZlcnNpb25zIGluZGljYXRpbmcgd2hpY2ggdmVyc2lvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIChrZXkpIGFyZSBkZXBlbmRlbnQgb24gd2hpY2ggdmVyc2lvbiBvZiBhIGN1bXVsb2NpdHkgY29tcG9uZW50IChBUEkgdmVyc2lvbiBhbmQgV2ViIFNESyB2ZXJzaW9uIG9mIHRoZSBzaGVsbCBhcHBsaWNhdGlvbiBjdXJyZW50bHkgc3VwcG9ydGVkLCBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlKS5cbiAgICogVGhlIHZlcnNpb25zIG9mIHRoZSBkZXBlbmRlbnQgY29tcG9uZW50cyBjYW4gYmUgaW5kaWNhdGVkIGJ5IGEgc2VtdmVyIHJhbmdlLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBqc29uXG4gICAqIHtcbiAgICogIFwiMS4wLjBcIjoge1xuICAgKiAgICBcInNka1wiOiBcIj49MTAxNi4wLjAgPDEwMTcuMC4wXCIsXG4gICAqICAgIFwiYXBpXCI6IFwiPj0xMDE2LjAuMCA8MTAxNy4wLjBcIlxuICAgKiAgfSxcbiAgICogIFwiMi4wLjBcIjoge1xuICAgKiAgICBcInNka1wiOiBcIn4xMDE3LjAuMFwiLFxuICAgKiAgICBcImFwaVwiOiBcIn4xMDE3LjAuMFwiXG4gICAqICB9LFxuICAgKiAgXCIzLjAuMFwiOiB7XG4gICAqICAgIFwic2RrXCI6IFwiPj0xMDE4LjAuMFwiLFxuICAgKiAgICBcImFwaVwiOiBcIj49MTAxOC4wLjBcIlxuICAgKiAgfSxcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHZlcnNpb25pbmdNYXRyaXg/OiBWZXJzaW9uaW5nTWF0cml4O1xuICAvKipcbiAgICogSXMgdXNlZCBmb3IgcGx1Z2lucyB0byBpbmRpY2F0ZSB0aGVpciBvd25lci4gU29mdHdhcmUgQUcgcGx1Z2lucyBhcmUgbWFya2VkIHdpdGggT0ZGSUNJQUwgbGFiZWwuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHR5cGUgb2YgcmVmcmVzaCBtZWNoYW5pc20gdXNlZCBmb3IgYWxhcm1zIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogLSAncmVhbHRpbWUnOiBVdGlsaXplcyBhIHJlYWx0aW1lIG1lY2hhbmlzbSBmb3IgdXBkYXRpbmcgYWxhcm1zLlxuICAgKiAtICdpbnRlcnZhbCc6IFV0aWxpemVzIEhUVFAgcG9sbGluZyBhdCByZWd1bGFyIGludGVydmFscyB0byByZWZyZXNoIHRoZSBhbGFybXMuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBhbGxvd3MgdG8gc3dpdGNoIGJldHdlZW4gcmVhbHRpbWUgYW5kIGludGVydmFsLWJhc2VkIHJlZnJlc2ggbWV0aG9kcy5cbiAgICovXG4gIGFsYXJtc1JlZnJlc2hUeXBlPzogJ2ludGVydmFsJyB8ICdyZWFsdGltZSc7XG59XG5cbi8qKlxuICogVGVsbHMgaG93IGEgcGx1Z2luIGlzIHNjb3BlZC5cbiAqL1xuZXhwb3J0IGVudW0gUGx1Z2luc0V4cG9ydFNjb3BlcyB7XG4gIC8qKlxuICAgKiBMaW1pdCB0aGUgcGx1Z2luIHRvIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uLiBJdCBpcyBpbXBvcnRlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgU0VMRiA9ICdzZWxmJyxcbiAgLyoqXG4gICAqIEFsbG93cyB0byBhZGQgdGhlIHBsdWdpbiB0byBhIGdsb2JhbCBzY29wZSwgbWVhbmluZyBpdCBpcyBpbXBvcnRlZCB0byBhbGwgYXBwbGljYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAqIFRoaXMgaXMgbm90IHVzZWQgYXQgdGhlIG1vbWVudCBidXQgcGxhbm5lZCB0byBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgbmV3IGJyYW5kaW5nIGVkaXRvci5cbiAgICovXG4gIEdMT0JBTCA9ICdnbG9iYWwnLFxuICAvKipcbiAgICogTGltaXQgdGhlIHBsdWdpbiB0byB0aGUgY3VycmVudCBhcHBsaWNhdGlvbi4gVGhlIHBsdWdpbiBpcyBub3QgaW1wb3J0ZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIFNFTEZfT1BUSU9OQUwgPSAnc2VsZi1vcHRpb25hbCcsXG4gIC8qKlxuICAgKiBMaWtlIHVuZGVmaW5lZCB0aGUgcGx1Z2luIGlzIGF2YWlsYWJsZSBmb3IgYW55IHByaXZhdGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBERUZBVUxUID0gJydcbn1cbiJdfQ==
|