@qbs-origin/origin-form 0.6.4 → 0.6.5
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/esm2022/lib/formly/formly-checkboxes/formly-checkboxes.component.mjs +73 -0
- package/esm2022/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.mjs +52 -12
- package/esm2022/lib/formly/formly-field-stepper/formly-field-stepper.component.mjs +15 -3
- package/esm2022/lib/models/forms.model.mjs +4 -2
- package/esm2022/lib/origin-form.component.mjs +59 -13
- package/esm2022/lib/origin-form.module.mjs +6 -1
- package/esm2022/lib/shared-components/dictionaries-tree.component.mjs +10 -3
- package/esm2022/lib/shared-components/treeview/treeview.component.mjs +19 -3
- package/fesm2022/qbs-origin-origin-form.mjs +221 -30
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/formly/formly-checkboxes/formly-checkboxes.component.d.ts +17 -0
- package/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.d.ts +3 -0
- package/lib/models/forms.model.d.ts +5 -1
- package/lib/origin-form.module.d.ts +64 -63
- package/lib/shared-components/treeview/treeview.component.d.ts +1 -0
- package/package.json +2 -2
|
@@ -11,6 +11,7 @@ import { FormlyGenerateDocumentsComponent } from './formly/formly-generate-docum
|
|
|
11
11
|
import { FormlyFieldIdentificationComponent } from './formly/formly-identification.component';
|
|
12
12
|
import { FormlyParagraphComponent } from './formly/formly-paragraph/formly-paragraph.component';
|
|
13
13
|
import { FormlyRadioComponent } from './formly/formly-radio/formly-radio-component';
|
|
14
|
+
import { FormlyCheckboxesComponent } from './formly/formly-checkboxes/formly-checkboxes.component';
|
|
14
15
|
import { RowFillerComponent } from './formly/formly-row-fille';
|
|
15
16
|
import { FormlyScanIdComponent } from './formly/formly-scan-id/formly-scan-id.component';
|
|
16
17
|
import { FormlySignComponent } from './formly/formly-sign/formly-sign.component';
|
|
@@ -117,6 +118,7 @@ export class OriginFormModule {
|
|
|
117
118
|
FormlyFieldIdentificationComponent,
|
|
118
119
|
FormlyParagraphComponent,
|
|
119
120
|
FormlyRadioComponent,
|
|
121
|
+
FormlyCheckboxesComponent,
|
|
120
122
|
RowFillerComponent,
|
|
121
123
|
FormlyScanIdComponent,
|
|
122
124
|
FormlySignComponent,
|
|
@@ -288,6 +290,7 @@ export class OriginFormModule {
|
|
|
288
290
|
component: FormlyParagraphComponent,
|
|
289
291
|
},
|
|
290
292
|
{ name: 'formly-radio', component: FormlyRadioComponent },
|
|
293
|
+
{ name: 'formly-checkboxes', component: FormlyCheckboxesComponent },
|
|
291
294
|
{
|
|
292
295
|
name: 'formly-validate-contact-info',
|
|
293
296
|
component: FormlyValidateContactInfoComponent,
|
|
@@ -323,6 +326,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
323
326
|
FormlyFieldIdentificationComponent,
|
|
324
327
|
FormlyParagraphComponent,
|
|
325
328
|
FormlyRadioComponent,
|
|
329
|
+
FormlyCheckboxesComponent,
|
|
326
330
|
RowFillerComponent,
|
|
327
331
|
FormlyScanIdComponent,
|
|
328
332
|
FormlySignComponent,
|
|
@@ -435,6 +439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
435
439
|
component: FormlyParagraphComponent,
|
|
436
440
|
},
|
|
437
441
|
{ name: 'formly-radio', component: FormlyRadioComponent },
|
|
442
|
+
{ name: 'formly-checkboxes', component: FormlyCheckboxesComponent },
|
|
438
443
|
{
|
|
439
444
|
name: 'formly-validate-contact-info',
|
|
440
445
|
component: FormlyValidateContactInfoComponent,
|
|
@@ -476,4 +481,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
476
481
|
]
|
|
477
482
|
}]
|
|
478
483
|
}], ctorParameters: () => [{ type: i1.ThemeInjectorService }] });
|
|
479
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9vcmlnaW4tZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFF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QjtvQ0FDbkMsU0FBUyxFQUFFLHdCQUF3QjtpQ0FDcEM7Z0NBQ0QsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFOzZCQUN2RTt5QkFDRixDQUFDO3dCQUNKLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7cUJBQzVCO29CQUNDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUVuQyxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUI7d0JBQzNCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7d0JBQzNDOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSwwQkFBMEI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDdXN0b21TZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvY3VzdG9tLXNlY3Rpb24tc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm0tc2VjdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1hY3Rpb24nO1xuaW1wb3J0IHsgRm9ybWx5Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktY2hlY2tib3gvZm9ybWx5LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlEaWN0aW9uYXJ5RHJvcGRvd25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlEb3dubG9hZERvY3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1kb3dubG9hZC1kb2N1bWVudHMvZm9ybWx5LWRvd25sb2FkLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWZpZWxkLXN0ZXBwZXIvZm9ybWx5LWZpZWxkLXN0ZXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWdlbmVyYXRlLWRvY3VtZW50cy9mb3JtbHktZ2VuZXJhdGUtZG9jdW1lbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZElkZW50aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWlkZW50aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlQYXJhZ3JhcGhDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktcGFyYWdyYXBoL2Zvcm1seS1wYXJhZ3JhcGguY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXJhZGlvL2Zvcm1seS1yYWRpby1jb21wb25lbnQnO1xuaW1wb3J0IHsgUm93RmlsbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXJvdy1maWxsZSc7XG5pbXBvcnQgeyBGb3JtbHlTY2FuSWRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktc2Nhbi1pZC9mb3JtbHktc2Nhbi1pZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5U2lnbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1zaWduL2Zvcm1seS1zaWduLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8vZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5Vmlld09mZmVyc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12aWV3LW9mZmVycy9mb3JtbHktdmlldy1vZmZlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3RvckZvcm1Db21wb25lbnQgfSBmcm9tICcuL29yaWdpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmlnaW5Gb3JtU2VydmljZSB9IGZyb20gJy4vb3JpZ2luLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL290aGVycy9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbGFiZWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJveHlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm94eS5zZXJ2aWNlJztcbmltcG9ydCB7IERpY3Rpb25hcmllc1RyZWVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgU2lnbkxpYk1vZHVsZSB9IGZyb20gJ0BxYnMtb3JpZ2luL3NpZ24tbGliJztcbmltcG9ydCB7IEZvcm1seU1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRm9ybWx5TWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRm9ybWx5TWF0VGV4dEFyZWFNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC90ZXh0YXJlYSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbi8vIE1hdGVyaWFsIEZvcm0gQ29udHJvbHNcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuLy8gTWF0ZXJpYWwgTmF2aWdhdGlvblxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuLy8gTWF0ZXJpYWwgTGF5b3V0XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuLy8gTWF0ZXJpYWwgQnV0dG9ucyAmIEluZGljYXRvcnNcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuLy8gTWF0ZXJpYWwgUG9wdXBzICYgTW9kYWxzXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuLy8gTWF0ZXJpYWwgRGF0YSB0YWJsZXNcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBNYXJrZG93bk1vZHVsZSB9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQgeyBBcHBUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEhUVFBfSU5URVJDRVBUT1JTLFxuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT3JpZ2luRm9ybVRva2VuSW50ZXJjZXB0b3IgfSBmcm9tICcuL29yaWdpbi1mb3JtLXRva2VuLmludGVyY2VwdG9yJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IE90cFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL290cC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzLFxufSBmcm9tICdAZWt5Y19xb29iaXNzL3Ficy1lY3QtY21wL2Rpc3QvbG9hZGVyJztcbmltcG9ydCB7IFRoZW1lSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS1pbmplY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vL0Vucm9sIGNhcmRcbmltcG9ydCB7IEZvcm1seUVucm9sQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1lbnJvbC1jYXJkL2Zvcm1seS1lbnJvbC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlWaWV3RG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXZpZXctZG9jdW1lbnRzL2Zvcm1seS12aWV3LWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL290aGVycy90cmFuc2xhdGlvbi5waXBlJztcbmltcG9ydCB7IEV4dGVybmFsTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vb3RoZXJzL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1vcGVuLWJhbmtpbmcvZm9ybWx5LW9wZW4tYmFua2luZy5jb21wb25lbnQnO1xuXG5cbiAgZGVmaW5lQ3VzdG9tRWxlbWVudHMod2luZG93KTtcblxuICBATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgIEN1c3RvbVNlY3Rpb25Db21wb25lbnQsXG4gICAgICBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUFjdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seUNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCxcbiAgICAgIEZvcm1seURvd25sb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5Vmlld0RvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seUZpZWxkU3RlcHBlckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5RmllbGRJZGVudGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seVBhcmFncmFwaENvbXBvbmVudCxcbiAgICAgIEZvcm1seVJhZGlvQ29tcG9uZW50LFxuICAgICAgUm93RmlsbGVyQ29tcG9uZW50LFxuICAgICAgRm9ybWx5U2NhbklkQ29tcG9uZW50LFxuICAgICAgRm9ybWx5U2lnbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seVVwbG9hZERvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seVZhbGlkYXRlQ29udGFjdEluZm9Db21wb25lbnQsXG4gICAgICBGb3JtbHlWaWV3T2ZmZXJzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5T3BlbkJhbmtpbmdDb21wb25lbnQsXG4gICAgICBQaWNrZXJDb21wb25lbnQsXG4gICAgICBcbiAgICAgIEFwcFRyZWV2aWV3Q29tcG9uZW50LFxuICAgICAgRGljdGlvbmFyaWVzVHJlZUNvbXBvbmVudCxcbiAgICAgIENvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICAgIEdyaWRDb21wb25lbnQsXG4gICAgICBDb2xsZWN0b3JGb3JtQ29tcG9uZW50LFxuICAgICAgRm9ybWx5RW5yb2xDYXJkQ29tcG9uZW50LFxuICAgICAgRXh0ZXJuYWxMaW5rRGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICBDb21tb25Nb2R1bGUsXG4gICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICBOZ1Njcm9sbGJhck1vZHVsZSxcbiAgICAgIFNpZ25MaWJNb2R1bGUsXG4gICAgICBQZGZWaWV3ZXJNb2R1bGUsXG4gICAgICBNYXJrZG93bk1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgbWFya2VkT3B0aW9uczoge1xuICAgICAgICAgIHByb3ZpZGU6ICdNQVJLRURfT1BUSU9OUycsXG4gICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGdmbTogdHJ1ZSxcbiAgICAgICAgICAgIGJyZWFrczogZmFsc2UsXG4gICAgICAgICAgICBwZWRhbnRpYzogZmFsc2UsXG4gICAgICAgICAgICBzbWFydExpc3RzOiB0cnVlLFxuICAgICAgICAgICAgc21hcnR5cGFudHM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIFJvdXRlck1vZHVsZS5mb3JSb290KFtdKSxcbiAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXG4gIFxuICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgICAgICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgICAgICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgICAgICAgTWF0TGlzdE1vZHVsZSxcbiAgICAgICAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgICAgTWF0VHJlZU1vZHVsZSxcbiAgICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgICAgICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgICAgICAgIE1hdENoaXBzTW9kdWxlLFxuICAgICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgICAgICAgTWF0U29ydE1vZHVsZSxcbiAgICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgICBGb3JtbHlNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgICAgICB0eXBlczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdzdGVwcGVyJywgY29tcG9uZW50OiBGb3JtbHlGaWVsZFN0ZXBwZXJDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnc2VwYXJhdG9yJywgY29tcG9uZW50OiBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdjdXN0b20tc2VjdGlvbicsIGNvbXBvbmVudDogQ3VzdG9tU2VjdGlvbkNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdyb3ctZmlsbGVyJywgY29tcG9uZW50OiBSb3dGaWxsZXJDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktaWRlbnRpZmljYXRpb24tY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkSWRlbnRpZmljYXRpb25Db21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1zaWduLWNvbXBvbmVudCcsIGNvbXBvbmVudDogRm9ybWx5U2lnbkNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS11cGxvYWQtZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWRvd25sb2FkLWRvY3VtZW50cy1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RG93bmxvYWREb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXZpZXctZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlWaWV3RG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1nZW5lcmF0ZS1kb2N1bWVudHMtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LWNoZWNrYm94JywgY29tcG9uZW50OiBGb3JtbHlDaGVja2JveENvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1wYXJhZ3JhcGgnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5UGFyYWdyYXBoQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktcmFkaW8nLCBjb21wb25lbnQ6IEZvcm1seVJhZGlvQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mbycsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlWYWxpZGF0ZUNvbnRhY3RJbmZvQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktc2Nhbi1pZCcsIGNvbXBvbmVudDogRm9ybWx5U2NhbklkQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1hY3Rpb24tY29tcG9uZW50JywgY29tcG9uZW50OiBGb3JtbHlBY3Rpb25Db21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LXZpZXctb2ZmZXJzJywgY29tcG9uZW50OiBGb3JtbHlWaWV3T2ZmZXJzQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWVucm9sLWNhcmQtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUVucm9sQ2FyZENvbXBvbmVudFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktb3Blbi1iYW5raW5nJywgY29tcG9uZW50OiBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgRm9ybWx5TWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIEZvcm1seU1hdFRleHRBcmVhTW9kdWxlLFxuICAgICAgICBGb3JtbHlNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIF0sXG4gICAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gICAgXG4gICAgZXhwb3J0czogW1xuICAgICAgQ29sbGVjdG9yRm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbT3JpZ2luRm9ybVNlcnZpY2UsXG4gICAgICBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgIEZvcm1zU2VydmljZSxcbiAgICAgIE90cFNlcnZpY2UsXG4gICAgICBBcHBsaWNhdGlvbkRhdGFTZXJ2aWNlLFxuICAgICAgRGlhbG9nU2VydmljZSxcbiAgICAgIExhYmVsU2VydmljZSxcbiAgICAgIFByb3h5U2VydmljZSxcbiAgICAgIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlQ2xhc3M6IE9yaWdpbkZvcm1Ub2tlbkludGVyY2VwdG9yLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXVxuICB9KVxuZXhwb3J0IGNsYXNzIE9yaWdpbkZvcm1Nb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoZW1lSW5qZWN0b3I6IFRoZW1lSW5qZWN0b3JTZXJ2aWNlKSB7fVxufVxuIl19
|
|
484
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9vcmlnaW4tZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFF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SUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQ0FDNUQsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dDQUNyRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7Z0NBQ3BFO29DQUNFLElBQUksRUFBRSw2QkFBNkI7b0NBQ25DLFNBQVMsRUFBRSx3QkFBd0I7aUNBQ3BDO2dDQUNELEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRTs2QkFDdkU7eUJBQ0YsQ0FBQzt3QkFDSixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3FCQUM1QjtvQkFDQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFFbkMsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3dCQUMzQzs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3VzdG9tU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2N1c3RvbS1zZWN0aW9uLXNlcGFyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVNlY3Rpb25TZXBhcmF0b3JDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtLXNlY3Rpb24tc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktYWN0aW9uJztcbmltcG9ydCB7IEZvcm1seUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWNoZWNrYm94L2Zvcm1seS1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUvZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5RG93bmxvYWREb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktZG93bmxvYWQtZG9jdW1lbnRzL2Zvcm1seS1kb3dubG9hZC1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUZpZWxkU3RlcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1maWVsZC1zdGVwcGVyL2Zvcm1seS1maWVsZC1zdGVwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlHZW5lcmF0ZURvY3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1nZW5lcmF0ZS1kb2N1bWVudHMvZm9ybWx5LWdlbmVyYXRlLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRJZGVudGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1pZGVudGlmaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5UGFyYWdyYXBoQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXBhcmFncmFwaC9mb3JtbHktcGFyYWdyYXBoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1yYWRpby9mb3JtbHktcmFkaW8tY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUNoZWNrYm94ZXNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktY2hlY2tib3hlcy9mb3JtbHktY2hlY2tib3hlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm93RmlsbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXJvdy1maWxsZSc7XG5pbXBvcnQgeyBGb3JtbHlTY2FuSWRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktc2Nhbi1pZC9mb3JtbHktc2Nhbi1pZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5U2lnbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1zaWduL2Zvcm1seS1zaWduLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8vZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5Vmlld09mZmVyc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12aWV3LW9mZmVycy9mb3JtbHktdmlldy1vZmZlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3RvckZvcm1Db21wb25lbnQgfSBmcm9tICcuL29yaWdpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmlnaW5Gb3JtU2VydmljZSB9IGZyb20gJy4vb3JpZ2luLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL290aGVycy9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbGFiZWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJveHlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm94eS5zZXJ2aWNlJztcbmltcG9ydCB7IERpY3Rpb25hcmllc1RyZWVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgU2lnbkxpYk1vZHVsZSB9IGZyb20gJ0BxYnMtb3JpZ2luL3NpZ24tbGliJztcbmltcG9ydCB7IEZvcm1seU1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRm9ybWx5TWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRm9ybWx5TWF0VGV4dEFyZWFNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC90ZXh0YXJlYSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbi8vIE1hdGVyaWFsIEZvcm0gQ29udHJvbHNcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuLy8gTWF0ZXJpYWwgTmF2aWdhdGlvblxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuLy8gTWF0ZXJpYWwgTGF5b3V0XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuLy8gTWF0ZXJpYWwgQnV0dG9ucyAmIEluZGljYXRvcnNcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuLy8gTWF0ZXJpYWwgUG9wdXBzICYgTW9kYWxzXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuLy8gTWF0ZXJpYWwgRGF0YSB0YWJsZXNcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBNYXJrZG93bk1vZHVsZSB9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQgeyBBcHBUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEhUVFBfSU5URVJDRVBUT1JTLFxuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT3JpZ2luRm9ybVRva2VuSW50ZXJjZXB0b3IgfSBmcm9tICcuL29yaWdpbi1mb3JtLXRva2VuLmludGVyY2VwdG9yJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IE90cFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL290cC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzLFxufSBmcm9tICdAZWt5Y19xb29iaXNzL3Ficy1lY3QtY21wL2Rpc3QvbG9hZGVyJztcbmltcG9ydCB7IFRoZW1lSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS1pbmplY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vL0Vucm9sIGNhcmRcbmltcG9ydCB7IEZvcm1seUVucm9sQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1lbnJvbC1jYXJkL2Zvcm1seS1lbnJvbC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlWaWV3RG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXZpZXctZG9jdW1lbnRzL2Zvcm1seS12aWV3LWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL290aGVycy90cmFuc2xhdGlvbi5waXBlJztcbmltcG9ydCB7IEV4dGVybmFsTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vb3RoZXJzL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1vcGVuLWJhbmtpbmcvZm9ybWx5LW9wZW4tYmFua2luZy5jb21wb25lbnQnO1xuXG5cbiAgZGVmaW5lQ3VzdG9tRWxlbWVudHMod2luZG93KTtcblxuICBATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgIEN1c3RvbVNlY3Rpb25Db21wb25lbnQsXG4gICAgICBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUFjdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seUNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCxcbiAgICAgIEZvcm1seURvd25sb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5Vmlld0RvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seUZpZWxkU3RlcHBlckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5RmllbGRJZGVudGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seVBhcmFncmFwaENvbXBvbmVudCxcbiAgICAgIEZvcm1seVJhZGlvQ29tcG9uZW50LFxuICAgICAgRm9ybWx5Q2hlY2tib3hlc0NvbXBvbmVudCxcbiAgICAgIFJvd0ZpbGxlckNvbXBvbmVudCxcbiAgICAgIEZvcm1seVNjYW5JZENvbXBvbmVudCxcbiAgICAgIEZvcm1seVNpZ25Db21wb25lbnQsXG4gICAgICBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQsXG4gICAgICBGb3JtbHlWYWxpZGF0ZUNvbnRhY3RJbmZvQ29tcG9uZW50LFxuICAgICAgRm9ybWx5Vmlld09mZmVyc0NvbXBvbmVudCxcbiAgICAgIEZvcm1seU9wZW5CYW5raW5nQ29tcG9uZW50LFxuICAgICAgUGlja2VyQ29tcG9uZW50LFxuICAgICAgXG4gICAgICBBcHBUcmVldmlld0NvbXBvbmVudCxcbiAgICAgIERpY3Rpb25hcmllc1RyZWVDb21wb25lbnQsXG4gICAgICBDb25maXJtYXRpb25Db21wb25lbnQsXG4gICAgICBHcmlkQ29tcG9uZW50LFxuICAgICAgQ29sbGVjdG9yRm9ybUNvbXBvbmVudCxcbiAgICAgIEZvcm1seUVucm9sQ2FyZENvbXBvbmVudCxcbiAgICAgIEV4dGVybmFsTGlua0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgICBTaWduTGliTW9kdWxlLFxuICAgICAgUGRmVmlld2VyTW9kdWxlLFxuICAgICAgTWFya2Rvd25Nb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgIG1hcmtlZE9wdGlvbnM6IHtcbiAgICAgICAgICBwcm92aWRlOiAnTUFSS0VEX09QVElPTlMnLFxuICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICBnZm06IHRydWUsXG4gICAgICAgICAgICBicmVha3M6IGZhbHNlLFxuICAgICAgICAgICAgcGVkYW50aWM6IGZhbHNlLFxuICAgICAgICAgICAgc21hcnRMaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNtYXJ0eXBhbnRzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXSksXG4gICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIFxuICBcbiAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgICAgICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgICAgICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICAgIE1hdFNsaWRlck1vZHVsZSxcbiAgICAgICAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgICAgICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgICAgICAgIE1hdEdyaWRMaXN0TW9kdWxlLFxuICAgICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgICAgTWF0U3RlcHBlck1vZHVsZSxcbiAgICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICAgIE1hdFRyZWVNb2R1bGUsXG4gICAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICAgICAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgICBNYXRDaGlwc01vZHVsZSxcbiAgICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgICAgICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgICAgICAgTWF0VGFibGVNb2R1bGUsXG4gICAgICAgICAgRm9ybWx5TW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAnc3RlcHBlcicsIGNvbXBvbmVudDogRm9ybWx5RmllbGRTdGVwcGVyQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ3NlcGFyYXRvcicsIGNvbXBvbmVudDogRm9ybVNlY3Rpb25TZXBhcmF0b3JDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnY3VzdG9tLXNlY3Rpb24nLCBjb21wb25lbnQ6IEN1c3RvbVNlY3Rpb25Db21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAncm93LWZpbGxlcicsIGNvbXBvbmVudDogUm93RmlsbGVyQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWlkZW50aWZpY2F0aW9uLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlGaWVsZElkZW50aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktc2lnbi1jb21wb25lbnQnLCBjb21wb25lbnQ6IEZvcm1seVNpZ25Db21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktdXBsb2FkLWRvY3VtZW50cy1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5VXBsb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1kb3dubG9hZC1kb2N1bWVudHMtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seURvd25sb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS12aWV3LWRvY3VtZW50cy1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5Vmlld0RvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktZ2VuZXJhdGUtZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlHZW5lcmF0ZURvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seURpY3Rpb25hcnlEcm9wZG93blRyZWVDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1jaGVja2JveCcsIGNvbXBvbmVudDogRm9ybWx5Q2hlY2tib3hDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktcGFyYWdyYXBoJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seVBhcmFncmFwaENvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LXJhZGlvJywgY29tcG9uZW50OiBGb3JtbHlSYWRpb0NvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktY2hlY2tib3hlcycsIGNvbXBvbmVudDogRm9ybWx5Q2hlY2tib3hlc0NvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8nLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LXNjYW4taWQnLCBjb21wb25lbnQ6IEZvcm1seVNjYW5JZENvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktYWN0aW9uLWNvbXBvbmVudCcsIGNvbXBvbmVudDogRm9ybWx5QWN0aW9uQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS12aWV3LW9mZmVycycsIGNvbXBvbmVudDogRm9ybWx5Vmlld09mZmVyc0NvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1lbnJvbC1jYXJkLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlFbnJvbENhcmRDb21wb25lbnRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LW9wZW4tYmFua2luZycsIGNvbXBvbmVudDogRm9ybWx5T3BlbkJhbmtpbmdDb21wb25lbnQgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSksXG4gICAgICAgIEZvcm1seU1hdGVyaWFsTW9kdWxlLFxuICAgICAgICBGb3JtbHlNYXRUZXh0QXJlYU1vZHVsZSxcbiAgICAgICAgRm9ybWx5TWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBdLFxuICAgICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICAgIFxuICAgIGV4cG9ydHM6IFtcbiAgICAgIENvbGxlY3RvckZvcm1Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW09yaWdpbkZvcm1TZXJ2aWNlLFxuICAgICAgRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICBGb3Jtc1NlcnZpY2UsXG4gICAgICBPdHBTZXJ2aWNlLFxuICAgICAgQXBwbGljYXRpb25EYXRhU2VydmljZSxcbiAgICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgICBMYWJlbFNlcnZpY2UsXG4gICAgICBQcm94eVNlcnZpY2UsXG4gICAgICBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgIHVzZUNsYXNzOiBPcmlnaW5Gb3JtVG9rZW5JbnRlcmNlcHRvcixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB9LFxuICAgIF1cbiAgfSlcbmV4cG9ydCBjbGFzcyBPcmlnaW5Gb3JtTW9kdWxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aGVtZUluamVjdG9yOiBUaGVtZUluamVjdG9yU2VydmljZSkge31cbn1cbiJdfQ==
|
|
@@ -50,6 +50,13 @@ export class DictionariesTreeComponent {
|
|
|
50
50
|
let text = changes['filterText'].currentValue;
|
|
51
51
|
this.treeViewControl.filterText(text);
|
|
52
52
|
}
|
|
53
|
+
// Sync selection when selectedValueIds changes
|
|
54
|
+
if (changes['selectedValueIds'] && this.treeViewControl && this.allowCheckItems) {
|
|
55
|
+
const newIds = changes['selectedValueIds'].currentValue;
|
|
56
|
+
if (newIds) {
|
|
57
|
+
this.treeViewControl.updateSelectionByIds(newIds);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
53
60
|
}
|
|
54
61
|
ngAfterViewInit() {
|
|
55
62
|
// If we have a main dictionary but haven't built the tree yet, build it now
|
|
@@ -257,11 +264,11 @@ export class DictionariesTreeComponent {
|
|
|
257
264
|
return JSON.parse(news);
|
|
258
265
|
}
|
|
259
266
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DictionariesTreeComponent, deps: [{ token: i1.DictionaryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DictionariesTreeComponent, selector: "app-dictionaries-tree", inputs: { dictionaryId: "dictionaryId", selectedValueIds: "selectedValueIds", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter", drawReferenceDictionariesAsSeparateNode: "drawReferenceDictionariesAsSeparateNode", drawChildDictionariesAsSeparateNode: "drawChildDictionariesAsSeparateNode", drawRootNode: "drawRootNode", filterText: "filterText", allowSelectNonLeafNodes: "allowSelectNonLeafNodes", languageId: "languageId", valuesIdsToShow: "valuesIdsToShow", hideParentArrow: "hideParentArrow", preloadedDictionary: "preloadedDictionary", preloadedDictionaries: "preloadedDictionaries", usePreloadedData: "usePreloadedData" }, outputs: { selectedDictionaryValuesChanged: "selectedDictionaryValuesChanged" }, viewQueries: [{ propertyName: "treeViewControl", first: true, predicate: ["treeView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<app-treeview #treeView [autoSelectDescendants]=\"false\"\n
|
|
267
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DictionariesTreeComponent, selector: "app-dictionaries-tree", inputs: { dictionaryId: "dictionaryId", selectedValueIds: "selectedValueIds", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter", drawReferenceDictionariesAsSeparateNode: "drawReferenceDictionariesAsSeparateNode", drawChildDictionariesAsSeparateNode: "drawChildDictionariesAsSeparateNode", drawRootNode: "drawRootNode", filterText: "filterText", allowSelectNonLeafNodes: "allowSelectNonLeafNodes", languageId: "languageId", valuesIdsToShow: "valuesIdsToShow", hideParentArrow: "hideParentArrow", preloadedDictionary: "preloadedDictionary", preloadedDictionaries: "preloadedDictionaries", usePreloadedData: "usePreloadedData" }, outputs: { selectedDictionaryValuesChanged: "selectedDictionaryValuesChanged" }, viewQueries: [{ propertyName: "treeViewControl", first: true, predicate: ["treeView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<div (click)=\"$event.stopPropagation()\">\n <app-treeview #treeView [autoSelectDescendants]=\"false\"\n [allowCheckItems]=\"allowCheckItems\"\n [allowFilter]=\"allowFilter\"\n (selectionChanged)=\"onTreeSelectionChanged($event)\">\n </app-treeview>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4.AppTreeviewComponent, selector: "app-treeview", inputs: ["allowAddItems", "autoSelectDescendants", "allowCheckItems", "allowFilter"], outputs: ["selectionChanged"] }] }); }
|
|
261
268
|
}
|
|
262
269
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DictionariesTreeComponent, decorators: [{
|
|
263
270
|
type: Component,
|
|
264
|
-
args: [{ selector: 'app-dictionaries-tree', template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<app-treeview #treeView [autoSelectDescendants]=\"false\"\n
|
|
271
|
+
args: [{ selector: 'app-dictionaries-tree', template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<div (click)=\"$event.stopPropagation()\">\n <app-treeview #treeView [autoSelectDescendants]=\"false\"\n [allowCheckItems]=\"allowCheckItems\"\n [allowFilter]=\"allowFilter\"\n (selectionChanged)=\"onTreeSelectionChanged($event)\">\n </app-treeview>\n</div>\n" }]
|
|
265
272
|
}], ctorParameters: () => [{ type: i1.DictionaryService }], propDecorators: { treeViewControl: [{
|
|
266
273
|
type: ViewChild,
|
|
267
274
|
args: ['treeView']
|
|
@@ -298,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
298
305
|
}], selectedDictionaryValuesChanged: [{
|
|
299
306
|
type: Output
|
|
300
307
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy9kaWN0aW9uYXJpZXMtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVd4QyxNQUFNLE9BQU8seUJBQXlCO0lBNkJwQyxZQUFvQixXQUE4QjtRQUE5QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLDRDQUF1QyxHQUFZLElBQUksQ0FBQztRQUN4RCx3Q0FBbUMsR0FBWSxJQUFJLENBQUM7UUFDcEQsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBR3pDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRTFDLHdDQUF3QztRQUMvQix3QkFBbUIsR0FBeUIsSUFBSSxDQUFDO1FBQ2pELDBCQUFxQixHQUFzQyxJQUFJLENBQUM7UUFDaEUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9DQUErQixHQUN2QyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQU1hLENBQUM7SUFFdEQsUUFBUTtRQUNOLHFDQUFx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UyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFzQixDQUFDO0lBQy9DLENBQUM7K0dBaFVVLHlCQUF5QjttR0FBekIseUJBQXlCLGc1QkN4QnRDLHFVQU9BOzs0RkRpQmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QjtzRkFPVixlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLFVBQVU7Z0JBQ1osWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHVDQUF1QztzQkFBL0MsS0FBSztnQkFDRyxtQ0FBbUM7c0JBQTNDLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSwrQkFBK0I7c0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmFsdWUsIERpY3Rpb25hcnlEdG8sIERpY3Rpb25hcnlWYWx1ZUR0byB9IGZyb20gJy4uL21vZGVscy9kaWN0aW9uYXJ5Lm1vZGVsJztcbmltcG9ydCB7IEVudmlyb25tZW50VHlwZSB9IGZyb20gJy4uL290aGVycy9lbnZpcm9ubWVudC10eXBlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vb3RoZXJzL3V0aWxzJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlLCBEaWN0aW9uYXJ5VHJlZVJlc3BvbnNlRHRvIH0gZnJvbSAnLi4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHJlZXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgQXBwVHJlZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRpY3Rpb25hcmllcy10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyaWVzVHJlZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ3RyZWVWaWV3JykgdHJlZVZpZXdDb250cm9sOiBBcHBUcmVldmlld0NvbXBvbmVudDtcbiAgQElucHV0KCkgZGljdGlvbmFyeUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWVJZHM6IG51bWJlcltdO1xuICBASW5wdXQoKSBhbGxvd0NoZWNrSXRlbXM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhbGxvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcmF3UmVmZXJlbmNlRGljdGlvbmFyaWVzQXNTZXBhcmF0ZU5vZGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBkcmF3Q2hpbGREaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYXdSb290Tm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGZpbHRlclRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICBASW5wdXQoKSB2YWx1ZXNJZHNUb1Nob3c6IG51bWJlcltdO1xuICBASW5wdXQoKSBoaWRlUGFyZW50QXJyb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBORVc6IEFjY2VwdCBwcmVsb2FkZWQgZGljdGlvbmFyeSBkYXRhXG4gIEBJbnB1dCgpIHByZWxvYWRlZERpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcHJlbG9hZGVkRGljdGlvbmFyaWVzOiBNYXA8c3RyaW5nLCBEaWN0aW9uYXJ5RHRvPiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB1c2VQcmVsb2FkZWREYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWN0aW9uYXJ5VmFsdWVbXT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGljdGlvbmFyeVZhbHVlW10+KCk7XG5cbiAgYWxsRGljdGlvbmFyaWVzOiBEaWN0aW9uYXJ5RHRvW107XG4gIG1haW5EaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWN0U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gT25seSBpbml0aWFsaXplIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICghdGhpcy5hbGxEaWN0aW9uYXJpZXMpIHtcbiAgICAgIHRoaXMuYWxsRGljdGlvbmFyaWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkaWN0aW9uYXJ5SWQnXSkge1xuICAgICAgY29uc3QgY2hhbmdlZCA9IGNoYW5nZXNbJ2RpY3Rpb25hcnlJZCddO1xuICAgICAgaWYgKGNoYW5nZWQuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VkLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5FVzogSGFuZGxlIHByZWxvYWRlZCBkYXRhIGNoYW5nZXNcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydwcmVsb2FkZWREaWN0aW9uYXJ5J10gfHxcbiAgICAgIGNoYW5nZXNbJ3ByZWxvYWRlZERpY3Rpb25hcmllcyddIHx8XG4gICAgICBjaGFuZ2VzWyd1c2VQcmVsb2FkZWREYXRhJ11cbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snZmlsdGVyVGV4dCddICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICBsZXQgdGV4dCA9IGNoYW5nZXNbJ2ZpbHRlclRleHQnXS5jdXJyZW50VmFsdWUgYXMgc3RyaW5nO1xuICAgICAgdGhpcy50cmVlVmlld0NvbnRyb2wuZmlsdGVyVGV4dCh0ZXh0KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIG1haW4gZGljdGlvbmFyeSBidXQgaGF2ZW4ndCBidWlsdCB0aGUgdHJlZSB5ZXQsIGJ1aWxkIGl0IG5vd1xuICAgIGlmICh0aGlzLm1haW5EaWN0aW9uYXJ5ICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGRpY3Rpb25hcnlJZCBidXQgaGF2ZW4ndCBsb2FkZWQgdGhlIGRpY3Rpb25hcnkgeWV0LCBsb2FkIGl0IG5vd1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkIHdpdGggYSBwcmUtcG9wdWxhdGVkIGRpY3Rpb25hcnlJZFxuICAgIGlmICh0aGlzLmRpY3Rpb25hcnlJZCAmJiAhdGhpcy5tYWluRGljdGlvbmFyeSAmJiAhdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZERpY3Rpb25hcnkoKSB7XG4gICAgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgZW52OiBFbnZpcm9ubWVudFR5cGUuQ29uZmlnLCAvLyBUT0RPOiByZXRyaWV2ZSBjb3JyZWN0IGVudmlyb25tZW50XG4gICAgICAgIGxhbmd1YWdlSWQ6IHRoaXMubGFuZ3VhZ2VJZCA+IDAgPyB0aGlzLmxhbmd1YWdlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbHVlSWRzVG9TaG93OlxuICAgICAgICAgIHRoaXMudmFsdWVzSWRzVG9TaG93Py5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNJZHNUb1Nob3cgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldERpY3Rpb25hcnlUcmVlKHRoaXMuZGljdGlvbmFyeUlkLCBwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogRGljdGlvbmFyeVRyZWVSZXNwb25zZUR0bykgPT4ge1xuICAgICAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkgPSByZXNwb25zZS5tYWluRGljdGlvbmFyeTtcbiAgICAgICAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IHJlc3BvbnNlLmFsbERpY3Rpb25hcmllcztcbiAgICAgICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRpY3Rpb25hcnkgdHJlZTonLCBlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgZGljdGlvbmFyeSBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkRnJvbVByZWxvYWRlZERhdGEoKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGEgYXZhaWxhYmxlLCBmYWxsaW5nIGJhY2sgdG8gQVBJJ1xuICAgICAgKTtcbiAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tYWluRGljdGlvbmFyeSA9IHsgLi4udGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5IH07IC8vIENyZWF0ZSBhIGNvcHlcblxuICAgIC8vIEFwcGx5IHZhbHVlIGZpbHRlcmluZyBpZiBuZWVkZWRcbiAgICBpZiAodGhpcy52YWx1ZXNJZHNUb1Nob3c/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkudmFsdWVzID1cbiAgICAgICAgdGhpcy5tYWluRGljdGlvbmFyeS52YWx1ZXM/LmZpbHRlcigodikgPT5cbiAgICAgICAgICB0aGlzLnZhbHVlc0lkc1RvU2hvdy5zb21lKChjKSA9PiBjID09IHYuaWQpXG4gICAgICAgICkgfHwgW107XG4gICAgfVxuXG4gICAgLy8gVXNlIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgZm9yIGRlcGVuZGVuY2llc1xuICAgIHRoaXMubG9hZEFsbE5lZWRlZERpY3Rpb25hcmllc0Zyb21QcmVsb2FkZWQodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgbmVlZGVkIGRpY3Rpb25hcmllcyBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkQWxsTmVlZGVkRGljdGlvbmFyaWVzRnJvbVByZWxvYWRlZChkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcmllcykge1xuICAgICAgY29uc29sZS53YXJuKCdObyBwcmVsb2FkZWQgZGljdGlvbmFyaWVzIG1hcCBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggYWxsIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgLSB0aGlzIGVuc3VyZXMgY2hpbGQgZGljdGlvbmFyaWVzIGFyZSBhdmFpbGFibGVcbiAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IEFycmF5LmZyb20odGhpcy5wcmVsb2FkZWREaWN0aW9uYXJpZXMudmFsdWVzKCkpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHRyZWVcbiAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gIH1cblxuICByZWJ1aWxkVHJlZSgpIHtcbiAgICAvLyBDaGVjayBpZiB0cmVlVmlld0NvbnRyb2wgaXMgYXZhaWxhYmxlIChWaWV3Q2hpbGQgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldClcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB0aGlzLmJ1aWxkRGljdGlvbmFyeVRyZWUodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgaWYgKHRoaXMuZHJhd1Jvb3ROb2RlKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmluaXRpYWxpemUobm9kZS5jaGlsZHJlbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyAmJiB0aGlzLnNlbGVjdGVkVmFsdWVJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5leHBhbmRBbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmV4cGFuZE5vZGUoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xlYXJUcmVlKCkge1xuICAgIC8vIENoZWNrIGlmIHRyZWVWaWV3Q29udHJvbCBpcyBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB7fSBhcyBJdGVtTm9kZTtcbiAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gIH1cblxuICBidWlsZERpY3Rpb25hcnlUcmVlKGRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8pOiBJdGVtTm9kZSB7XG4gICAgbGV0IG5vZGUgPSB7XG4gICAgICBuYW1lOiBkaWN0aW9uYXJ5Lm5hbWUsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgY2FuU2VsZWN0OiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgfSBhcyBJdGVtTm9kZTtcblxuICAgIC8vIEJ1aWxkIHRoZSB0cmVlIHJlY3Vyc2l2ZWx5XG4gICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5LCBub2RlKTtcblxuICAgIC8vIFNldCBjYW5TZWxlY3QgZm9yIHJvb3Qgbm9kZSBiYXNlZCBvbiB3aGV0aGVyIGl0IGhhcyBjaGlsZHJlblxuICAgIGlmICghdGhpcy5oaWRlUGFyZW50QXJyb3cpIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gZmFsc2U7XG4gICAgICBub2RlLmhpZGVBcnJvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBidWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvLCBub2RlOiBJdGVtTm9kZSk6IHZvaWQge1xuICAgIGlmIChkaWN0aW9uYXJ5LnZhbHVlcykge1xuICAgICAgZGljdGlvbmFyeS52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBsZXQgY2hpbGRyZW5Ob2RlID0ge1xuICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgZGF0YTogdixcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBjYW5TZWxlY3Q6IGZhbHNlLFxuICAgICAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgICAgIH0gYXMgSXRlbU5vZGU7XG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlSWQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gVXRpbHMuZmluZFZhbHVlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICB2LnZhbHVlVHJhbnNsYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUubmFtZSA9IHZhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlSWRzICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcy5pbmRleE9mKHYuaWQpID49IDApIHtcbiAgICAgICAgICBjaGlsZHJlbk5vZGUuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBidWlsZCBjaGlsZCBkaWN0aW9uYXJpZXMgaWYgYW55XG4gICAgICAgIGlmICh2LmNoaWxkRGljdGlvbmFyeUlkIHx8IHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgIGxldCBkaWN0OiBEaWN0aW9uYXJ5RHRvIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgLy8gVHJ5IFVVSUQtYmFzZWQgbG9va3VwIGZpcnN0IChmb3IgcHJlbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgICAgZGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoXG4gICAgICAgICAgICAgIChkKSA9PiBkLnV1aWQgPT09IHYuY2hpbGREaWN0aW9uYXJ5VVVJRFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBJRC1iYXNlZCBsb29rdXAgKGZvciBBUEktbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKCFkaWN0ICYmIHYuY2hpbGREaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgICAgIGRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gdi5jaGlsZERpY3Rpb25hcnlJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGljdCkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0LCBjaGlsZHJlbk5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSByZWZlcmVuY2UgdmFsdWVzXG4gICAgICAgIGlmIChcbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHRoaXMuZHJhd1JlZmVyZW5jZURpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRyeSB0byBmaW5kIHJlZmVyZW5jZSBkaWN0aW9uYXJ5IGJ5IFVVSUQgZmlyc3QsIHRoZW4gYnkgSURcbiAgICAgICAgICBsZXQgcmVmRGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoKGQpID0+XG4gICAgICAgICAgICBkaWN0aW9uYXJ5LnJlZmVycmVkSW5EaWN0aW9uYXJpZXNVVUlkcz8uaW5jbHVkZXMoZC51dWlkIHx8ICcnKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXJlZkRpY3QpIHtcbiAgICAgICAgICAgIHJlZkRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gZGljdGlvbmFyeS5yZWZlcmVuY2VJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcy5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHJ2Lm5hbWUgKyBgICgke3JlZkRpY3Q/Lm5hbWV9KWAsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgZGF0YTogcnYsXG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBjYW5TZWxlY3Q6IHRydWUsIC8vIFJlZmVyZW5jZSB2YWx1ZXMgYXJlIGxlYWYgbm9kZXMgYW5kIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBoaWRlQXJyb3c6IGZhbHNlLFxuICAgICAgICAgICAgfSBhcyBJdGVtTm9kZTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgJiZcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzLmluZGV4T2YocnYuaWQpID49IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUuY2hpbGRyZW4ucHVzaChyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERldGVybWluZSBpZiB0aGUgY3VycmVudCBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBjaGlsZHJlbk5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3QoY2hpbGRyZW5Ob2RlKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGNoaWxkIG5vZGUgdG8gdGhlIGN1cnJlbnQgbm9kZSdzIGNoaWxkcmVuXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZHJlbk5vZGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgYSBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICBnZXRDYW5TZWxlY3Qobm9kZTogSXRlbU5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0xlYWYgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gaXNMZWFmIHx8IHRoaXMuYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy50cmVlVmlld0NvbnRyb2wuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgIHZhciB2YWx1ZXMgPSBzZWxlY3RlZE5vZGVzLm1hcCgobikgPT4gbi5kYXRhKSBhcyBEaWN0aW9uYXJ5VmFsdWVEdG9bXTtcbiAgICBsZXQgZHZzID0gdGhpcy5jcmVhdGVDb3B5KHZhbHVlcyk7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQubmV4dChkdnMpO1xuICB9XG5cbiAgY3JlYXRlQ29weShvYmplY3RUb0NvcHk6IERpY3Rpb25hcnlWYWx1ZUR0b1tdKTogRGljdGlvbmFyeVZhbHVlW10ge1xuICAgIHZhciBzID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0VG9Db3B5KTtcbiAgICB2YXIgbmV3cyA9IHMucmVwbGFjZSgvXCJ2YWx1ZVRyYW5zbGF0aW9uc1wiOi9nLCAnXCJ0cmFuc2xhdGlvbnNcIjonKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShuZXdzKSBhcyBEaWN0aW9uYXJ5VmFsdWVbXTtcbiAgfVxufVxuIiwiPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nID09PSB0cnVlXCIgY2xhc3M9XCJtLXgtYXV0b1wiPjwvbWF0LXNwaW5uZXI+XG48YXBwLXRyZWV2aWV3ICN0cmVlVmlldyBbYXV0b1NlbGVjdERlc2NlbmRhbnRzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2FsbG93Q2hlY2tJdGVtc109XCJhbGxvd0NoZWNrSXRlbXNcIlxuICAgICAgICAgICAgICBbYWxsb3dGaWx0ZXJdPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cblxuPC9hcHAtdHJlZXZpZXc+XG4iXX0=
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy9kaWN0aW9uYXJpZXMtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVd4QyxNQUFNLE9BQU8seUJBQXlCO0lBNkJwQyxZQUFvQixXQUE4QjtRQUE5QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLDRDQUF1QyxHQUFZLElBQUksQ0FBQztRQUN4RCx3Q0FBbUMsR0FBWSxJQUFJLENBQUM7UUFDcEQsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBR3pDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRTFDLHdDQUF3QztRQUMvQix3QkFBbUIsR0FBeUIsSUFBSSxDQUFDO1FBQ2pELDBCQUFxQixHQUFzQyxJQUFJLENBQUM7UUFDaEUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9DQUErQixHQUN2QyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQU1hLENBQUM7SUFFdEQsUUFBUTtRQUNOLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUNFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztZQUM5QixPQUFPLENBQUMsdUJBQXVCLENBQUM7WUFDaEMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQzNCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2xELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFzQixDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNoRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxZQUF3QixDQUFDO1lBQ3BFLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsNEVBQTRFO1FBQzVFLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFFRCwrRUFBK0U7UUFDL0UsNkZBQTZGO1FBQzdGLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBRXRCLE1BQU0sTUFBTSxHQUFHO2dCQUNiLEdBQUcsRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLHFDQUFxQztnQkFDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM3RCxjQUFjLEVBQ1osSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3RFLENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN0RSxJQUFJLEVBQUUsQ0FBQyxRQUFtQyxFQUFFLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO29CQUNoRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FDViw2REFBNkQsQ0FDOUQsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBRXZFLGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtnQkFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzVDLElBQUksRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELDhDQUE4QztRQUM5QyxJQUFJLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILHNDQUFzQyxDQUFDLFVBQXlCO1FBQzlELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDeEQsT0FBTztRQUNULENBQUM7UUFFRCw2RkFBNkY7UUFDN0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1Asd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksR0FBRyxFQUFjLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUF5QjtRQUMzQyxJQUFJLElBQUksR0FBRztZQUNULElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLEtBQUs7U0FDTCxDQUFDO1FBRWQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekMsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQXlCLEVBQUUsSUFBYztRQUN6RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM5QixJQUFJLFlBQVksR0FBRztvQkFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO29CQUNaLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLFVBQVUsRUFBRSxLQUFLO29CQUNqQixTQUFTLEVBQUUsS0FBSztvQkFDaEIsU0FBUyxFQUFFLEtBQUs7aUJBQ0wsQ0FBQztnQkFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FDcEMsQ0FBQyxDQUFDLGlCQUFpQixFQUNuQixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO29CQUNGLElBQUksR0FBRyxFQUFFLENBQUM7d0JBQ1IsWUFBWSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDdEUsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLENBQUM7Z0JBRUQsOENBQThDO2dCQUM5QyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDakQsSUFBSSxJQUErQixDQUFDO29CQUVwQyxtREFBbUQ7b0JBQ25ELElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUM7d0JBQzFCLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUN4QyxDQUFDO29CQUNKLENBQUM7b0JBRUQsb0RBQW9EO29CQUNwRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzlCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FDcEMsQ0FBQztvQkFDSixDQUFDO29CQUVELElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDN0MsQ0FBQztnQkFDSCxDQUFDO2dCQUVELDBCQUEwQjtnQkFDMUIsSUFDRSxDQUFDLENBQUMsZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDO29CQUM3QixJQUFJLENBQUMsdUNBQXVDLEtBQUssSUFBSSxFQUNyRCxDQUFDO29CQUNELDZEQUE2RDtvQkFDN0QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM1QyxVQUFVLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQy9ELENBQUM7b0JBRUYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDakMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FDdkMsQ0FBQztvQkFDSixDQUFDO29CQUVELENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7d0JBQy9CLElBQUksYUFBYSxHQUFHOzRCQUNsQixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRSxJQUFJLEdBQUc7NEJBQ3JDLFFBQVEsRUFBRSxFQUFFOzRCQUNaLElBQUksRUFBRSxFQUFFOzRCQUNSLFVBQVUsRUFBRSxLQUFLOzRCQUNqQixTQUFTLEVBQUUsSUFBSSxFQUFFLHNEQUFzRDs0QkFDdkUsU0FBUyxFQUFFLEtBQUs7eUJBQ0wsQ0FBQzt3QkFFZCxJQUNFLElBQUksQ0FBQyxnQkFBZ0I7NEJBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDekMsQ0FBQzs0QkFDRCxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDbEMsQ0FBQzt3QkFFRCxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxnREFBZ0Q7Z0JBQ2hELFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFekQsb0RBQW9EO2dCQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELFlBQVksQ0FBQyxJQUFjO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDaEQsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQWtCO1FBQ3ZDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUF5QixDQUFDO1FBQ3RFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQWtDO1FBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQXNCLENBQUM7SUFDL0MsQ0FBQzsrR0F4VVUseUJBQXlCO21HQUF6Qix5QkFBeUIsZzVCQ3hCdEMsaVlBUUE7OzRGRGdCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO3NGQU9WLGVBQWU7c0JBQXJDLFNBQVM7dUJBQUMsVUFBVTtnQkFDWixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUNBQXVDO3NCQUEvQyxLQUFLO2dCQUNHLG1DQUFtQztzQkFBM0MsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLCtCQUErQjtzQkFBeEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnlWYWx1ZSwgRGljdGlvbmFyeUR0bywgRGljdGlvbmFyeVZhbHVlRHRvIH0gZnJvbSAnLi4vbW9kZWxzL2RpY3Rpb25hcnkubW9kZWwnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRUeXBlIH0gZnJvbSAnLi4vb3RoZXJzL2Vudmlyb25tZW50LXR5cGUnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi9vdGhlcnMvdXRpbHMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVNlcnZpY2UsIERpY3Rpb25hcnlUcmVlUmVzcG9uc2VEdG8gfSBmcm9tICcuLi9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZSB9IGZyb20gJy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGljdGlvbmFyaWVzLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJpZXNUcmVlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXRcbntcbiAgQFZpZXdDaGlsZCgndHJlZVZpZXcnKSB0cmVlVmlld0NvbnRyb2w6IEFwcFRyZWV2aWV3Q29tcG9uZW50O1xuICBASW5wdXQoKSBkaWN0aW9uYXJ5SWQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZUlkczogbnVtYmVyW107XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYXdSZWZlcmVuY2VEaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYXdDaGlsZERpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhd1Jvb3ROb2RlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxvd1NlbGVjdE5vbkxlYWZOb2RlczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsYW5ndWFnZUlkOiBudW1iZXI7XG4gIEBJbnB1dCgpIHZhbHVlc0lkc1RvU2hvdzogbnVtYmVyW107XG4gIEBJbnB1dCgpIGhpZGVQYXJlbnRBcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIE5FVzogQWNjZXB0IHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGFcbiAgQElucHV0KCkgcHJlbG9hZGVkRGljdGlvbmFyeTogRGljdGlvbmFyeUR0byB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwcmVsb2FkZWREaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIERpY3Rpb25hcnlEdG8+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHVzZVByZWxvYWRlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPERpY3Rpb25hcnlWYWx1ZVtdPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxEaWN0aW9uYXJ5VmFsdWVbXT4oKTtcblxuICBhbGxEaWN0aW9uYXJpZXM6IERpY3Rpb25hcnlEdG9bXTtcbiAgbWFpbkRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG87XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpY3RTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBPbmx5IGluaXRpYWxpemUgaWYgbm90IGFscmVhZHkgc2V0XG4gICAgaWYgKCF0aGlzLmFsbERpY3Rpb25hcmllcykge1xuICAgICAgdGhpcy5hbGxEaWN0aW9uYXJpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RpY3Rpb25hcnlJZCddKSB7XG4gICAgICBjb25zdCBjaGFuZ2VkID0gY2hhbmdlc1snZGljdGlvbmFyeUlkJ107XG4gICAgICBpZiAoY2hhbmdlZC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTkVXOiBIYW5kbGUgcHJlbG9hZGVkIGRhdGEgY2hhbmdlc1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ3ByZWxvYWRlZERpY3Rpb25hcnknXSB8fFxuICAgICAgY2hhbmdlc1sncHJlbG9hZGVkRGljdGlvbmFyaWVzJ10gfHxcbiAgICAgIGNoYW5nZXNbJ3VzZVByZWxvYWRlZERhdGEnXVxuICAgICkge1xuICAgICAgaWYgKHRoaXMudXNlUHJlbG9hZGVkRGF0YSAmJiB0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgICAgdGhpcy5sb2FkRnJvbVByZWxvYWRlZERhdGEoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJUZXh0J10gJiYgdGhpcy50cmVlVmlld0NvbnRyb2wpIHtcbiAgICAgIGxldCB0ZXh0ID0gY2hhbmdlc1snZmlsdGVyVGV4dCddLmN1cnJlbnRWYWx1ZSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5maWx0ZXJUZXh0KHRleHQpO1xuICAgIH1cblxuICAgIC8vIFN5bmMgc2VsZWN0aW9uIHdoZW4gc2VsZWN0ZWRWYWx1ZUlkcyBjaGFuZ2VzXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVJZHMnXSAmJiB0aGlzLnRyZWVWaWV3Q29udHJvbCAmJiB0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgY29uc3QgbmV3SWRzID0gY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZUlkcyddLmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXTtcbiAgICAgIGlmIChuZXdJZHMpIHtcbiAgICAgICAgdGhpcy50cmVlVmlld0NvbnRyb2wudXBkYXRlU2VsZWN0aW9uQnlJZHMobmV3SWRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIG1haW4gZGljdGlvbmFyeSBidXQgaGF2ZW4ndCBidWlsdCB0aGUgdHJlZSB5ZXQsIGJ1aWxkIGl0IG5vd1xuICAgIGlmICh0aGlzLm1haW5EaWN0aW9uYXJ5ICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGRpY3Rpb25hcnlJZCBidXQgaGF2ZW4ndCBsb2FkZWQgdGhlIGRpY3Rpb25hcnkgeWV0LCBsb2FkIGl0IG5vd1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkIHdpdGggYSBwcmUtcG9wdWxhdGVkIGRpY3Rpb25hcnlJZFxuICAgIGlmICh0aGlzLmRpY3Rpb25hcnlJZCAmJiAhdGhpcy5tYWluRGljdGlvbmFyeSAmJiAhdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZERpY3Rpb25hcnkoKSB7XG4gICAgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgZW52OiBFbnZpcm9ubWVudFR5cGUuQ29uZmlnLCAvLyBUT0RPOiByZXRyaWV2ZSBjb3JyZWN0IGVudmlyb25tZW50XG4gICAgICAgIGxhbmd1YWdlSWQ6IHRoaXMubGFuZ3VhZ2VJZCA+IDAgPyB0aGlzLmxhbmd1YWdlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbHVlSWRzVG9TaG93OlxuICAgICAgICAgIHRoaXMudmFsdWVzSWRzVG9TaG93Py5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNJZHNUb1Nob3cgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldERpY3Rpb25hcnlUcmVlKHRoaXMuZGljdGlvbmFyeUlkLCBwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogRGljdGlvbmFyeVRyZWVSZXNwb25zZUR0bykgPT4ge1xuICAgICAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkgPSByZXNwb25zZS5tYWluRGljdGlvbmFyeTtcbiAgICAgICAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IHJlc3BvbnNlLmFsbERpY3Rpb25hcmllcztcbiAgICAgICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRpY3Rpb25hcnkgdHJlZTonLCBlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgZGljdGlvbmFyeSBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkRnJvbVByZWxvYWRlZERhdGEoKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGEgYXZhaWxhYmxlLCBmYWxsaW5nIGJhY2sgdG8gQVBJJ1xuICAgICAgKTtcbiAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tYWluRGljdGlvbmFyeSA9IHsgLi4udGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5IH07IC8vIENyZWF0ZSBhIGNvcHlcblxuICAgIC8vIEFwcGx5IHZhbHVlIGZpbHRlcmluZyBpZiBuZWVkZWRcbiAgICBpZiAodGhpcy52YWx1ZXNJZHNUb1Nob3c/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkudmFsdWVzID1cbiAgICAgICAgdGhpcy5tYWluRGljdGlvbmFyeS52YWx1ZXM/LmZpbHRlcigodikgPT5cbiAgICAgICAgICB0aGlzLnZhbHVlc0lkc1RvU2hvdy5zb21lKChjKSA9PiBjID09IHYuaWQpXG4gICAgICAgICkgfHwgW107XG4gICAgfVxuXG4gICAgLy8gVXNlIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgZm9yIGRlcGVuZGVuY2llc1xuICAgIHRoaXMubG9hZEFsbE5lZWRlZERpY3Rpb25hcmllc0Zyb21QcmVsb2FkZWQodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgbmVlZGVkIGRpY3Rpb25hcmllcyBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkQWxsTmVlZGVkRGljdGlvbmFyaWVzRnJvbVByZWxvYWRlZChkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcmllcykge1xuICAgICAgY29uc29sZS53YXJuKCdObyBwcmVsb2FkZWQgZGljdGlvbmFyaWVzIG1hcCBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggYWxsIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgLSB0aGlzIGVuc3VyZXMgY2hpbGQgZGljdGlvbmFyaWVzIGFyZSBhdmFpbGFibGVcbiAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IEFycmF5LmZyb20odGhpcy5wcmVsb2FkZWREaWN0aW9uYXJpZXMudmFsdWVzKCkpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHRyZWVcbiAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gIH1cblxuICByZWJ1aWxkVHJlZSgpIHtcbiAgICAvLyBDaGVjayBpZiB0cmVlVmlld0NvbnRyb2wgaXMgYXZhaWxhYmxlIChWaWV3Q2hpbGQgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldClcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB0aGlzLmJ1aWxkRGljdGlvbmFyeVRyZWUodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgaWYgKHRoaXMuZHJhd1Jvb3ROb2RlKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmluaXRpYWxpemUobm9kZS5jaGlsZHJlbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyAmJiB0aGlzLnNlbGVjdGVkVmFsdWVJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5leHBhbmRBbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmV4cGFuZE5vZGUoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xlYXJUcmVlKCkge1xuICAgIC8vIENoZWNrIGlmIHRyZWVWaWV3Q29udHJvbCBpcyBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB7fSBhcyBJdGVtTm9kZTtcbiAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gIH1cblxuICBidWlsZERpY3Rpb25hcnlUcmVlKGRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8pOiBJdGVtTm9kZSB7XG4gICAgbGV0IG5vZGUgPSB7XG4gICAgICBuYW1lOiBkaWN0aW9uYXJ5Lm5hbWUsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgY2FuU2VsZWN0OiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgfSBhcyBJdGVtTm9kZTtcblxuICAgIC8vIEJ1aWxkIHRoZSB0cmVlIHJlY3Vyc2l2ZWx5XG4gICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5LCBub2RlKTtcblxuICAgIC8vIFNldCBjYW5TZWxlY3QgZm9yIHJvb3Qgbm9kZSBiYXNlZCBvbiB3aGV0aGVyIGl0IGhhcyBjaGlsZHJlblxuICAgIGlmICghdGhpcy5oaWRlUGFyZW50QXJyb3cpIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gZmFsc2U7XG4gICAgICBub2RlLmhpZGVBcnJvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBidWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvLCBub2RlOiBJdGVtTm9kZSk6IHZvaWQge1xuICAgIGlmIChkaWN0aW9uYXJ5LnZhbHVlcykge1xuICAgICAgZGljdGlvbmFyeS52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBsZXQgY2hpbGRyZW5Ob2RlID0ge1xuICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgZGF0YTogdixcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBjYW5TZWxlY3Q6IGZhbHNlLFxuICAgICAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgICAgIH0gYXMgSXRlbU5vZGU7XG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlSWQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gVXRpbHMuZmluZFZhbHVlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICB2LnZhbHVlVHJhbnNsYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUubmFtZSA9IHZhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlSWRzICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcy5pbmRleE9mKHYuaWQpID49IDApIHtcbiAgICAgICAgICBjaGlsZHJlbk5vZGUuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBidWlsZCBjaGlsZCBkaWN0aW9uYXJpZXMgaWYgYW55XG4gICAgICAgIGlmICh2LmNoaWxkRGljdGlvbmFyeUlkIHx8IHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgIGxldCBkaWN0OiBEaWN0aW9uYXJ5RHRvIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgLy8gVHJ5IFVVSUQtYmFzZWQgbG9va3VwIGZpcnN0IChmb3IgcHJlbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgICAgZGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoXG4gICAgICAgICAgICAgIChkKSA9PiBkLnV1aWQgPT09IHYuY2hpbGREaWN0aW9uYXJ5VVVJRFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBJRC1iYXNlZCBsb29rdXAgKGZvciBBUEktbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKCFkaWN0ICYmIHYuY2hpbGREaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgICAgIGRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gdi5jaGlsZERpY3Rpb25hcnlJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGljdCkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0LCBjaGlsZHJlbk5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSByZWZlcmVuY2UgdmFsdWVzXG4gICAgICAgIGlmIChcbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHRoaXMuZHJhd1JlZmVyZW5jZURpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRyeSB0byBmaW5kIHJlZmVyZW5jZSBkaWN0aW9uYXJ5IGJ5IFVVSUQgZmlyc3QsIHRoZW4gYnkgSURcbiAgICAgICAgICBsZXQgcmVmRGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoKGQpID0+XG4gICAgICAgICAgICBkaWN0aW9uYXJ5LnJlZmVycmVkSW5EaWN0aW9uYXJpZXNVVUlkcz8uaW5jbHVkZXMoZC51dWlkIHx8ICcnKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXJlZkRpY3QpIHtcbiAgICAgICAgICAgIHJlZkRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gZGljdGlvbmFyeS5yZWZlcmVuY2VJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcy5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHJ2Lm5hbWUgKyBgICgke3JlZkRpY3Q/Lm5hbWV9KWAsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgZGF0YTogcnYsXG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBjYW5TZWxlY3Q6IHRydWUsIC8vIFJlZmVyZW5jZSB2YWx1ZXMgYXJlIGxlYWYgbm9kZXMgYW5kIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBoaWRlQXJyb3c6IGZhbHNlLFxuICAgICAgICAgICAgfSBhcyBJdGVtTm9kZTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgJiZcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzLmluZGV4T2YocnYuaWQpID49IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUuY2hpbGRyZW4ucHVzaChyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERldGVybWluZSBpZiB0aGUgY3VycmVudCBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBjaGlsZHJlbk5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3QoY2hpbGRyZW5Ob2RlKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGNoaWxkIG5vZGUgdG8gdGhlIGN1cnJlbnQgbm9kZSdzIGNoaWxkcmVuXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZHJlbk5vZGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgYSBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICBnZXRDYW5TZWxlY3Qobm9kZTogSXRlbU5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0xlYWYgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gaXNMZWFmIHx8IHRoaXMuYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy50cmVlVmlld0NvbnRyb2wuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgIHZhciB2YWx1ZXMgPSBzZWxlY3RlZE5vZGVzLm1hcCgobikgPT4gbi5kYXRhKSBhcyBEaWN0aW9uYXJ5VmFsdWVEdG9bXTtcbiAgICBsZXQgZHZzID0gdGhpcy5jcmVhdGVDb3B5KHZhbHVlcyk7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQubmV4dChkdnMpO1xuICB9XG5cbiAgY3JlYXRlQ29weShvYmplY3RUb0NvcHk6IERpY3Rpb25hcnlWYWx1ZUR0b1tdKTogRGljdGlvbmFyeVZhbHVlW10ge1xuICAgIHZhciBzID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0VG9Db3B5KTtcbiAgICB2YXIgbmV3cyA9IHMucmVwbGFjZSgvXCJ2YWx1ZVRyYW5zbGF0aW9uc1wiOi9nLCAnXCJ0cmFuc2xhdGlvbnNcIjonKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShuZXdzKSBhcyBEaWN0aW9uYXJ5VmFsdWVbXTtcbiAgfVxufVxuIiwiPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nID09PSB0cnVlXCIgY2xhc3M9XCJtLXgtYXV0b1wiPjwvbWF0LXNwaW5uZXI+XG48ZGl2IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgPGFwcC10cmVldmlldyAjdHJlZVZpZXcgW2F1dG9TZWxlY3REZXNjZW5kYW50c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2FsbG93Q2hlY2tJdGVtc109XCJhbGxvd0NoZWNrSXRlbXNcIlxuICAgICAgICAgICAgICAgIFthbGxvd0ZpbHRlcl09XCJhbGxvd0ZpbHRlclwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvYXBwLXRyZWV2aWV3PlxuPC9kaXY+XG4iXX0=
|
|
@@ -204,12 +204,28 @@ export class AppTreeviewComponent {
|
|
|
204
204
|
const filterValue = event.target.value;
|
|
205
205
|
return this.filterText(filterValue);
|
|
206
206
|
}
|
|
207
|
+
updateSelectionByIds(ids) {
|
|
208
|
+
if (!this.treeControl.dataNodes)
|
|
209
|
+
return;
|
|
210
|
+
// Clear current selection
|
|
211
|
+
this.checklistSelection.clear();
|
|
212
|
+
// Select nodes that match the IDs
|
|
213
|
+
this.treeControl.dataNodes.forEach((node) => {
|
|
214
|
+
if (node.data && ids.includes(node.data.id)) {
|
|
215
|
+
this.checklistSelection.select(node);
|
|
216
|
+
node.isSelected = true;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
node.isSelected = false;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
207
223
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppTreeviewComponent, deps: [{ token: i1.ChecklistDatabase }, { token: i2.TranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppTreeviewComponent, selector: "app-treeview", inputs: { allowAddItems: "allowAddItems", autoSelectDescendants: "autoSelectDescendants", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter" }, outputs: { selectionChanged: "selectionChanged" }, providers: [ChecklistDatabase], ngImport: i0, template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i7.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i7.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i7.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i7.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppTreeviewComponent, selector: "app-treeview", inputs: { allowAddItems: "allowAddItems", autoSelectDescendants: "autoSelectDescendants", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter" }, outputs: { selectionChanged: "selectionChanged" }, providers: [ChecklistDatabase], ngImport: i0, template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems && treeControl.getLevel(node) > 0\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i7.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i7.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i7.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i7.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
209
225
|
}
|
|
210
226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppTreeviewComponent, decorators: [{
|
|
211
227
|
type: Component,
|
|
212
|
-
args: [{ selector: 'app-treeview', providers: [ChecklistDatabase], template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"] }]
|
|
228
|
+
args: [{ selector: 'app-treeview', providers: [ChecklistDatabase], template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems && treeControl.getLevel(node) > 0\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"] }]
|
|
213
229
|
}], ctorParameters: () => [{ type: i1.ChecklistDatabase }, { type: i2.TranslatePipe }], propDecorators: { allowAddItems: [{
|
|
214
230
|
type: Input
|
|
215
231
|
}], autoSelectDescendants: [{
|
|
@@ -221,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
221
237
|
}], selectionChanged: [{
|
|
222
238
|
type: Output
|
|
223
239
|
}] } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQ1UsUUFBMkIsRUFDM0IsU0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQXBCekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBRXRDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELFdBQU0sR0FBWSxJQUFJLENB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QUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE1BQU0sV0FBVyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0F6T1Usb0JBQW9CO21HQUFwQixvQkFBb0Isc1BBRnBCLENBQUMsaUJBQWlCLENBQUMsMEJDckJoQyxnaEhBeUZBOzs0RkRsRWEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGNBQWMsYUFHYixDQUFDLGlCQUFpQixDQUFDO2tIQUdyQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuaW1wb3J0IHsgSXRlbUZsYXROb2RlLCBJdGVtTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4uLy4uL290aGVycy9jaGVjay1saXN0LmRhdGFiYXNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9vdGhlcnMvdHJhbnNsYXRpb24ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10cmVldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW0NoZWNrbGlzdERhdGFiYXNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVHJlZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBhbGxvd0FkZEl0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9TZWxlY3REZXNjZW5kYW50czogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIGlzSW5pdDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgc2VsZWN0ZWROb2RlOiBJdGVtRmxhdE5vZGU7XG4gIC8qKiBNYXAgZnJvbSBmbGF0IG5vZGUgdG8gbmVzdGVkIG5vZGUuIFRoaXMgaGVscHMgdXMgZmluZGluZyB0aGUgbmVzdGVkIG5vZGUgdG8gYmUgbW9kaWZpZWQgKi9cbiAgZmxhdE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1GbGF0Tm9kZSwgSXRlbU5vZGU+KCk7XG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+KCk7XG4gIHNlbGVjdGVkUGFyZW50OiBJdGVtRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcbiAgbmV3SXRlbU5hbWUgPSAnJztcbiAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxJdGVtRmxhdE5vZGU+O1xuICB0cmVlRmxhdHRlbmVyOiBNYXRUcmVlRmxhdHRlbmVyPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+O1xuICBkYXRhU291cmNlOiBNYXRUcmVlRmxhdERhdGFTb3VyY2U8SXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZT47XG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxJdGVtRmxhdE5vZGU+KHRydWUpO1xuICBjb21tb25LZXlzID0gTGFiZWxLZXlzLmNvbW1vbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhYmFzZTogQ2hlY2tsaXN0RGF0YWJhc2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlLFxuICAgICAgdGhpcy5nZXRDaGlsZHJlblxuICAgICk7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8SXRlbUZsYXROb2RlPihcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgZGF0YWJhc2UuZGF0YUNoYW5nZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0luaXQgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuICBpc0V4cGFuZGFibGUgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG4gIGdldENoaWxkcmVuID0gKG5vZGU6IEl0ZW1Ob2RlKTogSXRlbU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuO1xuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogSXRlbUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcbiAgaGFzTm9Db250ZW50ID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBJdGVtRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5uYW1lID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG5cbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUubmFtZSA9PT0gbm9kZS5uYW1lXG4gICAgICAgID8gZXhpc3RpbmdOb2RlXG4gICAgICAgIDogbmV3IEl0ZW1GbGF0Tm9kZSgpO1xuICAgIGZsYXROb2RlLm5hbWUgPSBub2RlLm5hbWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5jYW5TZWxlY3QgPSBub2RlLmNhblNlbGVjdDtcbiAgICBmbGF0Tm9kZS5kYXRhID0gbm9kZS5kYXRhO1xuICAgIGZsYXROb2RlLmlzU2VsZWN0ZWQgPSBub2RlLmlzU2VsZWN0ZWQ7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgIGZsYXROb2RlLmhpZGVBcnJvdyA9IG5vZGUuaGlkZUFycm93O1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcblxuICAgIGlmIChmbGF0Tm9kZS5pc1NlbGVjdGVkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoZmxhdE5vZGUpO1xuICAgIH1cbiAgICB0aGlzLmlzSW5pdCA9IGZhbHNlO1xuICAgIHJldHVybiBmbGF0Tm9kZTtcbiAgfTtcblxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZC4gKi9cbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBJdGVtRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID1cbiAgICAgIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogSXRlbUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICBsZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5hbGxvd0NoZWNrSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IEl0ZW1GbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9XG4gICAgICBkZXNjZW5kYW50cy5sZW5ndGggPiAwICYmXG4gICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpO1xuICAgICAgfSk7XG4gICAgaWYgKG5vZGVTZWxlY3RlZCAmJiAhZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChub2RlKTtcbiAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyogR2V0IHRoZSBwYXJlbnQgbm9kZSBvZiBhIG5vZGUgKi9cbiAgZ2V0UGFyZW50Tm9kZShub2RlOiBJdGVtRmxhdE5vZGUpOiBJdGVtRmxhdE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcblxuICAgICAgaWYgKHRoaXMuZ2V0TGV2ZWwoY3VycmVudE5vZGUpIDwgY3VycmVudExldmVsKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpbml0aWFsaXplKGRhdGE6IEl0ZW1Ob2RlW10pIHtcbiAgICB0aGlzLmRhdGFiYXNlLmluaXRpYWxpemUoZGF0YSk7XG4gIH1cblxuICBnZXRTZWxlY3RlZE5vZGVzKCk6IEl0ZW1GbGF0Tm9kZVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogSXRlbUZsYXROb2RlW10gPSBbXTtcbiAgICBpZiAoIXRoaXMuYWxsb3dDaGVja0l0ZW1zKSB7XG4gICAgICBzZWxlY3RlZE5vZGVzLnB1c2godGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG4pKSB7XG4gICAgICAgICAgbi5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKiBTZWxlY3QgdGhlIGNhdGVnb3J5IHNvIHdlIGNhbiBpbnNlcnQgdGhlIG5ldyBpdGVtLiAqL1xuICBhZGROZXdJdGVtKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLmZsYXROb2RlTWFwLmdldChub2RlKTtcbiAgICB0aGlzLmRhdGFiYXNlLmluc2VydEl0ZW0ocGFyZW50Tm9kZSEsICcnKTtcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcbiAgfVxuXG4gIC8qKiBTYXZlIHRoZSBub2RlIHRvIGRhdGFiYXNlICovXG4gIHNhdmVOb2RlKG5vZGU6IEl0ZW1GbGF0Tm9kZSwgaXRlbVZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXN0ZWROb2RlID0gdGhpcy5mbGF0Tm9kZU1hcC5nZXQobm9kZSk7XG4gICAgdGhpcy5kYXRhYmFzZS51cGRhdGVJdGVtKG5lc3RlZE5vZGUhLCBpdGVtVmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyVGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFiYXNlLmZpbHRlcih0ZXh0KTtcbiAgICB0aGlzLmV4cGFuZEFsbCgpO1xuICB9XG5cbiAgZXhwYW5kQWxsKCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBleHBhbmROb2RlKG5vZGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMgJiZcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aCA+IG5vZGVJbmRleFxuICAgICkge1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbbm9kZUluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmZpbHRlclRleHQoZmlsdGVyVmFsdWUpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoIHAtMTBcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+IHt7IGNvbW1vbktleXMuYWN0aW9ucy5maWx0ZXIgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBtaW5sZW5ndGg9XCIxXCJcbiAgICAgICAgIChrZXl1cCk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgY29tbW9uS2V5cy5hY3Rpb25zLmZpbHRlciB9fVwiXG4gICAgICAgICAjaW5wdXQgLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjwhLS08Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiMzBcIiBjbGFzcz1cImRpY3Rpb25hcnktdmlld3BvcnRcIj4tLT5cbjxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gIDwhLS0gTGVhZiBOb2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZWQ+PC9idXR0b24+XG4gICAgPCEtLSBOb2RlIENvbnRlbnQgLS0+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2hlY2tib3ggZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBhbGxvd2VkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGUuY2FuU2VsZWN0ICYmIGFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gIDwhLS0gTm9kZXMgd2l0aCBDaGlsZHJlbiAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgIDwhLS0gRXhwYW5kL0NvbGxhcHNlIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW5vZGUuaGlkZUFycm93XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gTm9kZSBDb250ZW50IC0tPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8IS0tIENoZWNrYm94IGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiBhbGxvd0NoZWNrSXRlbXNcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIEFkZCBOZXcgSXRlbSBCdXR0b24gLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZE5ld0l0ZW0obm9kZSlcIiAqbmdJZj1cImFsbG93QWRkSXRlbXNcIj5cbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC10cmVlLW5vZGU+XG48L21hdC10cmVlPlxuPCEtLTwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Pi0tPlxuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQ1UsUUFBMkIsRUFDM0IsU0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQXBCekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBRXRDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELFdBQU0sR0FBWSxJQUFJLENB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aW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuaW1wb3J0IHsgSXRlbUZsYXROb2RlLCBJdGVtTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4uLy4uL290aGVycy9jaGVjay1saXN0LmRhdGFiYXNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9vdGhlcnMvdHJhbnNsYXRpb24ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10cmVldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW0NoZWNrbGlzdERhdGFiYXNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVHJlZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBhbGxvd0FkZEl0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9TZWxlY3REZXNjZW5kYW50czogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIGlzSW5pdDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgc2VsZWN0ZWROb2RlOiBJdGVtRmxhdE5vZGU7XG4gIC8qKiBNYXAgZnJvbSBmbGF0IG5vZGUgdG8gbmVzdGVkIG5vZGUuIFRoaXMgaGVscHMgdXMgZmluZGluZyB0aGUgbmVzdGVkIG5vZGUgdG8gYmUgbW9kaWZpZWQgKi9cbiAgZmxhdE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1GbGF0Tm9kZSwgSXRlbU5vZGU+KCk7XG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+KCk7XG4gIHNlbGVjdGVkUGFyZW50OiBJdGVtRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcbiAgbmV3SXRlbU5hbWUgPSAnJztcbiAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxJdGVtRmxhdE5vZGU+O1xuICB0cmVlRmxhdHRlbmVyOiBNYXRUcmVlRmxhdHRlbmVyPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+O1xuICBkYXRhU291cmNlOiBNYXRUcmVlRmxhdERhdGFTb3VyY2U8SXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZT47XG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxJdGVtRmxhdE5vZGU+KHRydWUpO1xuICBjb21tb25LZXlzID0gTGFiZWxLZXlzLmNvbW1vbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhYmFzZTogQ2hlY2tsaXN0RGF0YWJhc2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlLFxuICAgICAgdGhpcy5nZXRDaGlsZHJlblxuICAgICk7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8SXRlbUZsYXROb2RlPihcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgZGF0YWJhc2UuZGF0YUNoYW5nZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0luaXQgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuICBpc0V4cGFuZGFibGUgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG4gIGdldENoaWxkcmVuID0gKG5vZGU6IEl0ZW1Ob2RlKTogSXRlbU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuO1xuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogSXRlbUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcbiAgaGFzTm9Db250ZW50ID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBJdGVtRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5uYW1lID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG5cbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUubmFtZSA9PT0gbm9kZS5uYW1lXG4gICAgICAgID8gZXhpc3RpbmdOb2RlXG4gICAgICAgIDogbmV3IEl0ZW1GbGF0Tm9kZSgpO1xuICAgIGZsYXROb2RlLm5hbWUgPSBub2RlLm5hbWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5jYW5TZWxlY3QgPSBub2RlLmNhblNlbGVjdDtcbiAgICBmbGF0Tm9kZS5kYXRhID0gbm9kZS5kYXRhO1xuICAgIGZsYXROb2RlLmlzU2VsZWN0ZWQgPSBub2RlLmlzU2VsZWN0ZWQ7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgIGZsYXROb2RlLmhpZGVBcnJvdyA9IG5vZGUuaGlkZUFycm93O1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcblxuICAgIGlmIChmbGF0Tm9kZS5pc1NlbGVjdGVkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoZmxhdE5vZGUpO1xuICAgIH1cbiAgICB0aGlzLmlzSW5pdCA9IGZhbHNlO1xuICAgIHJldHVybiBmbGF0Tm9kZTtcbiAgfTtcblxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZC4gKi9cbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBJdGVtRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID1cbiAgICAgIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogSXRlbUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICBsZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5hbGxvd0NoZWNrSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IEl0ZW1GbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9XG4gICAgICBkZXNjZW5kYW50cy5sZW5ndGggPiAwICYmXG4gICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpO1xuICAgICAgfSk7XG4gICAgaWYgKG5vZGVTZWxlY3RlZCAmJiAhZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChub2RlKTtcbiAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyogR2V0IHRoZSBwYXJlbnQgbm9kZSBvZiBhIG5vZGUgKi9cbiAgZ2V0UGFyZW50Tm9kZShub2RlOiBJdGVtRmxhdE5vZGUpOiBJdGVtRmxhdE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcblxuICAgICAgaWYgKHRoaXMuZ2V0TGV2ZWwoY3VycmVudE5vZGUpIDwgY3VycmVudExldmVsKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpbml0aWFsaXplKGRhdGE6IEl0ZW1Ob2RlW10pIHtcbiAgICB0aGlzLmRhdGFiYXNlLmluaXRpYWxpemUoZGF0YSk7XG4gIH1cblxuICBnZXRTZWxlY3RlZE5vZGVzKCk6IEl0ZW1GbGF0Tm9kZVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogSXRlbUZsYXROb2RlW10gPSBbXTtcbiAgICBpZiAoIXRoaXMuYWxsb3dDaGVja0l0ZW1zKSB7XG4gICAgICBzZWxlY3RlZE5vZGVzLnB1c2godGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG4pKSB7XG4gICAgICAgICAgbi5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKiBTZWxlY3QgdGhlIGNhdGVnb3J5IHNvIHdlIGNhbiBpbnNlcnQgdGhlIG5ldyBpdGVtLiAqL1xuICBhZGROZXdJdGVtKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLmZsYXROb2RlTWFwLmdldChub2RlKTtcbiAgICB0aGlzLmRhdGFiYXNlLmluc2VydEl0ZW0ocGFyZW50Tm9kZSEsICcnKTtcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcbiAgfVxuXG4gIC8qKiBTYXZlIHRoZSBub2RlIHRvIGRhdGFiYXNlICovXG4gIHNhdmVOb2RlKG5vZGU6IEl0ZW1GbGF0Tm9kZSwgaXRlbVZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXN0ZWROb2RlID0gdGhpcy5mbGF0Tm9kZU1hcC5nZXQobm9kZSk7XG4gICAgdGhpcy5kYXRhYmFzZS51cGRhdGVJdGVtKG5lc3RlZE5vZGUhLCBpdGVtVmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyVGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFiYXNlLmZpbHRlcih0ZXh0KTtcbiAgICB0aGlzLmV4cGFuZEFsbCgpO1xuICB9XG5cbiAgZXhwYW5kQWxsKCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBleHBhbmROb2RlKG5vZGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMgJiZcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aCA+IG5vZGVJbmRleFxuICAgICkge1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbbm9kZUluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmZpbHRlclRleHQoZmlsdGVyVmFsdWUpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0aW9uQnlJZHMoaWRzOiBudW1iZXJbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMpIHJldHVybjtcblxuICAgIC8vIENsZWFyIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcblxuICAgIC8vIFNlbGVjdCBub2RlcyB0aGF0IG1hdGNoIHRoZSBJRHNcbiAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5kYXRhICYmIGlkcy5pbmNsdWRlcyhub2RlLmRhdGEuaWQpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICAgICAgbm9kZS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoIHAtMTBcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+IHt7IGNvbW1vbktleXMuYWN0aW9ucy5maWx0ZXIgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBtaW5sZW5ndGg9XCIxXCJcbiAgICAgICAgIChrZXl1cCk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgY29tbW9uS2V5cy5hY3Rpb25zLmZpbHRlciB9fVwiXG4gICAgICAgICAjaW5wdXQgLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjwhLS08Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiMzBcIiBjbGFzcz1cImRpY3Rpb25hcnktdmlld3BvcnRcIj4tLT5cbjxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gIDwhLS0gTGVhZiBOb2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZWQ+PC9idXR0b24+XG4gICAgPCEtLSBOb2RlIENvbnRlbnQgLS0+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2hlY2tib3ggZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBhbGxvd2VkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGUuY2FuU2VsZWN0ICYmIGFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gIDwhLS0gTm9kZXMgd2l0aCBDaGlsZHJlbiAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgIDwhLS0gRXhwYW5kL0NvbGxhcHNlIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW5vZGUuaGlkZUFycm93XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gTm9kZSBDb250ZW50IC0tPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8IS0tIENoZWNrYm94IGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiBhbGxvd0NoZWNrSXRlbXMgJiYgdHJlZUNvbnRyb2wuZ2V0TGV2ZWwobm9kZSkgPiAwXCI+XG4gICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2xpY2thYmxlIExhYmVsIGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgbm90IGFsbG93ZWQgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZS5jYW5TZWxlY3QgJiYgIWFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWRjLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCI+XG4gICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIE5vbi1jbGlja2FibGUgTGFiZWwgZm9yIE5vbi1zZWxlY3RhYmxlIE5vZGVzIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub2RlLmNhblNlbGVjdFwiPlxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWRjLWxhYmVsXCI+XG4gICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBBZGQgTmV3IEl0ZW0gQnV0dG9uIC0tPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGROZXdJdGVtKG5vZGUpXCIgKm5nSWY9XCJhbGxvd0FkZEl0ZW1zXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuPC9tYXQtdHJlZT5cbjwhLS08L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD4tLT5cbiJdfQ==
|