vcomply-workflow-engine 2.4.8 → 2.4.9

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.
Files changed (19) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +62 -7
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/more-option/more-option.component.js +2 -2
  4. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.js +48 -4
  5. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.js +4 -3
  6. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngsummary.json +1 -1
  7. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +2 -2
  8. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +1 -1
  9. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +9 -2
  10. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +2 -2
  11. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +2 -2
  12. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  13. package/esm2015/lib/workflow-program/workflow-program.component.js +2 -2
  14. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +2 -2
  15. package/fesm2015/vcomply-workflow-engine.js +58 -7
  16. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  17. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +3 -0
  18. package/package.json +2 -2
  19. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -34,4 +34,4 @@ import * as i26 from "./components/logic-questions/logic-questions.module";
34
34
  import * as i27 from "../../ui-kit/editor-loader/editor-loader.module";
35
35
  var CreateAssessmentModuleNgFactory = i0.ɵcmf(i1.CreateAssessmentModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.DialogComponentNgFactory, i3.ɵaNgFactory, i4.DatePickerComponentNgFactory, i5.ɵtNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i6.NgLocalization, i6.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i7.PopoverService, i7.PopoverService, []), i0.ɵmpd(4608, i8.DragDrop, i8.DragDrop, [i6.DOCUMENT, i0.NgZone, i9.ViewportRuler, i8.DragDropRegistry]), i0.ɵmpd(4608, i10.DialogRef, i10.DialogRef, []), i0.ɵmpd(1073742336, i6.CommonModule, i6.CommonModule, []), i0.ɵmpd(1073742336, i11.TooltipModule, i11.TooltipModule, []), i0.ɵmpd(1073742336, i12.PopoverModule, i12.PopoverModule, []), i0.ɵmpd(1073742336, i9.CdkScrollableModule, i9.CdkScrollableModule, []), i0.ɵmpd(1073742336, i8.DragDropModule, i8.DragDropModule, []), i0.ɵmpd(1073742336, i13.DialogModule, i13.DialogModule, []), i0.ɵmpd(1073742336, i14.ɵangular_packages_forms_forms_p, i14.ɵangular_packages_forms_forms_p, []), i0.ɵmpd(1073742336, i14.ɵangular_packages_forms_forms_d, i14.ɵangular_packages_forms_forms_d, []), i0.ɵmpd(1073742336, i14.FormsModule, i14.FormsModule, []), i0.ɵmpd(1073742336, i15.ɵg, i15.ɵg, []), i0.ɵmpd(1073742336, i16.MentionModule, i16.MentionModule, []), i0.ɵmpd(1073742336, i15.MarxEditorModule, i15.MarxEditorModule, []), i0.ɵmpd(1073742336, i17.FormgroupModule, i17.FormgroupModule, []), i0.ɵmpd(1073742336, i18.NoDataModule, i18.NoDataModule, []), i0.ɵmpd(1073742336, i19.FormgroupModule, i19.FormgroupModule, []), i0.ɵmpd(1073742336, i20.BuildModule, i20.BuildModule, []), i0.ɵmpd(1073742336, i21.DpDatePickerModule, i21.DpDatePickerModule, []), i0.ɵmpd(1073742336, i22.NgxMaterialTimepickerModule, i22.NgxMaterialTimepickerModule, []), i0.ɵmpd(1073742336, i23.SelectModule, i23.SelectModule, []), i0.ɵmpd(1073742336, i24.PreviewModule, i24.PreviewModule, []), i0.ɵmpd(1073742336, i25.AssessmentPreviewModule, i25.AssessmentPreviewModule, []), i0.ɵmpd(1073742336, i26.LogicQuestionsModule, i26.LogicQuestionsModule, []), i0.ɵmpd(1073742336, i27.EditorLoaderModule, i27.EditorLoaderModule, []), i0.ɵmpd(1073742336, i1.CreateAssessmentModule, i1.CreateAssessmentModule, [])]); });
36
36
  export { CreateAssessmentModuleNgFactory as CreateAssessmentModuleNgFactory };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1hc3Nlc3NtZW50Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAndmNvbXBseS1lZGl0b3InO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1yYWRpby9jcy1yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEzIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXNlbGVjdC9jcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNiBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS9jcy1jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTcgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTggZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL211bHRpcGxlLWNob2ljZS9tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvaW1hZ2UtY2hvaWNlL2ltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tYXRyaXgtZHJvcGRvd24vbWF0cml4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL21hdHJpeC1yYXRpbmctc2NhbGUvbWF0cml4LXJhdGluZy1zY2FsZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI1IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9yYW5raW5nL3JhbmtpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNiBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI3IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tdWx0aXBsZS10ZXh0Ym94L211bHRpcGxlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvdGhhbmsteW91L3RoYW5rLXlvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWlnaHRhZ2Utc2VsZWN0b3Ivd2VpZ2h0YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzIgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy13cmFwcGVyL3ByZXZpZXctd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMzIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlL3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1jaGVja2JveC9wcmV2aWV3LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1pbWFnZS1jaG9pY2UvcHJldmlldy1pbWFnZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXN0YXItcmF0aW5nL3ByZXZpZXctc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXNpbmdsZS10ZXh0Ym94L3ByZXZpZXctc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWNvbW1lbnQtYm94L3ByZXZpZXctY29tbWVudC1ib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOSBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQwIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctZHJvcGRvd24vcHJldmlldy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQxIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbWF0cml4LXJhdGluZy1zY2FsZS9wcmV2aWV3LW1hdHJpeC1yYXRpbmctc2NhbGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXJhbmtpbmcvcHJldmlldy1yYW5raW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDMgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1zbGlkZXIvcHJldmlldy1zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW11bHRpcGxlLXRleHRib3gvcHJldmlldy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1kYXRlLXRpbWUvcHJldmlldy1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWZpbGUtdXBsb2FkL3ByZXZpZXctZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy90aGFuay15b3UvdGhhbmsteW91LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2NoZWNrYm94LXF1ZXN0aW9uL2NoZWNrYm94LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNTAgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvZGV2aWNlL2RldmljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUyIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUzIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NCBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcHJldmlldy1jb250YWluZXIvcHJldmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcXVpY2stc2V0dGluZ3MvcXVpY2stc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NiBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvc2VsZWN0LXF1ZXN0aW9uL3NlbGVjdC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU4IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9zaW5nbGUtdGV4dGJveC9zaW5nbGUtdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBpNjEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1tdWx0aXBsZS1jaG9pY2UvbG9naWMtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjIgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jaGVja2JveC9sb2dpYy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYzIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtaW1hZ2UtY2hvaWNlL2xvZ2ljLWltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc3Rhci1yYXRpbmcvbG9naWMtc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXNpbmdsZS10ZXh0Ym94L2xvZ2ljLXNpbmdsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jb21tZW50LWJveC9sb2dpYy1jb21tZW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY3IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtZHJvcGRvd24vbG9naWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2OCBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXJhbmtpbmcvbG9naWMtcmFua2luZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY5IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc2xpZGVyL2xvZ2ljLXNsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTcwIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtbXVsdGlwbGUtdGV4dGJveC9sb2dpYy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1kYXRlLXRpbWUvbG9naWMtZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzIgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci9lZGl0b3ItbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzMgZnJvbSAnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzQgZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUvcXVlc3Rpb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtcGFnZS1kZXRhaWxzL2FkZC1wYWdlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk3NiBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXNzbWVudC1zZXR0aW5ncy9hc3Nlc3NtZW50LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzcgZnJvbSAnLi9jb21wb25lbnRzL2FkZC1zZWdtZW50LXBvcHVwL2FkZC1zZWdtZW50LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzggZnJvbSAnLi9jb21wb25lbnRzL2FkZC1yZXNwb25zZS1zZXQtcG9wdXAvYWRkLXJlc3BvbnNlLXNldC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc5IGZyb20gJy4vY29tcG9uZW50cy9lZGl0b3Itd3JhcHBlci9lZGl0b3Itd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgwIGZyb20gJy4vY29tcG9uZW50cy9xdWljay1zZXR0aW5ncy9xdWljay1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgxIGZyb20gJy4vY29tcG9uZW50cy9zaW5nbGUtbGluZS1lZGl0b3Ivc2luZ2xlLWxpbmUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODIgZnJvbSAnLi9jb21wb25lbnRzL3Jlc3BvbnNlLXNlbGVjdG9yL3Jlc3BvbnNlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODMgZnJvbSAnLi9jb21wb25lbnRzL21vdmUvbW92ZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy9sb2dpYy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbG9naWMvYWRkLWxvZ2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODYgZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xraXQvdG9vbGtpdC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg3IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWFub255bW91cy9zZXR0aW5nLWFub255bW91cy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg4IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLXJlc3BvbnNlLXNlZ21lbnQvc2V0dGluZy1yZXNwb25zZS1zZWdtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODkgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOTAgZnJvbSAnLi9jb21wb25lbnRzL3dlbGNvbWUtdGhhbmt5b3Uvd2VsY29tZS10aGFua3lvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTkxIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9lcnJvci1tZXNzYWdlLnBpcGUnO1xuaW1wb3J0ICogYXMgaTkyIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9xdWVzdGlvbi1maWx0ZXIucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTMgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhcnNlci5waXBlJztcbmltcG9ydCAqIGFzIGk5NCBmcm9tICcuL2NvbXBvbmVudHMvcGlwZXMvZm9ybWF0dGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk1IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9jdXJyZW50LXBhZ2UtcXVlc3Rpb24ucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTYgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhZ2UtZmlsdGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk3IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy90eXBlLW9mLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk4IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk5OSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAwIGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAxIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDIgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAzIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9idWlsZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTEwNCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTA1IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1xdWVzdGlvbnMubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDcgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2Vzc21lbnRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkNyZWF0ZUFzc2Vzc21lbnRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBvcG92ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckRpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRXZlbnREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuUG9wb3ZlckxvbmdwcmVzc0RpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5DZGtTY3JvbGxhYmxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5LkNka0Ryb3BMaXN0PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTkuQ2RrRHJvcExpc3RHcm91cDxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5Omk5LkNka0RyYWc8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppOS5DZGtEcmFnSGFuZGxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmk5LkNka0RyYWdQcmV2aWV3PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTkuQ2RrRHJhZ1BsYWNlaG9sZGVyPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTEwLsm1YSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMTEuQ3NDaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTIuQ3NSYWRpb0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMTMuQ3NTd2l0Y2hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTE0LkNzUmFkaW9Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMTUuQ3NTZWxlY3RDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTE2LkNzQ2hlY2tib3hJbmRldGVybWluYXRlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkxNy5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTE4Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxOS5DaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMjAuSW1hZ2VDaG9pY2VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTIxLlN0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTIyLk1hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2OmkyMy5Ecm9wZG93bkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppMjQuTWF0cml4UmF0aW5nU2NhbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTI1LlJhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTI2LlNsaWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMjcuTXVsdGlwbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkyOC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMjkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MzppMzAuVGhhbmtZb3VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTMxLldlaWdodGFnZVNlbGVjdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkzMi5QcmV2aWV3V3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMzMuUHJldmlld011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkzNC5QcmV2aWV3Q2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTM1LlByZXZpZXdJbWFnZUNob2ljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OTppMzYuUHJldmlld1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTM3LlByZXZpZXdTaW5nbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkzOC5QcmV2aWV3Q29tbWVudEJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMzkuUHJldmlld01hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmk0MC5QcmV2aWV3RHJvcGRvd25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTQxLlByZXZpZXdNYXRyaXhSYXRpbmdTY2FsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppNDIuUHJldmlld1JhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTQzLlByZXZpZXdTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTQ0LlByZXZpZXdNdWx0aXBsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTQ1LlByZXZpZXdEYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppNDYuUHJldmlld0ZpbGVVcGxvYWRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTQ3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjE6aTQ4LlRoYW5rWW91Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmk0OS5DaGVja2JveFF1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYzOmk1MC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppNTEuRGV2aWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1Omk1Mi5GaWxlVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY2Omk1My5QcmV2aWV3Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3Omk1NC5QcmV2aWV3Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY4Omk1NS5RdWlja1NldHRpbmdzQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY5Omk1Ni5SYWRpb1F1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk1Ny5TZWxlY3RRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MTppNTguU2luZ2xlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MjppNTkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MzppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JiID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk2MC5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NTppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JhID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk2MC5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNjAuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83ODppNjAuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc5Omk2MC5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmk2MC5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MTppNjAuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppNjAuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppNjAuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg0Omk2MC5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NTppNjAuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTYwLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppNjAuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg4Omk2MC5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg5Omk2MC5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkwOmk2MC5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MTppNjAuTWluVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk2MC5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTM6aTYwLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTYwLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NTppNjAuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk2Omk2MS5Mb2dpY011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk3Omk2Mi5Mb2dpY0NoZWNrYm94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk4Omk2My5Mb2dpY0ltYWdlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk5Omk2NC5Mb2dpY1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk2NS5Mb2dpY1NpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAxOmk2Ni5Mb2dpY0NvbW1lbnRCb3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk2Ny5Mb2dpY0Ryb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMzppNjguTG9naWNSYW5raW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwNDppNjkuTG9naWNTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA1Omk3MC5Mb2dpY011bHRpcGxlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTcxLkxvZ2ljRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA3Omk3Mi5FZGl0b3JMb2FkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk3My5DcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOTppNzQuUXVlc3Rpb25UeXBlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNzUuQWRkUGFnZURldGFpbHNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTExOmk3Ni5Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEyOmk3Ny5BZGRTZWdtZW50UG9wdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEzOmk3OC5BZGRSZXNwb25zZVNldFBvcHVwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNDppNzkuRWRpdG9yV3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTU6aTgwLlF1aWNrU2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE2Omk4MS5TaW5nbGVMaW5lRWRpdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNzppODIuUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTgzLk1vdmVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE5Omk4NC5Mb2dpY0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTg1LkFkZExvZ2ljQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyMTppODYuVG9vbGtpdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTg3LlNldHRpbmdBbm9ueW1vdXNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTIzOmk4OC5TZXR0aW5nUmVzcG9uc2VTZWdtZW50Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNDppODkuUGFnZUhlYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjU6aTkwLldlbGNvbWVUaGFua3lvdUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjY6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNzppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyODppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzA6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzMTppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzI6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTMzOmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM0OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzU6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM2OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzNzppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzg6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0MDppOTEuRXJyb3JNZXNzYWdlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDI6aTkyLlF1ZXN0aW9uRmlsdGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDQ6aTkzLlF1ZXN0aW9uUGFyc2VyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDY6aTk0LkZvcm1hdHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ4Omk5NS5DdXJyZW50UGFnZVF1ZXN0aW9uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTA6aTk2LlF1ZXN0aW9uUGFnZUZpbHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTUyOmk5Ny5UeXBlT2ZQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1MzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU0Omk5OC5Ub29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1NTppOTkuUG9wb3Zlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTY6aTkuRHJhZ0Ryb3BNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU3OmkxMDAuRGlhbG9nTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1ODppMTAuTWFyeEVkaXRvck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTk6aTEwMS5Gb3JtZ3JvdXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYwOmkxMDIuTm9EYXRhTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MTppMTAzLkJ1aWxkTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MjppMTA0LlByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYzOmkxMDUuQXNzZXNzbWVudFByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY0Omk2MC5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjU6aTEwNi5Mb2dpY1F1ZXN0aW9uc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjY6aTEwNy5FZGl0b3JMb2FkZXJNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY3OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY4OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTA4LnBhZ2VNb2RlID09PSAnRURJVCcpO1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19RdWVzdGlvblR5cGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1F1ZXN0aW9uVHlwZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTA5LmFkZFF1ZXN0aW9uLmVtaXQoJ211bHRpcGxlLWNob2ljZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdjaGVja2JveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdzaW5nbGUtdGV4dGJveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkcm9wZG93bicpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkYXRlLXRpbWUnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMDkuYWRkUXVlc3Rpb24uZW1pdCgnZmlsZS11cGxvYWQnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFBhZ2VEZXRhaWxzQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRQYWdlRGV0YWlsc0NvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdQYWdlIHRpdGxlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ211bHRpbGluZSc7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VOYW1lO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEwLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMC5jYW5jZWxQYWdlRGV0YWlscygpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlTmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF85OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuY2FuY2VsUGFnZURldGFpbHMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTE6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuc2F2ZVBhZ2VEZXRhaWxzKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTEuc2V0dGluZ3NEYXRhLnBhbmVsVGl0bGUpKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ1tFc2NdIHRvIGNsb3NlJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ2xlZnQnO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnYmxhY2snO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTExLnNldHRpbmdzRGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEuc2V0dGluZ3NFbGVtZW50cyk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMS5jbG9zZVBhbmVsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRTZWdtZW50UG9wdXBDb21wb25lbnRfSG9zdF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFNlZ21lbnRQb3B1cENvbXBvbmVudF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTEyLnNlZ21lbnRFcnJvci5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5jb2xvcjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKDxhbnk+e3N0YW5kYWxvbmU6dHJ1ZX0pO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLmNvbG9yO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEyLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbjtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5mcm9tUmFuZ2U7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xMTIuc2VnbWVudEVycm9yLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzExMi5zZWdtZW50RXJyb3IubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuY29sb3IgPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55PihfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi5mcm9tTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuZnJvbVJhbmdlID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLmZyb21NYW5hZ2VyKCcrJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLnRvTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi50b01hbmFnZXIoJysnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfSG9zdF82XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfNl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIV9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICFfZGVjbDBfMTEzLmhpZGVTcGVjaWZpY0NhdGVnb3J5O1xuICBjdXJyVmFsXzU7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50X0hvc3RfN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExNC5lcnJvclByZXNlbnQ7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnYnVpbGQnKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnbG9naWMnKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKChfZGVjbDBfMTE0LnNlcnZpY2UuZm9ybXNQYWdlID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiAoKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoKSkgPCAyKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xMTQudmlld01vZGUgPT0gJ21vdmUnKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICdidWlsZCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gJ2xvZ2ljJztcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAnbW92ZSc7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2FueS50cmFuc2Zvcm0oKChfZGVjbDBfMTE0LnF1ZXN0aW9uID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMTE0LnF1ZXN0aW9uLmVycm9yQXJyYXkpKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55PihfZGVjbDBfMTE0LnZpZXdNb2RlID0gJ2J1aWxkJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT4oX2RlY2wwXzExNC52aWV3TW9kZSA9ICdsb2dpYycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTQudmlld01vZGUgPSAnbW92ZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5jb3B5UXVlc3Rpb24uZW1pdChfZGVjbDBfMTE0LnF1ZXN0aW9uSW5kZXgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMDphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5kZWxldGVRdWVzdGlvbi5lbWl0KF9kZWNsMF8xMTQucXVlc3Rpb25JbmRleCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTE0Lm9wZW5OZXh0UXVlc3Rpb24oKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTQuY2hlY2tGb3JWYWxpZGF0aW9uU3RhdHVzKCdzYXZlJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50X0hvc3RfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ3F1ZXN0aW9uLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tci0yJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbkNsYXNzO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE1LnNlbGVjdGVkUXVlc3Rpb25EZXRhaWxzLnF1ZXN0aW9uSWNvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbk5hbWU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMTUucXVlc3Rpb25UeXBlRHJvcGRvd247XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMTUucXVpY2tTZXR0aW5nc0xpc3Q7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMTUuZmQuZm9ybXNQYWdlLmVsZW1lbnRzW19kZWNsMF8xMTUucXVlc3Rpb25JbmRleF0uaGFzQ2hhcmFjdGVyTGVuZ3RoO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9hbnkucG9wb3ZlcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF85XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzExNi5lZGl0b3JNb2RlID09ICdtdWx0aWxpbmUnKSAmJiAoX2RlY2wwXzExNi5sYWJlbCA9PSB0cnVlKSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTYucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTE2LmVkaXRvck1vZGUgPT0gJ211bHRpbGluZScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzExNi5pZCwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTYuc2hvd0VkaXRvckNvbnRyb2xzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTE2LnNob3dFZGl0b3JDb250cm9scztcbiAgY3VyclZhbF81O1xuICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uYmx1cigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF83OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uUGFzdGUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTYuc2V0VmFsdWUoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNi5zaG93KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19SZXNwb25zZVNlbGVjdG9yQ29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExNy5yZXNwb25zZURldGFpbHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTcucmVzcG9uc2VEZXRhaWxzO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19Nb3ZlQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTW92ZUNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzExOC5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAncmlnaHQnO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9uO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9ucztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk/ICgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk6ICdTZWxlY3QgcXVlc3Rpb24nKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS50cmFuc2Zvcm0oX2RlY2wwXzExOC5zZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyxfZGVjbDBfMTE4LmN1cnJlbnRQYWdlKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xMTguZW1wdHlQYWdlID09PSB0cnVlKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT5fYW55LnBvcG92ZXIoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTE4Lm1vdmUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0xvZ2ljQ29tcG9uZW50X0hvc3RfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9naWNDb21wb25lbnRfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xMTkucXVlc3Rpb24udmlzaWJpbGl0eUxvZ2ljLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTE5LnF1ZXN0aW9uLnZpc2liaWxpdHlMb2dpYy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQWRkTG9naWNDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRMb2dpY0NvbXBvbmVudF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEyMC5xdWVzdGlvbkluZGV4ICsgMSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbi5pc1JlcXVpcmVkID09PSB0cnVlKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKCgoX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLnRpdGxlKT8gKChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbiA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24udGl0bGUpOiAnUXVlc3Rpb24nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24uaGFzQ29tbWVudHM7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9ICdsZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ1NlbGVjdCBhIHF1ZXN0aW9uJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzEyMC5xdWVzdGlvbnNBcnJheVtfZGVjbDBfMTIwLnNlbGVjdGVkTG9naWNRdWVzdGlvbl0gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAucXVlc3Rpb25zQXJyYXlbX2RlY2wwXzEyMC5zZWxlY3RlZExvZ2ljUXVlc3Rpb25dLnRpdGxlKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfYW55LnRyYW5zZm9ybShfZGVjbDBfMTIwLnF1ZXN0aW9uc0FycmF5LF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLm5hbWUpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8xMjAub3BlcmF0b3JNYXAgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAub3BlcmF0b3JNYXAubGVuZ3RoKSA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzEyMC5sb2dpYy5xdWVzdGlvbk5hbWUgIT0gJycpICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICE9ICdhbnN3ZXJlZCcpKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzEyMC5zaG93RXJyb3IuaXNWaXNpYmxlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMC5jbG9zZVBvcHVwKCdDTE9TRScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTIwLnJlc2V0TG9naWMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjAuYWRkTG9naWMoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1Rvb2xraXRDb21wb25lbnRfSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Ub29sa2l0Q29tcG9uZW50XzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9ICFfZGVjbDBfMTIxLnNob3dDb2xsYXBzZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmNsaWNrQ29sbGFwc2UoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjEuYWRkUXVlc3Rpb24uZW1pdCgnbXVsdGlwbGUtY2hvaWNlJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2NoZWNrYm94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIyOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ3NpbmdsZS10ZXh0Ym94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIzOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2Ryb3Bkb3duJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2RhdGUtdGltZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMS5hZGRRdWVzdGlvbi5lbWl0KCdmaWxlLXVwbG9hZCcpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ0Fub255bW91c0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdBbm9ueW1vdXNDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ1Jlc3BvbnNlU2VnbWVudENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdSZXNwb25zZVNlZ21lbnRDb21wb25lbnRfMTZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfUGFnZUhlYWRlckNvbXBvbmVudF9Ib3N0XzE3XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2VIZWFkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEyNC5wYWdlTmFtZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNC5wYWdlRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNC5lZGl0LmVtaXQoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF9Ib3N0XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF8xOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVJbWFnZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ1dlbGNvbWUgSGVhZGluZyc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdtdWx0aWxpbmUnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xMjUuZW50aXR5RGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbik7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNS5kZWxldGVRdWVzdGlvbi5lbWl0KCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT4oX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0ID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2UgPSBfYW55KSkgIT09IGZhbHNlKTtcbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1hc3Nlc3NtZW50Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAndmNvbXBseS1lZGl0b3InO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1yYWRpby9jcy1yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEzIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXNlbGVjdC9jcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNiBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS9jcy1jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTcgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTggZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL211bHRpcGxlLWNob2ljZS9tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvaW1hZ2UtY2hvaWNlL2ltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tYXRyaXgtZHJvcGRvd24vbWF0cml4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL21hdHJpeC1yYXRpbmctc2NhbGUvbWF0cml4LXJhdGluZy1zY2FsZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI1IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9yYW5raW5nL3JhbmtpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNiBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI3IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tdWx0aXBsZS10ZXh0Ym94L211bHRpcGxlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvdGhhbmsteW91L3RoYW5rLXlvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWlnaHRhZ2Utc2VsZWN0b3Ivd2VpZ2h0YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzIgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy13cmFwcGVyL3ByZXZpZXctd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMzIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlL3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1jaGVja2JveC9wcmV2aWV3LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1pbWFnZS1jaG9pY2UvcHJldmlldy1pbWFnZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXN0YXItcmF0aW5nL3ByZXZpZXctc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXNpbmdsZS10ZXh0Ym94L3ByZXZpZXctc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWNvbW1lbnQtYm94L3ByZXZpZXctY29tbWVudC1ib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOSBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQwIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctZHJvcGRvd24vcHJldmlldy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQxIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbWF0cml4LXJhdGluZy1zY2FsZS9wcmV2aWV3LW1hdHJpeC1yYXRpbmctc2NhbGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXJhbmtpbmcvcHJldmlldy1yYW5raW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDMgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1zbGlkZXIvcHJldmlldy1zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW11bHRpcGxlLXRleHRib3gvcHJldmlldy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1kYXRlLXRpbWUvcHJldmlldy1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWZpbGUtdXBsb2FkL3ByZXZpZXctZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy90aGFuay15b3UvdGhhbmsteW91LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2NoZWNrYm94LXF1ZXN0aW9uL2NoZWNrYm94LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNTAgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvZGV2aWNlL2RldmljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUyIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUzIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NCBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcHJldmlldy1jb250YWluZXIvcHJldmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcXVpY2stc2V0dGluZ3MvcXVpY2stc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NiBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvc2VsZWN0LXF1ZXN0aW9uL3NlbGVjdC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU4IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9zaW5nbGUtdGV4dGJveC9zaW5nbGUtdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBpNjEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1tdWx0aXBsZS1jaG9pY2UvbG9naWMtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjIgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jaGVja2JveC9sb2dpYy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYzIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtaW1hZ2UtY2hvaWNlL2xvZ2ljLWltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc3Rhci1yYXRpbmcvbG9naWMtc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXNpbmdsZS10ZXh0Ym94L2xvZ2ljLXNpbmdsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jb21tZW50LWJveC9sb2dpYy1jb21tZW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY3IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtZHJvcGRvd24vbG9naWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2OCBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXJhbmtpbmcvbG9naWMtcmFua2luZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY5IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc2xpZGVyL2xvZ2ljLXNsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTcwIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtbXVsdGlwbGUtdGV4dGJveC9sb2dpYy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1kYXRlLXRpbWUvbG9naWMtZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzIgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci9lZGl0b3ItbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzMgZnJvbSAnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzQgZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUvcXVlc3Rpb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtcGFnZS1kZXRhaWxzL2FkZC1wYWdlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk3NiBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXNzbWVudC1zZXR0aW5ncy9hc3Nlc3NtZW50LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzcgZnJvbSAnLi9jb21wb25lbnRzL2FkZC1zZWdtZW50LXBvcHVwL2FkZC1zZWdtZW50LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzggZnJvbSAnLi9jb21wb25lbnRzL2FkZC1yZXNwb25zZS1zZXQtcG9wdXAvYWRkLXJlc3BvbnNlLXNldC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc5IGZyb20gJy4vY29tcG9uZW50cy9lZGl0b3Itd3JhcHBlci9lZGl0b3Itd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgwIGZyb20gJy4vY29tcG9uZW50cy9xdWljay1zZXR0aW5ncy9xdWljay1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgxIGZyb20gJy4vY29tcG9uZW50cy9zaW5nbGUtbGluZS1lZGl0b3Ivc2luZ2xlLWxpbmUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODIgZnJvbSAnLi9jb21wb25lbnRzL3Jlc3BvbnNlLXNlbGVjdG9yL3Jlc3BvbnNlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODMgZnJvbSAnLi9jb21wb25lbnRzL21vdmUvbW92ZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy9sb2dpYy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbG9naWMvYWRkLWxvZ2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODYgZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xraXQvdG9vbGtpdC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg3IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWFub255bW91cy9zZXR0aW5nLWFub255bW91cy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg4IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLXJlc3BvbnNlLXNlZ21lbnQvc2V0dGluZy1yZXNwb25zZS1zZWdtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODkgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOTAgZnJvbSAnLi9jb21wb25lbnRzL3dlbGNvbWUtdGhhbmt5b3Uvd2VsY29tZS10aGFua3lvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTkxIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9lcnJvci1tZXNzYWdlLnBpcGUnO1xuaW1wb3J0ICogYXMgaTkyIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9xdWVzdGlvbi1maWx0ZXIucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTMgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhcnNlci5waXBlJztcbmltcG9ydCAqIGFzIGk5NCBmcm9tICcuL2NvbXBvbmVudHMvcGlwZXMvZm9ybWF0dGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk1IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9jdXJyZW50LXBhZ2UtcXVlc3Rpb24ucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTYgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhZ2UtZmlsdGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk3IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy90eXBlLW9mLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk4IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk5OSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAwIGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAxIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDIgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAzIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9idWlsZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTEwNCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTA1IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1xdWVzdGlvbnMubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDcgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2Vzc21lbnRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkNyZWF0ZUFzc2Vzc21lbnRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBvcG92ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckRpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRXZlbnREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuUG9wb3ZlckxvbmdwcmVzc0RpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5DZGtTY3JvbGxhYmxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5LkNka0Ryb3BMaXN0PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTkuQ2RrRHJvcExpc3RHcm91cDxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5Omk5LkNka0RyYWc8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppOS5DZGtEcmFnSGFuZGxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmk5LkNka0RyYWdQcmV2aWV3PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTkuQ2RrRHJhZ1BsYWNlaG9sZGVyPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTEwLsm1YSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMTEuQ3NDaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTIuQ3NSYWRpb0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMTMuQ3NTd2l0Y2hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTE0LkNzUmFkaW9Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMTUuQ3NTZWxlY3RDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTE2LkNzQ2hlY2tib3hJbmRldGVybWluYXRlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkxNy5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTE4Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxOS5DaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMjAuSW1hZ2VDaG9pY2VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTIxLlN0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTIyLk1hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2OmkyMy5Ecm9wZG93bkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppMjQuTWF0cml4UmF0aW5nU2NhbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTI1LlJhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTI2LlNsaWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMjcuTXVsdGlwbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkyOC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMjkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MzppMzAuVGhhbmtZb3VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTMxLldlaWdodGFnZVNlbGVjdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkzMi5QcmV2aWV3V3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMzMuUHJldmlld011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkzNC5QcmV2aWV3Q2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTM1LlByZXZpZXdJbWFnZUNob2ljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OTppMzYuUHJldmlld1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTM3LlByZXZpZXdTaW5nbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkzOC5QcmV2aWV3Q29tbWVudEJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMzkuUHJldmlld01hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmk0MC5QcmV2aWV3RHJvcGRvd25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTQxLlByZXZpZXdNYXRyaXhSYXRpbmdTY2FsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppNDIuUHJldmlld1JhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTQzLlByZXZpZXdTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTQ0LlByZXZpZXdNdWx0aXBsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTQ1LlByZXZpZXdEYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppNDYuUHJldmlld0ZpbGVVcGxvYWRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTQ3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjE6aTQ4LlRoYW5rWW91Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmk0OS5DaGVja2JveFF1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYzOmk1MC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppNTEuRGV2aWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1Omk1Mi5GaWxlVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY2Omk1My5QcmV2aWV3Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3Omk1NC5QcmV2aWV3Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY4Omk1NS5RdWlja1NldHRpbmdzQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY5Omk1Ni5SYWRpb1F1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk1Ny5TZWxlY3RRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MTppNTguU2luZ2xlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MjppNTkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MzppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JiID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk2MC5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NTppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JhID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk2MC5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNjAuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83ODppNjAuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc5Omk2MC5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmk2MC5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MTppNjAuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppNjAuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppNjAuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg0Omk2MC5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NTppNjAuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTYwLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppNjAuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg4Omk2MC5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg5Omk2MC5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkwOmk2MC5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MTppNjAuTWluVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk2MC5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTM6aTYwLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTYwLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NTppNjAuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk2Omk2MS5Mb2dpY011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk3Omk2Mi5Mb2dpY0NoZWNrYm94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk4Omk2My5Mb2dpY0ltYWdlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk5Omk2NC5Mb2dpY1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk2NS5Mb2dpY1NpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAxOmk2Ni5Mb2dpY0NvbW1lbnRCb3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk2Ny5Mb2dpY0Ryb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMzppNjguTG9naWNSYW5raW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwNDppNjkuTG9naWNTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA1Omk3MC5Mb2dpY011bHRpcGxlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTcxLkxvZ2ljRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA3Omk3Mi5FZGl0b3JMb2FkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk3My5DcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOTppNzQuUXVlc3Rpb25UeXBlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNzUuQWRkUGFnZURldGFpbHNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTExOmk3Ni5Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEyOmk3Ny5BZGRTZWdtZW50UG9wdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEzOmk3OC5BZGRSZXNwb25zZVNldFBvcHVwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNDppNzkuRWRpdG9yV3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTU6aTgwLlF1aWNrU2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE2Omk4MS5TaW5nbGVMaW5lRWRpdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNzppODIuUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTgzLk1vdmVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE5Omk4NC5Mb2dpY0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTg1LkFkZExvZ2ljQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyMTppODYuVG9vbGtpdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTg3LlNldHRpbmdBbm9ueW1vdXNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTIzOmk4OC5TZXR0aW5nUmVzcG9uc2VTZWdtZW50Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNDppODkuUGFnZUhlYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjU6aTkwLldlbGNvbWVUaGFua3lvdUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjY6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNzppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyODppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzA6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzMTppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzI6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTMzOmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM0OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzU6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM2OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzNzppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzg6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0MDppOTEuRXJyb3JNZXNzYWdlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDI6aTkyLlF1ZXN0aW9uRmlsdGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDQ6aTkzLlF1ZXN0aW9uUGFyc2VyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDY6aTk0LkZvcm1hdHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ4Omk5NS5DdXJyZW50UGFnZVF1ZXN0aW9uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTA6aTk2LlF1ZXN0aW9uUGFnZUZpbHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTUyOmk5Ny5UeXBlT2ZQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1MzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU0Omk5OC5Ub29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1NTppOTkuUG9wb3Zlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTY6aTkuRHJhZ0Ryb3BNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU3OmkxMDAuRGlhbG9nTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1ODppMTAuTWFyeEVkaXRvck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTk6aTEwMS5Gb3JtZ3JvdXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYwOmkxMDIuTm9EYXRhTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MTppMTAzLkJ1aWxkTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MjppMTA0LlByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYzOmkxMDUuQXNzZXNzbWVudFByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY0Omk2MC5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjU6aTEwNi5Mb2dpY1F1ZXN0aW9uc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjY6aTEwNy5FZGl0b3JMb2FkZXJNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY3OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY4OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTA4LnBhZ2VNb2RlID09PSAnRURJVCcpO1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19RdWVzdGlvblR5cGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1F1ZXN0aW9uVHlwZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTA5LmFkZFF1ZXN0aW9uLmVtaXQoJ211bHRpcGxlLWNob2ljZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdjaGVja2JveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdzaW5nbGUtdGV4dGJveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkcm9wZG93bicpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkYXRlLXRpbWUnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMDkuYWRkUXVlc3Rpb24uZW1pdCgnZmlsZS11cGxvYWQnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFBhZ2VEZXRhaWxzQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRQYWdlRGV0YWlsc0NvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdQYWdlIHRpdGxlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ211bHRpbGluZSc7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VOYW1lO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEwLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMC5jYW5jZWxQYWdlRGV0YWlscygpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlTmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF85OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuY2FuY2VsUGFnZURldGFpbHMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTE6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuc2F2ZVBhZ2VEZXRhaWxzKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTEuc2V0dGluZ3NEYXRhLnBhbmVsVGl0bGUpKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ1tFc2NdIHRvIGNsb3NlJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ2xlZnQnO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnYmxhY2snO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTExLnNldHRpbmdzRGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEuc2V0dGluZ3NFbGVtZW50cyk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMS5jbG9zZVBhbmVsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRTZWdtZW50UG9wdXBDb21wb25lbnRfSG9zdF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFNlZ21lbnRQb3B1cENvbXBvbmVudF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTEyLnNlZ21lbnRFcnJvci5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5jb2xvcjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKDxhbnk+e3N0YW5kYWxvbmU6dHJ1ZX0pO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLmNvbG9yO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEyLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbjtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5mcm9tUmFuZ2U7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xMTIuc2VnbWVudEVycm9yLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzExMi5zZWdtZW50RXJyb3IubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuY29sb3IgPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55PihfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi5mcm9tTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuZnJvbVJhbmdlID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLmZyb21NYW5hZ2VyKCcrJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLnRvTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi50b01hbmFnZXIoJysnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfSG9zdF82XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfNl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIV9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICFfZGVjbDBfMTEzLmhpZGVTcGVjaWZpY0NhdGVnb3J5O1xuICBjdXJyVmFsXzU7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50X0hvc3RfN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExNC5lcnJvclByZXNlbnQ7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnYnVpbGQnKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnbG9naWMnKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKChfZGVjbDBfMTE0LnNlcnZpY2UuZm9ybXNQYWdlID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiAoKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoKSkgPCAyKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xMTQudmlld01vZGUgPT0gJ21vdmUnKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICdidWlsZCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gJ2xvZ2ljJztcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAnbW92ZSc7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2FueS50cmFuc2Zvcm0oKChfZGVjbDBfMTE0LnF1ZXN0aW9uID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMTE0LnF1ZXN0aW9uLmVycm9yQXJyYXkpKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55PihfZGVjbDBfMTE0LnZpZXdNb2RlID0gJ2J1aWxkJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT4oX2RlY2wwXzExNC52aWV3TW9kZSA9ICdsb2dpYycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTQudmlld01vZGUgPSAnbW92ZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5jb3B5UXVlc3Rpb24uZW1pdChfZGVjbDBfMTE0LnF1ZXN0aW9uSW5kZXgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMDphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5kZWxldGVRdWVzdGlvbi5lbWl0KF9kZWNsMF8xMTQucXVlc3Rpb25JbmRleCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTE0Lm9wZW5OZXh0UXVlc3Rpb24oKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTQuY2hlY2tGb3JWYWxpZGF0aW9uU3RhdHVzKCdzYXZlJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50X0hvc3RfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ3F1ZXN0aW9uLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tci0yJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbkNsYXNzO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE1LnNlbGVjdGVkUXVlc3Rpb25EZXRhaWxzLnF1ZXN0aW9uSWNvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbk5hbWU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMTUucXVlc3Rpb25UeXBlRHJvcGRvd247XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMTUucXVpY2tTZXR0aW5nc0xpc3Q7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMTUuZmQuZm9ybXNQYWdlLmVsZW1lbnRzW19kZWNsMF8xMTUucXVlc3Rpb25JbmRleF0uaGFzQ2hhcmFjdGVyTGVuZ3RoO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9hbnkucG9wb3ZlcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF85XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzExNi5lZGl0b3JNb2RlID09ICdtdWx0aWxpbmUnKSAmJiAoX2RlY2wwXzExNi5sYWJlbCA9PSB0cnVlKSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTYucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTE2LmVkaXRvck1vZGUgPT0gJ211bHRpbGluZScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzExNi5pZCwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTYuc2hvd0VkaXRvckNvbnRyb2xzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTE2LnNob3dFZGl0b3JDb250cm9scztcbiAgY3VyclZhbF81O1xuICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uYmx1cigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF83OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uUGFzdGUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTYuc2V0VmFsdWUoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNi5zaG93KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19SZXNwb25zZVNlbGVjdG9yQ29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExNy5yZXNwb25zZURldGFpbHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTcucmVzcG9uc2VEZXRhaWxzO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19Nb3ZlQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTW92ZUNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzExOC5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAncmlnaHQnO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9uO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9ucztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk/ICgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk6ICdTZWxlY3QgcXVlc3Rpb24nKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS50cmFuc2Zvcm0oX2RlY2wwXzExOC5zZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyxfZGVjbDBfMTE4LmN1cnJlbnRQYWdlKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xMTguZW1wdHlQYWdlID09PSB0cnVlKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT5fYW55LnBvcG92ZXIoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTE4Lm1vdmUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0xvZ2ljQ29tcG9uZW50X0hvc3RfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9naWNDb21wb25lbnRfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xMTkucXVlc3Rpb24udmlzaWJpbGl0eUxvZ2ljLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTE5LnF1ZXN0aW9uLnZpc2liaWxpdHlMb2dpYy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQWRkTG9naWNDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRMb2dpY0NvbXBvbmVudF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEyMC5xdWVzdGlvbkluZGV4ICsgMSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbi5pc1JlcXVpcmVkID09PSB0cnVlKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKCgoX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLnRpdGxlKT8gKChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbiA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24udGl0bGUpOiAnUXVlc3Rpb24nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24uaGFzQ29tbWVudHM7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9ICdsZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ1NlbGVjdCBhIHF1ZXN0aW9uJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzEyMC5xdWVzdGlvbnNBcnJheVtfZGVjbDBfMTIwLnNlbGVjdGVkTG9naWNRdWVzdGlvbl0gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAucXVlc3Rpb25zQXJyYXlbX2RlY2wwXzEyMC5zZWxlY3RlZExvZ2ljUXVlc3Rpb25dLnRpdGxlKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfYW55LnRyYW5zZm9ybShfZGVjbDBfMTIwLnF1ZXN0aW9uc0FycmF5LF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLm5hbWUpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8xMjAub3BlcmF0b3JNYXAgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAub3BlcmF0b3JNYXAubGVuZ3RoKSA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzEyMC5sb2dpYy5xdWVzdGlvbk5hbWUgIT0gJycpICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICE9ICdhbnN3ZXJlZCcpKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzEyMC5zaG93RXJyb3IuaXNWaXNpYmxlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMC5jbG9zZVBvcHVwKCdDTE9TRScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTIwLnJlc2V0TG9naWMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjAuYWRkTG9naWMoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1Rvb2xraXRDb21wb25lbnRfSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Ub29sa2l0Q29tcG9uZW50XzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9ICFfZGVjbDBfMTIxLnNob3dDb2xsYXBzZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmNsaWNrQ29sbGFwc2UoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjEuYWRkUXVlc3Rpb24uZW1pdCgnbXVsdGlwbGUtY2hvaWNlJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2NoZWNrYm94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIyOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ3NpbmdsZS10ZXh0Ym94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIzOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2Ryb3Bkb3duJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2RhdGUtdGltZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMS5hZGRRdWVzdGlvbi5lbWl0KCdmaWxlLXVwbG9hZCcpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ0Fub255bW91c0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdBbm9ueW1vdXNDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ1Jlc3BvbnNlU2VnbWVudENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdSZXNwb25zZVNlZ21lbnRDb21wb25lbnRfMTZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfUGFnZUhlYWRlckNvbXBvbmVudF9Ib3N0XzE3XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2VIZWFkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEyNC5wYWdlTmFtZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNC5wYWdlRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNC5lZGl0LmVtaXQoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF9Ib3N0XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF8xOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVJbWFnZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ1dlbGNvbWUgSGVhZGluZyc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdtdWx0aWxpbmUnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xMjUuZW50aXR5RGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbik7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2U7XG4gIGN1cnJWYWxfODtcbiAgX2RlY2wwXzEyNS5kZWxldGVRdWVzdGlvbi5lbWl0KCk7XG4gIGNvbnN0IHBkXzk6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjUuZGVsZXRlV2VsY29tZSgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMDphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS53ZWxjb21lVGV4dCA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTI6YW55ID0gKCg8YW55PihfZGVjbDBfMTI1LmVudGl0eURhdGEuaGFzV2VsY29tZUltYWdlID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG4iXX0=
@@ -53,6 +53,7 @@ export class ImportAnAssessmentComponent {
53
53
  weightageEnabled: false,
54
54
  settingsEnabled: false
55
55
  };
56
+ this.organizationId = this.auth.getOrganizationId();
56
57
  }
57
58
  setIsUploaded(isUploaded) {
58
59
  this.isUploaded = isUploaded;
@@ -102,6 +103,7 @@ export class ImportAnAssessmentComponent {
102
103
  this.categoryData = XLSX.utils.sheet_to_json(tempData, {
103
104
  header: 1,
104
105
  });
106
+ console.log("data", this.categoryData);
105
107
  this.sheetData = XLSX.utils.sheet_to_json(ws, {
106
108
  header: 1,
107
109
  });
@@ -397,8 +399,9 @@ export class ImportAnAssessmentComponent {
397
399
  }
398
400
  checkFormat(assessmentData) {
399
401
  var _a;
402
+ const orgInTemplate = this.categoryData[0][5];
400
403
  //Completly blank excel sheet
401
- if (assessmentData.length === 0) {
404
+ if (assessmentData.length === 0 || orgInTemplate !== this.organizationId) {
402
405
  this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
403
406
  this.isWrongFormat = true;
404
407
  return true;
@@ -535,6 +538,10 @@ export class ImportAnAssessmentComponent {
535
538
  }
536
539
  else {
537
540
  this.showSmiley = false;
541
+ this.auth.previewPanel.next(false);
542
+ const closeBtn = document.getElementById("close-workflow-engine-btn");
543
+ if (closeBtn)
544
+ closeBtn.style.display = "block";
538
545
  }
539
546
  }
540
547
  }
@@ -554,4 +561,4 @@ ImportAnAssessmentComponent.propDecorators = {
554
561
  closeWorkflow: [{ type: Output }],
555
562
  disconnectRefresh: [{ type: Output }]
556
563
  };
557
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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YUFDM0U7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7WUExaUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQywrekVBQW9EOzthQUVyRDs7O1lBWFEsV0FBVztZQUNYLGlCQUFpQjs7O3lCQWF2QixTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0QkFDckMsTUFBTTtnQ0FDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hc3Nlc3NtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LWVkaXRvci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG50eXBlIEFPQSA9IGFueVtdW107XHJcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7IElNUE9SVF9NT1JFOiBcIklNUE9SVF9NT1JFXCIsIFZJRVdfQVNTRVNTTUVOVFM6IFwiVklFV19BU1NFU1NNRU5UU1wiIH1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb250ITogQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudDtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xyXG5cclxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICAgICAgY29uc29sZS5sb2coXCJJbXBcIiwgdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSlcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XHJcbiAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIik7XHJcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xyXG4gICAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpfSwxMDApXHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG4gIH1cclxuXHJcbiAgY2F0ZWdvcnlMaXN0ICE6IGFueTtcclxuICBnZW5lcmF0ZUNhdGVnb3J5TGlzdChjYXRlZ29yeURhdGE6IGFueSkge1xyXG4gICAgY29uc3QgY2F0TGlzdDogYW55ID0ge31cclxuICAgIGlmIChjYXRlZ29yeURhdGEpIHtcclxuICAgICAgY2F0ZWdvcnlEYXRhLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgY2F0TGlzdFtlbGVbMF1dID0gZWxlWzFdO1xyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IGNhdExpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeU5hbWV0b0lkKGNhdGVnb3J5TmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3RbY2F0ZWdvcnlOYW1lXSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUxpc3RbY2F0ZWdvcnlOYW1lXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKGRhdGE6IGFueSkge1xyXG4gICAgLy9jaGVjayBmb3JtYXRcclxuXHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcblxyXG4gICAgICBtZXRhZGF0YTpcclxuICAgICAge1xyXG4gICAgICAgIGFzc2Vzc21lbnRfbmFtZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBhc3Nlc3NtZW50X3R5cGU6IFwiY29tcGxpYW5jZVwiLFxyXG4gICAgICAgIGNhdGVnb3J5X2FycjogW1xyXG5cclxuICAgICAgICBdLFxyXG4gICAgICAgIGFwcHJvdmFsX3dvcmtmbG93X2Fycjoge1xyXG4gICAgICAgICAgXCJ0ZXN0XCI6IFwidGVzdFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhcHByb3ZhbF9yZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICBzb3VyY2VfcGFnZTogXCJjb21wbGlhbmNlXCJcclxuICAgICAgfSxcclxuICAgICAgYXNzZXNzbWVudERhdGE6IHtcclxuICAgICAgICB2ZXJzaW9uOiAyLFxyXG4gICAgICAgIHF1ZXN0aW9uUmFuZG9taXplOiBmYWxzZSxcclxuICAgICAgICBhbm9ueW1vdXNSZXNwb25zZTogZmFsc2UsXHJcbiAgICAgICAgaGFzV2VsY29tZTogZmFsc2UsXHJcbiAgICAgICAgaGFzV2VsY29tZURlc2NyaXB0aW9uOiBmYWxzZSxcclxuICAgICAgICB3ZWxjb21lVGV4dDogJycsXHJcbiAgICAgICAgaGFzV2VsY29tZUltYWdlOiBmYWxzZSxcclxuICAgICAgICB3ZWxjb21lSW1hZ2U6ICcnLFxyXG4gICAgICAgIHdlbGNvbWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgaGFzVGhhbmtzOiBmYWxzZSxcclxuICAgICAgICBoYXNUaGFua3lvdUltYWdlOiBmYWxzZSxcclxuICAgICAgICB0aGFua3lvdVRleHQ6ICcnLFxyXG4gICAgICAgIHRoYW5reW91SW1hZ2U6ICcnLFxyXG4gICAgICAgIGhhc1RoYW5reW91RGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91RGVzY3JpcHRpb246ICcnLFxyXG4gICAgICAgIGVsZW1lbnRzOiBbXSxcclxuICAgICAgICBwYWdlRGV0YWlsc0xpc3Q6IFtdLFxyXG4gICAgICAgIGN1c3RvbVJlc3BvbnNlU2V0OiBbXSxcclxuICAgICAgICBzZXR0aW5nczogdGhpcy5zZXR0aW5ncyxcclxuICAgICAgICByZXNwb25zZVNlZ21lbnQ6IHRoaXMuaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udmVydGVkRGF0YSA9IHBheWxvYWQ7XHJcbiAgICB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuYXNzZXNzbWVudF9uYW1lID0gdGhpcy5hc3Nlc3NtZW50RGF0YVsyXVsxXTtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5kZXNjcmlwdGlvbiA9IHRoaXMuYXNzZXNzbWVudERhdGFbM11bMV07XHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gdGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXTtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnIgPSBbdGhpcy5jYXRlZ29yeU5hbWV0b0lkKHRoaXMuYXNzZXNzbWVudERhdGFbNF1bMV0pXTtcclxuXHJcbiAgICAvL1RPRE86IGNyZWF0ZSBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZnJvbSBjYXRlZ29yaWVzIG5hbWVzIHRvIGNhdGVnb3JpZXMgaWQuXHJcbiAgICAvL1RPRE86IGNoZWNrIHRoZSBhcGkgZm9yIHN1Yi1mbG93IGxpa2UgYXNzZXNzbWVudC1zZXR0aW5nLlxyXG4gICAgLy8gdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyclswXSA9IFwiNjFjYzI3YzViM2U4NjQyYjMzM2YzNTkxXCI7XHJcbiAgICB0aGlzLmdlbmVyYXRlUXVlc3Rpb25zTGlzdChkYXRhLnNsaWNlKDYpLCBwYXlsb2FkLmFzc2Vzc21lbnREYXRhLmVsZW1lbnRzKVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KHF1ZXN0aW9uc0xpc3Q6IGFueSwgcXVlc3Rpb25zQXJyYXk6IGFueSkge1xyXG4gICAgcXVlc3Rpb25zQXJyYXkgPSBbXTtcclxuICAgIGlmIChxdWVzdGlvbnNMaXN0Py5sZW5ndGgpIHtcclxuICAgICAgcXVlc3Rpb25zTGlzdC5mb3JFYWNoKChxdWVzdGlvbjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJxdWVzdGlvbiBsaXN0XCIsIHF1ZXN0aW9uKVxyXG4gICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2goKTtcclxuICAgICAgICBzd2l0Y2ggKHF1ZXN0aW9uWzBdKSB7XHJcbiAgICAgICAgICBjYXNlICdTaW5nbGUgVGV4dGJveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZVNpbmdsZVRleHRib3goJ3NpbmdsZS10ZXh0Ym94JyxxdWVzdGlvbiwgaW5kZXgpKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ011bHRpcGxlIENob2ljZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdtdWx0aXBsZS1jaG9pY2UnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnQ2hlY2tib3gnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSgnY2hlY2tib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRHJvcGRvd24nOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSgnZHJvcGRvd24nLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRGF0ZSAmIFRpbWUnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVEYXRlVGltZSgnZGF0ZS10aW1lJyxxdWVzdGlvbiwgaW5kZXgpKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ0ZpbGUgVXBsb2FkJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlRmlsZVVwbG9hZChxdWVzdGlvbiwgaW5kZXgpKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAvLyBObyBuZWVkIHRvIGRvIGFueXRoaW5nIGZvciBkZWZhdWx0XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJxdWVzdGlvbnNcIiwgcXVlc3Rpb25zQXJyYXkpXHJcbiAgICB0aGlzLmNvbnZlcnRlZERhdGEuYXNzZXNzbWVudERhdGEuZWxlbWVudHMgPSBxdWVzdGlvbnNBcnJheTtcclxuICB9XHJcbiAgY29sTWFwOiBhbnkgPSB7XHJcbiAgICB0eXBlOiAwLFxyXG4gICAgdGl0bGU6IDEsXHJcbiAgICBzY29yZTogMixcclxuICAgIG9wdDE6IDMsXHJcbiAgICBvcHQyOiA0LFxyXG4gICAgb3B0MzogNSxcclxuICAgIG9wdDQ6IDYsXHJcbiAgICBvcHQ1OiA3LFxyXG4gICAgb3B0NjogOCxcclxuICAgIHJlcXVpcmVkOiA5LFxyXG4gICAgZmFpbGVkOiAxMCxcclxuICAgIGRlc2NyaXB0aW9uOiAxMSxcclxuICAgIHBsYWNlaG9sZGVyOiAxMixcclxuICAgIGNvbW1lbnQ6IDEzLFxyXG4gICAgb3RoZXI6IDE0LFxyXG4gICAgcmFuZG9taXplOiAxNSxcclxuICAgIGFsaWdubWVudDogMTYsXHJcbiAgICB1c2VyYXR0YWNobWVudDogMTcsXHJcbiAgICB1c2VyY29tbWVudDogMThcclxuICB9XHJcbiAgZ2VuZXJhdGVTaW5nbGVUZXh0Ym94KHR5cGU6c3RyaW5nLHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6ICdzaW5nbGUtdGV4dGJveCcsIG5hbWU6IGBRdWVzdGlvbl8ke2luZGV4fWAsIHBhZ2U6IDEsXHJcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLCB2YWxpZGF0aW9uVHlwZTogJycsIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yZXF1aXJlZF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLCBtaW5DaGFyYWN0ZXJMZW5ndGg6IDAsXHJcbiAgICAgIG1heENoYXJhY3Rlckxlbmd0aDogMTAwLCB0aXRsZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnRpdGxlXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNEZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGRlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpLFxyXG4gICAgICByYW5kb21pemU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yYW5kb21pemVdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzT3RoZXI6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vdGhlcl0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5hbGlnbm1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyYXR0YWNobWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBvdGhlckNvbmZpZzogeyBjb2xvcjogXCIjMDAwMDAwXCIsIGlzRmFpbGVkOiBmYWxzZSwgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSB9LFxyXG4gICAgICBjaG9pY2VzOiBbe1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogZmFsc2UsXHJcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCJcclxuICAgICAgfV1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKHR5cGU6c3RyaW5nLHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiWW8gTWFuXCIsIHF1ZXN0aW9uKVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogdHlwZSwgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCwgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCkudHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKS50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IHRoaXMuZ2VuZXJhdGVDaG9pY2VzKHF1ZXN0aW9uKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlRGF0ZVRpbWUodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogdHlwZSwgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCwgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XSxcclxuICAgICAgaGFzRGF0ZTogdHJ1ZSxcclxuICAgICAgaGFzVGltZTogZmFsc2UsXHJcbiAgICAgIGRhdGVGb3JtYXQ6IFwiREQvTU0vWVlZWVwiLFxyXG4gICAgICB0aW1lRm9ybWF0OiAyNCxcclxuICAgICAgZGF0ZToge1xyXG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgRGF0ZScsXHJcbiAgICAgICAgdmFsdWU6IFwiXCJcclxuICAgICAgfSxcclxuICAgICAgdGltZToge1xyXG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgVGltZScsXHJcbiAgICAgICAgdmFsdWU6IFwiXCJcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdlbmVyYXRlRmlsZVVwbG9hZChxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ2ZpbGUtdXBsb2FkJywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XSxcclxuICAgICAgYWxsb3dlZEZpbGVUeXBlczoge1xyXG4gICAgICAgIHBkZjogdHJ1ZSxcclxuICAgICAgICBkb2M6IHRydWUsXHJcbiAgICAgICAgcG5nOiB0cnVlLFxyXG4gICAgICAgIGpwZzogdHJ1ZSxcclxuICAgICAgICBnaWY6IHRydWVcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNob2ljZXMocXVlc3Rpb246IGFueSkge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IFtxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0MV0sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQyXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDNdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0NF0sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ1XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDZdXS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUpO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChlbGU6YW55KSA9PntcclxuICAgICAgaWYoZWxlKXtcclxuICAgICAgICBlbGUudG9TdHJpbmcoKT8udHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKG9wdGlvbnM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBvcHRpb25zLnB1c2goJycpXHJcbiAgICB9XHJcbiAgICBjb25zdCBvcHRpb25NYXA6IGFueSA9IHtcclxuICAgICAgJ09wdGlvbiAxJzogMyxcclxuICAgICAgJ09wdGlvbiAyJzogNCxcclxuICAgICAgJ09wdGlvbiAzJzogNSxcclxuICAgICAgJ09wdGlvbiA0JzogNixcclxuICAgICAgJ09wdGlvbiA1JzogNyxcclxuICAgICAgJ09wdGlvbiA2JzogOCxcclxuICAgIH1cclxuICAgIG9wdGlvbnMuZm9yRWFjaCgoY2hvaWNlOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgdGl0bGU6IChjaG9pY2UgJiYgdHlwZW9mIChjaG9pY2UpID09ICdzdHJpbmcnKT8gY2hvaWNlIDogY2hvaWNlLnRvU3RyaW5nKCkgPz8gJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IChjaG9pY2U/LnRvU3RyaW5nKCk/LnRyaW0oKSA9PSBxdWVzdGlvbltvcHRpb25NYXBbcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmZhaWxlZF1dXSkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCJcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXR0aW5nczogYW55ID0ge1xyXG4gICAgYXNzZXNzbWVudE1vZGU6IGZhbHNlLFxyXG4gICAgZGVmYXVsdFNjb3JlOiAxLFxyXG4gICAgbmVnYXRpdmVTY29yZUNyaXRlcmlhOiAnRkFJTEVEJyxcclxuICAgIG5lZ2F0aXZlU2NvcmU6IDAsXHJcbiAgICB3ZWlnaHRhZ2VFbmFibGVkOiBmYWxzZSxcclxuICAgIHNldHRpbmdzRW5hYmxlZDogZmFsc2VcclxuICB9XHJcblxyXG4gIGNoZWNrRm9ybWF0KGFzc2Vzc21lbnREYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIC8vQ29tcGxldGx5IGJsYW5rIGV4Y2VsIHNoZWV0XHJcbiAgICBpZiAoYXNzZXNzbWVudERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vSW52YWxpZCBUZW1wYWx0ZVxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhWzJdWzBdICE9PSBcIkFzc2Vzc21lbnQgTmFtZVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbM11bMF0gIT09IFwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzRdWzBdICE9PSBcIkFzc2Vzc21lbnQgQ2F0ZWdvcnlcXCpcIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzVdWzBdICE9PSBcIlF1ZXN0aW9uIFR5cGVcXCpcIlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NoZWNrIEFzc2Vzc21lbnQgbmFtZVxyXG4gICAgdHJ5e1xyXG4gICAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzJdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1jYXRjaHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9jYXRlZ29yeSBub3Qgc2VsZWN0ZWRcclxuICAgdHJ5e1xyXG4gICAgaWYgKCFhc3Nlc3NtZW50RGF0YVs0XVsxXSB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gXCJcIiB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1NlbGVjdCB0aGUgQXNzZXNzbWVudCBDYXRlZ29yeS4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgfWNhdGNoe1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgIH1cclxuXHJcbiAgICAvL0RvZXMgbm90IGNvbnRhaW5zIGFueSBxdWVzdGlvbnNcclxuICAgIHRyeXtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhLnNsaWNlKDcpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIGEgYmxhbmsgdGVtcGxhdGUuIFBsZWFzZSBhZGQgcXVlc3Rpb25zIHRvIHRoaXMgdGVtcGxhdGUgYW5kIHVwbG9hZCBpdCBhZ2Fpbi4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vaGFuZGxlIHR5cGUgb2YgcXVlc3Rpb24gYW5kIG9wdGlvbnMgY291bnRcclxuICAgIGZvciAobGV0IGkgPSA3OyBpIDw9IGFzc2Vzc21lbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdNdWx0aXBsZSBDaG9pY2UnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdDaGVja2JveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0Ryb3Bkb3duJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnU2luZ2xlIFRleHRib3gnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEYXRlICYgVGltZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0ZpbGUgVXBsb2FkJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gaWYgKGFzc2Vzc21lbnREYXRhW2ldWzFdID09PSAnJykge1xyXG4gICAgICAvLyAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIC8vICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgLy8gICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG1heFNjb3JlOiAxMCxcclxuICAgICAgc2VnbWVudHM6IFtdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3N0QXNzZXNzbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuaXNTaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudERldGFpbHMocmVzcG9uc2UuX2lkLCBkYXRhLm1vZGUsIGRhdGEuYXNzZXNzbWVudERldGFpbHMpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50RGV0YWlscyhpZDogYW55LCBtb2RlOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5pc1VwbG9hZGVkJywgdGhpcy5pc1VwbG9hZGVkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgcXVlc3Rpb246IGFzc2Vzc21lbnREZXRhaWxzLFxyXG4gICAgICBhY3Rpb246IFwicXVlc3Rpb25zX3NhdmVcIixcclxuICAgICAgc3RhdGU6IG1vZGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLnNhdmVBc3Nlc3NtZW50RGV0YWlscyhpZCwgcGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbihpZDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhpZClcclxuICAgIGlmIChpZCA9PT0gc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTKSB7XHJcbiAgICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICAgIC8vIFRPRE86IE5hdmlnYXRlIHRvICcvbWFuYWdlLWFzc2Vzc21lbnQnXHJcbiAgICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL21hbmFnZS1hc3Nlc3NtZW50JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2Fzc2Vzc21lbnQvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
564
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFLL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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USxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0Is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QU0sMENBQUUsS0FBSyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN0RixjQUFjLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSxtQ0FBSSxFQUFFO1lBQ3hLLFdBQVcsRUFBRSxDQUFBLE1BQUEsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFLDBDQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRTtZQUN4SixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxVQUFVLEVBQUUsT0FBTztZQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFB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R0FBVyxDQUFDO1lBQ2hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNoRCxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO2FBQy9EO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7YUFDM0U7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RSxJQUFJLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBRWhEO0lBQ0gsQ0FBQzs7O1lBbmpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsK3pFQUFvRDs7YUFFckQ7OztZQVpRLFdBQVc7WUFDWCxpQkFBaUI7Ozt5QkFjdkIsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBQ3JDLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXNzZXNzbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcblxyXG50eXBlIEFPQSA9IGFueVtdW107XHJcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7IElNUE9SVF9NT1JFOiBcIklNUE9SVF9NT1JFXCIsIFZJRVdfQVNTRVNTTUVOVFM6IFwiVklFV19BU1NFU1NNRU5UU1wiIH1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb250ITogQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudDtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2VcclxuICApIHsgXHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbklkID0gIHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25JZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsdGhpcy5jYXRlZ29yeURhdGEpXHJcbiAgICAgIHRoaXMuc2hlZXREYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7XHJcbiAgICAgICAgaGVhZGVyOiAxLFxyXG4gICAgICB9KSBhcyBBT0E7XHJcblxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ2F0ZWdvcnlMaXN0KHRoaXMuY2F0ZWdvcnlEYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB0aGlzLnNoZWV0RGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG5cclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW1wXCIsIHRoaXMuY2hlY2tGb3JtYXQodGhpcy5hc3Nlc3NtZW50RGF0YSkpXHJcbiAgICAgIGlmICghdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSkge1xyXG4gICAgICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCIpO1xyXG4gICAgICAgICBpZiAoY2xvc2VCdG4pIGNsb3NlQnRuLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUVkaXRvclBheWxvYWQodGhpcy5hc3Nlc3NtZW50RGF0YSk7XHJcbiAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaXNVcGxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdG9yQ29udC50cmlnZ2VyUHJldmlld1dpdGhWYWxpZGF0aW9uKCl9LDEwMClcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgb3JnSW5UZW1wbGF0ZSA9ICB0aGlzLmNhdGVnb3J5RGF0YVswXVs1XTtcclxuICAgIC8vQ29tcGxldGx5IGJsYW5rIGV4Y2VsIHNoZWV0XHJcbiAgICBpZiAoYXNzZXNzbWVudERhdGEubGVuZ3RoID09PSAwIHx8IG9yZ0luVGVtcGxhdGUgIT09IHRoaXMub3JnYW5pemF0aW9uSWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vSW52YWxpZCBUZW1wYWx0ZVxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhWzJdWzBdICE9PSBcIkFzc2Vzc21lbnQgTmFtZVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbM11bMF0gIT09IFwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzRdWzBdICE9PSBcIkFzc2Vzc21lbnQgQ2F0ZWdvcnlcXCpcIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzVdWzBdICE9PSBcIlF1ZXN0aW9uIFR5cGVcXCpcIlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NoZWNrIEFzc2Vzc21lbnQgbmFtZVxyXG4gICAgdHJ5e1xyXG4gICAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzJdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1jYXRjaHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9jYXRlZ29yeSBub3Qgc2VsZWN0ZWRcclxuICAgdHJ5e1xyXG4gICAgaWYgKCFhc3Nlc3NtZW50RGF0YVs0XVsxXSB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gXCJcIiB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1NlbGVjdCB0aGUgQXNzZXNzbWVudCBDYXRlZ29yeS4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgfWNhdGNoe1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgIH1cclxuXHJcbiAgICAvL0RvZXMgbm90IGNvbnRhaW5zIGFueSBxdWVzdGlvbnNcclxuICAgIHRyeXtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhLnNsaWNlKDcpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIGEgYmxhbmsgdGVtcGxhdGUuIFBsZWFzZSBhZGQgcXVlc3Rpb25zIHRvIHRoaXMgdGVtcGxhdGUgYW5kIHVwbG9hZCBpdCBhZ2Fpbi4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vaGFuZGxlIHR5cGUgb2YgcXVlc3Rpb24gYW5kIG9wdGlvbnMgY291bnRcclxuICAgIGZvciAobGV0IGkgPSA3OyBpIDw9IGFzc2Vzc21lbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdNdWx0aXBsZSBDaG9pY2UnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdDaGVja2JveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0Ryb3Bkb3duJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnU2luZ2xlIFRleHRib3gnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEYXRlICYgVGltZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0ZpbGUgVXBsb2FkJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gaWYgKGFzc2Vzc21lbnREYXRhW2ldWzFdID09PSAnJykge1xyXG4gICAgICAvLyAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIC8vICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgLy8gICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG1heFNjb3JlOiAxMCxcclxuICAgICAgc2VnbWVudHM6IFtdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3N0QXNzZXNzbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuaXNTaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudERldGFpbHMocmVzcG9uc2UuX2lkLCBkYXRhLm1vZGUsIGRhdGEuYXNzZXNzbWVudERldGFpbHMpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50RGV0YWlscyhpZDogYW55LCBtb2RlOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5pc1VwbG9hZGVkJywgdGhpcy5pc1VwbG9hZGVkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgcXVlc3Rpb246IGFzc2Vzc21lbnREZXRhaWxzLFxyXG4gICAgICBhY3Rpb246IFwicXVlc3Rpb25zX3NhdmVcIixcclxuICAgICAgc3RhdGU6IG1vZGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLnNhdmVBc3Nlc3NtZW50RGV0YWlscyhpZCwgcGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbihpZDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhpZClcclxuICAgIGlmIChpZCA9PT0gc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTKSB7XHJcbiAgICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICAgIC8vIFRPRE86IE5hdmlnYXRlIHRvICcvbWFuYWdlLWFzc2Vzc21lbnQnXHJcbiAgICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL21hbmFnZS1hc3Nlc3NtZW50JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2Fzc2Vzc21lbnQvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xyXG4gICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiKTtcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==