vcomply-workflow-engine 6.0.52 → 6.0.54

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 (124) hide show
  1. package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +2 -2
  2. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -2
  3. package/esm2022/lib/constants/api.constants.mjs +8 -0
  4. package/esm2022/lib/constants/assets.constants.mjs +57 -0
  5. package/esm2022/lib/constants/link-responsibility.constants.mjs +2 -2
  6. package/esm2022/lib/constants/mock.mjs +152 -0
  7. package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
  8. package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
  9. package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +2 -2
  10. package/esm2022/lib/more-option/more-option.component.mjs +6 -49
  11. package/esm2022/lib/report-a-case/components/assignee/assignee.component.mjs +2 -2
  12. package/esm2022/lib/report-a-case/components/case-assignees/case-assignees.component.mjs +2 -2
  13. package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +2 -2
  14. package/esm2022/lib/report-a-case/components/case-details/case-details.component.mjs +2 -2
  15. package/esm2022/lib/report-a-case/components/case-owners/case-owners.component.mjs +2 -2
  16. package/esm2022/lib/report-a-case/components/case-priority/case-priority.component.mjs +2 -2
  17. package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +2 -2
  18. package/esm2022/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.mjs +2 -2
  19. package/esm2022/lib/report-a-case/components/due-date/due-date.component.mjs +2 -2
  20. package/esm2022/lib/report-a-case/components/field-holder/field-holder.component.mjs +2 -2
  21. package/esm2022/lib/report-a-case/components/linked assessment/linked-assessment.component.mjs +2 -2
  22. package/esm2022/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.mjs +2 -2
  23. package/esm2022/lib/report-a-case/components/rc-details/rc-details.component.mjs +2 -2
  24. package/esm2022/lib/report-a-case/components/report-date/report-date.component.mjs +2 -2
  25. package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +2 -2
  26. package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +2 -2
  27. package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +2 -2
  28. package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +2 -2
  29. package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +2 -2
  30. package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +2 -2
  31. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +2 -2
  32. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +2 -2
  33. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +2 -2
  34. package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +2 -2
  35. package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +2 -2
  36. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +2 -2
  37. package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +2 -2
  38. package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +2 -2
  39. package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +2 -2
  40. package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +2 -2
  41. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +2 -2
  42. package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +2 -2
  43. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
  44. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
  45. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
  46. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
  47. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -1
  48. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
  49. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
  50. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +3 -1
  51. package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +2 -2
  52. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
  53. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +183 -1
  54. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +2 -2
  55. package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +2 -2
  56. package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
  57. package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +2 -2
  58. package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +2 -2
  59. package/esm2022/lib/sharedComponents/policy-template/constants/template.constant.mjs +2 -2
  60. package/esm2022/lib/sharedComponents/program-list/constant.mjs +16 -0
  61. package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
  62. package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
  63. package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +20 -0
  64. package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +183 -0
  65. package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +47 -0
  66. package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
  67. package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
  68. package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +2 -2
  69. package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +2 -2
  70. package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +2 -2
  71. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +2 -2
  72. package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +2 -2
  73. package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +2 -2
  74. package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +2 -2
  75. package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +2 -2
  76. package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -2
  77. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
  78. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +19 -0
  79. package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +2 -2
  80. package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +2 -2
  81. package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +2 -2
  82. package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +2 -2
  83. package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +2 -2
  84. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +264 -139
  85. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +5 -31
  86. package/esm2022/lib/workflow-engine.module.mjs +13 -6
  87. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +2 -2
  88. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +2 -2
  89. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +2 -2
  90. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +2 -2
  91. package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +2 -2
  92. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +2 -2
  93. package/esm2022/lib/workflow-program/workflow-program.component.mjs +84 -241
  94. package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +2 -2
  95. package/esm2022/lib/workflow-services/programs.service.mjs +28 -112
  96. package/esm2022/lib/workflow-services/responsibility.service.mjs +9 -9
  97. package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +2 -2
  98. package/fesm2022/vcomply-workflow-engine.mjs +3512 -3101
  99. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  100. package/lib/constants/api.constants.d.ts +7 -0
  101. package/lib/constants/mock.d.ts +15 -0
  102. package/lib/interfaces/frequency.interface.d.ts +37 -0
  103. package/lib/interfaces/responsibilty.interface.d.ts +1 -1
  104. package/lib/sharedComponents/frequency/frequency.service.d.ts +30 -0
  105. package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
  106. package/lib/sharedComponents/program-list/constant.d.ts +9 -0
  107. package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
  108. package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
  109. package/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
  110. package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +46 -0
  111. package/lib/sharedComponents/program-list/program-list.module.d.ts +14 -0
  112. package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
  113. package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
  114. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
  115. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
  116. package/lib/workflow-compliance/workflow-compliance.component.d.ts +32 -4
  117. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
  118. package/lib/workflow-engine.module.d.ts +42 -40
  119. package/lib/workflow-program/workflow-program.component.d.ts +6 -4
  120. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  121. package/lib/workflow-services/programs.service.d.ts +13 -53
  122. package/package.json +1 -1
  123. package/esm2022/lib/constants/assessts.constants.mjs +0 -57
  124. /package/lib/constants/{assessts.constants.d.ts → assets.constants.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Component, Output, EventEmitter, Input, } from '@angular/core';
2
- import { ASSETS } from 'projects/vx-workflow-engine/src/lib/constants/assessts.constants';
2
+ import { ASSETS } from '../../constants/assets.constants';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../workflow-services/responsibility.service";
5
5
  import * as i2 from "../../workflow-services/policy.service";
@@ -312,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
312
312
  }], formatEvidanceData: [{
313
313
  type: Input
314
314
  }] } });
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQzs7Ozs7Ozs7O0FBTzFGLE1BQU0sT0FBTywwQkFBMEI7SUFNckMsSUFBYSxrQkFBa0IsQ0FBQyxLQUFVO1FBQ3hDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFHRCxZQUNVLHFCQUE0QyxFQUM1QyxhQUE0QixFQUM1QixXQUF3QjtRQUZ4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZmxDLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDTixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFNbkMsc0JBQWlC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ZSxHQUFHLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYTthQUNmLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNwQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JELFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDekMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUM1QixPQUFPLEVBQUUsQ0FBQztnQkFDVixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsU0FBUyxFQUFFLENBQUM7YUFDYixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVTVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwwT0NsQnZDLGkwV0F1U0E7OzRGRHJSYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCO2tLQU16QixXQUFXO3NCQUFwQixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ08sa0JBQWtCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJ3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2NvbnN0YW50cy9hc3Nlc3N0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybWF0LWFuZC1ldmlkZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtYXQtYW5kLWV2aWRlbmNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQubGVzcycsICcuLi8uLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1hdEFuZEV2aWRlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBAT3V0cHV0KCkgdXBkYXRlRmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIG1vZGUgPSAnJztcbiAgQElucHV0KCkgY2F0ZWdvcmllczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgb3JnYW5pemF0aW9uX2lkOiBhbnkgPSAnJztcbiAgQElucHV0KCkgc2V0IGZvcm1hdEV2aWRhbmNlRGF0YSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKHZhbHVlLCAnbm90IG5nIG9uIGluaXQnKTtcbiAgICB9XG4gIH1cbiAgaXNOZXdMaW5rRGlzYWJsZWQgPSBmYWxzZTtcbiAgaXNFZGl0RGlzYWJsZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIGZvcm1hdGU6IGFueSA9IHtcbiAgICBoYXNVcGxvYWRGb3JtYXRlOiBmYWxzZSxcbiAgICBmb3JtYXRlVHlwZTogJ0ZJTEUnLCAvLyBMSU5LXG4gICAgaXNFdmlkZW5jZVJlcXVpcmVkOiBmYWxzZSxcbiAgICBsaW5rczogW10sXG4gICAgZmlsZXM6IFtdLFxuICAgIHVwbG9hZEluUHJvZ3Jlc3M6IHt9LFxuICB9O1xuXG4gIG5ld0xpbmsgPSB7XG4gICAgbGluazogJycsXG4gICAgY29udGFpbnNFcnJvcjogZmFsc2UsXG4gIH07XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSh0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YSwgJ25nIG9uIGluaXQnKTtcbiAgICB9XG4gIH1cblxuICBpbml0aWFsaXplRGF0YShzZXR0aW5nczogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSA9IHNldHRpbmdzPy5mb3JtYXRSZXF1aXJlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPVxuICAgICAgc2V0dGluZ3M/LmZvcm1hdExpbmtzPy5sZW5ndGggPiAwID8gJ0xJTksnIDogJ0ZJTEUnO1xuICAgIHRoaXMuZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPSBzZXR0aW5ncz8uZXZpZGVuY2VSZXF1aXJlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmZvcm1hdGUubGlua3MgPSB0aGlzLmFycmF5dG9MaW5rT2JqZWN0KHNldHRpbmdzPy5mb3JtYXRMaW5rcykgPz8gW107XG4gICAgaWYgKHRoaXMubW9kZSA9PSAncmVwb3J0QUNhc2UnKSB7XG4gICAgICB0aGlzLmZvcm1hdGUuZmlsZXMgPSBzZXR0aW5ncztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXRlLmZpbGVzID0gc2V0dGluZ3M/LmZvcm1hdEZpbGVzID8/IFtdO1xuICAgIH1cbiAgfVxuICB0b2dnbGVJc0Zvcm1hdGVVcGxvYWQoc3RhdHVzOiBib29sZWFuKSB7XG4gICAgaWYgKHN0YXR1cyA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgdG9nZ2xlSXNGb3JtYXRSZXF1aXJlZChzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICBpZiAoc3RhdHVzID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgdG9nZ2xlQXR0YWNobWVudFR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID0gdHlwZTtcbiAgICBpZiAodHlwZSA9PT0gJ0xJTksnICYmIHRoaXMuZm9ybWF0ZS5saW5rcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIFRPRE9cbiAgICB9XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIGluc2VydExpbmsobW9kZTogYW55LCBpbmRleDogbnVtYmVyID0gLTEpIHtcbiAgICAvLyBjb25zdCB1cmxSZWdleCA9IG5ldyBSZWdFeHAoJyhodHRwcz86Ly8pPyhbXFxcXGRhLXouLV0rKVxcXFwuKFthLXouXXsyLDZ9KVsvXFxcXHcgLi1dKi8/Jyk7XG4gICAgY29uc3QgdXJsUmVnZXggPVxuICAgICAgLyhodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldW2EtekEtWjAtOS1dK1thLXpBLVowLTldXFwuW15cXHNdezIsfXxodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV0rXFwuW15cXHNdezIsfXx3d3dcXC5bYS16QS1aMC05XStcXC5bXlxcc117Mix9KS9naTtcbiAgICBpZiAobW9kZSA9PT0gJ0NSRUFURScpIHtcbiAgICAgIGlmICh0aGlzLm5ld0xpbmsubGluay5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5yZXNldE5ld0xpbmsoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNWYWxpZCA9IHVybFJlZ2V4LnRlc3QodGhpcy5uZXdMaW5rLmxpbmspO1xuICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5uZXdMaW5rLmNvbnRhaW5zRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzLnB1c2godGhpcy5uZXdMaW5rKTtcbiAgICAgICAgdGhpcy5yZXNldE5ld0xpbmsoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdFRElUJykge1xuICAgICAgaWYgKHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0ubGluay5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xuICAgICAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1cmxSZWdleC50ZXN0KHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0ubGluayk7XG4gICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmNvbnRhaW5zRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc05ld0xpbmtEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRWRpdEVuYWJsZWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uY29udGFpbnNFcnJvciA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICBlZGl0TGluayhpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5pc0VkaXRpbmcgPSB0cnVlO1xuICAgIHRoaXMuaXNOZXdMaW5rRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xuICB9XG5cbiAgZGVsZXRlTGluayhpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtYXRlLmxpbmtzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5pc0VkaXRFbmFibGVkKCk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIHJlc2V0TmV3TGluaygpIHtcbiAgICB0aGlzLm5ld0xpbmsgPSB7XG4gICAgICBsaW5rOiAnJyxcbiAgICAgIGNvbnRhaW5zRXJyb3I6IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIG9uRmlsZURyb3BwZWQoZmlsZXM6IGFueSkge1xuICAgIEFycmF5LmZyb20oZmlsZXMpLmZvckVhY2goKGZpbGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdWlkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTQpO1xuICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUsIHVpZCk7XG4gICAgfSk7XG4gIH1cblxuICB1cGxvYWRGaWxlKGZpbGU6IGFueSwgdWlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1hdGUudXBsb2FkSW5Qcm9ncmVzc1t1aWRdID0gZmlsZS5uYW1lO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgaWYgKHRoaXMubW9kZSA9PSAncG9saWN5JyB8fCB0aGlzLm1vZGUgPT0gJ3BvbGljeVJldmlld2VyJykge1xuICAgICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XG4gICAgICB0aGlzLnBvbGljeVNlcnZpY2VcbiAgICAgICAgLmZpbGVVcGxvYWRXb3Jrcm9vbShmb3JtRGF0YSwgcGF0aClcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtYXRlLmZpbGVzLnB1c2goe1xuICAgICAgICAgICAgZmlsZXBhdGg6IHBhdGgsXG4gICAgICAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXG4gICAgICAgICAgICBmaWxlbmFtZTogZGF0YS5uYW1lLFxuICAgICAgICAgICAgb3JpZ2luYWxfZmlsZW5hbWU6IGRhdGEub3JnX2ZpbGUsXG4gICAgICAgICAgICBsaW5rU2V0OiAnJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkZWxldGUgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXTtcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2VcbiAgICAgICAgLnVwbG9hZFRvTm9kZShmb3JtRGF0YSwgJ3VwbG9hZEZvcm1hdCcgKyAnLycpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgIGZpbGVwYXRoOiAndXBsb2FkRm9ybWF0JyxcbiAgICAgICAgICAgIGZpbGVfbmFtZTogZGF0YS5vcmdfZmlsZSxcbiAgICAgICAgICAgIGZpbGVuYW1lOiBkYXRhLm5hbWUsXG4gICAgICAgICAgICBvcmlnaW5hbF9maWxlbmFtZTogZGF0YS5vcmdfZmlsZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkZWxldGUgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXTtcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZvcm1hdGUuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgZW1pdFZhbHVlKCkge1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3JlcG9ydEFDYXNlJykge1xuICAgICAgdGhpcy51cGRhdGVGaWxlcy5lbWl0KHRoaXMuZm9ybWF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScgfHwgdGhpcy5tb2RlID09ICdwb2xpY3lSZXZpZXdlcicpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGlzRm9ybWF0ZVVwbG9hZGVkOiB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSxcbiAgICAgICAgbGlua3M6XG4gICAgICAgICAgdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnTElOSydcbiAgICAgICAgICAgID8gdGhpcy5nZXRMaW5rc0FycmF5KFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rcz8ubGVuZ3RoID8gWy4uLnRoaXMuZm9ybWF0ZS5saW5rc10gOiBbXVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IFtdLFxuICAgICAgICBmaWxlczogdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRScgPyB0aGlzLmZvcm1hdGUuZmlsZXMgOiBbXSxcbiAgICAgICAgZm9ybWF0ZVR5cGU6IHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSxcbiAgICAgICAgaXNFdmlkZW5jZVJlcXVpcmVkOiB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkLFxuICAgICAgfTtcbiAgICAgIHBheWxvYWQubGlua3MgPSBwYXlsb2FkLmxpbmtzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gdW5kZWZpbmVkKTtcblxuICAgICAgdGhpcy51cGRhdGVGaWxlcy5lbWl0KHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICBpc0Zvcm1hdGVVcGxvYWRlZDogdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUsXG4gICAgICAgIGxpbmtzOlxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlICYmIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXG4gICAgICAgICAgICA/IHRoaXMuZ2V0TGlua3NBcnJheShbLi4udGhpcy5mb3JtYXRlLmxpbmtzXSlcbiAgICAgICAgICAgIDogW10sXG4gICAgICAgIGZpbGVzOlxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlICYmIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnXG4gICAgICAgICAgICA/IHRoaXMuZm9ybWF0ZS5maWxlc1xuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgZm9ybWF0ZVR5cGU6IHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSxcbiAgICAgICAgaXNFdmlkZW5jZVJlcXVpcmVkOiB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkLFxuICAgICAgfTtcbiAgICAgIHBheWxvYWQubGlua3MgPSBwYXlsb2FkLmxpbmtzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMudXBkYXRlRmlsZXMuZW1pdChwYXlsb2FkKTtcbiAgICB9XG4gIH1cbiAgZ2V0TGlua3NBcnJheShsaW5rczogYW55KSB7XG4gICAgY29uc3QgbGluayA9IGxpbmtzLm1hcCgoZTogYW55KSA9PiB7XG4gICAgICBpZiAoZS5saW5rICYmICFlPy5jb250YWluc0Vycm9yICYmICFlPy5pc0VkaXRpbmcpIHtcbiAgICAgICAgcmV0dXJuIGUubGluaztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAobGluaz8ubGVuZ3RoIDw9IDEgJiYgbGlua1swXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFycmF5dG9MaW5rT2JqZWN0KGxpbmtzQXJyYXk6IGFueSkge1xuICAgIGlmIChsaW5rc0FycmF5KSB7XG4gICAgICBjb25zdCBsaW5rcyA9IGxpbmtzQXJyYXkubWFwKChlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgbGluazogZSwgY29udGFpbnNFcnJvcjogZmFsc2UsIGlzRWRpdGluZzogZmFsc2UgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbGlua3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBpc0VkaXRFbmFibGVkKCkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmZvcm1hdGUubGlua3MpIHtcbiAgICAgIGlmIChpdGVtLmlzRWRpdGluZyA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmlzRWRpdERpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0VkaXREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwb2xpY3lMaW5rU2V0TGlzdCA9IFtcbiAgICAvLyAnUG9saWN5IENoYXJ0ZXInLFxuICAgIC8vICdSZWxhdGVkIFBvbGljeSBEb2N1bWVudHMvT3RoZXIgUmVmZXJlbmNlcycsXG4gICAgLy8gJ1Byb2NlZHVyZXMgTGlua2VkIHRvIHRoaXMgUG9saWN5JyxcbiAgICAvLyAnSW1wbGVtZW50YXRpb24gR3VpZGVsaW5lcyBmb3IgdGhpcyBQb2xpY3knLFxuICAgIC8vICdUcmFpbmluZyBNYXRlcmlhbHMgZm9yIHRoaXMgUG9saWN5J1xuICAgICdDaGFydGVyJyxcbiAgICAnUmVsYXRlZCBEb2N1bWVudHMnLFxuICAgICdSZWZlcmVuY2UgTWF0ZXJpYWxzJyxcbiAgICAnUmVsYXRlZCBwcm9jZWR1cmVzJyxcbiAgICAnSW1wbGVtZW50YXRpb24gZ3VpZGVsaW5lcycsXG4gICAgJ1RyYWluaW5nIE1hdGVyaWFscycsXG4gICAgJ1JlZ3VsYXRvcnkgRG9jdW1lbnRzJyxcbiAgICAnT3RoZXInLFxuICBdO1xuICBzZWxlY3RlZExpbmtTZXRDaGFuZ2UoZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybWF0ZS5maWxlc1tpbmRleF0ubGlua1NldCA9IGV2ZW50O1xuICAgIGlmIChldmVudCA9PT0gJ090aGVyJyAmJiAhdGhpcy5mb3JtYXRlPy5maWxlc1tpbmRleF0/Lm90aGVycykge1xuICAgICAgdGhpcy5mb3JtYXRlLmZpbGVzW2luZGV4XS5vdGhlcnMgPSBbJyddO1xuICAgIH1cbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgYWRkTW9yZURvY3VtZW50c0RldGFpbHMoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybWF0ZS5maWxlc1tpbmRleF0ub3RoZXJzLnB1c2goJycpO1xuICB9XG5cbiAgdXBsb2FkUG9saWN5QXR0YWNobWVudHMoZm9ybURhdGE6IGFueSkge1xuICAgIGNvbnN0IHBhdGggPSAnby8nICsgdGhpcy5vcmdhbml6YXRpb25faWQgKyAnL3BvbGljeS8nO1xuICAgIHRoaXMucG9saWN5U2VydmljZVxuICAgICAgLmZpbGVVcGxvYWRXb3Jrcm9vbShmb3JtRGF0YSwgcGF0aClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICAgIGZpbGVfbmFtZTogZGF0YS5uYW1lLFxuICAgICAgICAgIG9yaWdpbmFsX2ZpbGVfbmFtZTogZGF0YS5vcmdfZmlsZSxcbiAgICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICAgIG9yZ2FuaXNhdGlvbl9pZDogdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpLFxuICAgICAgICAgIG1lbWJlcl9pZDogdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpLFxuICAgICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLmNhdGVnb3JpZXMsXG4gICAgICAgICAgY2xhcF9pZDogMCxcbiAgICAgICAgICBjb250cmFjdF90eXBlOiA0LFxuICAgICAgICAgIGZvbGRlcl9pZDogMCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXG4gIFtjbGFzcy5wb2xpY3ktdXBsb2FkLWZpbGVdPVwiWydwb2xpY3knLCAncmVwb3J0QUNhc2UnXT8uaW5jbHVkZXMobW9kZSlcIlxuPlxuICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCIgKm5nSWY9XCJtb2RlID09ICdyZXNwb25zaWJpbGl0eSdcIj5cbiAgICBGb3JtYXQgJiBFdmlkZW5jZVxuICA8L2xhYmVsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCJcbiAgICAqbmdJZj1cIlxuICAgICAgbW9kZSAhPSAncG9saWN5JyAmJiBtb2RlICE9ICdwb2xpY3lSZXZpZXdlcicgJiYgbW9kZSAhPSAncmVwb3J0QUNhc2UnXG4gICAgXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiXG4gICAgICA+RG8geW91IHdhbnQgdG8gdXBsb2FkIGEgZm9ybWF0IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5Pzwvc3BhblxuICAgID5cbiAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgW25hbWVdPVwiJ2Zvcm1hdF9yZXF1aXJlZCdcIlxuICAgICAgICBbY2hlY2tlZF09XCJmb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPT09IHRydWVcIlxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInRvZ2dsZUlzRm9ybWF0ZVVwbG9hZCh0cnVlKVwiXG4gICAgICAgID5ZZXM8L2FwcC1jcy1yYWRpb1xuICAgICAgPlxuICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICBbbmFtZV09XCInZm9ybWF0X3JlcXVpcmVkJ1wiXG4gICAgICAgIFtjaGVja2VkXT1cImZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSA9PT0gZmFsc2VcIlxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInRvZ2dsZUlzRm9ybWF0ZVVwbG9hZChmYWxzZSlcIlxuICAgICAgICA+Tm9cbiAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9ybS10YWJcIlxuICAgICpuZ0lmPVwiZm9ybWF0ZT8uaGFzVXBsb2FkRm9ybWF0ZSB8fCBtb2RlID09ICdwb2xpY3lSZXZpZXdlcidcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cImZvcm1hdGU/LmZvcm1hdGVUeXBlID09PSAnRklMRSdcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dGFjaG1lbnRUeXBlKCdGSUxFJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1hdGUubGlua3M/Lmxlbmd0aCA+IDBcIlxuICAgID5cbiAgICAgIEluc2VydCBGaWxlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cImZvcm1hdGU/LmZvcm1hdGVUeXBlID09PSAnTElOSydcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dGFjaG1lbnRUeXBlKCdMSU5LJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1hdGUuZmlsZXM/Lmxlbmd0aCA+IDBcIlxuICAgID5cbiAgICAgIEluc2VydCBMaW5rXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgKGZvcm1hdGU/Lmhhc1VwbG9hZEZvcm1hdGUgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnKSB8fFxuICAgICAgKG1vZGUgPT0gJ3BvbGljeScgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnKSB8fFxuICAgICAgKG1vZGUgPT0gJ3BvbGljeVJldmlld2VyJyAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRScpIHx8XG4gICAgICAobW9kZSA9PSAncmVwb3J0QUNhc2UnICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJylcbiAgICBcIlxuICA+XG4gICAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWZpbGUgdXBsb2FkIGluIHByb2dyZXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZm9ybWF0ZT8udXBsb2FkSW5Qcm9ncmVzcyB8IGtleXZhbHVlKS5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcbiAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgbGV0IGVhY2hGaWxlIG9mIGZvcm1hdGU/LnVwbG9hZEluUHJvZ3Jlc3MgfCBrZXl2YWx1ZTtcbiAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGUudmFsdWUgfX0gPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIjJcIj48L2FwcC1saW5lLWxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1maWxlIHVwbG9hZCBlbmRzIGhlcmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtYXRlLmZpbGVzPy5sZW5ndGggPiAwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSAhPSAncG9saWN5J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlYWNoRmlsZSBvZiBmb3JtYXRlLmZpbGVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBlYWNoRmlsZT8uZmlsZV9uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJtb2RlID09ICdwb2xpY3knXCJcbiAgICAgICAgY2xhc3M9XCJwb2xpY3ktcmVsYXRlZC1kb2N1bWVudC1maWVsZCB2eC1wLTMgdngtcHQtMlwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0yXCJcbiAgICAgICAgPlxuICAgICAgICAgIExJTksgVEhFIERPQ1VNRU5UIEFORCBTUEVDSUZZIFRIRSBSRUxBVElPTlNISVAgV0lUSCBUSElTIFBPTElDWVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0IHBvbGljeVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGZvcm1hdGUuZmlsZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImZpbGUgdGFibGUge3tcbiAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJylbXG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJyk/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmU7PC9pPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybWF0IHt7XG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJylbXG4gICAgICAgICAgICAgICAgICAgIGVhY2hGaWxlPy5maWxlX25hbWUuc3BsaXQoJy4nKT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGVhY2hGaWxlPy5maWxlX25hbWUuc3BsaXQoXCIuXCIpW1xuICAgICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KFwiLlwiKT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudChpKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Y3Mtc2VsZWN0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVhY2hGaWxlLmxpbmtTZXRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidEZWZpbmUgdGhlIGRvY3VtZW50XFwncyByZWxhdGlvbnNoaXAgdG8gdGhpcyBwb2xpY3knXCJcbiAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XG4gICAgICAgICAgICAgIHt7IGRhdGEgfX1cbiAgICAgICAgICAgIDwvY3Mtb3B0aW9uPlxuICAgICAgICAgIDwvY3Mtc2VsZWN0PlxuICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3RoZXIgb2YgZWFjaEZpbGU/Lm90aGVyczsgbGV0IGogPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiZWFjaEZpbGU/LmxpbmtTZXQgPT09ICdPdGhlciAoc3BlY2lmeSBvd24pJ1wiIFtuZ01vZGVsXT1cImVhY2hGaWxlLm90aGVyc1tqXVwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkTGlua1NldENoYW5nZSgnT3RoZXIgKHNwZWNpZnkgb3duKScsaSwgJGV2ZW50LCBqKVwiIGNsYXNzPVwibGlua2FnZS1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJUeXBlIHRoZSBsaW5rYWdlIGRldGFpbHNcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImVhY2hGaWxlPy5saW5rU2V0ID09PSAnT3RoZXIgKHNwZWNpZnkgb3duKSdcIiBjbGFzcz1cImxpbmthZ2UtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtYmx1ZSB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW10LTJcIiAoY2xpY2spPVwiYWRkTW9yZURvY3VtZW50c0RldGFpbHMoaSlcIj4rIEFERCBNT1JFPC9idXR0b24+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIiAqbmdJZj1cIm1vZGU9PSdwb2xpY3knXCI+XG4gICAgICAgICAgICAgICAgTElOSyBUSEUgRE9DVU1FTlQgQU5EIFNQRUNJRlkgVEhFIFJFTEFUSU9OU0hJUCBXSVRIIFRISVMgUE9MSUNZXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgZm9ybWF0ZS5maWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIm1vZGUhPSdwb2xpY3knXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBlYWNoRmlsZT8uZmlsZV9uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdCBwb2xpY3lcIiAqbmdJZj1cIm1vZGU9PSdwb2xpY3knXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e2VhY2hGaWxlPy5maWxlX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0gLSA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGNzLXNlbGVjdCBbKG5nTW9kZWwpXT1cImVhY2hGaWxlLmxpbmtTZXRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZExpbmtTZXRDaGFuZ2UoJGV2ZW50LGkpXCIgW3BsYWNlaG9sZGVyXT1cIidEZWZpbmUgdGhlIGRvY3VtZW50XFwncyByZWxhdGlvbnNoaXAgdG8gdGhpcyBwb2xpY3knXCIgbmFtZT1cInNlbGVjdGVkXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY3Mtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L2NzLXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZHJhZyBhbmQgZHJvcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFiLWdyb3VwXCJcbiAgICAgIFtjbGFzcy51cGxvYWRlZF09XCJmb3JtYXRlLmZpbGVzPy5sZW5ndGggPiAwXCJcbiAgICAgIGFwcERyYWdEcm9wXG4gICAgICAoZmlsZURyb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWQtZmlsZVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiQVNTRVRTLnVwbG9hZFwiIGFsdD1cIlwiIGNsYXNzPVwiaW1hZ2VcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnJvd3NlXCI+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSAhPSAncG9saWN5JyAmJiBtb2RlICE9ICdyZXBvcnRBQ2FzZSdcIlxuICAgICAgICAgICAgICA+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PSAncG9saWN5JyB8fCBtb2RlID09ICdyZXBvcnRBQ2FzZSdcIlxuICAgICAgICAgICAgICA+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgPkJyb3dzZVxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwibW9kZSE9J3BvbGljeSdcIj5Ecm9wIHlvdXIgZmlsZXMgaGVyZSAvPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1vZGU9PSdwb2xpY3knXCI+RHJhZyAmIGRyb3AgdG8gdXBsb2FkIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBvbGljeSAvPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+QnJvd3NlXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBtdWx0aXBsZSAoY2hhbmdlKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50LnRhcmdldC5maWxlcylcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZHJhZyBkcm9wIGVuZHMgaGVyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICAoZm9ybWF0ZT8uaGFzVXBsb2FkRm9ybWF0ZSAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnTElOSycpIHx8XG4gICAgICAobW9kZSA9PSAncG9saWN5UmV2aWV3ZXInICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdMSU5LJylcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1hdGUubGlua3MubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBmb3JtYXRlLmxpbmtzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIiFsaW5rLmlzRWRpdGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBsaW5rLmxpbmsgfX0gPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0VkaXREaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdExpbmsoaSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlTGluayhpKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluay5pc0VkaXRpbmdcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1saW5rXCJcbiAgICAgICAgICAgIGFwcEF1dG9mb2N1c1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB0aGUgbGluayBoZXJlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGluay5saW5rXCJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJpbnNlcnRMaW5rKCdFRElUJywgaSlcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaW5zZXJ0TGluaygnRURJVCcsIGkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibGluay5jb250YWluc0Vycm9yXCI+XG4gICAgICAgICAgICBQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgbGlua1xuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8aW5wdXRcbiAgICAgIFtkaXNhYmxlZF09XCJpc05ld0xpbmtEaXNhYmxlZFwiXG4gICAgICBjbGFzcz1cImVkaXQtbGlua1wiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cIm5ld0xpbmsubGlua1wiXG4gICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHRoZSBsaW5rIGhlcmVcIlxuICAgICAgKGZvY3Vzb3V0KT1cImluc2VydExpbmsoJ0NSRUFURScpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImluc2VydExpbmsoJ0NSRUFURScpXCJcbiAgICAvPlxuICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibmV3TGluay5jb250YWluc0Vycm9yXCI+XG4gICAgICBQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgbGlua1xuICAgIDwvcD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCIgKm5nSWY9XCJtb2RlID09ICdyZXNwb25zaWJpbGl0eSdcIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHRcIlxuICAgICAgPkRvIHlvdSB3YW50IGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgdGhlIHJlc3BvbnNpYmlsaXR5IHRvIGJlXG4gICAgICB1cGxvYWRlZD88L3NwYW5cbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XG4gICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgIFtuYW1lXT1cIidldmlkZW5jZV9yZXF1aXJlZCdcIlxuICAgICAgICBbY2hlY2tlZF09XCJmb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCA9PT0gdHJ1ZVwiXG4gICAgICAgIChjaGVja2VkRXZlbnQpPVwidG9nZ2xlSXNGb3JtYXRSZXF1aXJlZCh0cnVlKVwiXG4gICAgICAgID5ZZXM8L2FwcC1jcy1yYWRpb1xuICAgICAgPlxuICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICBbbmFtZV09XCInZXZpZGVuY2VfcmVxdWlyZWQnXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPT09IGZhbHNlXCJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKGZhbHNlKVwiXG4gICAgICAgID5Ob1xuICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTywwQkFBMEI7SUFNckMsSUFBYSxrQkFBa0IsQ0FBQyxLQUFVO1FBQ3hDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFHRCxZQUNVLHFCQUE0QyxFQUM1QyxhQUE0QixFQUM1QixXQUF3QjtRQUZ4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZmxDLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDTixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFNbkMsc0JBQWlC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ZSxHQUFHLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYTthQUNmLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNwQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JELFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDekMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUM1QixPQUFPLEVBQUUsQ0FBQztnQkFDVixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsU0FBUyxFQUFFLENBQUM7YUFDYixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVTVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwwT0NsQnZDLGkwV0F1U0E7OzRGRHJSYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCO2tLQU16QixXQUFXO3NCQUFwQixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ08sa0JBQWtCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm1hdC1hbmQtZXZpZGVuY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm1hdC1hbmQtZXZpZGVuY2UuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtYXRBbmRFdmlkZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgQE91dHB1dCgpIHVwZGF0ZUZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBtb2RlID0gJyc7XG4gIEBJbnB1dCgpIGNhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIG9yZ2FuaXphdGlvbl9pZDogYW55ID0gJyc7XG4gIEBJbnB1dCgpIHNldCBmb3JtYXRFdmlkYW5jZURhdGEodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSh2YWx1ZSwgJ25vdCBuZyBvbiBpbml0Jyk7XG4gICAgfVxuICB9XG4gIGlzTmV3TGlua0Rpc2FibGVkID0gZmFsc2U7XG4gIGlzRWRpdERpc2FibGVkID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXG4gICkge31cblxuICBmb3JtYXRlOiBhbnkgPSB7XG4gICAgaGFzVXBsb2FkRm9ybWF0ZTogZmFsc2UsXG4gICAgZm9ybWF0ZVR5cGU6ICdGSUxFJywgLy8gTElOS1xuICAgIGlzRXZpZGVuY2VSZXF1aXJlZDogZmFsc2UsXG4gICAgbGlua3M6IFtdLFxuICAgIGZpbGVzOiBbXSxcbiAgICB1cGxvYWRJblByb2dyZXNzOiB7fSxcbiAgfTtcblxuICBuZXdMaW5rID0ge1xuICAgIGxpbms6ICcnLFxuICAgIGNvbnRhaW5zRXJyb3I6IGZhbHNlLFxuICB9O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtYXRFdmlkYW5jZURhdGEpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEodGhpcy5mb3JtYXRFdmlkYW5jZURhdGEsICduZyBvbiBpbml0Jyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZURhdGEoc2V0dGluZ3M6IGFueSwgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSBzZXR0aW5ncz8uZm9ybWF0UmVxdWlyZWQgPz8gZmFsc2U7XG4gICAgdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID1cbiAgICAgIHNldHRpbmdzPy5mb3JtYXRMaW5rcz8ubGVuZ3RoID4gMCA/ICdMSU5LJyA6ICdGSUxFJztcbiAgICB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID0gc2V0dGluZ3M/LmV2aWRlbmNlUmVxdWlyZWQgPz8gZmFsc2U7XG4gICAgdGhpcy5mb3JtYXRlLmxpbmtzID0gdGhpcy5hcnJheXRvTGlua09iamVjdChzZXR0aW5ncz8uZm9ybWF0TGlua3MpID8/IFtdO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3JlcG9ydEFDYXNlJykge1xuICAgICAgdGhpcy5mb3JtYXRlLmZpbGVzID0gc2V0dGluZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybWF0ZS5maWxlcyA9IHNldHRpbmdzPy5mb3JtYXRGaWxlcyA/PyBbXTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlSXNGb3JtYXRlVXBsb2FkKHN0YXR1czogYm9vbGVhbikge1xuICAgIGlmIChzdGF0dXMgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIHRvZ2dsZUlzRm9ybWF0UmVxdWlyZWQoc3RhdHVzOiBib29sZWFuKSB7XG4gICAgaWYgKHN0YXR1cyA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIHRvZ2dsZUF0dGFjaG1lbnRUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9IHR5cGU7XG4gICAgaWYgKHR5cGUgPT09ICdMSU5LJyAmJiB0aGlzLmZvcm1hdGUubGlua3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBUT0RPXG4gICAgfVxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICBpbnNlcnRMaW5rKG1vZGU6IGFueSwgaW5kZXg6IG51bWJlciA9IC0xKSB7XG4gICAgLy8gY29uc3QgdXJsUmVnZXggPSBuZXcgUmVnRXhwKCcoaHR0cHM/Oi8vKT8oW1xcXFxkYS16Li1dKylcXFxcLihbYS16Ll17Miw2fSlbL1xcXFx3IC4tXSovPycpO1xuICAgIGNvbnN0IHVybFJlZ2V4ID1cbiAgICAgIC8oaHR0cHM/OlxcL1xcLyg/Ond3d1xcLnwoPyF3d3cpKVthLXpBLVowLTldW2EtekEtWjAtOS1dK1thLXpBLVowLTldXFwuW15cXHNdezIsfXx3d3dcXC5bYS16QS1aMC05XVthLXpBLVowLTktXStbYS16QS1aMC05XVxcLlteXFxzXXsyLH18aHR0cHM/OlxcL1xcLyg/Ond3d1xcLnwoPyF3d3cpKVthLXpBLVowLTldK1xcLlteXFxzXXsyLH18d3d3XFwuW2EtekEtWjAtOV0rXFwuW15cXHNdezIsfSkvZ2k7XG4gICAgaWYgKG1vZGUgPT09ICdDUkVBVEUnKSB7XG4gICAgICBpZiAodGhpcy5uZXdMaW5rLmxpbmsubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMucmVzZXROZXdMaW5rKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1cmxSZWdleC50ZXN0KHRoaXMubmV3TGluay5saW5rKTtcbiAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rcy5wdXNoKHRoaXMubmV3TGluayk7XG4gICAgICAgIHRoaXMucmVzZXROZXdMaW5rKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5ld0xpbmsuY29udGFpbnNFcnJvciA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChtb2RlID09PSAnRURJVCcpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmxpbmsubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmlzRWRpdEVuYWJsZWQoKTtcbiAgICAgICAgdGhpcy5pc05ld0xpbmtEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXJsUmVnZXgudGVzdCh0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmxpbmspO1xuICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5jb250YWluc0Vycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNOZXdMaW5rRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0VkaXRFbmFibGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmNvbnRhaW5zRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgZWRpdExpbmsoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmlzRWRpdEVuYWJsZWQoKTtcbiAgfVxuXG4gIGRlbGV0ZUxpbmsoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybWF0ZS5saW5rcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICByZXNldE5ld0xpbmsoKSB7XG4gICAgdGhpcy5uZXdMaW5rID0ge1xuICAgICAgbGluazogJycsXG4gICAgICBjb250YWluc0Vycm9yOiBmYWxzZSxcbiAgICB9O1xuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBhbnkpIHtcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHVpZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE0KTtcbiAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlLCB1aWQpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBsb2FkRmlsZShmaWxlOiBhbnksIHVpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXSA9IGZpbGUubmFtZTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScgfHwgdGhpcy5tb2RlID09ICdwb2xpY3lSZXZpZXdlcicpIHtcbiAgICAgIGNvbnN0IHBhdGggPSAnby8nICsgdGhpcy5vcmdhbml6YXRpb25faWQgKyAnL3BvbGljeS8nO1xuICAgICAgdGhpcy5wb2xpY3lTZXJ2aWNlXG4gICAgICAgIC5maWxlVXBsb2FkV29ya3Jvb20oZm9ybURhdGEsIHBhdGgpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgIGZpbGVwYXRoOiBwYXRoLFxuICAgICAgICAgICAgZmlsZV9uYW1lOiBkYXRhLm9yZ19maWxlLFxuICAgICAgICAgICAgZmlsZW5hbWU6IGRhdGEubmFtZSxcbiAgICAgICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBkYXRhLm9yZ19maWxlLFxuICAgICAgICAgICAgbGlua1NldDogJycsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XG4gICAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAgIC51cGxvYWRUb05vZGUoZm9ybURhdGEsICd1cGxvYWRGb3JtYXQnICsgJy8nKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1hdGUuZmlsZXMucHVzaCh7XG4gICAgICAgICAgICBmaWxlcGF0aDogJ3VwbG9hZEZvcm1hdCcsXG4gICAgICAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXG4gICAgICAgICAgICBmaWxlbmFtZTogZGF0YS5uYW1lLFxuICAgICAgICAgICAgb3JpZ2luYWxfZmlsZW5hbWU6IGRhdGEub3JnX2ZpbGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XG4gICAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlQXR0YWNobWVudChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtYXRlLmZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIGVtaXRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlID09ICdyZXBvcnRBQ2FzZScpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsZXMuZW1pdCh0aGlzLmZvcm1hdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09ICdwb2xpY3knIHx8IHRoaXMubW9kZSA9PSAncG9saWN5UmV2aWV3ZXInKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICBpc0Zvcm1hdGVVcGxvYWRlZDogdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUsXG4gICAgICAgIGxpbmtzOlxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXG4gICAgICAgICAgICA/IHRoaXMuZ2V0TGlua3NBcnJheShcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdGUubGlua3M/Lmxlbmd0aCA/IFsuLi50aGlzLmZvcm1hdGUubGlua3NdIDogW11cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgZmlsZXM6IHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnID8gdGhpcy5mb3JtYXRlLmZpbGVzIDogW10sXG4gICAgICAgIGZvcm1hdGVUeXBlOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUsXG4gICAgICAgIGlzRXZpZGVuY2VSZXF1aXJlZDogdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCxcbiAgICAgIH07XG4gICAgICBwYXlsb2FkLmxpbmtzID0gcGF5bG9hZC5saW5rcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHRoaXMudXBkYXRlRmlsZXMuZW1pdChwYXlsb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaXNGb3JtYXRlVXBsb2FkZWQ6IHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlLFxuICAgICAgICBsaW5rczpcbiAgICAgICAgICB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSAmJiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdMSU5LJ1xuICAgICAgICAgICAgPyB0aGlzLmdldExpbmtzQXJyYXkoWy4uLnRoaXMuZm9ybWF0ZS5saW5rc10pXG4gICAgICAgICAgICA6IFtdLFxuICAgICAgICBmaWxlczpcbiAgICAgICAgICB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSAmJiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJ1xuICAgICAgICAgICAgPyB0aGlzLmZvcm1hdGUuZmlsZXNcbiAgICAgICAgICAgIDogW10sXG4gICAgICAgIGZvcm1hdGVUeXBlOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUsXG4gICAgICAgIGlzRXZpZGVuY2VSZXF1aXJlZDogdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCxcbiAgICAgIH07XG4gICAgICBwYXlsb2FkLmxpbmtzID0gcGF5bG9hZC5saW5rcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQocGF5bG9hZCk7XG4gICAgfVxuICB9XG4gIGdldExpbmtzQXJyYXkobGlua3M6IGFueSkge1xuICAgIGNvbnN0IGxpbmsgPSBsaW5rcy5tYXAoKGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGUubGluayAmJiAhZT8uY29udGFpbnNFcnJvciAmJiAhZT8uaXNFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiBlLmxpbms7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGxpbms/Lmxlbmd0aCA8PSAxICYmIGxpbmtbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGluaztcbiAgICB9XG4gIH1cblxuICBhcnJheXRvTGlua09iamVjdChsaW5rc0FycmF5OiBhbnkpIHtcbiAgICBpZiAobGlua3NBcnJheSkge1xuICAgICAgY29uc3QgbGlua3MgPSBsaW5rc0FycmF5Lm1hcCgoZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGxpbms6IGUsIGNvbnRhaW5zRXJyb3I6IGZhbHNlLCBpc0VkaXRpbmc6IGZhbHNlIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGxpbmtzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaXNFZGl0RW5hYmxlZCgpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5mb3JtYXRlLmxpbmtzKSB7XG4gICAgICBpZiAoaXRlbS5pc0VkaXRpbmcgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5pc0VkaXREaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNFZGl0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcG9saWN5TGlua1NldExpc3QgPSBbXG4gICAgLy8gJ1BvbGljeSBDaGFydGVyJyxcbiAgICAvLyAnUmVsYXRlZCBQb2xpY3kgRG9jdW1lbnRzL090aGVyIFJlZmVyZW5jZXMnLFxuICAgIC8vICdQcm9jZWR1cmVzIExpbmtlZCB0byB0aGlzIFBvbGljeScsXG4gICAgLy8gJ0ltcGxlbWVudGF0aW9uIEd1aWRlbGluZXMgZm9yIHRoaXMgUG9saWN5JyxcbiAgICAvLyAnVHJhaW5pbmcgTWF0ZXJpYWxzIGZvciB0aGlzIFBvbGljeSdcbiAgICAnQ2hhcnRlcicsXG4gICAgJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcbiAgICAnUmVmZXJlbmNlIE1hdGVyaWFscycsXG4gICAgJ1JlbGF0ZWQgcHJvY2VkdXJlcycsXG4gICAgJ0ltcGxlbWVudGF0aW9uIGd1aWRlbGluZXMnLFxuICAgICdUcmFpbmluZyBNYXRlcmlhbHMnLFxuICAgICdSZWd1bGF0b3J5IERvY3VtZW50cycsXG4gICAgJ090aGVyJyxcbiAgXTtcbiAgc2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLmxpbmtTZXQgPSBldmVudDtcbiAgICBpZiAoZXZlbnQgPT09ICdPdGhlcicgJiYgIXRoaXMuZm9ybWF0ZT8uZmlsZXNbaW5kZXhdPy5vdGhlcnMpIHtcbiAgICAgIHRoaXMuZm9ybWF0ZS5maWxlc1tpbmRleF0ub3RoZXJzID0gWycnXTtcbiAgICB9XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIGFkZE1vcmVEb2N1bWVudHNEZXRhaWxzKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLm90aGVycy5wdXNoKCcnKTtcbiAgfVxuXG4gIHVwbG9hZFBvbGljeUF0dGFjaG1lbnRzKGZvcm1EYXRhOiBhbnkpIHtcbiAgICBjb25zdCBwYXRoID0gJ28vJyArIHRoaXMub3JnYW5pemF0aW9uX2lkICsgJy9wb2xpY3kvJztcbiAgICB0aGlzLnBvbGljeVNlcnZpY2VcbiAgICAgIC5maWxlVXBsb2FkV29ya3Jvb20oZm9ybURhdGEsIHBhdGgpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICBmaWxlX25hbWU6IGRhdGEubmFtZSxcbiAgICAgICAgICBvcmlnaW5hbF9maWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXG4gICAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgICBvcmdhbmlzYXRpb25faWQ6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKSxcbiAgICAgICAgICBtZW1iZXJfaWQ6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKSxcbiAgICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5jYXRlZ29yaWVzLFxuICAgICAgICAgIGNsYXBfaWQ6IDAsXG4gICAgICAgICAgY29udHJhY3RfdHlwZTogNCxcbiAgICAgICAgICBmb2xkZXJfaWQ6IDAsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIlxuICBbY2xhc3MucG9saWN5LXVwbG9hZC1maWxlXT1cIlsncG9saWN5JywgJ3JlcG9ydEFDYXNlJ10/LmluY2x1ZGVzKG1vZGUpXCJcbj5cbiAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiICpuZ0lmPVwibW9kZSA9PSAncmVzcG9uc2liaWxpdHknXCI+XG4gICAgRm9ybWF0ICYgRXZpZGVuY2VcbiAgPC9sYWJlbD5cbiAgPGRpdlxuICAgIGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiXG4gICAgKm5nSWY9XCJcbiAgICAgIG1vZGUgIT0gJ3BvbGljeScgJiYgbW9kZSAhPSAncG9saWN5UmV2aWV3ZXInICYmIG1vZGUgIT0gJ3JlcG9ydEFDYXNlJ1xuICAgIFwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInRleHRcIlxuICAgICAgPkRvIHlvdSB3YW50IHRvIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eT88L3NwYW5cbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XG4gICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgIFtuYW1lXT1cIidmb3JtYXRfcmVxdWlyZWQnXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID09PSB0cnVlXCJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdGVVcGxvYWQodHJ1ZSlcIlxuICAgICAgICA+WWVzPC9hcHAtY3MtcmFkaW9cbiAgICAgID5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgW25hbWVdPVwiJ2Zvcm1hdF9yZXF1aXJlZCdcIlxuICAgICAgICBbY2hlY2tlZF09XCJmb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPT09IGZhbHNlXCJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdGVVcGxvYWQoZmFsc2UpXCJcbiAgICAgICAgPk5vXG4gICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZvcm0tdGFiXCJcbiAgICAqbmdJZj1cImZvcm1hdGU/Lmhhc1VwbG9hZEZvcm1hdGUgfHwgbW9kZSA9PSAncG9saWN5UmV2aWV3ZXInXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmb3JtYXRlPy5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVBdHRhY2htZW50VHlwZSgnRklMRScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtYXRlLmxpbmtzPy5sZW5ndGggPiAwXCJcbiAgICA+XG4gICAgICBJbnNlcnQgRmlsZVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmb3JtYXRlPy5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVBdHRhY2htZW50VHlwZSgnTElOSycpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtYXRlLmZpbGVzPy5sZW5ndGggPiAwXCJcbiAgICA+XG4gICAgICBJbnNlcnQgTGlua1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChmb3JtYXRlPy5oYXNVcGxvYWRGb3JtYXRlICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcbiAgICAgIChtb2RlID09ICdwb2xpY3knICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcbiAgICAgIChtb2RlID09ICdwb2xpY3lSZXZpZXdlcicgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnKSB8fFxuICAgICAgKG1vZGUgPT0gJ3JlcG9ydEFDYXNlJyAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRScpXG4gICAgXCJcbiAgPlxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1maWxlIHVwbG9hZCBpbiBwcm9ncmVzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGZvcm1hdGU/LnVwbG9hZEluUHJvZ3Jlc3MgfCBrZXl2YWx1ZSkubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBlYWNoRmlsZSBvZiBmb3JtYXRlPy51cGxvYWRJblByb2dyZXNzIHwga2V5dmFsdWU7XG4gICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGVhY2hGaWxlLnZhbHVlIH19IDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZmlsZSB1cGxvYWQgZW5kcyBoZXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0ZS5maWxlcz8ubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT0gJ3BvbGljeSdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgZm9ybWF0ZS5maWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibW9kZSA9PSAncG9saWN5J1wiXG4gICAgICAgIGNsYXNzPVwicG9saWN5LXJlbGF0ZWQtZG9jdW1lbnQtZmllbGQgdngtcC0zIHZ4LXB0LTJcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiXG4gICAgICAgID5cbiAgICAgICAgICBMSU5LIFRIRSBET0NVTUVOVCBBTkQgU1BFQ0lGWSBUSEUgUkVMQVRJT05TSElQIFdJVEggVEhJUyBQT0xJQ1lcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdCBwb2xpY3lcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlYWNoRmlsZSBvZiBmb3JtYXRlLmZpbGVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlIHRhYmxlIHt7XG4gICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpW1xuICAgICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpPy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJlOzwvaT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1hdCB7e1xuICAgICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpW1xuICAgICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJyk/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KFwiLlwiKVtcbiAgICAgICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdChcIi5cIik/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGVhY2hGaWxlPy5maWxlX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGNzLXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkTGlua1NldENoYW5nZSgkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRGVmaW5lIHRoZSBkb2N1bWVudFxcJ3MgcmVsYXRpb25zaGlwIHRvIHRoaXMgcG9saWN5J1wiXG4gICAgICAgICAgICBuYW1lPVwic2VsZWN0ZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjcy1vcHRpb24gKm5nRm9yPVwibGV0IGRhdGEgb2YgcG9saWN5TGlua1NldExpc3RcIiBbdmFsdWVdPVwiZGF0YVwiPlxuICAgICAgICAgICAgICB7eyBkYXRhIH19XG4gICAgICAgICAgICA8L2NzLW9wdGlvbj5cbiAgICAgICAgICA8L2NzLXNlbGVjdD5cbiAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG90aGVyIG9mIGVhY2hGaWxlPy5vdGhlcnM7IGxldCBqID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImVhY2hGaWxlPy5saW5rU2V0ID09PSAnT3RoZXIgKHNwZWNpZnkgb3duKSdcIiBbbmdNb2RlbF09XCJlYWNoRmlsZS5vdGhlcnNbal1cIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZExpbmtTZXRDaGFuZ2UoJ090aGVyIChzcGVjaWZ5IG93biknLGksICRldmVudCwgailcIiBjbGFzcz1cImxpbmthZ2UtaW5wdXRcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVHlwZSB0aGUgbGlua2FnZSBkZXRhaWxzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlYWNoRmlsZT8ubGlua1NldCA9PT0gJ090aGVyIChzcGVjaWZ5IG93biknXCIgY2xhc3M9XCJsaW5rYWdlLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tdC0yXCIgKGNsaWNrKT1cImFkZE1vcmVEb2N1bWVudHNEZXRhaWxzKGkpXCI+KyBBREQgTU9SRTwvYnV0dG9uPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxuICAgICAgICAgICAgICAgIExJTksgVEhFIERPQ1VNRU5UIEFORCBTUEVDSUZZIFRIRSBSRUxBVElPTlNISVAgV0lUSCBUSElTIFBPTElDWVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGZvcm1hdGUuZmlsZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nSWY9XCJtb2RlIT0ncG9saWN5J1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QgcG9saWN5XCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3tlYWNoRmlsZT8uZmlsZV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtIC0gPGJ1dHRvbiBjbGFzcz1cImVkaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudChpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCxpKVwiIFtwbGFjZWhvbGRlcl09XCInRGVmaW5lIHRoZSBkb2N1bWVudFxcJ3MgcmVsYXRpb25zaGlwIHRvIHRoaXMgcG9saWN5J1wiIG5hbWU9XCJzZWxlY3RlZFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjcy1vcHRpb24gKm5nRm9yPVwibGV0IGRhdGEgb2YgcG9saWN5TGlua1NldExpc3RcIiBbdmFsdWVdPVwiZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NzLW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9jcy1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRyYWcgYW5kIGRyb3AgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRhYi1ncm91cFwiXG4gICAgICBbY2xhc3MudXBsb2FkZWRdPVwiZm9ybWF0ZS5maWxlcz8ubGVuZ3RoID4gMFwiXG4gICAgICBhcHBEcmFnRHJvcFxuICAgICAgKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkLWZpbGVcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cIkFTU0VUUy51cGxvYWRcIiBhbHQ9XCJcIiBjbGFzcz1cImltYWdlXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJyb3dzZVwiPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT0gJ3BvbGljeScgJiYgbW9kZSAhPSAncmVwb3J0QUNhc2UnXCJcbiAgICAgICAgICAgICAgPkRyb3AgeW91ciBmaWxlcyBoZXJlIC9cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT0gJ3BvbGljeScgfHwgbW9kZSA9PSAncmVwb3J0QUNhc2UnXCJcbiAgICAgICAgICAgICAgPkRyb3AgeW91ciBmaWxlcyBoZXJlIC9cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgID5Ccm93c2VcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVEcm9wcGVkKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cIm1vZGUhPSdwb2xpY3knXCI+RHJvcCB5b3VyIGZpbGVzIGhlcmUgLzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPkRyYWcgJiBkcm9wIHRvIHVwbG9hZCBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwb2xpY3kgLzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPkJyb3dzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgbXVsdGlwbGUgKGNoYW5nZSk9XCJvbkZpbGVEcm9wcGVkKCRldmVudC50YXJnZXQuZmlsZXMpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRyYWcgZHJvcCBlbmRzIGhlcmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgKGZvcm1hdGU/Lmhhc1VwbG9hZEZvcm1hdGUgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnKSB8fFxuICAgICAgKG1vZGUgPT0gJ3BvbGljeVJldmlld2VyJyAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnTElOSycpXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtYXRlLmxpbmtzLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZm9ybWF0ZS5saW5rczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nSWY9XCIhbGluay5pc0VkaXRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgbGluay5saW5rIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXNFZGl0RGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRMaW5rKGkpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUxpbmsoaSlcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmsuaXNFZGl0aW5nXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXQtbGlua1wiXG4gICAgICAgICAgICBhcHBBdXRvZm9jdXNcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgdGhlIGxpbmsgaGVyZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpbmsubGlua1wiXG4gICAgICAgICAgICAoZm9jdXNvdXQpPVwiaW5zZXJ0TGluaygnRURJVCcsIGkpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImluc2VydExpbmsoJ0VESVQnLCBpKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImxpbmsuY29udGFpbnNFcnJvclwiPlxuICAgICAgICAgICAgUGxlYXNlIGluc2VydCBhIHZhbGlkIGxpbmtcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGlucHV0XG4gICAgICBbZGlzYWJsZWRdPVwiaXNOZXdMaW5rRGlzYWJsZWRcIlxuICAgICAgY2xhc3M9XCJlZGl0LWxpbmtcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJuZXdMaW5rLmxpbmtcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB0aGUgbGluayBoZXJlXCJcbiAgICAgIChmb2N1c291dCk9XCJpbnNlcnRMaW5rKCdDUkVBVEUnKVwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJpbnNlcnRMaW5rKCdDUkVBVEUnKVwiXG4gICAgLz5cbiAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5ld0xpbmsuY29udGFpbnNFcnJvclwiPlxuICAgICAgUGxlYXNlIGluc2VydCBhIHZhbGlkIGxpbmtcbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiICpuZ0lmPVwibW9kZSA9PSAncmVzcG9uc2liaWxpdHknXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcbiAgICAgID5EbyB5b3Ugd2FudCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSByZXNwb25zaWJpbGl0eSB0byBiZVxuICAgICAgdXBsb2FkZWQ/PC9zcGFuXG4gICAgPlxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxuICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICBbbmFtZV09XCInZXZpZGVuY2VfcmVxdWlyZWQnXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPT09IHRydWVcIlxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInRvZ2dsZUlzRm9ybWF0UmVxdWlyZWQodHJ1ZSlcIlxuICAgICAgICA+WWVzPC9hcHAtY3MtcmFkaW9cbiAgICAgID5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgW25hbWVdPVwiJ2V2aWRlbmNlX3JlcXVpcmVkJ1wiXG4gICAgICAgIFtjaGVja2VkXT1cImZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID09PSBmYWxzZVwiXG4gICAgICAgIChjaGVja2VkRXZlbnQpPVwidG9nZ2xlSXNGb3JtYXRSZXF1aXJlZChmYWxzZSlcIlxuICAgICAgICA+Tm9cbiAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { HttpParams } from '@angular/common/http';
2
2
  import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
3
3
  import { Subject, takeUntil } from 'rxjs';
4
- import { ASSETS } from '../../constants/assessts.constants';
4
+ import { ASSETS } from '../../constants/assets.constants';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../workflow-services/responsibility.service";
7
7
  import * as i2 from "@angular/common";
@@ -460,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
460
460
  type: ViewChild,
461
461
  args: ['searchCategory']
462
462
  }] } });
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmFtZXdvcmstbGlzdC9mcmFtZXdvcmstbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyYW1ld29yay1saXN0L2ZyYW1ld29yay1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU8xQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLHNCQUFzQjtJQXdHakMsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUF2R2hFLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFZCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENB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QUF0QixzQkFBc0IsNnVCQ3pCbkMsaXdRQXdOQTs7NEZEL0xhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7NEdBV0osY0FBYztzQkFBdkMsU0FBUzt1QkFBQyxhQUFhO2dCQUNkLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0Usc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFxQ0csTUFBTTtzQkFBZCxLQUFLO2dCQVNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNLLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQge1xuICBTZWxlY3RlZElkcyxcbiAgU2VsZWN0ZWRWYWx1ZXMsXG59IGZyb20gJy4vZnJhbWV3b3JrLWludGVncmF0aW9uLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFyZW50VGFibGVDb21wb25lbnQgfSBmcm9tICcuL3BhcmVudC10YWJsZS9wYXJlbnQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hc3Nlc3N0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJhbWV3b3JrLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJhbWV3b3JrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmFtZXdvcmstbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmFtZXdvcmtMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGJyZWFkQ3J1bWI6IGFueVtdID0gW107XG4gIHNlYXJjaCA9ICcnO1xuICBzaG93UGFyZW50ID0gdHJ1ZTtcbiAgc2hvd0NoaWxkID0gZmFsc2U7XG4gIHBhcmVudERhdGE6IG9iamVjdCA9IHt9O1xuICBAVmlld0NoaWxkKCdwYXJlbnRUYWJsZScpIHRhYmxlQ29tcG9uZW50ITogUGFyZW50VGFibGVDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBlbnRydXN0RnJhbWV3b3JrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VGcmFtZXdvcmsgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhc3NpZ25Db250cm9sID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBwcmV2aW91c1NlbGVjdGVkVmFsdWVzITogYW55O1xuICBASW5wdXQoKSBoZWFkZXJUZXh0OiBzdHJpbmcgPSAnU2VsZWN0IEZyb20gYSBGcmFtZXdvcmsnO1xuICBASW5wdXQoKSB3b3JrZmxvd1BhZ2U6IEFycmF5PHN0cmluZz4gPSBbXG4gICAgJ0ZSQU1FV09SSycsXG4gICAgJ0NBVEVHT1JZJyxcbiAgICAnUkVTUE9OU0lCSUxJVFknLFxuICBdO1xuICBzdWJDYXRlZ29yaWVzTGlzdCA9IHtcbiAgICBmcm9tOiAxLFxuICAgIHRvOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIHRvdGFsUGFnZXM6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGRhdGE6IFtdLFxuICB9O1xuICByZXNwb25zaWJpbGl0aWVzTGlzdCA9IHtcbiAgICBmcm9tOiAxLFxuICAgIHRvOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIHRvdGFsUGFnZXM6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGRhdGE6IFtdLFxuICB9O1xuXG4gIHNlYXJjaFRleHQgPSB7XG4gICAgZnJhbWVXb3JrOiAnJyxcbiAgICBjYXRlZ29yeTogJycsXG4gICAgcmVzcG9uc2liaWxpdHk6ICcnLFxuICB9O1xuXG4gIHNlbGVjdGVkVmFsdWVzOiBTZWxlY3RlZFZhbHVlcyA9IHtcbiAgICBmcmFtZXdvcms6IHt9LFxuICAgIGNhdGVnb3JpZXM6IHt9LFxuICAgIHJlc3BvbnNpYmlsaXRpZXM6IHt9LFxuICB9O1xuXG4gIHN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcbiAgY3VycmVudENhdGVnb3J5OiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBwb2xpY3k6IGFueSA9IHt9O1xuICAvLyBAT3V0cHV0KCkgY2hhbmdlVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlITogYW55O1xuICBsb2FkZXIgPSBmYWxzZTtcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vcHJvZ3JhbVxuICBzdWJMaXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZyYW1lV29ya0xpc3Q6IGFueTtcbiAgLy8gQElucHV0KCkgYWxsUHJvZ3JhbXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkRnJhbWVXb3JrITogYW55O1xuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEZpZWxkJykgc2VhcmNoZmllbGQhOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaENhdGVnb3J5Jykgc2VhcmNoQ2F0ZWdvcnkhOiBhbnk7XG5cbiAgZnJhbWV3b3JrRGF0YSA9IHtcbiAgICBkYXRhOiBbXSxcbiAgICBmcm9tOiAwLFxuICAgIHRvOiAwLFxuICAgIHRvdGFsUGFnZXM6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICB9O1xuICBmcmFtZXdvcmtDb3VudCA9IHtcbiAgICByZWd1bGF0aW9uczogMCxcbiAgICBzdGFuZGFyZHM6IDAsXG4gICAgaW50ZXJuYWxDb250cm9sczogMCxcbiAgICBvdGhlcnM6IDAsXG4gIH07XG4gIGZyYW1lVHlwZU9iamVjdCA9IHtcbiAgICByZWd1bGF0aW9uczogMSxcbiAgICBzdGFuZGFyZHM6IDIsXG4gICAgaW50ZXJuYWxDb250cm9sczogMyxcbiAgICBvdGhlcnM6IDAsXG4gIH07XG4gIHBsYWNlaG9sZGVyVGV4dCA9IHtcbiAgICBmcmFtZXdvcms6ICdTZWFyY2ggRnJhbWV3b3JrcycsXG4gICAgY2F0ZWdvcmllczogJ1NlYXJjaCBDYXRlZ29yaWVzJyxcbiAgICByZXNwb25zaWJpbGl0aWVzOiAnU2VhcmNoIFJlc3BvbnNpYmlsaXRpZXMnLFxuICB9O1xuICBjb250cm9sc0xpc3Q6IGFueVtdID0gW107XG4gIGRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XG5cbiAgYWN0aXZlVGFiOiAncmVndWxhdGlvbnMnIHwgJ3N0YW5kYXJkcycgfCAnaW50ZXJuYWxDb250cm9scycgfCAnb3RoZXJzJyA9XG4gICAgJ3JlZ3VsYXRpb25zJztcblxuICBjdXJyZW50TGlzdDogJ2ZyYW1ld29yaycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycgPSAnZnJhbWV3b3JrJztcbiAgZmxvYXRpbmdCYXJEaXNwbGF5S2V5cyA9IHtcbiAgICBmcmFtZXdvcms6ICduYW1lJyxcbiAgICBjYXRlZ29yaWVzOiAnbmFtZScsXG4gICAgcmVzcG9uc2liaWxpdGllczogJ25hbWUnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB7XG4gICAgICAgIGZyYW1ld29yazogdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzLmZyYW1ld29yayA/PyB7fSxcbiAgICAgICAgY2F0ZWdvcmllczogdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPz8ge30sXG4gICAgICAgIHJlc3BvbnNpYmlsaXRpZXM6IHRoaXMucHJldmlvdXNTZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID8/IHt9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRGcmFtZXdvcmtzQ291bnQoKTtcbiAgICB0aGlzLmdldEZyYW1ld29ya3NMaXN0KCk7XG4gIH1cblxuICBleHBhbmRDYXRlZ29yeShjYXRlZ29yeTogYW55KSB7XG4gICAgaWYgKGNhdGVnb3J5LmNhdGVnb3J5X25hbWUpIHtcbiAgICAgIHRoaXMuYnJlYWRDcnVtYiA9IFtdO1xuICAgICAgY2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZS5mb3JFYWNoKChjYXRlZ29yeUl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgICBsZXQgb2JqO1xuICAgICAgICBpZiAoaW5kZXggPT0gY2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgb2JqID0ge1xuICAgICAgICAgICAgaXRlbU5hbWU6IGNhdGVnb3J5SXRlbSxcbiAgICAgICAgICAgIGl0ZW1JZDogY2F0ZWdvcnkuX2lkLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqID0ge1xuICAgICAgICAgICAgaXRlbU5hbWU6IGNhdGVnb3J5SXRlbSxcbiAgICAgICAgICAgIGl0ZW1JZDogY2F0ZWdvcnkucGFyZW50X2NhdF9vYmpfaWRzW2luZGV4XSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYi5wdXNoKG9iaik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBlbnRydXN0RnJhbWV3b3JrRGV0YWlscyhyZXBvcnQ6IGFueSkge1xuICAgIHRoaXMuZW50cnVzdEZyYW1ld29yay5lbWl0KHJlcG9ydCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZUZyYW1ld29yay5lbWl0KCk7XG4gIH1cblxuICBnZXRGcmFtZXdvcmtzQ291bnQoZGF0YT86IGFueSkge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChkYXRhPy5zZWFyY2ggfHwgdGhpcy5zZWFyY2hUZXh0LmZyYW1lV29yaykge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoJywgdGhpcy5zZWFyY2hUZXh0LmZyYW1lV29yayk7XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0RnJhbWVXb3JrQ291bnQocGFyYW1zKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrQ291bnQgPSB7XG4gICAgICAgICAgICByZWd1bGF0aW9uczogcmVzLnJlZ3VsYXRpb25zID8/IDAsXG4gICAgICAgICAgICBzdGFuZGFyZHM6IHJlcy5zdGFuZGFyZHMgPz8gMCxcbiAgICAgICAgICAgIGludGVybmFsQ29udHJvbHM6IHJlcy5pbnRlcm5hbENvbnRyb2xzID8/IDAsXG4gICAgICAgICAgICBvdGhlcnM6IHJlcy5vdGhlcnMgPz8gMCxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICAgIH0pO1xuICB9XG4gIGdldEZyYW1ld29ya3NMaXN0KGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgndHlwZScsIHRoaXMuZnJhbWVUeXBlT2JqZWN0W3RoaXMuYWN0aXZlVGFiXSk7XG4gICAgaWYgKGRhdGE/LnNlYXJjaCB8fCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZScsIHRoaXMuZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0RnJhbWVXb3JrTGlzdChwYXJhbXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5mcmFtZXdvcmtEYXRhLmRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEuZnJvbSA9IHJlcy5pdGVtc19mcm9tO1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrRGF0YS50byA9IHJlcy5pdGVtc190bztcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcztcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zO1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRTdWJDYXRlZ29yaWVzKGlkPzogYW55LCBkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChkYXRhPy5zZWFyY2ggfHwgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5KSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQuY2F0ZWdvcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlJywgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0RnJhbWV3b3JrU3ViQ2F0ZWdvcmllcyhpZCwgcGFyYW1zKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuZnJvbSA9IHJlcy5pdGVtc19mcm9tID8/IDE7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC50byA9IHJlcy5pdGVtc190byA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcyA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuICBjaGFuZ2VUYWIodHlwZTogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycycpIHtcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHR5cGU7XG4gICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrID0gJyc7XG4gICAgdGhpcy5zZWFyY2hmaWVsZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5nZXRGcmFtZXdvcmtzTGlzdCgpO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdGllcyhpZD86IGFueSwgZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoJywgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZScsIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZVxuICAgICAgLmdldEZyYW1ld29ya0NvbnRyb2xzKGlkLCBwYXJhbXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sc0xpc3QgPSByZXM7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tID0gcmVzLml0ZW1zX2Zyb20gPz8gMTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvID0gcmVzLml0ZW1zX3RvID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2VzID0gcmVzLnRvdGFsX3BhZ2VzID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFJlY29yZHMgPSByZXMudG90YWxfaXRlbXMgPz8gMDtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGEgPSByZXMuZGF0YSA/PyByZXM7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UoXG4gICAgZXZlbnQ6IGFueSxcbiAgICB0eXBlOiAnZnJhbWV3b3JrcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcydcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdmcmFtZXdvcmtzJzpcbiAgICAgICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldFN1YkNhdGVnb3JpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8uY2hpbGRfbGlzdF9kZXRhaWxzLmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy50b3RhbENvbnRyb2xzID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLl9pZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNlYXJjaEJ5KGV2ZW50OiBhbnksIHR5cGU6ICdmcmFtZXdvcmsnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LmZyYW1lV29yayA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgICAgdGhpcy5nZXRGcmFtZXdvcmtzQ291bnQoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0U3ViQ2F0ZWdvcmllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQsIHtcbiAgICAgICAgICAgIHNlYXJjaDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ID0gZXZlbnQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5jaGlsZF9saXN0X2RldGFpbHMubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8udG90YWxDb250cm9scyA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdldFN1YkNhdGVnb3JpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLl9pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEZyYW1ld29yayhkYXRhOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrID0gZGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IGRhdGE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNhdmUoKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLndvcmtmbG93UGFnZT8ubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgdGhpcy53b3JrZmxvd1BhZ2UuaW5jbHVkZXMoJ0ZSQU1FV09SSycpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGZyYW1ld29ya0RldGFpbHMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yaztcbiAgICAgICAgICB0aGlzLmFzc2lnbkNvbnRyb2wuZW1pdCh7XG4gICAgICAgICAgICBuYW1lOiBmcmFtZXdvcmtEZXRhaWxzPy5uYW1lLFxuICAgICAgICAgICAgX2lkOiBmcmFtZXdvcmtEZXRhaWxzPy5faWQsXG4gICAgICAgICAgICB0eXBlOiBmcmFtZXdvcmtEZXRhaWxzPy5mcmFtZXdvcmtfdHlwZSxcbiAgICAgICAgICAgIGlkOiBmcmFtZXdvcmtEZXRhaWxzPy5pZCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBmcmFtZXdvcmtEZXRhaWxzPy5kZXNjcmlwdGlvbiA/PyAnJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LmNoaWxkX2xpc3RfZGV0YWlscy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy50b3RhbENvbnRyb2xzID4gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdyZXNwb25zaWJpbGl0aWVzJztcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrLl9pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuX2lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5hc3NpZ25TZWxlY3RlZENvbnRyb2wodGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIHRoaXMuY2xvc2VGcmFtZXdvcmsuZW1pdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2ZyYW1ld29yayc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5jaGlsZF9saXN0X2RldGFpbHMubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnRvdGFsQ29udHJvbHMgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnZnJhbWV3b3JrJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJlc2V0UGFnaW5hdGlvbigpIHtcbiAgICB0aGlzLmZyYW1ld29ya0RhdGEuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UgPSAxO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50TGlzdCkge1xuICAgICAgY2FzZSAnZnJhbWV3b3JrJzpcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsgPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzYXZlQ2hhbmdlcyhcbiAgICB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnIHwgJ3Byb2dyYW1zT25seSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgLy8gdGhpcy5zdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYXNzaWduU2VsZWN0ZWRDb250cm9sKGRhdGE6IGFueSkge1xuICAgIGxldCBzZWxlY3RlZEZyYW1ld29ya0RhdGEgPSB0aGlzLnNlbGVjdGVkVmFsdWVzO1xuICAgIHRoaXMuYXNzaWduQ29udHJvbC5lbWl0KHsgZGF0YSwgc2VsZWN0ZWRGcmFtZXdvcmtEYXRhIH0pO1xuICB9XG59XG4iLCI8IS0tIDxwPmZyYW1ld29yay1saXN0IHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3RcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclRleHQgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdjYXRlZ29yaWVzJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclRleHQgfX0gPiB7eyBzZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5uYW1lIH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdyZXNwb25zaWJpbGl0aWVzJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZ29CYWNrKClcIj4mI3hlOTFkOzwvaT5cbiAgICAgIHt7IHNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/Lm5hbWUgfX1cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gPGRpdiAqbmdJZj1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cImJyZWFkQ3J1bWI/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZCgpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyZWFkQ3J1bWI7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCI+e3soaT4wKT8nPic6Jyd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGlua109XCJ0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5IHx8ICghKHRhYmxlQ29tcG9uZW50LmN1cnJlbnRFbnRpdHkpICYmIGkgIT09IGJyZWFkQ3J1bWI/Lmxlbmd0aCAtMSlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZChpdGVtLml0ZW1JZClcIiBbYXBwVG9vbHRpcF09XCJpdGVtLml0ZW1OYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCI+e3tpdGVtLml0ZW1OYW1lfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29tcG9uZW50LmN1cnJlbnRFbnRpdHlcIj4gPHNwYW4gY2xhc3M9XCJhcnJvd1wiPj48L3NwYW4+XG4gICAgICAgICAgICAgICAge3ticmVhZENydW1iW2JyZWFkQ3J1bWI/Lmxlbmd0aCAtIDFdLml0ZW1OYW1lfX1cbiAgICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDtmb3Ige3t0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5fX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmQtcm93XCIgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJ1wiPlxuICAgICAgPCEtLXRoaXMgc2VjdGlvbiB3aWxsIG5vdCBhcHBlYXIgb24gY2hpbGQgcGFydCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKCdyZWd1bGF0aW9ucycpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICA8bGFiZWw+UmVndWxhdGlvbnM8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBmcmFtZXdvcmtDb3VudC5yZWd1bGF0aW9ucyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZpbHRlci1jYXJkXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKCdzdGFuZGFyZHMnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPlN0YW5kYXJkczwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBmcmFtZXdvcmtDb3VudC5zdGFuZGFyZHMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdpbnRlcm5hbENvbnRyb2xzJ1wiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWIoJ2ludGVybmFsQ29udHJvbHMnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPkludGVybmFsIENvbnRyb2xzPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7IGZyYW1ld29ya0NvdW50LmludGVybmFsQ29udHJvbHMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYignb3RoZXJzJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgIDxsYWJlbD5PdGhlcnM8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3sgZnJhbWV3b3JrQ291bnQub3RoZXJzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LXNlYXJjaFwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgI3NlYXJjaEZpZWxkXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRbY3VycmVudExpc3RdXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUsIGN1cnJlbnRMaXN0KVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGFwcC13b3JrZmxvdy1wYWdpbmF0aW9uPjwvYXBwLXdvcmtmbG93LXBhZ2luYXRpb24+IC0tPlxuICAgIDxhcHAtcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJyAmJiBmcmFtZXdvcmtEYXRhLnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgIFtzdGFydF09XCJmcmFtZXdvcmtEYXRhLmZyb21cIlxuICAgICAgW2VuZF09XCJmcmFtZXdvcmtEYXRhLnRvXCJcbiAgICAgIFt0b3RhbF09XCJmcmFtZXdvcmtEYXRhLnRvdGFsUmVjb3Jkc1wiXG4gICAgICBbcGFnZUNvdW50XT1cImZyYW1ld29ya0RhdGEudG90YWxQYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VdPVwiZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZVwiXG4gICAgICAoc2VsZWN0ZWRQYWdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50LCAnZnJhbWV3b3JrcycpXCJcbiAgICA+PC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8YXBwLXBhZ2luYXRpb25cbiAgICAgICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ2NhdGVnb3JpZXMnICYmIHN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgIFtzdGFydF09XCJzdWJDYXRlZ29yaWVzTGlzdC5mcm9tXCJcbiAgICAgIFtlbmRdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG9cIlxuICAgICAgW3RvdGFsXT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUmVjb3Jkc1wiXG4gICAgICBbcGFnZUNvdW50XT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXNcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cInN1YkNhdGVnb3JpZXNMaXN0LmN1cnJlbnRQYWdlXCJcbiAgICAgIChzZWxlY3RlZFBhZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQsICdjYXRlZ29yaWVzJylcIlxuICAgID48L2FwcC1wYWdpbmF0aW9uPlxuICAgIDxhcHAtcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgY3VycmVudExpc3QgPT0gJ3Jlc3BvbnNpYmlsaXRpZXMnICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZXMgPiAxXG4gICAgICBcIlxuICAgICAgW3N0YXJ0XT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIlxuICAgICAgW2VuZF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b1wiXG4gICAgICBbdG90YWxdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzXCJcbiAgICAgIFtwYWdlQ291bnRdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VdPVwicmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2VcIlxuICAgICAgKHNlbGVjdGVkUGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudCwgJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgPlxuICAgIDwvYXBwLXBhZ2luYXRpb24+XG4gICAgPCEtLSBGb3IgcGFyZW50IC0tPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LXBhZ2luYXRpb25cIj5cbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXBhZ2luYXRpb24+PC9hcHAtd29ya2Zsb3ctcGFnaW5hdGlvbj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICA8IS0tIFtjbGFzcy5uby1jYXJkXT1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRhYmxlIHZ4LW1iLTRcIlxuICAgICAgW2NsYXNzLm5vLWNhcmRdPVwiXG4gICAgICAgIGN1cnJlbnRMaXN0ID09ICdjYXRlZ29yaWVzJyB8fCBjdXJyZW50TGlzdCA9PSAncmVzcG9uc2liaWxpdGllcydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGFwcC1mcmFtZXdvcmstbGlzdC10YWJsZVxuICAgICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdmcmFtZXdvcmsnXCJcbiAgICAgICAgW2xpc3RMb2FkZXJdPVwibG9hZGVyXCJcbiAgICAgICAgW2ZyYW1ld29ya1R5cGVdPVwiJ2ZyYW1ld29yaydcIlxuICAgICAgICAoc2VsZWN0ZWRGcmFtZXdvcmspPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICBbY3VycmVudEZyYW1ld29ya109XCJzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF1cIlxuICAgICAgICBbZnJhbWV3b3Jrc0xpc3RdPVwiZnJhbWV3b3JrRGF0YVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstbGlzdC10YWJsZT5cbiAgICAgIDxhcHAtZnJhbWV3b3JrLWxpc3QtdGFibGVcbiAgICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnY2F0ZWdvcmllcydcIlxuICAgICAgICBbbGlzdExvYWRlcl09XCJsb2FkZXJcIlxuICAgICAgICBbZnJhbWV3b3Jrc0xpc3RdPVwic3ViQ2F0ZWdvcmllc0xpc3RcIlxuICAgICAgICAoc2VsZWN0ZWRGcmFtZXdvcmspPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICBbY3VycmVudEZyYW1ld29ya109XCJzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF1cIlxuICAgICAgICBbZnJhbWV3b3JrVHlwZV09XCInc3ViRnJhbWV3b3JrJ1wiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstbGlzdC10YWJsZT5cbiAgICAgIDxhcHAtZnJhbWV3b3JrLXJlc3BvbnNpYmlsaXR5LXRhYmxlXG4gICAgICAgICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ3Jlc3BvbnNpYmlsaXRpZXMnXCJcbiAgICAgICAgW2xpc3RMb2FkZXJdPVwibG9hZGVyXCJcbiAgICAgICAgW2N1cnJlbnRTZWxlY3RlZENvbnRyb2xdPVwic2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdXCJcbiAgICAgICAgW2NvbnRyb2xzTGlzdF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdFwiXG4gICAgICAgIChzZWxlY3RlZENvbnRyb2wpPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICAoYXNzaWduQ29udHJvbCk9XCJhc3NpZ25TZWxlY3RlZENvbnRyb2woJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstcmVzcG9uc2liaWxpdHktdGFibGU+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBmcmFtZXdvcmtEYXRhPy5kYXRhPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIGN1cnJlbnRMaXN0ID09ICdmcmFtZXdvcmsnICYmXG4gICAgICAgICAgIWxvYWRlclxuICAgICAgICBcIlxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzdWJDYXRlZ29yaWVzTGlzdD8uZGF0YT8ubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICBjdXJyZW50TGlzdCA9PSAnY2F0ZWdvcmllcycgJiZcbiAgICAgICAgICAhbG9hZGVyXG4gICAgICAgIFwiXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNMaXN0Py5kYXRhPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIGN1cnJlbnRMaXN0ID09ICdyZXNwb25zaWJpbGl0aWVzJyAmJlxuICAgICAgICAgICFsb2FkZXJcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgPCEtLSBvbGQgdGFibGUgbGlzdCAtLT5cbiAgICAgIDwhLS0gPGFwcC1wYXJlbnQtdGFibGUgI3BhcmVudFRhYmxlICpuZ0lmPVwic2hvd1BhcmVudFwiIFtzZWFyY2hdPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAoZXhwYW5kQ2F0ZWdvcnkpPVwiZXhwYW5kQ2F0ZWdvcnkoJGV2ZW50KVwiIFt0YWJsZUxpc3RdPVwiY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdFwiXG4gICAgICAgICAgICAgICAgKGVudHJ1c3RGcmFtZXdvcmspPVwiZW50cnVzdEZyYW1ld29ya0RldGFpbHMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9hcHAtcGFyZW50LXRhYmxlPiAtLT5cbiAgICA8L2Rpdj5cblxuICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cIlxuICAgICAgICBzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF0/Lm5hbWUgPyBbc2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdXSA6IFtdXG4gICAgICBcIlxuICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cImZsb2F0aW5nQmFyRGlzcGxheUtleXNbY3VycmVudExpc3RdXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF0/Lm5hbWVcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiZ29CYWNrKClcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cInJlbW92ZSgpXCJcbiAgICA+PC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbiAgPCEtLSBbc2luZ3VsYXJUZXh0XT1cIidVc2VyIHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidVc2VycyBzZWxlY3RlZCdcIiAoY2xvc2VFdmVudCk9XCJzYXZlKHNlbGVjdGVkSWRzKVwiXG4gICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgIFtpc0Rpc2FibGVkXT1cIihncm91cHNMaXN0Py5sZW5ndGggKyB1c2Vyc0xpc3Q/Lmxlbmd0aCkgPT09IDAgfHwgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAwXCIgLS0+XG4gIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48L2Rpdj5cbiJdfQ==
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmFtZXdvcmstbGlzdC9mcmFtZXdvcmstbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyYW1ld29yay1saXN0L2ZyYW1ld29yay1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU8xQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFPMUQsTUFBTSxPQUFPLHNCQUFzQjtJQXdHakMsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUF2R2hFLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFZCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENB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QUF0QixzQkFBc0IsNnVCQ3pCbkMsaXdRQXdOQTs7NEZEL0xhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7NEdBV0osY0FBYztzQkFBdkMsU0FBUzt1QkFBQyxhQUFhO2dCQUNkLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0Usc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFxQ0csTUFBTTtzQkFBZCxLQUFLO2dCQVNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNLLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQge1xuICBTZWxlY3RlZElkcyxcbiAgU2VsZWN0ZWRWYWx1ZXMsXG59IGZyb20gJy4vZnJhbWV3b3JrLWludGVncmF0aW9uLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFyZW50VGFibGVDb21wb25lbnQgfSBmcm9tICcuL3BhcmVudC10YWJsZS9wYXJlbnQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyYW1ld29yay1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyYW1ld29yay1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJhbWV3b3JrLWxpc3QuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJhbWV3b3JrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBicmVhZENydW1iOiBhbnlbXSA9IFtdO1xuICBzZWFyY2ggPSAnJztcbiAgc2hvd1BhcmVudCA9IHRydWU7XG4gIHNob3dDaGlsZCA9IGZhbHNlO1xuICBwYXJlbnREYXRhOiBvYmplY3QgPSB7fTtcbiAgQFZpZXdDaGlsZCgncGFyZW50VGFibGUnKSB0YWJsZUNvbXBvbmVudCE6IFBhcmVudFRhYmxlQ29tcG9uZW50O1xuICBAT3V0cHV0KCkgZW50cnVzdEZyYW1ld29yayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlRnJhbWV3b3JrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYXNzaWduQ29udHJvbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgcHJldmlvdXNTZWxlY3RlZFZhbHVlcyE6IGFueTtcbiAgQElucHV0KCkgaGVhZGVyVGV4dDogc3RyaW5nID0gJ1NlbGVjdCBGcm9tIGEgRnJhbWV3b3JrJztcbiAgQElucHV0KCkgd29ya2Zsb3dQYWdlOiBBcnJheTxzdHJpbmc+ID0gW1xuICAgICdGUkFNRVdPUksnLFxuICAgICdDQVRFR09SWScsXG4gICAgJ1JFU1BPTlNJQklMSVRZJyxcbiAgXTtcbiAgc3ViQ2F0ZWdvcmllc0xpc3QgPSB7XG4gICAgZnJvbTogMSxcbiAgICB0bzogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICB0b3RhbFBhZ2VzOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBkYXRhOiBbXSxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdGllc0xpc3QgPSB7XG4gICAgZnJvbTogMSxcbiAgICB0bzogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICB0b3RhbFBhZ2VzOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBkYXRhOiBbXSxcbiAgfTtcblxuICBzZWFyY2hUZXh0ID0ge1xuICAgIGZyYW1lV29yazogJycsXG4gICAgY2F0ZWdvcnk6ICcnLFxuICAgIHJlc3BvbnNpYmlsaXR5OiAnJyxcbiAgfTtcblxuICBzZWxlY3RlZFZhbHVlczogU2VsZWN0ZWRWYWx1ZXMgPSB7XG4gICAgZnJhbWV3b3JrOiB7fSxcbiAgICBjYXRlZ29yaWVzOiB7fSxcbiAgICByZXNwb25zaWJpbGl0aWVzOiB7fSxcbiAgfTtcblxuICBzdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG4gIGN1cnJlbnRDYXRlZ29yeTogYW55ID0ge307XG5cbiAgQElucHV0KCkgcG9saWN5OiBhbnkgPSB7fTtcbiAgLy8gQE91dHB1dCgpIGNoYW5nZVRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjdXJyZW50QnVzaW5lc3NDeWNsZSE6IGFueTtcbiAgbG9hZGVyID0gZmFsc2U7XG4gIHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAvL3Byb2dyYW1cbiAgc3ViTGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBmcmFtZVdvcmtMaXN0OiBhbnk7XG4gIC8vIEBJbnB1dCgpIGFsbFByb2dyYW1zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEZyYW1lV29yayE6IGFueTtcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzZWFyY2hGaWVsZCcpIHNlYXJjaGZpZWxkITogYW55O1xuICBAVmlld0NoaWxkKCdzZWFyY2hDYXRlZ29yeScpIHNlYXJjaENhdGVnb3J5ITogYW55O1xuXG4gIGZyYW1ld29ya0RhdGEgPSB7XG4gICAgZGF0YTogW10sXG4gICAgZnJvbTogMCxcbiAgICB0bzogMCxcbiAgICB0b3RhbFBhZ2VzOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgfTtcbiAgZnJhbWV3b3JrQ291bnQgPSB7XG4gICAgcmVndWxhdGlvbnM6IDAsXG4gICAgc3RhbmRhcmRzOiAwLFxuICAgIGludGVybmFsQ29udHJvbHM6IDAsXG4gICAgb3RoZXJzOiAwLFxuICB9O1xuICBmcmFtZVR5cGVPYmplY3QgPSB7XG4gICAgcmVndWxhdGlvbnM6IDEsXG4gICAgc3RhbmRhcmRzOiAyLFxuICAgIGludGVybmFsQ29udHJvbHM6IDMsXG4gICAgb3RoZXJzOiAwLFxuICB9O1xuICBwbGFjZWhvbGRlclRleHQgPSB7XG4gICAgZnJhbWV3b3JrOiAnU2VhcmNoIEZyYW1ld29ya3MnLFxuICAgIGNhdGVnb3JpZXM6ICdTZWFyY2ggQ2F0ZWdvcmllcycsXG4gICAgcmVzcG9uc2liaWxpdGllczogJ1NlYXJjaCBSZXNwb25zaWJpbGl0aWVzJyxcbiAgfTtcbiAgY29udHJvbHNMaXN0OiBhbnlbXSA9IFtdO1xuICBkaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGFjdGl2ZVRhYjogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycycgPVxuICAgICdyZWd1bGF0aW9ucyc7XG5cbiAgY3VycmVudExpc3Q6ICdmcmFtZXdvcmsnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnID0gJ2ZyYW1ld29yayc7XG4gIGZsb2F0aW5nQmFyRGlzcGxheUtleXMgPSB7XG4gICAgZnJhbWV3b3JrOiAnbmFtZScsXG4gICAgY2F0ZWdvcmllczogJ25hbWUnLFxuICAgIHJlc3BvbnNpYmlsaXRpZXM6ICduYW1lJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3BvbnNpYmlsaXR5U2VydmljZTogUmVzcG9uc2liaWxpdHlTZXJ2aWNlKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJldmlvdXNTZWxlY3RlZFZhbHVlcykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IHtcbiAgICAgICAgZnJhbWV3b3JrOiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrID8/IHt9LFxuICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA/PyB7fSxcbiAgICAgICAgcmVzcG9uc2liaWxpdGllczogdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPz8ge30sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldEZyYW1ld29ya3NDb3VudCgpO1xuICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoKTtcbiAgfVxuXG4gIGV4cGFuZENhdGVnb3J5KGNhdGVnb3J5OiBhbnkpIHtcbiAgICBpZiAoY2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZSkge1xuICAgICAgdGhpcy5icmVhZENydW1iID0gW107XG4gICAgICBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lLmZvckVhY2goKGNhdGVnb3J5SXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XG4gICAgICAgIGxldCBvYmo7XG4gICAgICAgIGlmIChpbmRleCA9PSBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBvYmogPSB7XG4gICAgICAgICAgICBpdGVtTmFtZTogY2F0ZWdvcnlJdGVtLFxuICAgICAgICAgICAgaXRlbUlkOiBjYXRlZ29yeS5faWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmogPSB7XG4gICAgICAgICAgICBpdGVtTmFtZTogY2F0ZWdvcnlJdGVtLFxuICAgICAgICAgICAgaXRlbUlkOiBjYXRlZ29yeS5wYXJlbnRfY2F0X29ial9pZHNbaW5kZXhdLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gob2JqKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGVudHJ1c3RGcmFtZXdvcmtEZXRhaWxzKHJlcG9ydDogYW55KSB7XG4gICAgdGhpcy5lbnRydXN0RnJhbWV3b3JrLmVtaXQocmVwb3J0KTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlRnJhbWV3b3JrLmVtaXQoKTtcbiAgfVxuXG4gIGdldEZyYW1ld29ya3NDb3VudChkYXRhPzogYW55KSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKGRhdGE/LnNlYXJjaCB8fCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKTtcbiAgICB9XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2VcbiAgICAgIC5nZXRGcmFtZVdvcmtDb3VudChwYXJhbXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5mcmFtZXdvcmtDb3VudCA9IHtcbiAgICAgICAgICAgIHJlZ3VsYXRpb25zOiByZXMucmVndWxhdGlvbnMgPz8gMCxcbiAgICAgICAgICAgIHN0YW5kYXJkczogcmVzLnN0YW5kYXJkcyA/PyAwLFxuICAgICAgICAgICAgaW50ZXJuYWxDb250cm9sczogcmVzLmludGVybmFsQ29udHJvbHMgPz8gMCxcbiAgICAgICAgICAgIG90aGVyczogcmVzLm90aGVycyA/PyAwLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHsgfSxcbiAgICAgIH0pO1xuICB9XG4gIGdldEZyYW1ld29ya3NMaXN0KGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgndHlwZScsIHRoaXMuZnJhbWVUeXBlT2JqZWN0W3RoaXMuYWN0aXZlVGFiXSk7XG4gICAgaWYgKGRhdGE/LnNlYXJjaCB8fCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZScsIHRoaXMuZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0RnJhbWVXb3JrTGlzdChwYXJhbXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5mcmFtZXdvcmtEYXRhLmRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEuZnJvbSA9IHJlcy5pdGVtc19mcm9tO1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrRGF0YS50byA9IHJlcy5pdGVtc190bztcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcztcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zO1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRTdWJDYXRlZ29yaWVzKGlkPzogYW55LCBkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChkYXRhPy5zZWFyY2ggfHwgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5KSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQuY2F0ZWdvcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlJywgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0RnJhbWV3b3JrU3ViQ2F0ZWdvcmllcyhpZCwgcGFyYW1zKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuZnJvbSA9IHJlcy5pdGVtc19mcm9tID8/IDE7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC50byA9IHJlcy5pdGVtc190byA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcyA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuICBjaGFuZ2VUYWIodHlwZTogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycycpIHtcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHR5cGU7XG4gICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrID0gJyc7XG4gICAgdGhpcy5zZWFyY2hmaWVsZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5nZXRGcmFtZXdvcmtzTGlzdCgpO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdGllcyhpZD86IGFueSwgZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoJywgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZScsIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZVxuICAgICAgLmdldEZyYW1ld29ya0NvbnRyb2xzKGlkLCBwYXJhbXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sc0xpc3QgPSByZXM7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tID0gcmVzLml0ZW1zX2Zyb20gPz8gMTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvID0gcmVzLml0ZW1zX3RvID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2VzID0gcmVzLnRvdGFsX3BhZ2VzID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFJlY29yZHMgPSByZXMudG90YWxfaXRlbXMgPz8gMDtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGEgPSByZXMuZGF0YSA/PyByZXM7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UoXG4gICAgZXZlbnQ6IGFueSxcbiAgICB0eXBlOiAnZnJhbWV3b3JrcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcydcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdmcmFtZXdvcmtzJzpcbiAgICAgICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldFN1YkNhdGVnb3JpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8uY2hpbGRfbGlzdF9kZXRhaWxzLmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy50b3RhbENvbnRyb2xzID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLl9pZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNlYXJjaEJ5KGV2ZW50OiBhbnksIHR5cGU6ICdmcmFtZXdvcmsnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LmZyYW1lV29yayA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgICAgdGhpcy5nZXRGcmFtZXdvcmtzQ291bnQoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0U3ViQ2F0ZWdvcmllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQsIHtcbiAgICAgICAgICAgIHNlYXJjaDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ID0gZXZlbnQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5jaGlsZF9saXN0X2RldGFpbHMubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8udG90YWxDb250cm9scyA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdldFN1YkNhdGVnb3JpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLl9pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEZyYW1ld29yayhkYXRhOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrID0gZGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IGRhdGE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNhdmUoKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLndvcmtmbG93UGFnZT8ubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgdGhpcy53b3JrZmxvd1BhZ2UuaW5jbHVkZXMoJ0ZSQU1FV09SSycpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGZyYW1ld29ya0RldGFpbHMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yaztcbiAgICAgICAgICB0aGlzLmFzc2lnbkNvbnRyb2wuZW1pdCh7XG4gICAgICAgICAgICBuYW1lOiBmcmFtZXdvcmtEZXRhaWxzPy5uYW1lLFxuICAgICAgICAgICAgX2lkOiBmcmFtZXdvcmtEZXRhaWxzPy5faWQsXG4gICAgICAgICAgICB0eXBlOiBmcmFtZXdvcmtEZXRhaWxzPy5mcmFtZXdvcmtfdHlwZSxcbiAgICAgICAgICAgIGlkOiBmcmFtZXdvcmtEZXRhaWxzPy5pZCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBmcmFtZXdvcmtEZXRhaWxzPy5kZXNjcmlwdGlvbiA/PyAnJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LmNoaWxkX2xpc3RfZGV0YWlscy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy50b3RhbENvbnRyb2xzID4gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdyZXNwb25zaWJpbGl0aWVzJztcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrLl9pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuX2lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5hc3NpZ25TZWxlY3RlZENvbnRyb2wodGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XG4gICAgICAgIHRoaXMuY2xvc2VGcmFtZXdvcmsuZW1pdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2ZyYW1ld29yayc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5jaGlsZF9saXN0X2RldGFpbHMubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnRvdGFsQ29udHJvbHMgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnZnJhbWV3b3JrJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJlc2V0UGFnaW5hdGlvbigpIHtcbiAgICB0aGlzLmZyYW1ld29ya0RhdGEuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UgPSAxO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50TGlzdCkge1xuICAgICAgY2FzZSAnZnJhbWV3b3JrJzpcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsgPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzYXZlQ2hhbmdlcyhcbiAgICB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnIHwgJ3Byb2dyYW1zT25seSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgLy8gdGhpcy5zdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYXNzaWduU2VsZWN0ZWRDb250cm9sKGRhdGE6IGFueSkge1xuICAgIGxldCBzZWxlY3RlZEZyYW1ld29ya0RhdGEgPSB0aGlzLnNlbGVjdGVkVmFsdWVzO1xuICAgIHRoaXMuYXNzaWduQ29udHJvbC5lbWl0KHsgZGF0YSwgc2VsZWN0ZWRGcmFtZXdvcmtEYXRhIH0pO1xuICB9XG59XG4iLCI8IS0tIDxwPmZyYW1ld29yay1saXN0IHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3RcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclRleHQgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdjYXRlZ29yaWVzJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIHt7IGhlYWRlclRleHQgfX0gPiB7eyBzZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5uYW1lIH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdyZXNwb25zaWJpbGl0aWVzJ1wiXG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZ29CYWNrKClcIj4mI3hlOTFkOzwvaT5cbiAgICAgIHt7IHNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/Lm5hbWUgfX1cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gPGRpdiAqbmdJZj1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cImJyZWFkQ3J1bWI/Lmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZCgpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyZWFkQ3J1bWI7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCI+e3soaT4wKT8nPic6Jyd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGlua109XCJ0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5IHx8ICghKHRhYmxlQ29tcG9uZW50LmN1cnJlbnRFbnRpdHkpICYmIGkgIT09IGJyZWFkQ3J1bWI/Lmxlbmd0aCAtMSlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZChpdGVtLml0ZW1JZClcIiBbYXBwVG9vbHRpcF09XCJpdGVtLml0ZW1OYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCI+e3tpdGVtLml0ZW1OYW1lfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29tcG9uZW50LmN1cnJlbnRFbnRpdHlcIj4gPHNwYW4gY2xhc3M9XCJhcnJvd1wiPj48L3NwYW4+XG4gICAgICAgICAgICAgICAge3ticmVhZENydW1iW2JyZWFkQ3J1bWI/Lmxlbmd0aCAtIDFdLml0ZW1OYW1lfX1cbiAgICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDtmb3Ige3t0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5fX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmQtcm93XCIgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJ1wiPlxuICAgICAgPCEtLXRoaXMgc2VjdGlvbiB3aWxsIG5vdCBhcHBlYXIgb24gY2hpbGQgcGFydCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKCdyZWd1bGF0aW9ucycpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICA8bGFiZWw+UmVndWxhdGlvbnM8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBmcmFtZXdvcmtDb3VudC5yZWd1bGF0aW9ucyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZpbHRlci1jYXJkXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKCdzdGFuZGFyZHMnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPlN0YW5kYXJkczwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57eyBmcmFtZXdvcmtDb3VudC5zdGFuZGFyZHMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdpbnRlcm5hbENvbnRyb2xzJ1wiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWIoJ2ludGVybmFsQ29udHJvbHMnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgPGxhYmVsPkludGVybmFsIENvbnRyb2xzPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7IGZyYW1ld29ya0NvdW50LmludGVybmFsQ29udHJvbHMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYignb3RoZXJzJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgIDxsYWJlbD5PdGhlcnM8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3sgZnJhbWV3b3JrQ291bnQub3RoZXJzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LXNlYXJjaFwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgI3NlYXJjaEZpZWxkXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRbY3VycmVudExpc3RdXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUsIGN1cnJlbnRMaXN0KVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGFwcC13b3JrZmxvdy1wYWdpbmF0aW9uPjwvYXBwLXdvcmtmbG93LXBhZ2luYXRpb24+IC0tPlxuICAgIDxhcHAtcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnZnJhbWV3b3JrJyAmJiBmcmFtZXdvcmtEYXRhLnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgIFtzdGFydF09XCJmcmFtZXdvcmtEYXRhLmZyb21cIlxuICAgICAgW2VuZF09XCJmcmFtZXdvcmtEYXRhLnRvXCJcbiAgICAgIFt0b3RhbF09XCJmcmFtZXdvcmtEYXRhLnRvdGFsUmVjb3Jkc1wiXG4gICAgICBbcGFnZUNvdW50XT1cImZyYW1ld29ya0RhdGEudG90YWxQYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VdPVwiZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZVwiXG4gICAgICAoc2VsZWN0ZWRQYWdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50LCAnZnJhbWV3b3JrcycpXCJcbiAgICA+PC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8YXBwLXBhZ2luYXRpb25cbiAgICAgICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ2NhdGVnb3JpZXMnICYmIHN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgIFtzdGFydF09XCJzdWJDYXRlZ29yaWVzTGlzdC5mcm9tXCJcbiAgICAgIFtlbmRdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG9cIlxuICAgICAgW3RvdGFsXT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUmVjb3Jkc1wiXG4gICAgICBbcGFnZUNvdW50XT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXNcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cInN1YkNhdGVnb3JpZXNMaXN0LmN1cnJlbnRQYWdlXCJcbiAgICAgIChzZWxlY3RlZFBhZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQsICdjYXRlZ29yaWVzJylcIlxuICAgID48L2FwcC1wYWdpbmF0aW9uPlxuICAgIDxhcHAtcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgY3VycmVudExpc3QgPT0gJ3Jlc3BvbnNpYmlsaXRpZXMnICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZXMgPiAxXG4gICAgICBcIlxuICAgICAgW3N0YXJ0XT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIlxuICAgICAgW2VuZF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b1wiXG4gICAgICBbdG90YWxdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzXCJcbiAgICAgIFtwYWdlQ291bnRdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VdPVwicmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2VcIlxuICAgICAgKHNlbGVjdGVkUGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudCwgJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgPlxuICAgIDwvYXBwLXBhZ2luYXRpb24+XG4gICAgPCEtLSBGb3IgcGFyZW50IC0tPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImZyYW1ld29yay1saXN0LXBhZ2luYXRpb25cIj5cbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXBhZ2luYXRpb24+PC9hcHAtd29ya2Zsb3ctcGFnaW5hdGlvbj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICA8IS0tIFtjbGFzcy5uby1jYXJkXT1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZyYW1ld29yay1saXN0LXRhYmxlIHZ4LW1iLTRcIlxuICAgICAgW2NsYXNzLm5vLWNhcmRdPVwiXG4gICAgICAgIGN1cnJlbnRMaXN0ID09ICdjYXRlZ29yaWVzJyB8fCBjdXJyZW50TGlzdCA9PSAncmVzcG9uc2liaWxpdGllcydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGFwcC1mcmFtZXdvcmstbGlzdC10YWJsZVxuICAgICAgICAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdmcmFtZXdvcmsnXCJcbiAgICAgICAgW2xpc3RMb2FkZXJdPVwibG9hZGVyXCJcbiAgICAgICAgW2ZyYW1ld29ya1R5cGVdPVwiJ2ZyYW1ld29yaydcIlxuICAgICAgICAoc2VsZWN0ZWRGcmFtZXdvcmspPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICBbY3VycmVudEZyYW1ld29ya109XCJzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF1cIlxuICAgICAgICBbZnJhbWV3b3Jrc0xpc3RdPVwiZnJhbWV3b3JrRGF0YVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstbGlzdC10YWJsZT5cbiAgICAgIDxhcHAtZnJhbWV3b3JrLWxpc3QtdGFibGVcbiAgICAgICAgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAnY2F0ZWdvcmllcydcIlxuICAgICAgICBbbGlzdExvYWRlcl09XCJsb2FkZXJcIlxuICAgICAgICBbZnJhbWV3b3Jrc0xpc3RdPVwic3ViQ2F0ZWdvcmllc0xpc3RcIlxuICAgICAgICAoc2VsZWN0ZWRGcmFtZXdvcmspPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICBbY3VycmVudEZyYW1ld29ya109XCJzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF1cIlxuICAgICAgICBbZnJhbWV3b3JrVHlwZV09XCInc3ViRnJhbWV3b3JrJ1wiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstbGlzdC10YWJsZT5cbiAgICAgIDxhcHAtZnJhbWV3b3JrLXJlc3BvbnNpYmlsaXR5LXRhYmxlXG4gICAgICAgICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ3Jlc3BvbnNpYmlsaXRpZXMnXCJcbiAgICAgICAgW2xpc3RMb2FkZXJdPVwibG9hZGVyXCJcbiAgICAgICAgW2N1cnJlbnRTZWxlY3RlZENvbnRyb2xdPVwic2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdXCJcbiAgICAgICAgW2NvbnRyb2xzTGlzdF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdFwiXG4gICAgICAgIChzZWxlY3RlZENvbnRyb2wpPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxuICAgICAgICAoYXNzaWduQ29udHJvbCk9XCJhc3NpZ25TZWxlY3RlZENvbnRyb2woJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mcmFtZXdvcmstcmVzcG9uc2liaWxpdHktdGFibGU+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBmcmFtZXdvcmtEYXRhPy5kYXRhPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIGN1cnJlbnRMaXN0ID09ICdmcmFtZXdvcmsnICYmXG4gICAgICAgICAgIWxvYWRlclxuICAgICAgICBcIlxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzdWJDYXRlZ29yaWVzTGlzdD8uZGF0YT8ubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICBjdXJyZW50TGlzdCA9PSAnY2F0ZWdvcmllcycgJiZcbiAgICAgICAgICAhbG9hZGVyXG4gICAgICAgIFwiXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNMaXN0Py5kYXRhPy5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIGN1cnJlbnRMaXN0ID09ICdyZXNwb25zaWJpbGl0aWVzJyAmJlxuICAgICAgICAgICFsb2FkZXJcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgPCEtLSBvbGQgdGFibGUgbGlzdCAtLT5cbiAgICAgIDwhLS0gPGFwcC1wYXJlbnQtdGFibGUgI3BhcmVudFRhYmxlICpuZ0lmPVwic2hvd1BhcmVudFwiIFtzZWFyY2hdPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAoZXhwYW5kQ2F0ZWdvcnkpPVwiZXhwYW5kQ2F0ZWdvcnkoJGV2ZW50KVwiIFt0YWJsZUxpc3RdPVwiY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdFwiXG4gICAgICAgICAgICAgICAgKGVudHJ1c3RGcmFtZXdvcmspPVwiZW50cnVzdEZyYW1ld29ya0RldGFpbHMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9hcHAtcGFyZW50LXRhYmxlPiAtLT5cbiAgICA8L2Rpdj5cblxuICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cIlxuICAgICAgICBzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF0/Lm5hbWUgPyBbc2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdXSA6IFtdXG4gICAgICBcIlxuICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cImZsb2F0aW5nQmFyRGlzcGxheUtleXNbY3VycmVudExpc3RdXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF0/Lm5hbWVcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiZ29CYWNrKClcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cInJlbW92ZSgpXCJcbiAgICA+PC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbiAgPCEtLSBbc2luZ3VsYXJUZXh0XT1cIidVc2VyIHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidVc2VycyBzZWxlY3RlZCdcIiAoY2xvc2VFdmVudCk9XCJzYXZlKHNlbGVjdGVkSWRzKVwiXG4gICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgIFtpc0Rpc2FibGVkXT1cIihncm91cHNMaXN0Py5sZW5ndGggKyB1c2Vyc0xpc3Q/Lmxlbmd0aCkgPT09IDAgfHwgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAwXCIgLS0+XG4gIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48L2Rpdj5cbiJdfQ==
@@ -141,6 +141,10 @@ export class FrequencyAnnualComponent {
141
141
  this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;
142
142
  this.frequencyInfo.startFrom = this.startDate;
143
143
  this.frequencyInfo.reportId = 0;
144
+ this.frequencyInfo.selectedDay = [];
145
+ this.frequencyInfo.every = this.yearlyInput;
146
+ this.frequencyInfo.day = this.yearlyDay;
147
+ this.frequencyInfo.selectedMonth = [this.yearlySelected];
144
148
  this.frequencyDetails.emit(this.frequencyInfo);
145
149
  }
146
150
  getFrequencyPlaceholder(yearlyInput) {
@@ -295,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
295
299
  }], frequencyDetails: [{
296
300
  type: Output
297
301
  }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWFubnVhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktYW5udWFsL2ZyZXF1ZW5jeS1hbm51YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWFubnVhbC9mcmVxdWVuY3ktYW5udWFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sd0JBQXdCO0lBNEJuQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNCdEQsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUN0QyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyx5QkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFHLElBQUksSUFBSSxDQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUMvQyxDQUFDO1FBQ0YsNkJBQXdCLEdBQVcsRUFBRSxDQUFDO1FBQ3RDLCtCQUEwQixHQUFXLENBQUMsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMscUJBQWdCLEdBQVEsZUFBZSxDQUFDO1FBQ3hDLHNCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRWxELGVBQVUsR0FBa0IsRUFBRSxDQUFDO1FBRXRCLGFBQVEsR0FBZ0MsZ0JBQWdCLENBQUM7UUFFekQsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUVmLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUV6QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRUksQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQy9ELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN0QixDQUFDO1FBQ0YsSUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxFQUFFO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FDekIsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxZQUFZLEVBQ3JDLHNCQUFzQixDQUN2QixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLGVBQWUsRUFBRTtZQUNuRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxFQUFFO1lBQzVDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzdDLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUN4RCxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7Z0JBQ3hDLE1BQU07U0FDVDtRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTTtnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDbkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUMzRCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ3hCLENBQUM7Z0JBQ0QsR0FBRztnQkFDSCxJQUFJLENBQUMsU0FBUztnQkFDZCxHQUFHO2dCQUNILENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUNwRSxJQUFJLENBQUMsY0FBYyxDQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELHVCQUF1QixDQUFDLFdBQWdCO1FBQ3RDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDckIsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzNDO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLG9CQUFvQjtRQUNsQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixXQUFXO2dCQUNULGVBQWU7b0JBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVc7Z0JBQ1QsZUFBZTtvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsV0FBVztnQkFDVCxlQUFlO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUN0QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ2xELFdBQVc7Z0JBQ1QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsY0FBYztvQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxjQUFjO29CQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLG9CQUFvQjtRQUNsQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixXQUFXO2dCQUNULE1BQU07b0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVc7Z0JBQ1QsTUFBTTtvQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLFlBQVk7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsV0FBVztnQkFDVCxNQUFNO29CQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixJQUFJLENBQUMsV0FBVztvQkFDaEIsWUFBWTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUN0Qiw0Q0FBNEM7WUFDNUMsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxTQUFTO29CQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixJQUFJLENBQUMsV0FBVztvQkFDaEIsWUFBWTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUNsRCxXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFdBQVc7Z0JBQ1QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsY0FBYztvQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxjQUFjO29CQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzsrR0F4U1Usd0JBQXdCO21HQUF4Qix3QkFBd0IsdU5DVnJDLHd2Q0F1Q0E7OzRGRDdCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCO3VHQXdCdkIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1hbm51YWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWFubnVhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1hbm51YWwuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5QW5udWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbW9udGhMaXN0OiBBcnJheTxhbnk+ID0gW107XG5cbiAgeWVhcmx5SW50ZXJ2YWw6IHN0cmluZyA9IERFRkFVTFRfVElNRTtcbiAgeWVhcmx5SW5wdXQ6IG51bWJlciA9IDE7XG4gIHllYXJseUZhaWxlZDogbnVtYmVyID0gNTtcbiAgeWVhcmx5V2luZG93OiBudW1iZXIgPSAzMDtcbiAgeWVhcmx5RGF5ID0gbmV3IERhdGUoKS5nZXREYXRlKCk7XG4gIHllYXJseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoKTtcbiAgeWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxuICAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlU3RhcnQuZ2V0VGltZSgpICsgODY0MDAwMDBcbiAgKTtcbiAgeWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlOiBudW1iZXIgPSAxMDtcbiAgeWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGU6IG51bWJlciA9IDI7XG4gIHllYXJseVNlbGVjdGVkID0gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XG4gIHByZXZpb3VzU3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIEBJbnB1dCgpIHBhZ2VUeXBlOiAncmVzcG9uc2liaWxpdHknIHwgJ3BvbGljeScgPSAncmVzcG9uc2liaWxpdHknO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xuXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhMaXN0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XG4gICAgdGhpcy5zaG9ydE1vbnRoID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXkubWFwKChtb250aCkgPT5cbiAgICAgIG1vbnRoLnN1YnN0cmluZygwLCAzKVxuICAgICk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA0XG4gICAgKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XG4gICAgfVxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JykubWFwKE51bWJlcik7XG4gICAgdGhpcy55ZWFybHlTZWxlY3RlZCA9IHBhdHRlcm5JbmZvWzJdIC0gMTtcbiAgICBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZS5zcGxpdCgnfn4nKTtcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZFRpbWU7XG4gICAgdGhpcy55ZWFybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcbiAgICB0aGlzLnllYXJseURheSA9IHBhdHRlcm5JbmZvWzFdO1xuICAgIGlmIChOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XG4gICAgICB0aGlzLnllYXJseUxpZmVjeWNsZU9jY3VyYW5jZSA9IE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKTtcbiAgICB9XG5cbiAgICB0aGlzLnllYXJseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RGF0ZSAqIDEwMDApO1xuICAgIHRoaXMuc3RhcnREYXRlID1cbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydEZyb20gPz8gdGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RGF0ZTtcbiAgICB0aGlzLnllYXJseUZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWQ7XG4gICAgaWYgKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xuICAgICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KFxuICAgICAgICBsaWZlY3ljbGVJbmZvWzBdICsgJyAnICsgREVGQVVMVF9USU1FLFxuICAgICAgICAnREQtTU1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgICApLnVuaXgoKTtcbiAgICAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xuICAgIH1cbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlO1xuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlID09ICcwMDAwLTAwLTAwfn4wJykge1xuICAgICAgdGhpcy55ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XG4gICAgfSBlbHNlIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMTtcbiAgICB9XG4gIH1cblxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcbiAgfVxuXG4gIGRhdGVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xuICAgIHRoaXMueWVhcmx5RGF5ID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcbiAgfVxuXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnllYXJseUlucHV0ID0gZXZlbnQudmFsdWU7XG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcbiAgfVxuXG4gIHNlbGVjdGVkTW9udGgoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20gLyAxMDAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XG4gICAgfVxuICAgIGxldCBlbmRCeURhdGUgPSBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCArIDg2NDAwMDAwKTtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gMCkge1xuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XG4gICAgICAgID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KClcbiAgICAgICAgOiBlbmRCeURhdGU7XG4gICAgfVxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xuICAgICAgdGhpcy55ZWFybHlXaW5kb3cgPSBldmVudC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy55ZWFybHlGYWlsZWQgPSBldmVudC52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcbiAgfVxuXG4gIC8vIGZyZXF1ZW5jeSBwYXR0ZXJuIGFuZCBkZXRhaWxzIGluZm9cbiAgZ2V0QW5udWFsRnJlcXVlbmN5KCkge1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoXG4gICAgICBOdW1iZXIodGhpcy55ZWFybHlJbnB1dClcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDQgK1xuICAgICAgJ34nICtcbiAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICd+JyArXG4gICAgICAodGhpcy55ZWFybHlTZWxlY3RlZCArIDEpICtcbiAgICAgICd+JyArXG4gICAgICB0aGlzLnllYXJseUlucHV0O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ3llYXJseSc7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy55ZWFybHlGYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMueWVhcmx5V2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxuICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbFxuICAgICk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnNlbGVjdGVkTW9udGggPSBbdGhpcy55ZWFybHlTZWxlY3RlZF07XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMuc3RhcnREYXRlO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIGdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKHllYXJseUlucHV0OiBhbnkpIHtcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAoeWVhcmx5SW5wdXQgPT09IDEpIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlckZvclN0MigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJGb3JHdDEoKTtcbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgLy8gaWYgeWVhcmx5SW5wdXQgaXMgc21hbGxlciB0aGFuIDIgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2FsbGVkXG4gIGdldFBsYWNlaG9sZGVyRm9yU3QyKCkge1xuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMSkge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICAnMXN0IG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgJzJuZCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgICczcmQgb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA+IDMpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xuICAgICAgICAndGggb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ3N0IG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ25kIG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ3JkIG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cblxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBncmVhdGVyIHRoYW4gMSB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcbiAgZ2V0UGxhY2Vob2xkZXJGb3JHdDEoKSB7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgICcxc3QgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXG4gICAgICAgICcgeWVhcnMgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICAnMm5kICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xuICAgICAgICAnIHllYXJzIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgJzNyZCAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcbiAgICAgICAgJyB5ZWFycyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xuICAgICAgICAndGggb2YgICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xuICAgICAgICAnIHllYXJzIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAgICdzdCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAgICduZCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMykge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAgICdyZCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICB9XG59XG4iLCI8IS0tIDxwPmZyZXF1ZW5jeS1hbm51YWwgd29ya3MhPC9wPiAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktYW5udWFsXCI+XG4gIDxhcHAtZnJlcXVlbmN5LXRvcFxuICAgIFtpZF09XCI1XCJcbiAgICBbaW5wdXRUaW1lXT1cInllYXJseUludGVydmFsXCJcbiAgICBbb2NjdXJyZW5jZUZpcnN0XT1cInllYXJseUlucHV0XCJcbiAgICBbeWVhcmx5RGF5XT1cInllYXJseURheVwiXG4gICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMlwiXG4gICAgKHRpbWVDaGFuZ2VkKT1cIm9uVGltZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgKHZhbHVlQ2hhbmdlZEZpcnN0KT1cInZhbHVlQ2hhbmdlZEZpcnN0KCRldmVudClcIlxuICAgICh5ZWFybHlEYXRlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICA+PC9hcHAtZnJlcXVlbmN5LXRvcD5cbiAgPGFwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdFxuICAgIFtyYWRpb0xpc3RdPVwibW9udGhMaXN0XCJcbiAgICBbc2VsZWN0ZWRJbmRleF09XCJ5ZWFybHlTZWxlY3RlZFwiXG4gICAgKHNlbGVjdGVkUmFkaW8pPVwic2VsZWN0ZWRNb250aCgkZXZlbnQpXCJcbiAgICBbbW9kZV09XCJtb2RlXCJcbiAgPlxuICA8L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cbiAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcbiAgICBbcGFnZU5hbWVdPVwiJ3llYXJseSdcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFtpZF09XCI1XCJcbiAgICBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJ5ZWFybHlXaW5kb3dcIlxuICAgIFtub3RDb21wbGV0ZWRWYWx1ZV09XCJ5ZWFybHlGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuICA8YXBwLWZyZXF1ZW5jeS1saWZlY3ljbGVcbiAgICBbaWRdPVwiNVwiXG4gICAgW3N0YXJ0RGF0ZV09XCJ5ZWFybHlMaWZlQ3ljbGVTdGFydFwiXG4gICAgW2VuZERhdGVdPVwieWVhcmx5TGlmZUN5Y2xlRW5kVGltZVwiXG4gICAgW29jY3VycmFuY2VdPVwieWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlXCJcbiAgICBbc2VsZWN0ZWRMaWZlY3ljbGVUeXBlXT1cInllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlXCJcbiAgICAoc2VsZWN0ZWRPY2N1cmFuY2UpPVwibGlmZWN5Y2xlQ2hhbmdlKCRldmVudClcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICA+PC9hcHAtZnJlcXVlbmN5LWxpZmVjeWNsZT5cbjwvZGl2PlxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWFubnVhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktYW5udWFsL2ZyZXF1ZW5jeS1hbm51YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWFubnVhbC9mcmVxdWVuY3ktYW5udWFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFFLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sd0JBQXdCO0lBNEJuQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNCdEQsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUN0QyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyx5QkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFHLElBQUksSUFBSSxDQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUMv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c291cmNlc0NvbnRlbnQiOlsiICBpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCB7IERFRkFVTFRfVElNRSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktYW5udWFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1hbm51YWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktYW5udWFsLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeUFubnVhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vbnRoTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuXG4gIHllYXJseUludGVydmFsOiBzdHJpbmcgPSBERUZBVUxUX1RJTUU7XG4gIHllYXJseUlucHV0OiBudW1iZXIgPSAxO1xuICB5ZWFybHlGYWlsZWQ6IG51bWJlciA9IDU7XG4gIHllYXJseVdpbmRvdzogbnVtYmVyID0gMzA7XG4gIHllYXJseURheSA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICB5ZWFybHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKCk7XG4gIHllYXJseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShcbiAgICB0aGlzLnllYXJseUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXG4gICk7XG4gIHllYXJseUxpZmVjeWNsZU9jY3VyYW5jZTogbnVtYmVyID0gMTA7XG4gIHllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlOiBudW1iZXIgPSAyO1xuICB5ZWFybHlTZWxlY3RlZCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xuICBwcmV2aW91c1N0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICBmcmVxdWVuY3lJbmZvOiBhbnk7XG4gIHNob3J0TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcblxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vbnRoTGlzdCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xuICAgIHRoaXMuc2hvcnRNb250aCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5Lm1hcCgobW9udGgpID0+XG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcbiAgICApO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpWzBdKSA9PT0gNFxuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH1cbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpLm1hcChOdW1iZXIpO1xuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXR0ZXJuSW5mb1syXSAtIDE7XG4gICAgY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XG4gICAgdGhpcy55ZWFybHlJbnRlcnZhbCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWRUaW1lO1xuICAgIHRoaXMueWVhcmx5V2luZG93ID0gdGhpcy5mcmVxdWVuY3lEYXRhLndpbmRvdztcbiAgICB0aGlzLnllYXJseUlucHV0ID0gcGF0dGVybkluZm9bM107XG4gICAgdGhpcy55ZWFybHlEYXkgPSBwYXR0ZXJuSW5mb1sxXTtcbiAgICBpZiAoTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pID4gMCkge1xuICAgICAgdGhpcy55ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSk7XG4gICAgfVxuXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGUgKiAxMDAwKTtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9XG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnRGcm9tID8/IHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGU7XG4gICAgdGhpcy55ZWFybHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xuICAgIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChcbiAgICAgICAgbGlmZWN5Y2xlSW5mb1swXSArICcgJyArIERFRkFVTFRfVElNRSxcbiAgICAgICAgJ0RELU1NTU0tWVlZWSBISDptbSBhJ1xuICAgICAgKS51bml4KCk7XG4gICAgICB0aGlzLnllYXJseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShkYXRlU2VsZWN0ZWQgKiAxMDAwKTtcbiAgICB9XG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZTtcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcbiAgICAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xuICAgIH0gZWxzZSBpZiAobGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XG4gICAgICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy55ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XG4gICAgfVxuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy55ZWFybHlJbnRlcnZhbCA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICBkYXRlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnllYXJseURheSA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICB2YWx1ZUNoYW5nZWRGaXJzdChldmVudDogYW55KSB7XG4gICAgdGhpcy55ZWFybHlJbnB1dCA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnllYXJseVNlbGVjdGVkID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gZXZlbnQuZW5kc0J5ICsgJ35+MCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxOlxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+JyArIGV2ZW50LmVuZGFmdGVyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+fjAnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGV2ZW50LnN0YXJ0RnJvbS50b1N0cmluZygpLmxlbmd0aCA+IDEwKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xuICAgIH1cbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgKyA4NjQwMDAwMCk7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxuICAgICAgICA/IG1vbWVudChldmVudC5lbmRzQnkgKyAnIDAwOjAwOjAwJywgJ0RELU1NTS1ZWVlZIEhIOm1tOnNzJykudW5peCgpXG4gICAgICAgIDogZW5kQnlEYXRlO1xuICAgIH1cbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gZW5kQnlEYXRlO1xuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgIHRoaXMueWVhcmx5V2luZG93ID0gZXZlbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMueWVhcmx5RmFpbGVkID0gZXZlbnQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XG4gIH1cblxuICAvLyBmcmVxdWVuY3kgcGF0dGVybiBhbmQgZGV0YWlscyBpbmZvXG4gIGdldEFubnVhbEZyZXF1ZW5jeSgpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSB0aGlzLmdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKFxuICAgICAgTnVtYmVyKHRoaXMueWVhcmx5SW5wdXQpXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XG4gICAgICA0ICtcbiAgICAgICd+JyArXG4gICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAnficgK1xuICAgICAgKHRoaXMueWVhcmx5U2VsZWN0ZWQgKyAxKSArXG4gICAgICAnficgK1xuICAgICAgdGhpcy55ZWFybHlJbnB1dDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICd5ZWFybHknO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMueWVhcmx5RmFpbGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnllYXJseVdpbmRvdztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcbiAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWxcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zZWxlY3RlZE1vbnRoID0gW3RoaXMueWVhcmx5U2VsZWN0ZWRdO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zZWxlY3RlZERheSA9IFtdO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5ldmVyeSA9IHRoaXMueWVhcmx5SW5wdXQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmRheSA9IHRoaXMueWVhcmx5RGF5OyAgXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnNlbGVjdGVkTW9udGggPSBbdGhpcy55ZWFybHlTZWxlY3RlZF07XG5cbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoeWVhcmx5SW5wdXQ6IGFueSkge1xuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xuICAgIGlmICh5ZWFybHlJbnB1dCA9PT0gMSkge1xuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLmdldFBsYWNlaG9sZGVyRm9yU3QyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlckZvckd0MSgpO1xuICAgIH1cbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cblxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBzbWFsbGVyIHRoYW4gMiB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcbiAgZ2V0UGxhY2Vob2xkZXJGb3JTdDIoKSB7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgICcxc3Qgb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICAnMm5kIG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgJzNyZCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAgICd0aCBvZiBldmVyeSAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzMSB8fCB0aGlzLnllYXJseURheSA9PT0gMjEpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xuICAgICAgICAnc3Qgb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjIpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xuICAgICAgICAnbmQgb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xuICAgICAgICAncmQgb2YgZXZlcnkgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgfVxuXG4gIC8vIGlmIHllYXJseUlucHV0IGlzIGdyZWF0ZXIgdGhhbiAxIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGNhbGxlZFxuICBnZXRQbGFjZWhvbGRlckZvckd0MSgpIHtcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDEpIHtcbiAgICAgIHBsYWNlaG9sZGVyID1cbiAgICAgICAgJzFzdCAnICtcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcbiAgICAgICAgJyB5ZWFycyBieSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcbiAgICB9XG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgICcybmQgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXG4gICAgICAgICcgeWVhcnMgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMykge1xuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICAnM3JkICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xuICAgICAgICAnIHllYXJzIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPiAzKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgcGxhY2Vob2xkZXIgPVxuICAgICAgICB0aGlzLnllYXJseURheSArXG4gICAgICAgICd0aCBvZiAgJyArXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXG4gICAgICAgICcgeWVhcnMgYnkgJyArXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XG4gICAgfVxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ3N0IG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ25kIG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XG4gICAgICBwbGFjZWhvbGRlciA9XG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcbiAgICAgICAgJ3JkIG9mIGV2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGJ5ICcgK1xuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xuICAgIH1cbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cbn1cbiIsIjwhLS0gPHA+ZnJlcXVlbmN5LWFubnVhbCB3b3JrcyE8L3A+IC0tPlxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1hbm51YWxcIj5cbiAgPGFwcC1mcmVxdWVuY3ktdG9wXG4gICAgW2lkXT1cIjVcIlxuICAgIFtpbnB1dFRpbWVdPVwieWVhcmx5SW50ZXJ2YWxcIlxuICAgIFtvY2N1cnJlbmNlRmlyc3RdPVwieWVhcmx5SW5wdXRcIlxuICAgIFt5ZWFybHlEYXldPVwieWVhcmx5RGF5XCJcbiAgICBbZnJlcXVlbmN5VHlwZV09XCIyXCJcbiAgICAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXG4gICAgKHllYXJseURhdGVDaGFuZ2VkKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gID48L2FwcC1mcmVxdWVuY3ktdG9wPlxuICA8YXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0XG4gICAgW3JhZGlvTGlzdF09XCJtb250aExpc3RcIlxuICAgIFtzZWxlY3RlZEluZGV4XT1cInllYXJseVNlbGVjdGVkXCJcbiAgICAoc2VsZWN0ZWRSYWRpbyk9XCJzZWxlY3RlZE1vbnRoKCRldmVudClcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICA+XG4gIDwvYXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0PlxuICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZVxuICAgIFtwYWdlTmFtZV09XCIneWVhcmx5J1wiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW2lkXT1cIjVcIlxuICAgIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgW2NvbXBsZXRlZFZhbHVlXT1cInllYXJseVdpbmRvd1wiXG4gICAgW25vdENvbXBsZXRlZFZhbHVlXT1cInllYXJseUZhaWxlZFwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG4gIDxhcHAtZnJlcXVlbmN5LWxpZmVjeWNsZVxuICAgIFtpZF09XCI1XCJcbiAgICBbc3RhcnREYXRlXT1cInllYXJseUxpZmVDeWNsZVN0YXJ0XCJcbiAgICBbZW5kRGF0ZV09XCJ5ZWFybHlMaWZlQ3ljbGVFbmRUaW1lXCJcbiAgICBbb2NjdXJyYW5jZV09XCJ5ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2VcIlxuICAgIFtzZWxlY3RlZExpZmVjeWNsZVR5cGVdPVwieWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGVcIlxuICAgIChzZWxlY3RlZE9jY3VyYW5jZSk9XCJsaWZlY3ljbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gID48L2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlPlxuPC9kaXY+XG4iXX0=