ngx-histaff-alpha 3.1.8 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,8 +15,8 @@ export class CoreCommonParamKitComponent extends BaseComponent {
15
15
  super(mls);
16
16
  this.mls = mls;
17
17
  this.appService = appService;
18
- this.onChange = new EventEmitter();
19
18
  this.statusOptions$ = new BehaviorSubject([]);
19
+ this.onChange = new EventEmitter();
20
20
  this.isEmployeeStatusCase = false;
21
21
  this.onNgModelChange = (ngModel, value) => {
22
22
  this.onChange.emit({
@@ -128,61 +128,63 @@ export class CoreCommonParamKitComponent extends BaseComponent {
128
128
  }
129
129
  ngAfterViewInit() {
130
130
  setTimeout(() => {
131
- this.subscriptions.push(this.appService.get(this.statusOptionsApi).subscribe((x) => {
132
- if (x.ok && x.status === 200) {
133
- const body = x.body;
134
- if (body.statusCode === 200) {
135
- // Nếu trạng thái nhân viên, chỉ check mặc định "Đang làm việc"
136
- // Trái lại thì check tất
137
- for (let index = 0; index < body.innerBody.length; index++) {
138
- const i = body.innerBody[index];
139
- if (i.typeCode === "EMP_STATUS") {
140
- this.isEmployeeStatusCase = true;
141
- break;
142
- }
143
- }
144
- const newOptions = [
145
- {
146
- value: null,
147
- text: this.mls.trans(EnumTranslateKey.UI_CORE_PARAMS_COMMON_NULL_STATUS, this.lang),
148
- checked: this.isEmployeeStatusCase ? false : true
149
- }
150
- ];
151
- const newStatusIds = !!this.isEmployeeStatusCase ? [] : [null];
152
- body.innerBody.map((m) => {
153
- newOptions.push({
154
- value: m.id,
155
- text: m.name,
156
- checked: !!this.isEmployeeStatusCase ? (m.code === "ESW") : true
157
- });
158
- if (!!this.isEmployeeStatusCase) {
159
- if (m.code === "ESW") {
160
- newStatusIds.push(m.id);
131
+ if (!!this.statusOptionsApi) {
132
+ this.subscriptions.push(this.appService.get(this.statusOptionsApi).subscribe((x) => {
133
+ if (x.ok && x.status === 200) {
134
+ const body = x.body;
135
+ if (body.statusCode === 200) {
136
+ // Nếu trạng thái nhân viên, chỉ check mặc định "Đang làm việc"
137
+ // Trái lại thì check tất
138
+ for (let index = 0; index < body.innerBody.length; index++) {
139
+ const i = body.innerBody[index];
140
+ if (i.typeCode === "EMP_STATUS") {
141
+ this.isEmployeeStatusCase = true;
142
+ break;
161
143
  }
162
144
  }
163
- else {
164
- newStatusIds.push(m.id);
165
- }
166
- });
167
- this.statusOptions$.next(newOptions);
168
- this.paramRows.map(row => {
169
- row.map(column => {
170
- if (column.name === 'statusIds') {
171
- column.ngModel = newStatusIds;
145
+ const newOptions = [
146
+ {
147
+ value: null,
148
+ text: this.mls.trans(EnumTranslateKey.UI_CORE_PARAMS_COMMON_NULL_STATUS, this.lang),
149
+ checked: this.isEmployeeStatusCase ? false : true
172
150
  }
151
+ ];
152
+ const newStatusIds = !!this.isEmployeeStatusCase ? [] : [null];
153
+ body.innerBody.map((m) => {
154
+ newOptions.push({
155
+ value: m.id,
156
+ text: m.name,
157
+ checked: !!this.isEmployeeStatusCase ? (m.code === "ESW") : true
158
+ });
159
+ if (!!this.isEmployeeStatusCase) {
160
+ if (m.code === "ESW") {
161
+ newStatusIds.push(m.id);
162
+ }
163
+ }
164
+ else {
165
+ newStatusIds.push(m.id);
166
+ }
167
+ });
168
+ this.statusOptions$.next(newOptions);
169
+ this.paramRows.map(row => {
170
+ row.map(column => {
171
+ if (column.name === 'statusIds') {
172
+ column.ngModel = newStatusIds;
173
+ }
174
+ });
173
175
  });
174
- });
175
- this.onChange.emit({
176
- field: "statusIds",
177
- value: newStatusIds
178
- });
176
+ this.onChange.emit({
177
+ field: "statusIds",
178
+ value: newStatusIds
179
+ });
180
+ }
179
181
  }
180
- }
181
- }));
182
+ }));
183
+ }
182
184
  });
183
185
  }
184
186
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreCommonParamKitComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.AppService }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreCommonParamKitComponent, isStandalone: true, selector: "core-common-param-kit", inputs: { enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", datePeriodComparisonFor: "datePeriodComparisonFor", datePeriodComparisonForLabelKey: "datePeriodComparisonForLabelKey", statusInclusionFor: "statusInclusionFor", statusInclusionForLabelKey: "statusInclusionForLabelKey", statusOptionsApi: "statusOptionsApi", showOrgParam: "showOrgParam", hideDatePeriodComparison: "hideDatePeriodComparison", hideStatusInclusion: "hideStatusInclusion", hideGeneralSearch: "hideGeneralSearch" }, outputs: { onChange: "onChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ml5\">\r\n <core-header-params [rows]=\"paramRows\"></core-header-params>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CoreHeaderParamsComponent, selector: "core-header-params", inputs: ["enableTimeZoneConverterForDateTimePeriodParameters", "rows", "toggleAllValue"] }] }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreCommonParamKitComponent, isStandalone: true, selector: "core-common-param-kit", inputs: { enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", datePeriodComparisonFor: "datePeriodComparisonFor", datePeriodComparisonForLabelKey: "datePeriodComparisonForLabelKey", statusInclusionFor: "statusInclusionFor", statusInclusionForLabelKey: "statusInclusionForLabelKey", statusOptionsApi: "statusOptionsApi", showOrgParam: "showOrgParam", hideDatePeriodComparison: "hideDatePeriodComparison", hideStatusInclusion: "hideStatusInclusion", hideGeneralSearch: "hideGeneralSearch", statusOptions$: "statusOptions$" }, outputs: { onChange: "onChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ml5\">\r\n <core-header-params [rows]=\"paramRows\"></core-header-params>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CoreHeaderParamsComponent, selector: "core-header-params", inputs: ["enableTimeZoneConverterForDateTimePeriodParameters", "rows", "toggleAllValue"] }] }); }
186
188
  }
187
189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreCommonParamKitComponent, decorators: [{
188
190
  type: Component,
@@ -211,7 +213,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
211
213
  type: Input
212
214
  }], hideGeneralSearch: [{
213
215
  type: Input
216
+ }], statusOptions$: [{
217
+ type: Input
214
218
  }], onChange: [{
215
219
  type: Output
216
220
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7OztBQW1CekgsTUFBTSxPQUFPLDJCQUNYLFNBQVEsYUFBYTtJQTJCckIsWUFDa0IsR0FBeUIsRUFDakMs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SztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YSB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29tbW9uLXBhcmFtLWtpdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb21tb25QYXJhbUtpdENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNPcHRpb25zQXBpITogYXBpO1xyXG4gIEBJbnB1dCgpIHNob3dPcmdQYXJhbSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YT4oKTtcclxuXHJcbiAgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuXHJcbiAgaXNFbXBsb3llZVN0YXR1c0Nhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb25OZ01vZGVsQ2hhbmdlID0gKG5nTW9kZWw6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcclxuICAgICAgZmllbGQ6IG5nTW9kZWwsXHJcbiAgICAgIHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcGFyYW1Sb3dzITogSUNvcmVQYXJhbUNvbnRyb2xbXVtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoKHgpID0+ICh0aGlzLmxhbmcgPSB4KSkpO1xyXG5cclxuICAgIGlmICghIXRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uKSB7XHJcbiAgICAgIHRoaXMucGFyYW1Sb3dzID0gW1xyXG4gICAgICAgIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdvcmdJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBbXSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fSFVfT1JHQU5JWkFUSU9OX0lEUyxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuU0VFS0VSLFxyXG4gICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLLFxyXG4gICAgICAgICAgICBoaWRkZW46ICF0aGlzLnNob3dPcmdQYXJhbSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAvLyAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgIC8vICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAvLyAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgLy8gICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAvLyAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgLy8gICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgLy8gICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAhdGhpcy5oaWRlR2VuZXJhbFNlYXJjaCA/IDMgOiAxMCxcclxuICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IFtdLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlU3RhdHVzSW5jbHVzaW9uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5zdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNULFxyXG4gICAgICAgICAgICBjaGVja2xpc3RPcHRpb25zJDogdGhpcy5zdGF0dXNPcHRpb25zJCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXVxyXG4gICAgICBdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgICBuYW1lOiAnb3JnSWRzJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlNFRUtFUixcclxuICAgICAgICAgICAgc2Vla2VyU291cmNlVHlwZTogRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuT1JHQU5JWkFUSU9OX1VOSVRfU0VFSyxcclxuICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgbmFtZTogJ2dlbmVyYWxTZWFyY2gnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiAnJyxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9QQVJBTVNfR0VORVJBTF9TRUFSQ0gsXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlRFWFRCT1gsXHJcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlR2VuZXJhbFNlYXJjaFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgICovXHJcblxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgbmFtZTogJ2RhdGVGcm9tJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdkYXRlVG8nLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBudWxsLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24sXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IFtdLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlU3RhdHVzSW5jbHVzaW9uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5zdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNULFxyXG4gICAgICAgICAgICBjaGVja2xpc3RPcHRpb25zJDogdGhpcy5zdGF0dXNPcHRpb25zJCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQodGhpcy5zdGF0dXNPcHRpb25zQXBpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHk7XHJcbiAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cclxuICAgICAgICAgICAgICAvLyBO4bq/dSBsw6AgdHLhuqFuZyB0aMOhaSBuaMOibiB2acOqbiwgY2jhu4kgY2hlY2sgbeG6t2MgxJHhu4tuaCBcIsSQYW5nIGzDoG0gdmnhu4djXCJcclxuICAgICAgICAgICAgICAvLyBUcsOhaSBs4bqhaSB0aMOsIGNoZWNrIHThuqV0XHJcblxyXG4gICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9keS5pbm5lckJvZHkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpID0gYm9keS5pbm5lckJvZHlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGkudHlwZUNvZGUgPT09IFwiRU1QX1NUQVRVU1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnM6IElDb3JlQ2hlY2tsaXN0T3B0aW9uW10gPSBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0NPTU1PTl9OVUxMX1NUQVRVUywgdGhpcy5sYW5nKSxcclxuICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IGZhbHNlIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfV07XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c0lkczogKG51bWJlciB8IG51bGwpW10gPSAhIXRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPyBbXSA6IFtudWxsXTtcclxuXHJcbiAgICAgICAgICAgICAgYm9keS5pbm5lckJvZHkubWFwKChtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBtLmlkLFxyXG4gICAgICAgICAgICAgICAgICB0ZXh0OiBtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IChtLmNvZGUgPT09IFwiRVNXXCIpIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChtLmNvZGUgPT09IFwiRVNXXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXdTdGF0dXNJZHMucHVzaChtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgbmV3U3RhdHVzSWRzLnB1c2gobS5pZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQubmV4dChuZXdPcHRpb25zKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJhbVJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICByb3cubWFwKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gJ3N0YXR1c0lkcycpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4ubmdNb2RlbCA9IG5ld1N0YXR1c0lkcztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6IFwic3RhdHVzSWRzXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogbmV3U3RhdHVzSWRzXHJcbiAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtbDVcIj5cclxuICAgIDxjb3JlLWhlYWRlci1wYXJhbXMgW3Jvd3NdPVwicGFyYW1Sb3dzXCI+PC9jb3JlLWhlYWRlci1wYXJhbXM+XHJcbjwvZGl2PiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7OztBQW1CekgsTUFBTSxPQUFPLDJCQUNYLFNBQVEsYUFBYTtJQTJCckIsWUFDa0IsR0FBeUIsRUFDakMs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WixXQUFXO3dCQUNYLHlCQUF5QjtxQkFDMUI7a0hBT1Esa0RBQWtEO3NCQUExRCxLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUNvcmVDaGVja2xpc3RPcHRpb24gfSBmcm9tICcuLi8uLi9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29yZVBhcmFtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUtaGVhZGVyLXBhcmFtcy9lbnVtLWFuZC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRW51bUZvcm1CYXNlQ29udG9sVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bUZvcm1CYXNlQ29udG9sVHlwZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IElGb3JtYXRlZFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JRm9ybWF0ZWRSZXNwb25zZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVDb21tb25QYXJhbUtpdEV2ZW50RW1pdHRlckRhdGEge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWNvbW1vbi1wYXJhbS1raXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQ29tbW9uUGFyYW1LaXRDb21wb25lbnRcclxuICBleHRlbmRzIEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnMhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHN0YXR1c0luY2x1c2lvbkZvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9uc0FwaSE6IGFwaTtcclxuICBASW5wdXQoKSBzaG93T3JnUGFyYW0hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbiE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZVN0YXR1c0luY2x1c2lvbiE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZUdlbmVyYWxTZWFyY2ghOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHN0YXR1c09wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ29yZUNoZWNrbGlzdE9wdGlvbltdPihbXSk7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YT4oKTtcclxuXHJcblxyXG4gIGlzRW1wbG95ZWVTdGF0dXNDYXNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9uTmdNb2RlbENoYW5nZSA9IChuZ01vZGVsOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGZpZWxkOiBuZ01vZGVsLFxyXG4gICAgICB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHBhcmFtUm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKCh4KSA9PiAodGhpcy5sYW5nID0geCkpKTtcclxuXHJcbiAgICBpZiAoISF0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbikge1xyXG4gICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgICBuYW1lOiAnb3JnSWRzJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogW10sXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlNFRUtFUixcclxuICAgICAgICAgICAgc2Vla2VyU291cmNlVHlwZTogRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuT1JHQU5JWkFUSU9OX1VOSVRfU0VFSyxcclxuICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyB7XHJcbiAgICAgICAgICAvLyAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgLy8gICBuYW1lOiAnZ2VuZXJhbFNlYXJjaCcsXHJcbiAgICAgICAgICAvLyAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgLy8gICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgIC8vICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgLy8gICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX1BBUkFNU19HRU5FUkFMX1NFQVJDSCxcclxuICAgICAgICAgIC8vICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuVEVYVEJPWCxcclxuICAgICAgICAgIC8vICAgaGlkZGVuOiB0aGlzLmhpZGVHZW5lcmFsU2VhcmNoXHJcbiAgICAgICAgICAvLyB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogIXRoaXMuaGlkZUdlbmVyYWxTZWFyY2ggPyAzIDogMTAsXHJcbiAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBbXSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLTElTVCxcclxuICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF1cclxuICAgICAgXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9IVV9PUkdBTklaQVRJT05fSURTLFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIsXHJcbiAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUssXHJcbiAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuc2hvd09yZ1BhcmFtLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAqL1xyXG5cclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdkYXRlRnJvbScsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgICBuYW1lOiAnZGF0ZVRvJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBbXSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLTElTVCxcclxuICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIF07XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoISF0aGlzLnN0YXR1c09wdGlvbnNBcGkpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQodGhpcy5zdGF0dXNPcHRpb25zQXBpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5O1xyXG4gICAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gIFxyXG4gICAgICAgICAgICAgICAgLy8gTuG6v3UgbMOgIHRy4bqhbmcgdGjDoWkgbmjDom4gdmnDqm4sIGNo4buJIGNoZWNrIG3hurdjIMSR4buLbmggXCLEkGFuZyBsw6BtIHZp4buHY1wiXHJcbiAgICAgICAgICAgICAgICAvLyBUcsOhaSBs4bqhaSB0aMOsIGNoZWNrIHThuqV0XHJcbiAgXHJcbiAgICAgICAgICAgICAgICBcclxuICBcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBib2R5LmlubmVyQm9keS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaSA9IGJvZHkuaW5uZXJCb2R5W2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGkudHlwZUNvZGUgPT09IFwiRU1QX1NUQVRVU1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnM6IElDb3JlQ2hlY2tsaXN0T3B0aW9uW10gPSBbXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0NPTU1PTl9OVUxMX1NUQVRVUywgdGhpcy5sYW5nKSxcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiB0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlID8gZmFsc2UgOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgIH1dO1xyXG4gIFxyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U3RhdHVzSWRzOiAobnVtYmVyIHwgbnVsbClbXSA9ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IFtdIDogW251bGxdO1xyXG4gIFxyXG4gICAgICAgICAgICAgICAgYm9keS5pbm5lckJvZHkubWFwKChtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbmV3T3B0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbS5pZCxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogISF0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlID8gKG0uY29kZSA9PT0gXCJFU1dcIikgOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG0uY29kZSA9PT0gXCJFU1dcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdHVzSWRzLnB1c2gobS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ld1N0YXR1c0lkcy5wdXNoKG0uaWQpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICBcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQubmV4dChuZXdPcHRpb25zKTtcclxuICBcclxuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1Sb3dzLm1hcChyb3cgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3cubWFwKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbi5uYW1lID09PSAnc3RhdHVzSWRzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uLm5nTW9kZWwgPSBuZXdTdGF0dXNJZHM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICBcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBcInN0YXR1c0lkc1wiLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3U3RhdHVzSWRzXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gIFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1sNVwiPlxyXG4gICAgPGNvcmUtaGVhZGVyLXBhcmFtcyBbcm93c109XCJwYXJhbVJvd3NcIj48L2NvcmUtaGVhZGVyLXBhcmFtcz5cclxuPC9kaXY+Il19