vcomply-workflow-engine 2.5.1 → 2.5.4
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/bundles/vcomply-workflow-engine.umd.js +465 -304
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/more-option/more-option.component.js +66 -3
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +9 -9
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.js +67 -62
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.ngfactory.js +43 -48
- package/esm2015/lib/sharedComponents/framework-list/framework-list.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.js +2 -2
- package/esm2015/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.ngfactory.js +3 -3
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +3 -3
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +6 -6
- package/esm2015/lib/ui-kit/popover/popover.component.js +5 -4
- package/esm2015/lib/ui-kit/popover-hover/popover-hover.component.js +5 -4
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +36 -24
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +5 -4
- package/esm2015/lib/workflow-engine.module.js +3 -1
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.js +12 -0
- package/esm2015/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.ngsummary.json +1 -0
- package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.js +2 -2
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +35 -4
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +11 -4
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +27 -8
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +438 -445
- package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-services/programs.service.js +8 -7
- package/esm2015/lib/workflow-services/responsibility.service.js +5 -2
- package/esm2015/vcomply-workflow-engine.js +189 -188
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +266 -117
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/framework-list/framework-list.component.d.ts +17 -18
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -1
- package/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.d.ts +4 -0
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +6 -0
- package/lib/workflow-program/workflow-program.component.d.ts +1 -0
- package/lib/workflow-services/programs.service.d.ts +1 -1
- package/lib/workflow-services/responsibility.service.d.ts +1 -1
- package/package.json +1 -1
- package/vcomply-workflow-engine.d.ts +188 -187
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js
CHANGED
|
@@ -23,4 +23,4 @@ import * as i15 from "../../sharedComponents/assessment-preview/assessment-previ
|
|
|
23
23
|
import * as i16 from "../../sharedComponents/v-loader/v-loader.module";
|
|
24
24
|
var CreateProgramUiModuleNgFactory = i0.ɵcmf(i1.CreateProgramUiModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.ɵtNgFactory, i3.DatePickerComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i4.NgLocalization, i4.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i5.PopoverService, i5.PopoverService, []), i0.ɵmpd(1073742336, i4.CommonModule, i4.CommonModule, []), i0.ɵmpd(1073742336, i6.TooltipModule, i6.TooltipModule, []), i0.ɵmpd(1073742336, i7.ɵangular_packages_forms_forms_p, i7.ɵangular_packages_forms_forms_p, []), i0.ɵmpd(1073742336, i7.ɵangular_packages_forms_forms_d, i7.ɵangular_packages_forms_forms_d, []), i0.ɵmpd(1073742336, i7.FormsModule, i7.FormsModule, []), i0.ɵmpd(1073742336, i8.PaginationModule, i8.PaginationModule, []), i0.ɵmpd(1073742336, i9.PopoverModule, i9.PopoverModule, []), i0.ɵmpd(1073742336, i10.NoDataModule, i10.NoDataModule, []), i0.ɵmpd(1073742336, i11.FormgroupModule, i11.FormgroupModule, []), i0.ɵmpd(1073742336, i12.FormgroupModule, i12.FormgroupModule, []), i0.ɵmpd(1073742336, i13.NgxMaterialTimepickerModule, i13.NgxMaterialTimepickerModule, []), i0.ɵmpd(1073742336, i14.DpDatePickerModule, i14.DpDatePickerModule, []), i0.ɵmpd(1073742336, i15.AssessmentPreviewModule, i15.AssessmentPreviewModule, []), i0.ɵmpd(1073742336, i16.VLoaderModule, i16.VLoaderModule, []), i0.ɵmpd(1073742336, i1.CreateProgramUiModule, i1.CreateProgramUiModule, [])]); });
|
|
25
25
|
export { CreateProgramUiModuleNgFactory as CreateProgramUiModuleNgFactory };
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2dyYW0tdWkubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvY3JlYXRlLXByb2dyYW0tdWkubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1wcm9ncmFtLXVpLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi8uLi91aS1raXQvbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTEgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvY3MtcmFkaW8vY3MtcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi8uLi91aS1raXQvZm9ybWdyb3VwL2NzLXN3aXRjaC9jcy1zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi8uLi91aS1raXQvZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1zZWxlY3QvY3Mtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTYgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1jaGVja2JveC1pbmRldGVybWluYXRlL2NzLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNyBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9jaGVja2JveC1xdWVzdGlvbi9jaGVja2JveC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE4IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9kZXZpY2UvZGV2aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjAgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMiBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3LWNvbnRhaW5lci9wcmV2aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIzIGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1wcmV2aWV3L3F1aWNrLXNldHRpbmdzL3F1aWNrLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9zZWxlY3QtcXVlc3Rpb24vc2VsZWN0LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjYgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvc2luZ2xlLXRleHRib3gvc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNyBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL2xvYWRlci1pbmxpbmUvbG9hZGVyLWlubGluZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMwIGZyb20gJy4vdGFiLXNlbGVjdG9yL3RhYi1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vdGljay1tYXJrL3RpY2stbWFyay5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMyIGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzMgZnJvbSAnLi9maWxlLXBpbGwvZmlsZS1waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9pbnB1dC13aXRoLXBpbGwvaW5wdXQtd2l0aC1waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzYgZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LXRyaW0uZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL3JvbGUtbGlzdC9yb2xlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzkgZnJvbSAnLi9mbG9hdGluZy1iYXIvZmxvYXRpbmctYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDAgZnJvbSAnLi91c2VyLWdyb3VwLWxpc3QvdXNlci1ncm91cC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDEgZnJvbSAnLi9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQyIGZyb20gJy4vYXNzZXNzbWVudC1waWNrZXIvYXNzZXNzbWVudC1sb2FkZXIvYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MyBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL2Fzc2Vzc21lbnQtc3ViLWxvYWRlci9hc3Nlc3NtZW50LXN1Yi1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL3dvcmtmbG93LXBhZ2luYXRpb24vd29ya2Zsb3ctcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ1IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ2IGZyb20gJy4vY3VzdG9tLWZpZWxkL2N1c3RvbS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ3IGZyb20gJy4vcm9sZS1saXN0L2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9waXBlcy9zZWFyY2hNdWx0aVNlbGVjdC5waXBlJztcbmltcG9ydCAqIGFzIGk1MCBmcm9tICcuL3BpcGVzL3NlYXJjaC5waXBlJztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuL3BpcGVzL2xpc3QtdG8taWQucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTIgZnJvbSAnLi9waXBlcy9yZWYtZGlzY29ubmVjdC5waXBlJztcbmltcG9ydCAqIGFzIGk1MyBmcm9tICcuL3BpcGVzL3BhZ2VyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU0IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL3BpcGVzL2NhdGVnb3J5LWFsbC1zZWxlY3QucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTUgZnJvbSAnLi9kZWZpbmUtZnJhbWV3b3JrLWxpc3RpbmcvcGlwZXMvc3ViLWNhdC1pbmRldGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU2IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL3BpcGVzL3NlYXJjaC5waXBlJztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL3NlbGVjdGVkLWFzc2Vzc21lbnQucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTggZnJvbSAnLi9waXBlcy9hc3Nlc3NtZW50LXJlc29sdmVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICcuL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTYxIGZyb20gJy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2MiBmcm9tICcuLi8uLi91aS1raXQvbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjMgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NCBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL3YtbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgQ3JlYXRlUHJvZ3JhbVVpTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5DcmVhdGVQcm9ncmFtVWlNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBhZ2luYXRpb25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1Omk3LlBvcG92ZXJFdmVudERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5Qb3BvdmVyTG9uZ3ByZXNzRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5Lsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc19iYiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xODppOS5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppOS7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfYmEgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTkuRGVmYXVsdFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTkuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppOS5SYW5nZVZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTkuQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppOS5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppOS5TZWxlY3RNdWx0aXBsZUNvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI2Omk5LlJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTkuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4Omk5Lk5nQ29udHJvbFN0YXR1c0dyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5Omk5LlJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmk5Lk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppOS5NYXhMZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTkuUGF0dGVyblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppOS5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0Omk5LkVtYWlsVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1Omk5Lk1pblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppOS5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTkuTmdNb2RlbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppOS5OZ01vZGVsR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTkuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkxMC5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTExLkNzQ2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTEyLkNzUmFkaW9Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTEzLkNzU3dpdGNoQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ0OmkxNC5Dc1JhZGlvR3JvdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTE1LkNzU2VsZWN0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ2OmkxNi5Dc0NoZWNrYm94SW5kZXRlcm1pbmF0ZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NzppMTcuQ2hlY2tib3hRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80ODppMTguRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTE5LkRldmljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MDppMjAuRmlsZVVwbG9hZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MTppMjEuUHJldmlld0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMjIuUHJldmlld0NvbnRhaW5lckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MzppMjMuUXVpY2tTZXR0aW5nc0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NDppMjQuUmFkaW9RdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppMjUuU2VsZWN0UXVlc3Rpb25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTI2LlNpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTI3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTI4LkxvYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppMjkuTG9hZGVySW5saW5lQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYwOmkzMC5UYWJTZWxlY3RvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MTppMzEuVGlja01hcmtDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjI6aTMyLkZvcm1GaWVsZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MzppMzMuRmlsZVBpbGxDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjQ6aTM0LklucHV0V2l0aFBpbGxDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjU6aTM1LlN3aXRjaENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NjppMzYuSW5wdXRUcmltRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3OmkzNy5Sb2xlTGlzdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82ODppMzguQ2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjk6aTM5LlZ1aUZsb2F0aW5nQmFyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk0MC5Vc2VyR3JvdXBMaXN0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcxOmk0MS5Bc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcyOmk0Mi5Bc3Nlc3NtZW50TG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzczOmk0My5Bc3Nlc3NtZW50U3ViTG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk0NC5QYWdpbmF0aW9uID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc1Omk0NS5EZWZpbmVGcmFtZXdvcmtMaXN0aW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk0Ni5DdXN0b21GaWVsZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNDcuTG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc4Omk0OC5Mb2FkZXJGcmFtZXdvcmtDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzk6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODE6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODQ6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODU6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODg6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODk6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTA6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTE6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk0OS5TZWFyY2hNdWx0aVNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTUwLlNlYXJjaFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTY6aTUxLkxpc3RUb0lkUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85ODppNTIuUmVmRGlzY29ubmVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk1My5QYWdlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk1NC5DYXRlZ29yeUFsbFNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA0Omk1NS5TdWJDYXRJbmRldGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTU2LlNlYXJjaE5ld1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk1Ny5TZWxlY3RlZEFzc2Vzc21lbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNTguQXNzZXNzbWVudFJlc29sdmVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTE6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMjppNTkuVG9vbHRpcE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTYwLlBhZ2luYXRpb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE0Omk2MS5Qb3BvdmVyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNTppOS5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTY6aTYyLk5vRGF0YU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTc6aTYzLkZvcm1ncm91cE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTY0LkFzc2Vzc21lbnRQcmV2aWV3TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOTppNjUuVkxvYWRlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjE6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19UYWJTZWxlY3Rvcl9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVGFiU2VsZWN0b3JfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAndHlwZS1maWVsZCAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoPGFueT57J3R3byc6KCgoX2RlY2wwXzYwLmRpc3BsYXlBcnJheSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzYwLmRpc3BsYXlBcnJheS5sZW5ndGgpID09PSAyKSxcbiAgICAgICdmb3VyJzooKChfZGVjbDBfNjAuZGlzcGxheUFycmF5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNjAuZGlzcGxheUFycmF5Lmxlbmd0aCkgPT09IDQpfSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF82MC5kaXNwbGF5QXJyYXk7XG4gIGN1cnJWYWxfMjtcbn1cbmZ1bmN0aW9uIF9WaWV3X1RpY2tNYXJrQ29tcG9uZW50X0hvc3RfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19UaWNrTWFya0NvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IHRydWU7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Zvcm1GaWVsZENvbXBvbmVudF9Ib3N0XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfRm9ybUZpZWxkQ29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfRmlsZVBpbGxDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0ZpbGVQaWxsQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2ZpbGUgdGFibGUnO1xuICBjdXJyVmFsXzA7XG4gIHZhciB0bXBfMV8wOmFueTtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJywoKCgodG1wXzFfMCA9IF9kZWNsMF82My5leHRlbnNpb24pICE9PSAobnVsbCBhcyBhbnkpKSAmJiAodG1wXzFfMCAhPT0gKHVuZGVmaW5lZCBhcyBhbnkpKSk/IHRtcF8xXzA6ICcnKSxcbiAgICAgICcnKTtcbiAgY3VyclZhbF8xO1xuICB2YXIgdG1wXzJfMDphbnk7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoKCgodG1wXzJfMCA9IF9kZWNsMF82My5leHRlbnNpb24pICE9PSAobnVsbCBhcyBhbnkpKSAmJiAodG1wXzJfMCAhPT0gKHVuZGVmaW5lZCBhcyBhbnkpKSk/IHRtcF8yXzA6ICctLScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNjMubmFtZTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF82My5uYW1lO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNjMuZGlzYWJsZWQ7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzYzLmRlbGV0ZS5lbWl0KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19JbnB1dFdpdGhQaWxsQ29tcG9uZW50X0hvc3RfNV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19JbnB1dFdpdGhQaWxsQ29tcG9uZW50XzVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIV9hbnkuY2hpbGRyZW4ubGVuZ3RoO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNjQuZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1N3aXRjaENvbXBvbmVudF9Ib3N0XzZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU3dpdGNoQ29tcG9uZW50XzZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF82NS5wb3NpdGlvbiA9PSAndG9wJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfNjUudmFsdWUgIT0gdW5kZWZpbmVkKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfNjUudG9vbHRpcE1lc3NhZ2UgPT09ICcnKSB8fCAoX2RlY2wwXzY1LnRvb2x0aXBNZXNzYWdlID09PSB1bmRlZmluZWQpKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKChfZGVjbDBfNjUudG9vbHRpcE1lc3NhZ2UgIT09ICcnKSAmJiAoX2RlY2wwXzY1LnRvb2x0aXBNZXNzYWdlICE9PSB1bmRlZmluZWQpKTtcbiAgY3VyclZhbF8zO1xufVxuZnVuY3Rpb24gX1ZpZXdfUm9sZUxpc3RDb21wb25lbnRfSG9zdF83XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1JvbGVMaXN0Q29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzY3LmFuaW1hdGlvbjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gISgoX2RlY2wwXzY3LnJvbGVzTGlzdCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzY3LnJvbGVzTGlzdC5sZW5ndGgpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjcuc2VhcmNoS2V5O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNjcubG9hZGluZztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gIV9kZWNsMF82Ny5sb2FkaW5nO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNjcuc2hvd0NvbmZpcm1hdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gIV9kZWNsMF82Ny5zaG93Q29uZmlybWF0aW9uO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IHBkXzc6YW55ID0gKCg8YW55PihfZGVjbDBfNjcuc2VhcmNoS2V5ID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19DaGVja2JveENvbXBvbmVudF9Ib3N0XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ2hlY2tib3hDb21wb25lbnRfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjguZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82OC5jaGVja2VkO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjguZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICFfZGVjbDBfNjguaW5kZXRlcm1pbmF0ZUVuYWJsZWQ7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF82OC5pbmRldGVybWluYXRlRW5hYmxlZDtcbiAgY3VyclZhbF80O1xuICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfNjgudmFsdWVDaGFuZ2VkKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19WdWlGbG9hdGluZ0JhckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVnVpRmxvYXRpbmdCYXJDb21wb25lbnRfOV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjkuc2hvd05leHRCdXR0b247XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2RlY2wwXzY5LmNsb3NlKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Vc2VyR3JvdXBMaXN0Q29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVXNlckdyb3VwTGlzdENvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNzAuYW5pbWF0aW9uO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNzAucGFuZWxUaXRsZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzcwLmxvYWRpbmc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF83MC5zZWFyY2hLZXk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJywoKF9kZWNsMF83MC5jdXJyZW50VGFiID09PSAnVVNFUicpPyAnU2VhcmNoIFVzZXInOiAnU2VhcmNoIEdyb3VwJyksXG4gICAgICAnJyk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF83MC5ncm91cEVuYWJsZWQ7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IChfZGVjbDBfNzAuY3VycmVudFRhYiA9PT0gJ1VTRVInKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF83MC5jdXJyZW50VGFiID09PSAnR1JPVVAnKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gIV9kZWNsMF83MC5zaW5nbGVTZWxlY3Q7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF83MC5zaW5nbGVTZWxlY3Q7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55PihfZGVjbDBfNzAuc2VhcmNoS2V5ID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXNzZXNzbWVudFBpY2tlckNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNzEuaXNQcmV2aWV3O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNzEuYW5pbWF0aW9uO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNzEuc2VhcmNoQXNzZXNzbWVudHM7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICcnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoKF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkudG90YWxQYWdlKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LnN0YXJ0X3ZhbHVlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LmVuZF92YWx1ZSk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeS50b3RhbFJlY29yZHMpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggPT09IDApICYmICFfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhLmxlbmd0aCB8fCBfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKCFfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LmRhdGEubGVuZ3RoICYmICFfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudC5sZW5ndGgpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoKF9kZWNsMF83MS5zZWxlY3RlZEFzc2Vzc21lbnQgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF83MS5zZWxlY3RlZEFzc2Vzc21lbnQubGVuZ3RoKSA9PT0gMSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gKCgoX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudC5sZW5ndGgpID4gMSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfNzEuc2VsZWN0ZWRBc3Nlc3NtZW50O1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBwZF8xNjphbnkgPSAoKDxhbnk+KF9kZWNsMF83MS5zZWFyY2hBc3Nlc3NtZW50cyA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNzphbnkgPSAoKDxhbnk+X2RlY2wwXzcxLm9uQXNzZXNzbWVudFNlYXJjaChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE4OmFueSA9ICgoPGFueT5fZGVjbDBfNzEub25BbHBoYWJldFNlbGVjdGVkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzcxLm9uUGFnZVNlbGVjdGlvbihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF83MS5zYXZlKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfNzEuY2xvc2UoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRMb2FkZXJDb21wb25lbnRfSG9zdF8xMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50TG9hZGVyQ29tcG9uZW50XzEyXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTdWJMb2FkZXJDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U3ViTG9hZGVyQ29tcG9uZW50XzEzXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2luYXRpb25fSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19QYWdpbmF0aW9uXzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF83NC5ub0ZpbHRlcjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIV9kZWNsMF83NC5ub0ZpbHRlcjtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF83NC5wYWdlQ291bnQgPiAxKTtcbiAgY3VyclZhbF8yO1xufVxuZnVuY3Rpb24gX1ZpZXdfRGVmaW5lRnJhbWV3b3JrTGlzdGluZ0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0RlZmluZUZyYW1ld29ya0xpc3RpbmdDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzc1LmFuaW1hdGlvbjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF83NS5jdXJyZW50VmlldyA9PT0gJ0ZSQU1FV09SS19DQVRFR09SWScpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzc1LmN1cnJlbnRWaWV3ID09PSAnRlJBTUVXT1JLJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfNzUuY3VycmVudFZpZXcgPT09ICdGUkFNRVdPUktfQ0FURUdPUlknKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF83NS5jdXJyZW50VmlldyA9PT0gJ0ZSQU1FV09SSycpO1xuICBjdXJyVmFsXzQ7XG59XG5mdW5jdGlvbiBfVmlld19DdXN0b21GaWVsZENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0N1c3RvbUZpZWxkQ29tcG9uZW50XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF83Ni5jdXN0b21GaWVsZHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2RlY2wwXzc2Lm1hbmlwdWxhdGVDdXN0b21GaWVsZCgnQUREJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Mb2FkZXJDb21wb25lbnRfSG9zdF8xN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Mb2FkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKDxhbnk+WzEsMSwxLDEsMSwxLDFdKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9hZGVyRnJhbWV3b3JrQ29tcG9uZW50X0hvc3RfMThfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9hZGVyRnJhbWV3b3JrQ29tcG9uZW50XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbiJdfQ==
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2dyYW0tdWkubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvY3JlYXRlLXByb2dyYW0tdWkubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1wcm9ncmFtLXVpLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi8uLi91aS1raXQvbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTEgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvY3MtcmFkaW8vY3MtcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi8uLi91aS1raXQvZm9ybWdyb3VwL2NzLXN3aXRjaC9jcy1zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi8uLi91aS1raXQvZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1zZWxlY3QvY3Mtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTYgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9jcy1jaGVja2JveC1pbmRldGVybWluYXRlL2NzLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNyBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9jaGVja2JveC1xdWVzdGlvbi9jaGVja2JveC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE4IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9kZXZpY2UvZGV2aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjAgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMiBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3LWNvbnRhaW5lci9wcmV2aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIzIGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1wcmV2aWV3L3F1aWNrLXNldHRpbmdzL3F1aWNrLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9zZWxlY3QtcXVlc3Rpb24vc2VsZWN0LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjYgZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LXByZXZpZXcvc2luZ2xlLXRleHRib3gvc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNyBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL2xvYWRlci1pbmxpbmUvbG9hZGVyLWlubGluZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMwIGZyb20gJy4vdGFiLXNlbGVjdG9yL3RhYi1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vdGljay1tYXJrL3RpY2stbWFyay5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMyIGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzMgZnJvbSAnLi9maWxlLXBpbGwvZmlsZS1waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9pbnB1dC13aXRoLXBpbGwvaW5wdXQtd2l0aC1waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzYgZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LXRyaW0uZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL3JvbGUtbGlzdC9yb2xlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzkgZnJvbSAnLi9mbG9hdGluZy1iYXIvZmxvYXRpbmctYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDAgZnJvbSAnLi91c2VyLWdyb3VwLWxpc3QvdXNlci1ncm91cC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDEgZnJvbSAnLi9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQyIGZyb20gJy4vYXNzZXNzbWVudC1waWNrZXIvYXNzZXNzbWVudC1sb2FkZXIvYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MyBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL2Fzc2Vzc21lbnQtc3ViLWxvYWRlci9hc3Nlc3NtZW50LXN1Yi1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL3dvcmtmbG93LXBhZ2luYXRpb24vd29ya2Zsb3ctcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ1IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ2IGZyb20gJy4vY3VzdG9tLWZpZWxkL2N1c3RvbS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQ3IGZyb20gJy4vcm9sZS1saXN0L2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9waXBlcy9zZWFyY2hNdWx0aVNlbGVjdC5waXBlJztcbmltcG9ydCAqIGFzIGk1MCBmcm9tICcuL3BpcGVzL3NlYXJjaC5waXBlJztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuL3BpcGVzL2xpc3QtdG8taWQucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTIgZnJvbSAnLi9waXBlcy9yZWYtZGlzY29ubmVjdC5waXBlJztcbmltcG9ydCAqIGFzIGk1MyBmcm9tICcuL3BpcGVzL3BhZ2VyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU0IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL3BpcGVzL2NhdGVnb3J5LWFsbC1zZWxlY3QucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTUgZnJvbSAnLi9kZWZpbmUtZnJhbWV3b3JrLWxpc3RpbmcvcGlwZXMvc3ViLWNhdC1pbmRldGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU2IGZyb20gJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL3BpcGVzL3NlYXJjaC5waXBlJztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuL2Fzc2Vzc21lbnQtcGlja2VyL3NlbGVjdGVkLWFzc2Vzc21lbnQucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTggZnJvbSAnLi9waXBlcy9hc3Nlc3NtZW50LXJlc29sdmVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICcuL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTYxIGZyb20gJy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2MiBmcm9tICcuLi8uLi91aS1raXQvbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjMgZnJvbSAnLi4vLi4vdWkta2l0L2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NCBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL3YtbG9hZGVyL3YtbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgQ3JlYXRlUHJvZ3JhbVVpTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5DcmVhdGVQcm9ncmFtVWlNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBhZ2luYXRpb25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1Omk3LlBvcG92ZXJFdmVudERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5Qb3BvdmVyTG9uZ3ByZXNzRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5Lsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc19iYiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xODppOS5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppOS7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfYmEgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTkuRGVmYXVsdFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTkuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppOS5SYW5nZVZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTkuQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppOS5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppOS5TZWxlY3RNdWx0aXBsZUNvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI2Omk5LlJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTkuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4Omk5Lk5nQ29udHJvbFN0YXR1c0dyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5Omk5LlJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmk5Lk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppOS5NYXhMZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTkuUGF0dGVyblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppOS5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0Omk5LkVtYWlsVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1Omk5Lk1pblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppOS5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTkuTmdNb2RlbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppOS5OZ01vZGVsR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTkuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkxMC5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTExLkNzQ2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTEyLkNzUmFkaW9Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTEzLkNzU3dpdGNoQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ0OmkxNC5Dc1JhZGlvR3JvdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTE1LkNzU2VsZWN0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ2OmkxNi5Dc0NoZWNrYm94SW5kZXRlcm1pbmF0ZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NzppMTcuQ2hlY2tib3hRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80ODppMTguRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTE5LkRldmljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MDppMjAuRmlsZVVwbG9hZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MTppMjEuUHJldmlld0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMjIuUHJldmlld0NvbnRhaW5lckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MzppMjMuUXVpY2tTZXR0aW5nc0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NDppMjQuUmFkaW9RdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppMjUuU2VsZWN0UXVlc3Rpb25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTI2LlNpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTI3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTI4LkxvYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppMjkuTG9hZGVySW5saW5lQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYwOmkzMC5UYWJTZWxlY3RvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MTppMzEuVGlja01hcmtDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjI6aTMyLkZvcm1GaWVsZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MzppMzMuRmlsZVBpbGxDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjQ6aTM0LklucHV0V2l0aFBpbGxDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjU6aTM1LlN3aXRjaENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NjppMzYuSW5wdXRUcmltRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3OmkzNy5Sb2xlTGlzdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82ODppMzguQ2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjk6aTM5LlZ1aUZsb2F0aW5nQmFyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk0MC5Vc2VyR3JvdXBMaXN0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcxOmk0MS5Bc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcyOmk0Mi5Bc3Nlc3NtZW50TG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzczOmk0My5Bc3Nlc3NtZW50U3ViTG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk0NC5QYWdpbmF0aW9uID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc1Omk0NS5EZWZpbmVGcmFtZXdvcmtMaXN0aW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk0Ni5DdXN0b21GaWVsZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNDcuTG9hZGVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc4Omk0OC5Mb2FkZXJGcmFtZXdvcmtDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzk6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODE6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODQ6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODU6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODg6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODk6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTA6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTE6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk0OS5TZWFyY2hNdWx0aVNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTUwLlNlYXJjaFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTY6aTUxLkxpc3RUb0lkUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85ODppNTIuUmVmRGlzY29ubmVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk1My5QYWdlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk1NC5DYXRlZ29yeUFsbFNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA0Omk1NS5TdWJDYXRJbmRldGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTU2LlNlYXJjaE5ld1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk1Ny5TZWxlY3RlZEFzc2Vzc21lbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNTguQXNzZXNzbWVudFJlc29sdmVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTE6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMjppNTkuVG9vbHRpcE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTYwLlBhZ2luYXRpb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE0Omk2MS5Qb3BvdmVyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNTppOS5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTY6aTYyLk5vRGF0YU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTc6aTYzLkZvcm1ncm91cE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTY0LkFzc2Vzc21lbnRQcmV2aWV3TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOTppNjUuVkxvYWRlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjE6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19UYWJTZWxlY3Rvcl9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVGFiU2VsZWN0b3JfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAndHlwZS1maWVsZCAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoPGFueT57J3R3byc6KCgoX2RlY2wwXzYwLmRpc3BsYXlBcnJheSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzYwLmRpc3BsYXlBcnJheS5sZW5ndGgpID09PSAyKSxcbiAgICAgICdmb3VyJzooKChfZGVjbDBfNjAuZGlzcGxheUFycmF5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNjAuZGlzcGxheUFycmF5Lmxlbmd0aCkgPT09IDQpfSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF82MC5kaXNwbGF5QXJyYXk7XG4gIGN1cnJWYWxfMjtcbn1cbmZ1bmN0aW9uIF9WaWV3X1RpY2tNYXJrQ29tcG9uZW50X0hvc3RfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19UaWNrTWFya0NvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IHRydWU7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Zvcm1GaWVsZENvbXBvbmVudF9Ib3N0XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfRm9ybUZpZWxkQ29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfRmlsZVBpbGxDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0ZpbGVQaWxsQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2ZpbGUgdGFibGUnO1xuICBjdXJyVmFsXzA7XG4gIHZhciB0bXBfMV8wOmFueTtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJywoKCgodG1wXzFfMCA9IF9kZWNsMF82My5leHRlbnNpb24pICE9PSAobnVsbCBhcyBhbnkpKSAmJiAodG1wXzFfMCAhPT0gKHVuZGVmaW5lZCBhcyBhbnkpKSk/IHRtcF8xXzA6ICcnKSxcbiAgICAgICcnKTtcbiAgY3VyclZhbF8xO1xuICB2YXIgdG1wXzJfMDphbnk7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoKCgodG1wXzJfMCA9IF9kZWNsMF82My5leHRlbnNpb24pICE9PSAobnVsbCBhcyBhbnkpKSAmJiAodG1wXzJfMCAhPT0gKHVuZGVmaW5lZCBhcyBhbnkpKSk/IHRtcF8yXzA6ICctLScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNjMubmFtZTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF82My5uYW1lO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNjMuZGlzYWJsZWQ7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzYzLmRlbGV0ZS5lbWl0KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19JbnB1dFdpdGhQaWxsQ29tcG9uZW50X0hvc3RfNV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19JbnB1dFdpdGhQaWxsQ29tcG9uZW50XzVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIV9hbnkuY2hpbGRyZW4ubGVuZ3RoO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNjQuZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1N3aXRjaENvbXBvbmVudF9Ib3N0XzZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU3dpdGNoQ29tcG9uZW50XzZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF82NS5wb3NpdGlvbiA9PSAndG9wJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfNjUudmFsdWUgIT0gdW5kZWZpbmVkKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfNjUudG9vbHRpcE1lc3NhZ2UgPT09ICcnKSB8fCAoX2RlY2wwXzY1LnRvb2x0aXBNZXNzYWdlID09PSB1bmRlZmluZWQpKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKChfZGVjbDBfNjUudG9vbHRpcE1lc3NhZ2UgIT09ICcnKSAmJiAoX2RlY2wwXzY1LnRvb2x0aXBNZXNzYWdlICE9PSB1bmRlZmluZWQpKTtcbiAgY3VyclZhbF8zO1xufVxuZnVuY3Rpb24gX1ZpZXdfUm9sZUxpc3RDb21wb25lbnRfSG9zdF83XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1JvbGVMaXN0Q29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzY3LmFuaW1hdGlvbjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gISgoX2RlY2wwXzY3LnJvbGVzTGlzdCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzY3LnJvbGVzTGlzdC5sZW5ndGgpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjcuc2VhcmNoS2V5O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNjcubG9hZGluZztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gIV9kZWNsMF82Ny5sb2FkaW5nO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNjcuc2hvd0NvbmZpcm1hdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gIV9kZWNsMF82Ny5zaG93Q29uZmlybWF0aW9uO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IHBkXzc6YW55ID0gKCg8YW55PihfZGVjbDBfNjcuc2VhcmNoS2V5ID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19DaGVja2JveENvbXBvbmVudF9Ib3N0XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ2hlY2tib3hDb21wb25lbnRfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjguZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82OC5jaGVja2VkO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjguZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICFfZGVjbDBfNjguaW5kZXRlcm1pbmF0ZUVuYWJsZWQ7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF82OC5pbmRldGVybWluYXRlRW5hYmxlZDtcbiAgY3VyclZhbF80O1xuICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfNjgudmFsdWVDaGFuZ2VkKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19WdWlGbG9hdGluZ0JhckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVnVpRmxvYXRpbmdCYXJDb21wb25lbnRfOV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjkuc2hvd05leHRCdXR0b247XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2RlY2wwXzY5LmNsb3NlKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Vc2VyR3JvdXBMaXN0Q29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfVXNlckdyb3VwTGlzdENvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNzAuYW5pbWF0aW9uO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNzAucGFuZWxUaXRsZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzcwLmxvYWRpbmc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF83MC5zZWFyY2hLZXk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJywoKF9kZWNsMF83MC5jdXJyZW50VGFiID09PSAnVVNFUicpPyAnU2VhcmNoIFVzZXInOiAnU2VhcmNoIEdyb3VwJyksXG4gICAgICAnJyk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF83MC5ncm91cEVuYWJsZWQ7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IChfZGVjbDBfNzAuY3VycmVudFRhYiA9PT0gJ1VTRVInKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF83MC5jdXJyZW50VGFiID09PSAnR1JPVVAnKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gIV9kZWNsMF83MC5zaW5nbGVTZWxlY3Q7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF83MC5zaW5nbGVTZWxlY3Q7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfNzAuc2hvd0NvbmZpcm1hdGlvbjtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgcGRfMTE6YW55ID0gKCg8YW55PihfZGVjbDBfNzAuc2VhcmNoS2V5ID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXNzZXNzbWVudFBpY2tlckNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNzEuaXNQcmV2aWV3O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNzEuYW5pbWF0aW9uO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNzEuc2VhcmNoQXNzZXNzbWVudHM7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICcnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoKF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkudG90YWxQYWdlKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LnN0YXJ0X3ZhbHVlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LmVuZF92YWx1ZSk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeS50b3RhbFJlY29yZHMpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKF9kZWNsMF83MS5hc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggPT09IDApICYmICFfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzcxLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhLmxlbmd0aCB8fCBfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKCFfZGVjbDBfNzEuYXNzZXNzbWVudENhdGVnb3J5LmRhdGEubGVuZ3RoICYmICFfZGVjbDBfNzEuaXNMb2FkZXIpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudC5sZW5ndGgpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoKF9kZWNsMF83MS5zZWxlY3RlZEFzc2Vzc21lbnQgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF83MS5zZWxlY3RlZEFzc2Vzc21lbnQubGVuZ3RoKSA9PT0gMSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gKCgoX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzcxLnNlbGVjdGVkQXNzZXNzbWVudC5sZW5ndGgpID4gMSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfNzEuc2VsZWN0ZWRBc3Nlc3NtZW50O1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBwZF8xNjphbnkgPSAoKDxhbnk+KF9kZWNsMF83MS5zZWFyY2hBc3Nlc3NtZW50cyA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNzphbnkgPSAoKDxhbnk+X2RlY2wwXzcxLm9uQXNzZXNzbWVudFNlYXJjaChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE4OmFueSA9ICgoPGFueT5fZGVjbDBfNzEub25BbHBoYWJldFNlbGVjdGVkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzcxLm9uUGFnZVNlbGVjdGlvbihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF83MS5zYXZlKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfNzEuY2xvc2UoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRMb2FkZXJDb21wb25lbnRfSG9zdF8xMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50TG9hZGVyQ29tcG9uZW50XzEyXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTdWJMb2FkZXJDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U3ViTG9hZGVyQ29tcG9uZW50XzEzXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2luYXRpb25fSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19QYWdpbmF0aW9uXzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF83NC5ub0ZpbHRlcjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIV9kZWNsMF83NC5ub0ZpbHRlcjtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF83NC5wYWdlQ291bnQgPiAxKTtcbiAgY3VyclZhbF8yO1xufVxuZnVuY3Rpb24gX1ZpZXdfRGVmaW5lRnJhbWV3b3JrTGlzdGluZ0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0RlZmluZUZyYW1ld29ya0xpc3RpbmdDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzc1LmFuaW1hdGlvbjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF83NS5jdXJyZW50VmlldyA9PT0gJ0ZSQU1FV09SS19DQVRFR09SWScpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzc1LmN1cnJlbnRWaWV3ID09PSAnRlJBTUVXT1JLJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfNzUuY3VycmVudFZpZXcgPT09ICdGUkFNRVdPUktfQ0FURUdPUlknKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF83NS5jdXJyZW50VmlldyA9PT0gJ0ZSQU1FV09SSycpO1xuICBjdXJyVmFsXzQ7XG59XG5mdW5jdGlvbiBfVmlld19DdXN0b21GaWVsZENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0N1c3RvbUZpZWxkQ29tcG9uZW50XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF83Ni5jdXN0b21GaWVsZHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2RlY2wwXzc2Lm1hbmlwdWxhdGVDdXN0b21GaWVsZCgnQUREJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Mb2FkZXJDb21wb25lbnRfSG9zdF8xN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Mb2FkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKDxhbnk+WzEsMSwxLDEsMSwxLDFdKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9hZGVyRnJhbWV3b3JrQ29tcG9uZW50X0hvc3RfMThfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9hZGVyRnJhbWV3b3JrQ29tcG9uZW50XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICg8YW55PlsxLDEsMSwxLDEsMSwxXSk7XG4gIGN1cnJWYWxfMDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
export class ArrayConcatPipe {
|
|
3
|
+
transform(value, ...args) {
|
|
4
|
+
return [...value, ...args[0]];
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
ArrayConcatPipe.decorators = [
|
|
8
|
+
{ type: Pipe, args: [{
|
|
9
|
+
name: 'arrayConcat'
|
|
10
|
+
},] }
|
|
11
|
+
];
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29uY2F0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL3BpcGVzL2FycmF5LWNvbmNhdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS3BELE1BQU0sT0FBTyxlQUFlO0lBRTFCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OztZQVBGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsYUFBYTthQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYXJyYXlDb25jYXQnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcnJheUNvbmNhdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcclxuICAgIHJldHVybiBbLi4udmFsdWUsIC4uLmFyZ3NbMF1dO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"transform":[{"__symbolic":"method"}]}},"type":{"summaryKind":0,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[],"lifecycleHooks":[]},"name":"arrayConcat","pure":true}}],"symbols":[{"__symbol":0,"name":"ArrayConcatPipe","filePath":"./array-concat.pipe"}]}
|
|
@@ -93,7 +93,7 @@ export class RoleListComponent {
|
|
|
93
93
|
* @param roles
|
|
94
94
|
*/
|
|
95
95
|
setSystemRole(roles) {
|
|
96
|
-
const systemRoles = roles.filter((ele) => (ele === null || ele === void 0 ? void 0 : ele.
|
|
96
|
+
const systemRoles = roles.filter((ele) => { var _a, _b; return (((_a = ele === null || ele === void 0 ? void 0 : ele.roleName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'key admin' || ((_b = ele === null || ele === void 0 ? void 0 : ele.roleName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'admin'); });
|
|
97
97
|
this.systemRolesIds = Array.from(new Set([...this.systemRolesIds, ...systemRoles.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id)]));
|
|
98
98
|
this.selectedIds = Array.from(new Set([...this.selectedIds, ...this.systemRolesIds]));
|
|
99
99
|
this.selectedRoles = this.uniqueByProp([...systemRoles, ...this.selectedRoles], '_id');
|
|
@@ -179,4 +179,4 @@ RoleListComponent.propDecorators = {
|
|
|
179
179
|
loading: [{ type: Input }],
|
|
180
180
|
selectedRolesVal: [{ type: Input, args: ['selected',] }]
|
|
181
181
|
};
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvcm9sZS1saXN0L3JvbGUtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxNQUFNLE9BQU8saUJBQWlCO0lBTTVCO1FBTFUsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQVdqQixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLHVCQUF1QjtRQUN2QixtQkFBYyxHQUFTLEVBQUUsQ0FBQztRQUMxQix3QkFBd0I7UUFDeEIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsbUNBQW1DO1FBQ25DLGtCQUFhLEdBQVMsRUFBRSxDQUFDO1FBQ3pCLHdDQUF3QztRQUN4QyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixpQ0FBaUM7UUFDakMsY0FBUyxHQUFPLEVBQUUsQ0FBQztRQUVuQixvQkFBZSxHQUFPLElBQUksQ0FBQztRQUMzQixxQkFBZ0IsR0FBSSxLQUFLLENBQUM7UUFDM0IsbUNBQW1DO1FBQ2xDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDbEIsWUFBWTtRQUNYLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVVosWUFBTyxHQUFJLEtBQUssQ0FBQztJQXBDUixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNB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SSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUM7WUFDN0MsR0FBRyxDQUNKLEVBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FDVjthQUNBLE1BQU0sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDOzs7WUFoTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixtL1BBQXlDOzthQUUxQzs7OzttQkFFRSxNQUFNO3FCQUNOLE1BQU07c0JBK0JOLEtBQUssU0FBQyxNQUFNO3NCQVNkLEtBQUs7K0JBQ0wsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZlN0bXQgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JvbGUtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcm9sZS1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJvbGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgc2VhcmNoS2V5IDphbnkgPSAnJztcclxuICAvL1VzZWQgdG8gZGlzYWJsZSBpdGVtc1xyXG4gIHN5c3RlbVJvbGVzSWRzIDogYW55ID0gW107XHJcbiAgLy91c2VkIHRvIGNoZWNrIGNoZWNrYm94XHJcbiAgc2VsZWN0ZWRJZHMgOmFueSA9IFtdO1xyXG4gIC8vY29tcGxldGUgb2JqZWN0IG9mIHNlbGVjdGVkIGl0ZW1zXHJcbiAgc2VsZWN0ZWRSb2xlcyA6YW55ID0gIFtdO1xyXG4gIC8vY29udGFpbnMgaWQncyBvZiBhbGwgdGhlIGV4cGFuZGVkIHJvd3NcclxuICBleHBhbmRlZFJvd3MgOmFueSA9IFtdO1xyXG5cclxuICAvL2xpc3Qgb2YgYWxsIHRoZSBhdmFpbGFibGUgcm9sZXNcclxuICByb2xlc0xpc3Q6YW55ID0gW107XHJcblxyXG4gIGluaXRpYWxTZWxlY3RlZCA6YW55PSBudWxsO1xyXG4gIHNob3dDb25maXJtYXRpb24gID0gZmFsc2U7XHJcbiAvLyBvbmx5IHVzZWQgaW4gc2VsZWN0IGFsbCBmdW5jdGlvblxyXG4gIGFsbExpc3RJZHMgPSBbXTtcclxuLy9pc0FsbEl0ZW1zXHJcbiBhbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnbGlzdCcpIHNldCBzZXRMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLnJvbGVzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuc2V0U3lzdGVtUm9sZSh0aGlzLnJvbGVzTGlzdCk7XHJcbiAgICAgIHRoaXMuYWxsTGlzdElkcyA9IHRoaXMucm9sZXNMaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICB9XHJcblxyXG59XHJcbkBJbnB1dCgpIGxvYWRpbmcgID0gZmFsc2U7XHJcbkBJbnB1dCgnc2VsZWN0ZWQnKSBzZXQgc2VsZWN0ZWRSb2xlc1ZhbCh2YWx1ZTphbnkpe1xyXG5cclxuICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFJvbGVzLC4uLnZhbHVlXSwnX2lkJyk7XHJcbiAgdGhpcy5zZWxlY3RlZElkcyA9ICB0aGlzLnNlbGVjdGVkUm9sZXMubWFwKChlbGU6YW55KSA9PiBlbGU/Ll9pZCk7XHJcbiAgaWYoIXRoaXMuaW5pdGlhbFNlbGVjdGVkIHx8ICF0aGlzLmluaXRpYWxTZWxlY3RlZD8ubGVuZ3RoKXtcclxuICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZElkcztcclxuICB9XHJcbiAgdGhpcy5zZXRBbGxTZWxlY3RlZFN0YXR1cygpO1xyXG59XHJcblxyXG4vKipcclxuICogIyMjIyBEZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBFeHBhbmRzIG9yIGNvbGxhcHNlIHRoZSByb3dcclxuICogQHBhcmFtIHR5cGVcclxuICogQHBhcmFtIFtpZF1cclxuICovXHJcbmV4cGFuZE9yQ29sbGFwc2UodHlwZTonRVhQQU5EJyB8ICdDT0xMQVBTRSd8J0NPTExBUFNFX0FMTCcsaWQ/OmFueSl7XHJcbiAgc3dpdGNoKHR5cGUpe1xyXG4gICAgIGNhc2UgJ0NPTExBUFNFJzp7IHRoaXMuZXhwYW5kZWRSb3dzID0gIHRoaXMuZXhwYW5kZWRSb3dzLmZpbHRlcigoZWxlOmFueSkgPT4gZWxlICE9PSBpZCk7IGJyZWFrfVxyXG4gICAgIGNhc2UgJ0VYUEFORCc6e3RoaXMuZXhwYW5kZWRSb3dzID0gIEFycmF5LmZyb20obmV3IFNldDxhbnlbXT4oWy4uLnRoaXMuZXhwYW5kZWRSb3dzLC4uLltpZF1dKSk7ICBicmVha31cclxuICAgICBjYXNlICdDT0xMQVBTRV9BTEwnIDp7dGhpcy5leHBhbmRlZFJvd3MgPSBbXTsgYnJlYWt9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuc2VsZWN0QWxsKGV2dDphbnkpe1xyXG4gIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlcyA9IHRoaXMucm9sZXNMaXN0O1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9ICB0aGlzLnJvbGVzTGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZT8uX2lkKTtcclxuXHJcbiAgfWVsc2Uge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICB0aGlzLnNldFN5c3RlbVJvbGUodGhpcy5yb2xlc0xpc3QpO1xyXG4gIH1cclxuICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbn1cclxuXHJcbnNldEFsbFNlbGVjdGVkU3RhdHVzKCl7XHJcbiAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMuYWxsTGlzdElkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5zZWxlY3RlZElkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbn1cclxuLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogU2V0cyBzeXN0ZW0gcm9sZSBmb3IgYWRtaW5zIGFuZCBrZXkgYWRtaW5zXHJcbiAqIEBwYXJhbSByb2xlc1xyXG4gKi9cclxuc2V0U3lzdGVtUm9sZShyb2xlczphbnkpe1xyXG4gICAgY29uc3Qgc3lzdGVtUm9sZXMgPSByb2xlcy5maWx0ZXIoKGVsZTphbnkpID0+ICBlbGU/LnJvbGVUeXBlID09PSBcInN5c3RlbSByb2xlXCIpO1xyXG4gICAgdGhpcy5zeXN0ZW1Sb2xlc0lkcyAgPSBBcnJheS5mcm9tKG5ldyBTZXQ8YW55W10+KFsuLi50aGlzLnN5c3RlbVJvbGVzSWRzICwuLi5zeXN0ZW1Sb2xlcy5tYXAoKGVsZTphbnkpID0+IGVsZT8uX2lkKV0pKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSAgQXJyYXkuZnJvbShuZXcgU2V0PGFueVtdPihbLi4udGhpcy5zZWxlY3RlZElkcyAsLi4udGhpcy5zeXN0ZW1Sb2xlc0lkc10pKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlcyAgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc3lzdGVtUm9sZXMsLi4udGhpcy5zZWxlY3RlZFJvbGVzXSwnX2lkJylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiBTZWxlY3RzIGl0ZW0gb3IgZGVzZWxlY3QgYSBpdG1lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkXHJcbiAgICovXHJcbiAgc2VsZWN0SXRlbShldnQ6YW55LHBheWxvYWQ6YW55KXtcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRJdGVtcygnQUREJyxwYXlsb2FkKSA6IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkSXRlbXMoJ0RFTEVURScscGF5bG9hZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZEl0ZW1zKGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDphbnkpe1xyXG4gICAgICBpZihhY3Rpb24gPT09ICdBREQnKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFJvbGVzICwuLi5bcGF5bG9hZF1dLCdfaWQnKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZFJvbGVzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgICB9ZWxzZSBpZihhY3Rpb24gPT09ICdERUxFVEUnKXtcclxuICAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRSb2xlcy5maW5kSW5kZXgoKGVsZSA6YW55KSA9PiBlbGU/Ll9pZCA9PT0gcGF5bG9hZD8uX2lkKTtcclxuICAgICAgIGlmKGluZGV4ID4gLTEpe1xyXG4gICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnNlbGVjdGVkUm9sZXMuZmlsdGVyKChlbGUgOmFueSkgPT4gZWxlPy5faWQgIT09IHBheWxvYWQ/Ll9pZCk7XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkSWRzLmZpbHRlcigoZWxlOmFueSk9PiBlbGUgIT09IHBheWxvYWQ/Ll9pZClcclxuICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2F2ZUxpc3QoKXtcclxuICBpZih0aGlzLmluaXRpYWxTZWxlY3RlZD8uc29ydCgpPy50b1N0cmluZygpICE9PSB0aGlzLnNlbGVjdGVkSWRzLnNvcnQoKT8udG9TdHJpbmcoKSl7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSB0cnVlO1xyXG4gIH1lbHNle1xyXG4gICAgdGhpcy5zYXZlLmVtaXQodGhpcy5zZWxlY3RlZFJvbGVzKTtcclxuICB9XHJcbiAgfVxyXG4gIGNvbmZpcm1BY3Rpb24oZXZ0OidZRVMnfCdOTycpe1xyXG4gICAgaWYoZXZ0ID09PSAnWUVTJyl7XHJcbiAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuc2VsZWN0ZWRSb2xlcyk7XHJcbiAgICB9ZWxzZSBpZihldnQgPT09ICdOTycpe1xyXG4gICAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VMaXN0KCl7XHJcbiAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAgICogQHBhcmFtIGFycmF5XHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgdW5pcXVlQnlQcm9wKGFycmF5OmFueSxrZXk6c3RyaW5nKXtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICBhcnJheVxyXG4gICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjOmFueSwgaXRlbTphbnkpID0+IChcclxuICAgICAgICAgICAgaXRlbSAmJiBpdGVtW2tleV0gJiYgYWNjLnNldChpdGVtW2tleV0sIGl0ZW0pLFxyXG4gICAgICAgICAgICBhY2NcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBuZXcgTWFwKClcclxuICAgICAgICApXHJcbiAgICAgICAgLnZhbHVlcygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvcm9sZS1saXN0L3JvbGUtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxNQUFNLE9BQU8saUJBQWlCO0lBTTVCO1FBTFUsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQVdqQixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLHVCQUF1QjtRQUN2QixtQkFBYyxHQUFTLEVBQUUsQ0FBQztRQUMxQix3QkFBd0I7UUFDeEIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsbUNBQW1DO1FBQ25DLGtCQUFhLEdBQVMsRUFBRSxDQUFDO1FBQ3pCLHdDQUF3QztRQUN4QyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixpQ0FBaUM7UUFDakMsY0FBUyxHQUFPLEVBQUUsQ0FBQztRQUVuQixvQkFBZSxHQUFPLElBQUksQ0FBQztRQUMzQixxQkFBZ0IsR0FBSSxLQUFLLENBQUM7UUFDM0IsbUNBQW1DO1FBQ2xDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDbEIsWUFBWTtRQUNYLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVVosWUFBTyxHQUFJLEtBQUssQ0FBQztJQXBDUixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNB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Qy9CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixLQUFLO2FBQ0YsTUFBTSxDQUNMLENBQUMsR0FBTyxFQUFFLElBQVEsRUFBRSxFQUFFLENBQUMsQ0FDckIsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUM7WUFDN0MsR0FBRyxDQUNKLEVBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FDVjthQUNBLE1BQU0sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDOzs7WUFoTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixtL1BBQXlDOzthQUUxQzs7OzttQkFFRSxNQUFNO3FCQUNOLE1BQU07c0JBK0JOLEtBQUssU0FBQyxNQUFNO3NCQVNkLEtBQUs7K0JBQ0wsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZlN0bXQgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JvbGUtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcm9sZS1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJvbGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgc2VhcmNoS2V5IDphbnkgPSAnJztcclxuICAvL1VzZWQgdG8gZGlzYWJsZSBpdGVtc1xyXG4gIHN5c3RlbVJvbGVzSWRzIDogYW55ID0gW107XHJcbiAgLy91c2VkIHRvIGNoZWNrIGNoZWNrYm94XHJcbiAgc2VsZWN0ZWRJZHMgOmFueSA9IFtdO1xyXG4gIC8vY29tcGxldGUgb2JqZWN0IG9mIHNlbGVjdGVkIGl0ZW1zXHJcbiAgc2VsZWN0ZWRSb2xlcyA6YW55ID0gIFtdO1xyXG4gIC8vY29udGFpbnMgaWQncyBvZiBhbGwgdGhlIGV4cGFuZGVkIHJvd3NcclxuICBleHBhbmRlZFJvd3MgOmFueSA9IFtdO1xyXG5cclxuICAvL2xpc3Qgb2YgYWxsIHRoZSBhdmFpbGFibGUgcm9sZXNcclxuICByb2xlc0xpc3Q6YW55ID0gW107XHJcblxyXG4gIGluaXRpYWxTZWxlY3RlZCA6YW55PSBudWxsO1xyXG4gIHNob3dDb25maXJtYXRpb24gID0gZmFsc2U7XHJcbiAvLyBvbmx5IHVzZWQgaW4gc2VsZWN0IGFsbCBmdW5jdGlvblxyXG4gIGFsbExpc3RJZHMgPSBbXTtcclxuLy9pc0FsbEl0ZW1zXHJcbiBhbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnbGlzdCcpIHNldCBzZXRMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLnJvbGVzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuc2V0U3lzdGVtUm9sZSh0aGlzLnJvbGVzTGlzdCk7XHJcbiAgICAgIHRoaXMuYWxsTGlzdElkcyA9IHRoaXMucm9sZXNMaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICB9XHJcblxyXG59XHJcbkBJbnB1dCgpIGxvYWRpbmcgID0gZmFsc2U7XHJcbkBJbnB1dCgnc2VsZWN0ZWQnKSBzZXQgc2VsZWN0ZWRSb2xlc1ZhbCh2YWx1ZTphbnkpe1xyXG5cclxuICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFJvbGVzLC4uLnZhbHVlXSwnX2lkJyk7XHJcbiAgdGhpcy5zZWxlY3RlZElkcyA9ICB0aGlzLnNlbGVjdGVkUm9sZXMubWFwKChlbGU6YW55KSA9PiBlbGU/Ll9pZCk7XHJcbiAgaWYoIXRoaXMuaW5pdGlhbFNlbGVjdGVkIHx8ICF0aGlzLmluaXRpYWxTZWxlY3RlZD8ubGVuZ3RoKXtcclxuICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZElkcztcclxuICB9XHJcbiAgdGhpcy5zZXRBbGxTZWxlY3RlZFN0YXR1cygpO1xyXG59XHJcblxyXG4vKipcclxuICogIyMjIyBEZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBFeHBhbmRzIG9yIGNvbGxhcHNlIHRoZSByb3dcclxuICogQHBhcmFtIHR5cGVcclxuICogQHBhcmFtIFtpZF1cclxuICovXHJcbmV4cGFuZE9yQ29sbGFwc2UodHlwZTonRVhQQU5EJyB8ICdDT0xMQVBTRSd8J0NPTExBUFNFX0FMTCcsaWQ/OmFueSl7XHJcbiAgc3dpdGNoKHR5cGUpe1xyXG4gICAgIGNhc2UgJ0NPTExBUFNFJzp7IHRoaXMuZXhwYW5kZWRSb3dzID0gIHRoaXMuZXhwYW5kZWRSb3dzLmZpbHRlcigoZWxlOmFueSkgPT4gZWxlICE9PSBpZCk7IGJyZWFrfVxyXG4gICAgIGNhc2UgJ0VYUEFORCc6e3RoaXMuZXhwYW5kZWRSb3dzID0gIEFycmF5LmZyb20obmV3IFNldDxhbnlbXT4oWy4uLnRoaXMuZXhwYW5kZWRSb3dzLC4uLltpZF1dKSk7ICBicmVha31cclxuICAgICBjYXNlICdDT0xMQVBTRV9BTEwnIDp7dGhpcy5leHBhbmRlZFJvd3MgPSBbXTsgYnJlYWt9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuc2VsZWN0QWxsKGV2dDphbnkpe1xyXG4gIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlcyA9IHRoaXMucm9sZXNMaXN0O1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9ICB0aGlzLnJvbGVzTGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZT8uX2lkKTtcclxuXHJcbiAgfWVsc2Uge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICB0aGlzLnNldFN5c3RlbVJvbGUodGhpcy5yb2xlc0xpc3QpO1xyXG4gIH1cclxuICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbn1cclxuXHJcbnNldEFsbFNlbGVjdGVkU3RhdHVzKCl7XHJcbiAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMuYWxsTGlzdElkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5zZWxlY3RlZElkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbn1cclxuLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogU2V0cyBzeXN0ZW0gcm9sZSBmb3IgYWRtaW5zIGFuZCBrZXkgYWRtaW5zXHJcbiAqIEBwYXJhbSByb2xlc1xyXG4gKi9cclxuc2V0U3lzdGVtUm9sZShyb2xlczphbnkpe1xyXG4gICAgY29uc3Qgc3lzdGVtUm9sZXMgPSByb2xlcy5maWx0ZXIoKGVsZTphbnkpID0+ICAoZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2tleSBhZG1pbicgfHwgZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2FkbWluJykpO1xyXG4gICAgdGhpcy5zeXN0ZW1Sb2xlc0lkcyAgPSBBcnJheS5mcm9tKG5ldyBTZXQ8YW55W10+KFsuLi50aGlzLnN5c3RlbVJvbGVzSWRzICwuLi5zeXN0ZW1Sb2xlcy5tYXAoKGVsZTphbnkpID0+IGVsZT8uX2lkKV0pKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSAgQXJyYXkuZnJvbShuZXcgU2V0PGFueVtdPihbLi4udGhpcy5zZWxlY3RlZElkcyAsLi4udGhpcy5zeXN0ZW1Sb2xlc0lkc10pKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlcyAgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc3lzdGVtUm9sZXMsLi4udGhpcy5zZWxlY3RlZFJvbGVzXSwnX2lkJylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiBTZWxlY3RzIGl0ZW0gb3IgZGVzZWxlY3QgYSBpdG1lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkXHJcbiAgICovXHJcbiAgc2VsZWN0SXRlbShldnQ6YW55LHBheWxvYWQ6YW55KXtcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRJdGVtcygnQUREJyxwYXlsb2FkKSA6IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkSXRlbXMoJ0RFTEVURScscGF5bG9hZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZEl0ZW1zKGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDphbnkpe1xyXG4gICAgICBpZihhY3Rpb24gPT09ICdBREQnKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFJvbGVzICwuLi5bcGF5bG9hZF1dLCdfaWQnKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZFJvbGVzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgICB9ZWxzZSBpZihhY3Rpb24gPT09ICdERUxFVEUnKXtcclxuICAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRSb2xlcy5maW5kSW5kZXgoKGVsZSA6YW55KSA9PiBlbGU/Ll9pZCA9PT0gcGF5bG9hZD8uX2lkKTtcclxuICAgICAgIGlmKGluZGV4ID4gLTEpe1xyXG4gICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSB0aGlzLnNlbGVjdGVkUm9sZXMuZmlsdGVyKChlbGUgOmFueSkgPT4gZWxlPy5faWQgIT09IHBheWxvYWQ/Ll9pZCk7XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkSWRzLmZpbHRlcigoZWxlOmFueSk9PiBlbGUgIT09IHBheWxvYWQ/Ll9pZClcclxuICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEFsbFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2F2ZUxpc3QoKXtcclxuICBpZih0aGlzLmluaXRpYWxTZWxlY3RlZD8uc29ydCgpPy50b1N0cmluZygpICE9PSB0aGlzLnNlbGVjdGVkSWRzLnNvcnQoKT8udG9TdHJpbmcoKSl7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSB0cnVlO1xyXG4gIH1lbHNle1xyXG4gICAgdGhpcy5zYXZlLmVtaXQodGhpcy5zZWxlY3RlZFJvbGVzKTtcclxuICB9XHJcbiAgfVxyXG4gIGNvbmZpcm1BY3Rpb24oZXZ0OidZRVMnfCdOTycpe1xyXG4gICAgaWYoZXZ0ID09PSAnWUVTJyl7XHJcbiAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuc2VsZWN0ZWRSb2xlcyk7XHJcbiAgICB9ZWxzZSBpZihldnQgPT09ICdOTycpe1xyXG4gICAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VMaXN0KCl7XHJcbiAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAgICogQHBhcmFtIGFycmF5XHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgdW5pcXVlQnlQcm9wKGFycmF5OmFueSxrZXk6c3RyaW5nKXtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICBhcnJheVxyXG4gICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjOmFueSwgaXRlbTphbnkpID0+IChcclxuICAgICAgICAgICAgaXRlbSAmJiBpdGVtW2tleV0gJiYgYWNjLnNldChpdGVtW2tleV0sIGl0ZW0pLFxyXG4gICAgICAgICAgICBhY2NcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBuZXcgTWFwKClcclxuICAgICAgICApXHJcbiAgICAgICAgLnZhbHVlcygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js
CHANGED
|
@@ -24,6 +24,10 @@ export class UserGroupListComponent {
|
|
|
24
24
|
this.allGroupSelectedDisabled = false;
|
|
25
25
|
this.userCurrentPage = 1;
|
|
26
26
|
this.groupCurrentPage = 1;
|
|
27
|
+
this.defaultSelectedUsers = [];
|
|
28
|
+
this.defaultSelectedUserIds = [];
|
|
29
|
+
this.userType = 'assignees';
|
|
30
|
+
this.showConfirmation = false;
|
|
27
31
|
this.animation = true;
|
|
28
32
|
this.currentTab = 'USER';
|
|
29
33
|
}
|
|
@@ -41,6 +45,10 @@ export class UserGroupListComponent {
|
|
|
41
45
|
this.allUserSelectedStatus();
|
|
42
46
|
this.setUserListInit();
|
|
43
47
|
}
|
|
48
|
+
set setDefaultSelectedUsers(value) {
|
|
49
|
+
this.defaultSelectedUsers = this.uniqueByProp([...this.defaultSelectedUsers, ...value], 'member_id');
|
|
50
|
+
this.defaultSelectedUserIds = this.defaultSelectedUsers.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
|
|
51
|
+
}
|
|
44
52
|
setUserListInit() {
|
|
45
53
|
if (this.userCurrentPage === 1) {
|
|
46
54
|
const selected = this.selectedUsers;
|
|
@@ -191,7 +199,28 @@ export class UserGroupListComponent {
|
|
|
191
199
|
this.searchKey = '';
|
|
192
200
|
}
|
|
193
201
|
saveList() {
|
|
194
|
-
|
|
202
|
+
var _a, _b, _c;
|
|
203
|
+
if (this.defaultSelectedUserIds && ((_a = this.defaultSelectedUserIds) === null || _a === void 0 ? void 0 : _a.length) && this.selectedUserIds && ((_b = this.selectedUserIds) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
204
|
+
(_c = this.defaultSelectedUserIds) === null || _c === void 0 ? void 0 : _c.forEach((id) => {
|
|
205
|
+
var _a;
|
|
206
|
+
if (!((_a = this.selectedUserIds) === null || _a === void 0 ? void 0 : _a.includes(id))) {
|
|
207
|
+
this.showConfirmation = true;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
this.showConfirmation = false;
|
|
213
|
+
}
|
|
214
|
+
if (!this.showConfirmation)
|
|
215
|
+
this.save.emit({ users: this.selectedUsers, groups: this.selectedGroups });
|
|
216
|
+
}
|
|
217
|
+
confirmAction(evt) {
|
|
218
|
+
if (evt === 'YES') {
|
|
219
|
+
this.save.emit({ users: this.selectedUsers, groups: this.selectedGroups });
|
|
220
|
+
}
|
|
221
|
+
else if (evt === 'NO') {
|
|
222
|
+
this.showConfirmation = false;
|
|
223
|
+
}
|
|
195
224
|
}
|
|
196
225
|
closeList() {
|
|
197
226
|
this.cancel.emit();
|
|
@@ -224,8 +253,8 @@ export class UserGroupListComponent {
|
|
|
224
253
|
UserGroupListComponent.decorators = [
|
|
225
254
|
{ type: Component, args: [{
|
|
226
255
|
selector: 'user-group-list',
|
|
227
|
-
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n </div>\r\n\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{userListInfo?.total_items || usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{groupListInfo?.total_items || groupsList?.length}}</span></button>\r\n </div>\r\n\r\n\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <ng-container *ngIf=\"(usersList|search:searchKey:'member_name') as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let user of users \">\r\n <vui-checkbox *ngIf=\"!singleSelect\" (change)=\"selectItem($event,user)\" [disabled]=\"nonRemovableUserIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds.includes(user?.member_id)\"><div class=\"user-name\" [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{user?.member_name}}</div></vui-checkbox>\r\n <app-cs-radio *ngIf=\"singleSelect\" [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let group of groupsList\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\">\r\n <div class=\"user-name\">{{group?.group_name}}\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"!singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <ng-container *ngIf=\"!groupEnabled\">\r\n <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1).length}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">{{selectedUsers?.length}}</div>\r\n </ng-container>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">{{selectedGroups?.length}}</div>\r\n <div class=\"name\" >\r\n <span *ngIf=\"selectedGroups?.length === 1\">Group selected</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n\r\n</div>\r\n",
|
|
228
|
-
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");::ng-deep .user-group-list{background:#fff;position:fixed;top:0;right:500px;bottom:0;left:0;border-top:3px solid #1e5dd3}::ng-deep .user-group-list.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .user-group-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .user-group-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .user-group-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 124px)}::ng-deep .user-group-list-body .search-block{position:relative}::ng-deep .user-group-list-body .search-block input{height:44px;line-height:24px;padding:10px 16px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .user-group-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .user-group-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .user-group-list-mid{width:calc(100% + .75rem);height:calc(100vh - 13.5rem);overflow:auto;padding-right:.75rem}::ng-deep .user-group-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-group-list-mid.with-pagination{height:calc(100vh - 17.5rem)}::ng-deep .user-group-list-mid .selected-owners{border-bottom:1px solid #dbdbdb}::ng-deep .user-group-list-mid .user-list-select{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value .user-name,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul{list-style-type:none;align-items:flex-start;flex-wrap:wrap}::ng-deep .user-group-list-mid .user-list-item ul li{width:50%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox{width:calc(100% - 4.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:12px!important;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .user-group-list-tab{border-bottom:1px solid #f1f1f1}::ng-deep .user-group-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:2.5rem!important}::ng-deep .user-group-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .user-group-list-tab button.active{pointer-events:none}::ng-deep .user-group-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .user-group-list-tab button.active.tab-btn span{background:#1e5dd3;color:#fff;font-weight:500}.group{background:#1e5dd3!important;border-color:#1e5dd3!important}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
|
|
256
|
+
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n </div>\r\n\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{userListInfo?.total_items || usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{groupListInfo?.total_items || groupsList?.length}}</span></button>\r\n </div>\r\n\r\n\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <ng-container *ngIf=\"(usersList|search:searchKey:'member_name') as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let user of users \">\r\n <vui-checkbox *ngIf=\"!singleSelect\" (change)=\"selectItem($event,user)\" [disabled]=\"nonRemovableUserIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds.includes(user?.member_id)\"><div class=\"user-name\" [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{user?.member_name}}</div></vui-checkbox>\r\n <app-cs-radio *ngIf=\"singleSelect\" [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let group of groupsList\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\">\r\n <div class=\"user-name\">{{group?.group_name}}\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"!singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <ng-container *ngIf=\"!groupEnabled\">\r\n <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1).length}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">{{selectedUsers?.length}}</div>\r\n </ng-container>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'are selected'}}</span>\r\n </div>\r\n\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">{{selectedGroups?.length}}</div>\r\n <div class=\"name\" >\r\n <span *ngIf=\"selectedGroups?.length === 1\">Group selected</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">Groups selected</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n\r\n <div class=\"user-group-list-confirmation\" *ngIf=\"showConfirmation\">\r\n <div class=\"confirmation-top\">\r\n <div class=\"icon-block\"><i class=\"icons\"></i></div>\r\n <div class=\"text\">This action will reset the default {{userType}} selected for the Program.</div>\r\n </div>\r\n <div class=\"confirmation-bottom\">\r\n <div class=\"message\">Are you sure you would like to proceed?</div>\r\n <div class=\"button-group\">\r\n <button class=\"no-btn\" (click)=\"confirmAction('NO')\">NO</button>\r\n <button class=\"yes-btn\" (click)=\"confirmAction('YES')\">YES</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n",
|
|
257
|
+
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");::ng-deep .user-group-list{background:#fff;position:fixed;top:0;right:500px;bottom:0;left:0;border-top:3px solid #1e5dd3}::ng-deep .user-group-list.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .user-group-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .user-group-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .user-group-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 124px)}::ng-deep .user-group-list-body .search-block{position:relative}::ng-deep .user-group-list-body .search-block input{height:44px;line-height:24px;padding:10px 16px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .user-group-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .user-group-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .user-group-list-mid{width:calc(100% + .75rem);height:calc(100vh - 13.5rem);overflow:auto;padding-right:.75rem}::ng-deep .user-group-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-group-list-mid.with-pagination{height:calc(100vh - 17.5rem)}::ng-deep .user-group-list-mid .selected-owners{border-bottom:1px solid #dbdbdb}::ng-deep .user-group-list-mid .user-list-select{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value .user-name,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul{list-style-type:none;align-items:flex-start;flex-wrap:wrap}::ng-deep .user-group-list-mid .user-list-item ul li{width:50%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox{width:calc(100% - 4.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:12px!important;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .user-group-list-tab{border-bottom:1px solid #f1f1f1}::ng-deep .user-group-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:2.5rem!important}::ng-deep .user-group-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .user-group-list-tab button.active{pointer-events:none}::ng-deep .user-group-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .user-group-list-tab button.active.tab-btn span{background:#1e5dd3;color:#fff;font-weight:500}::ng-deep .user-group-list-confirmation{background:#161b2f;border-radius:.25rem;position:absolute;left:1rem;right:1rem;bottom:1.75rem;z-index:1}::ng-deep .user-group-list-confirmation .confirmation-top{display:flex;align-items:center;justify-content:flex-start;padding:1.25rem}::ng-deep .user-group-list-confirmation .confirmation-top .icon-block{height:2.25rem;width:2.25rem;border-radius:50%;background:#fff;border:1px solid #dbdbdb;display:flex;justify-content:center;align-items:center;margin-right:1rem}::ng-deep .user-group-list-confirmation .confirmation-top .icon-block i{color:#eb2424;font-size:12px}::ng-deep .user-group-list-confirmation .confirmation-top .text{color:#fff;font-size:14px;font-weight:300}::ng-deep .user-group-list-confirmation .confirmation-bottom{background:#282e48;border-radius:0 0 .25rem .25rem;padding:.75rem .75rem .75rem 1.25rem;display:flex;align-items:center;justify-content:space-between}::ng-deep .user-group-list-confirmation .confirmation-bottom .message{font-size:14px;font-weight:500;line-height:20px;color:#fff}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group{display:flex}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button{height:1.5rem;width:4rem;border:1px solid #fff;border-radius:.125rem;display:flex;align-items:center;justify-content:center;line-height:22px;cursor:pointer;font-size:11px;text-transform:uppercase;font-weight:500;padding:0}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button.no-btn{background:transparent;color:#fff}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button.yes-btn{background:#fff;color:#1e5dd3;margin-left:.25rem}.group{background:#1e5dd3!important;border-color:#1e5dd3!important}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
|
|
229
258
|
},] }
|
|
230
259
|
];
|
|
231
260
|
UserGroupListComponent.ctorParameters = () => [];
|
|
@@ -244,7 +273,9 @@ UserGroupListComponent.propDecorators = {
|
|
|
244
273
|
loading: [{ type: Input }],
|
|
245
274
|
setUserList: [{ type: Input, args: ['userlist',] }],
|
|
246
275
|
setSelectedUser: [{ type: Input, args: ['selectedUsers',] }],
|
|
276
|
+
setDefaultSelectedUsers: [{ type: Input, args: ['defaultSelectedUsers',] }],
|
|
277
|
+
userType: [{ type: Input }],
|
|
247
278
|
setGroupList: [{ type: Input, args: ['groupList',] }],
|
|
248
279
|
setSelectedGroup: [{ type: Input, args: ['selectedGroups',] }]
|
|
249
280
|
};
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxNQUFNLE9BQU8sc0JBQXNCO0lBd01qQztRQXRNVSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQUUsZ0JBQWdCLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFFLEVBQUUsQ0FBQTtRQUN0QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBR2YsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBS1gsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUN2QyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFHdkIseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQ3hDLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxL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QUFFLEVBQUUsQ0FBQyxDQUN2QixJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQztZQUM3QyxHQUFHLENBQ0osRUFDRCxJQUFJLEdBQUcsRUFBRSxDQUNWO2FBQ0EsTUFBTSxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUI7O1FBQ2YsSUFBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsV0FBVyxJQUFJLENBQUMsRUFBQztZQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjthQUFJO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7WUFqUUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGlnVkFBK0M7O2FBRWhEOzs7O21CQUdFLE1BQU07cUJBQ04sTUFBTTsyQkFDTixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzt3QkFDTCxLQUFLOzJCQU9MLEtBQUs7NEJBQ0wsS0FBSzs0QkFFTCxNQUFNO2tDQUVOLEtBQUs7bUNBUUwsS0FBSztzQkFTUCxLQUFLOzBCQUNILEtBQUssU0FBQyxVQUFVOzhCQVVoQixLQUFLLFNBQUMsZUFBZTsyQkFzQnJCLEtBQUssU0FBQyxXQUFXOytCQVVqQixLQUFLLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1c2VyLWdyb3VwLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyR3JvdXBMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBncm91cEVuYWJsZWQgITogZmFsc2U7XHJcbiAgQElucHV0KCkgcGFuZWxUaXRsZSA9J1NlbGVjdCBVc2VyKHMpJztcclxuICBASW5wdXQoKSBzaW5nbGVTZWxlY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWVsZFR5cGUgPScnXHJcbiAgc2VhcmNoS2V5ID0gJyc7XHJcbiAgaXNQYWdpbmF0aW9uOiBhbnk7XHJcblxyXG4gIHVzZXJzTGlzdDogYW55ID0gW107XHJcbiAgZ3JvdXBzTGlzdDogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHVzZXJMaXN0SW5mbyAhOiBhbnk7XHJcbiAgQElucHV0KCkgZ3JvdXBMaXN0SW5mbyAhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmZXRjaFVzZXJEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBub25SZW1vdmFibGVVc2VySWRzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFVzZXJzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFVzZXJJZHM6IGFueSA9IFtdO1xyXG4gIGFsbFVzZXJzSWRzOiBhbnkgPSBbXTtcclxuICBhbGxVc2VyU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBhbGxVc2VyU2VsZWN0ZWREaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlR3JvdXBJZHM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkR3JvdXBzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwSWRzOiBhbnkgPSBbXTtcclxuICBhbGxHcm91cHNJZHM6IGFueSA9IFtdO1xyXG4gIGFsbEdyb3VwU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBhbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgdXNlckN1cnJlbnRQYWdlID0gMTtcclxuICBncm91cEN1cnJlbnRQYWdlID0gMTtcclxuQElucHV0KCkgbG9hZGluZyAhOmJvb2xlYW47XHJcbiAgQElucHV0KCd1c2VybGlzdCcpIHNldCBzZXRVc2VyTGlzdCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnVzZXJzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuYWxsVXNlcnNJZHMgPSB0aGlzLnVzZXJzTGlzdC5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICAgIHRoaXMuc2V0VXNlckxpc3RJbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZFVzZXJzJykgc2V0IHNldFNlbGVjdGVkVXNlcih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFVzZXJzLCAuLi52YWx1ZV0sICdtZW1iZXJfaWQnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNldFVzZXJMaXN0SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJDdXJyZW50UGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRVc2VycztcclxuICAgICAgY29uc3Qgb3RoZXJVc2VyID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWRVc2VySWRzLmluY2x1ZGVzKGVsZT8ubWVtYmVyX2lkKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnNmc2ZzZlwiLCBzZWxlY3RlZCwgb3RoZXJVc2VyKVxyXG4gICAgICB0aGlzLnVzZXJzTGlzdCA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi5zZWxlY3RlZD8uc29ydCgpLCAuLi5vdGhlclVzZXI/LnNvcnQoKV0sICdtZW1iZXJfaWQnKVxyXG4gICAgfVxyXG4gIH1cclxuICBhbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZCA9IHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSAodGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5zZWxlY3RlZFVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpICkgJiYgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5ub25SZW1vdmFibGVVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoJ2dyb3VwTGlzdCcpIHNldCBzZXRHcm91cExpc3QodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gWy4uLnZhbHVlXTtcclxuICAgICAgdGhpcy5hbGxHcm91cHNJZHMgPSB0aGlzLmdyb3Vwc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgICB0aGlzLnNldEdyb3VwTGlzdEluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2V0IHNldFNlbGVjdGVkR3JvdXAodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkR3JvdXBzLCAuLi52YWx1ZV0sICdncm91cF9pZCcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkKTtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgdGhpcy5zZXRHcm91cExpc3RJbml0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRHcm91cExpc3RJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEdyb3VwcztcclxuICAgICAgY29uc3Qgb3RoZXJHcm91cCA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmc2ZzZnNmXCIsIHNlbGVjdGVkLCBvdGhlckdyb3VwKVxyXG4gICAgICB0aGlzLmdyb3Vwc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc2VsZWN0ZWQ/LnNvcnQoKSwgLi4ub3RoZXJHcm91cD8uc29ydCgpXSwgJ2dyb3VwX2lkJylcclxuICAgIH1cclxuICB9XHJcbiAgYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpIHtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZCA9IHRoaXMuYWxsR3JvdXBzSWRzPy5zb3J0KCk/LnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRHcm91cElkcz8uc29ydCgpPy50b1N0cmluZygpO1xyXG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPSAodGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5zb3J0KCk/LnRvU3RyaW5nKCkgKSAmJiB0aGlzLmFsbEdyb3Vwc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5ub25SZW1vdmFibGVHcm91cElkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdXNlclBhZ2VDaGFuZ2UocGFnZTogYW55KSB7XHJcbiAgICB0aGlzLnVzZXJDdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICB0aGlzLmZldGNoVXNlckRhdGEuZW1pdCh7IHBhZ2UsIHNlYXJjaEtleTogdGhpcy5zZWFyY2hLZXkgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEl0ZW0oZXZ0OiBhbnksIHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJmcm9tIHNlbFwiLGV2dClcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKSA6IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW1SYWRpbyhldnQ6YW55LHBheWxvYWQ6YW55KXtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICAgIHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignQUREJywgcGF5bG9hZClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkVXNlcnMsIC4uLltwYXlsb2FkXV0sICdtZW1iZXJfaWQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpXHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFVzZXJzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkID09PSBwYXlsb2FkPy5tZW1iZXJfaWQpO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2VySWRzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxVc2VyKGV2dDphbnkpe1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSAgdGhpcy51c2Vyc0xpc3QubWFwKChlbGU6YW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcblxyXG4gICAgfWVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTphbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEdyb3VwKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKCdERUxFVEUnLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogTWFuaXB1bGF0ZXMgc2VsZWN0ZWQgaXRlbXMgaW4gcm9sZSBsaXN0XHJcbiAgICogQHBhcmFtIGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJ1xyXG4gICAqIEBwYXJhbSBwYXlsb2FkXHJcbiAgICovXHJcbiAgbWFuaXB1bGF0ZVNlbGVjdGVkR3JvdXAoYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4uW3BheWxvYWRdXSwgJ2dyb3VwX2lkJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZClcclxuICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSAnREVMRVRFJykge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkR3JvdXBzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgPT09IHBheWxvYWQ/Lmdyb3VwX2lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBwYXlsb2FkPy5ncm91cF9pZCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8uZ3JvdXBfaWQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxHcm91cChldnQ6YW55KXtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gIHRoaXMuZ3JvdXBzTGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuaW5jbHVkZXMoZWxlPy5ncm91cF9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnaW5hdGlvblZpc2libGUoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgY3VycmVudFRhYiA9ICdVU0VSJ1xyXG4gIHN3aXRjaFRhYih0YWI6c3RyaW5nKXtcclxuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcclxuICAgIHRoaXMuc2VhcmNoS2V5ID0gJydcclxuICB9XHJcblxyXG4gIHNhdmVMaXN0KCkge1xyXG4gICAgdGhpcy5zYXZlLmVtaXQoeyB1c2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfSk7XHJcbiAgfVxyXG4gIGNsb3NlTGlzdCgpIHtcclxuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vXHJcblxyXG4gIC8qKlxyXG4gKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIFJldHVybnMgdGhlIHVuaXF1ZSBhcnJheSBvZiBvYmplY3QgYmFzZWQgb24gdW5pcXVlIGtleVxyXG4gKiBAcGFyYW0gYXJyYXlcclxuICogQHBhcmFtIGtleVxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuICB1bmlxdWVCeVByb3AoYXJyYXk6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICBhcnJheVxyXG4gICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksXHJcbiAgICAgICAgICAgIGFjY1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIG5ldyBNYXAoKVxyXG4gICAgICAgIClcclxuICAgICAgICAudmFsdWVzKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uVmlzaWJsZSgpe1xyXG4gICAgaWYodGhpcy51c2VyTGlzdEluZm8/LnRvdGFsX3BhZ2VzICA+IDEpe1xyXG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pc1BhZ2luYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxNQUFNLE9BQU8sc0JBQXNCO0lBaU5qQztRQS9NVSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQUUsZ0JBQWdCLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFFLEVBQUUsQ0FBQTtRQUN0QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBR2YsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBS1gsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUN2QyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFHdkIseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQ3hDLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxL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dmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1c2VyLWdyb3VwLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyR3JvdXBMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBncm91cEVuYWJsZWQgITogZmFsc2U7XHJcbiAgQElucHV0KCkgcGFuZWxUaXRsZSA9J1NlbGVjdCBVc2VyKHMpJztcclxuICBASW5wdXQoKSBzaW5nbGVTZWxlY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWVsZFR5cGUgPScnXHJcbiAgc2VhcmNoS2V5ID0gJyc7XHJcbiAgaXNQYWdpbmF0aW9uOiBhbnk7XHJcblxyXG4gIHVzZXJzTGlzdDogYW55ID0gW107XHJcbiAgZ3JvdXBzTGlzdDogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHVzZXJMaXN0SW5mbyAhOiBhbnk7XHJcbiAgQElucHV0KCkgZ3JvdXBMaXN0SW5mbyAhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmZXRjaFVzZXJEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBub25SZW1vdmFibGVVc2VySWRzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFVzZXJzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFVzZXJJZHM6IGFueSA9IFtdO1xyXG4gIGFsbFVzZXJzSWRzOiBhbnkgPSBbXTtcclxuICBhbGxVc2VyU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBhbGxVc2VyU2VsZWN0ZWREaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlR3JvdXBJZHM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkR3JvdXBzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwSWRzOiBhbnkgPSBbXTtcclxuICBhbGxHcm91cHNJZHM6IGFueSA9IFtdO1xyXG4gIGFsbEdyb3VwU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBhbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgdXNlckN1cnJlbnRQYWdlID0gMTtcclxuICBncm91cEN1cnJlbnRQYWdlID0gMTtcclxuQElucHV0KCkgbG9hZGluZyAhOmJvb2xlYW47XHJcbiAgQElucHV0KCd1c2VybGlzdCcpIHNldCBzZXRVc2VyTGlzdCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnVzZXJzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuYWxsVXNlcnNJZHMgPSB0aGlzLnVzZXJzTGlzdC5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICAgIHRoaXMuc2V0VXNlckxpc3RJbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZFVzZXJzJykgc2V0IHNldFNlbGVjdGVkVXNlcih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFVzZXJzLCAuLi52YWx1ZV0sICdtZW1iZXJfaWQnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVmYXVsdFNlbGVjdGVkVXNlcnM6IGFueSAgPSBbXTtcclxuICBkZWZhdWx0U2VsZWN0ZWRVc2VySWRzOiBhbnkgPSBbXTtcclxuICBASW5wdXQoJ2RlZmF1bHRTZWxlY3RlZFVzZXJzJykgc2V0IHNldERlZmF1bHRTZWxlY3RlZFVzZXJzKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VycywgLi4udmFsdWVdLCAnbWVtYmVyX2lkJyk7XHJcbiAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHMgPSB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICB9XHJcbiAgQElucHV0KCkgdXNlclR5cGU6IHN0cmluZyA9ICdhc3NpZ25lZXMnO1xyXG4gIHNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcclxuXHJcblxyXG4gIHNldFVzZXJMaXN0SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJDdXJyZW50UGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRVc2VycztcclxuICAgICAgY29uc3Qgb3RoZXJVc2VyID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWRVc2VySWRzLmluY2x1ZGVzKGVsZT8ubWVtYmVyX2lkKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnNmc2ZzZlwiLCBzZWxlY3RlZCwgb3RoZXJVc2VyKVxyXG4gICAgICB0aGlzLnVzZXJzTGlzdCA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi5zZWxlY3RlZD8uc29ydCgpLCAuLi5vdGhlclVzZXI/LnNvcnQoKV0sICdtZW1iZXJfaWQnKVxyXG4gICAgfVxyXG4gIH1cclxuICBhbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZCA9IHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSAodGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5zZWxlY3RlZFVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpICkgJiYgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5ub25SZW1vdmFibGVVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoJ2dyb3VwTGlzdCcpIHNldCBzZXRHcm91cExpc3QodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gWy4uLnZhbHVlXTtcclxuICAgICAgdGhpcy5hbGxHcm91cHNJZHMgPSB0aGlzLmdyb3Vwc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgICB0aGlzLnNldEdyb3VwTGlzdEluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2V0IHNldFNlbGVjdGVkR3JvdXAodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkR3JvdXBzLCAuLi52YWx1ZV0sICdncm91cF9pZCcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkKTtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgdGhpcy5zZXRHcm91cExpc3RJbml0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRHcm91cExpc3RJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEdyb3VwcztcclxuICAgICAgY29uc3Qgb3RoZXJHcm91cCA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmc2ZzZnNmXCIsIHNlbGVjdGVkLCBvdGhlckdyb3VwKVxyXG4gICAgICB0aGlzLmdyb3Vwc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc2VsZWN0ZWQ/LnNvcnQoKSwgLi4ub3RoZXJHcm91cD8uc29ydCgpXSwgJ2dyb3VwX2lkJylcclxuICAgIH1cclxuICB9XHJcbiAgYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpIHtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZCA9IHRoaXMuYWxsR3JvdXBzSWRzPy5zb3J0KCk/LnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRHcm91cElkcz8uc29ydCgpPy50b1N0cmluZygpO1xyXG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPSAodGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5zb3J0KCk/LnRvU3RyaW5nKCkgKSAmJiB0aGlzLmFsbEdyb3Vwc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5ub25SZW1vdmFibGVHcm91cElkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdXNlclBhZ2VDaGFuZ2UocGFnZTogYW55KSB7XHJcbiAgICB0aGlzLnVzZXJDdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICB0aGlzLmZldGNoVXNlckRhdGEuZW1pdCh7IHBhZ2UsIHNlYXJjaEtleTogdGhpcy5zZWFyY2hLZXkgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEl0ZW0oZXZ0OiBhbnksIHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJmcm9tIHNlbFwiLGV2dClcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKSA6IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW1SYWRpbyhldnQ6YW55LHBheWxvYWQ6YW55KXtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICAgIHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignQUREJywgcGF5bG9hZClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkVXNlcnMsIC4uLltwYXlsb2FkXV0sICdtZW1iZXJfaWQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpXHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFVzZXJzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkID09PSBwYXlsb2FkPy5tZW1iZXJfaWQpO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2VySWRzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxVc2VyKGV2dDphbnkpe1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSAgdGhpcy51c2Vyc0xpc3QubWFwKChlbGU6YW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcblxyXG4gICAgfWVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTphbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEdyb3VwKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKCdERUxFVEUnLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogTWFuaXB1bGF0ZXMgc2VsZWN0ZWQgaXRlbXMgaW4gcm9sZSBsaXN0XHJcbiAgICogQHBhcmFtIGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJ1xyXG4gICAqIEBwYXJhbSBwYXlsb2FkXHJcbiAgICovXHJcbiAgbWFuaXB1bGF0ZVNlbGVjdGVkR3JvdXAoYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4uW3BheWxvYWRdXSwgJ2dyb3VwX2lkJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZClcclxuICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSAnREVMRVRFJykge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkR3JvdXBzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgPT09IHBheWxvYWQ/Lmdyb3VwX2lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBwYXlsb2FkPy5ncm91cF9pZCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8uZ3JvdXBfaWQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxHcm91cChldnQ6YW55KXtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gIHRoaXMuZ3JvdXBzTGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuaW5jbHVkZXMoZWxlPy5ncm91cF9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnaW5hdGlvblZpc2libGUoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgY3VycmVudFRhYiA9ICdVU0VSJ1xyXG4gIHN3aXRjaFRhYih0YWI6c3RyaW5nKXtcclxuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcclxuICAgIHRoaXMuc2VhcmNoS2V5ID0gJydcclxuICB9XHJcblxyXG4gIHNhdmVMaXN0KCkge1xyXG4gICAgaWYodGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcklkcz8ubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHM/LmZvckVhY2goKGlkOiBudW1iZXIpOiBhbnkgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkVXNlcklkcz8uaW5jbHVkZXMoaWQpKXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuc2hvd0NvbmZpcm1hdGlvbikgdGhpcy5zYXZlLmVtaXQoeyB1c2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfSk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtQWN0aW9uKGV2dDonWUVTJ3wnTk8nKXtcclxuICAgIGlmKGV2dCA9PT0gJ1lFUycpe1xyXG4gICAgICB0aGlzLnNhdmUuZW1pdCh7IHVzZXJzOiB0aGlzLnNlbGVjdGVkVXNlcnMsIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyB9KTtcclxuICAgIH1lbHNlIGlmKGV2dCA9PT0gJ05PJyl7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VMaXN0KCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy9cclxuXHJcbiAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gIHVuaXF1ZUJ5UHJvcChhcnJheTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oXHJcbiAgICAgIGFycmF5XHJcbiAgICAgICAgLnJlZHVjZShcclxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXHJcbiAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgYWNjXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC52YWx1ZXMoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25WaXNpYmxlKCl7XHJcbiAgICBpZih0aGlzLnVzZXJMaXN0SW5mbz8udG90YWxfcGFnZXMgID4gMSl7XHJcbiAgICAgIHRoaXMuaXNQYWdpbmF0aW9uID0gdHJ1ZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|