@rangertechnologies/ngnxt 2.1.251 → 2.1.253

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 (49) hide show
  1. package/esm2022/environments/version.mjs +2 -2
  2. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +7 -9
  3. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +6 -9
  4. package/esm2022/lib/components/datatable/datatable.component.mjs +3 -3
  5. package/esm2022/lib/components/file-upload/file-upload.component.mjs +6 -9
  6. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +3 -3
  7. package/esm2022/lib/components/pick-location/pick-location.component.mjs +9 -13
  8. package/esm2022/lib/components/search-box/search-box.component.mjs +8 -11
  9. package/esm2022/lib/nxt-app.module.mjs +6 -30
  10. package/esm2022/lib/pages/booklet/booklet.component.mjs +7 -4
  11. package/esm2022/lib/pages/builder/element/element.component.mjs +7 -30
  12. package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +3 -3
  13. package/esm2022/lib/pages/builder/properties/properties.component.mjs +24 -3
  14. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +10 -13
  15. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +9 -13
  16. package/esm2022/lib/services/form-builder/form-builder.service.mjs +38 -23
  17. package/esm2022/public-api.mjs +1 -4
  18. package/fesm2022/rangertechnologies-ngnxt.mjs +120 -382
  19. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  20. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +1 -3
  21. package/lib/components/custom-radio/custom-radio.component.d.ts +1 -3
  22. package/lib/components/file-upload/file-upload.component.d.ts +1 -3
  23. package/lib/components/pick-location/pick-location.component.d.ts +1 -3
  24. package/lib/components/search-box/search-box.component.d.ts +1 -3
  25. package/lib/nxt-app.module.d.ts +14 -16
  26. package/lib/pages/builder/properties/properties.component.d.ts +1 -0
  27. package/lib/pages/questionbook/questionbook.component.d.ts +2 -4
  28. package/lib/pages/questionnaire/questionnaire.component.d.ts +1 -3
  29. package/lib/services/form-builder/form-builder.service.d.ts +0 -1
  30. package/package.json +1 -1
  31. package/public-api.d.ts +0 -2
  32. package/rangertechnologies-ngnxt-2.1.253.tgz +0 -0
  33. package/esm2022/lib/ar.i18n.mjs +0 -29
  34. package/esm2022/lib/en.i18n.mjs +0 -29
  35. package/esm2022/lib/i18n-config.service.mjs +0 -4
  36. package/esm2022/lib/i18n.component.mjs +0 -45
  37. package/esm2022/lib/i18n.module.mjs +0 -38
  38. package/esm2022/lib/i18n.pipe.mjs +0 -26
  39. package/esm2022/lib/i18n.service.mjs +0 -56
  40. package/esm2022/lib/tam.i18n.mjs +0 -29
  41. package/lib/ar.i18n.d.ts +0 -24
  42. package/lib/en.i18n.d.ts +0 -24
  43. package/lib/i18n-config.service.d.ts +0 -2
  44. package/lib/i18n.component.d.ts +0 -11
  45. package/lib/i18n.module.d.ts +0 -9
  46. package/lib/i18n.pipe.d.ts +0 -10
  47. package/lib/i18n.service.d.ts +0 -14
  48. package/lib/tam.i18n.d.ts +0 -24
  49. package/rangertechnologies-ngnxt-2.1.251.tgz +0 -0
@@ -6,13 +6,11 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../services/shared/shared.service";
7
7
  import * as i2 from "../../services/data/data.service";
8
8
  import * as i3 from "@angular/platform-browser";
9
- import * as i4 from "../../i18n.service";
10
- import * as i5 from "@angular/common";
9
+ import * as i4 from "@angular/common";
11
10
  export class NxtFileUploadComponent {
12
11
  SharedService;
13
12
  dataService;
14
13
  sanitizer;
15
- i18nService;
16
14
  selectedFileData = new EventEmitter();
17
15
  deletedFileData = new EventEmitter();
18
16
  allFiles;
@@ -40,11 +38,10 @@ export class NxtFileUploadComponent {
40
38
  isSaveHovered = false;
41
39
  isDiscardHovered = false;
42
40
  isLoading = false;
43
- constructor(SharedService, dataService, sanitizer, i18nService) {
41
+ constructor(SharedService, dataService, sanitizer) {
44
42
  this.SharedService = SharedService;
45
43
  this.dataService = dataService;
46
44
  this.sanitizer = sanitizer;
47
- this.i18nService = i18nService;
48
45
  }
49
46
  //RS 09JAN2025
50
47
  ngOnInit() {
@@ -265,15 +262,15 @@ export class NxtFileUploadComponent {
265
262
  this.viewEdit = false; // SKS13JUN25 Exit view edit mode
266
263
  this.mode = 'view'; // SKS13JUN25 Switch back to view mode
267
264
  }
268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtFileUploadComponent, deps: [{ token: i1.SharedService }, { token: i2.DataService }, { token: i3.DomSanitizer }, { token: i4.I18nService }], target: i0.ɵɵFactoryTarget.Component });
269
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtFileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", mode: "mode", isShowNoFileIcon: "isShowNoFileIcon", question: "question", error: "error", from: "from" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzt3XfYH1WZ//F3SE/oCaETAgoiJXTpggiKgitR1JUVXcu6+LOg/izsWqKra8e66qLigooIAipWykaUJiAgRUVqILSEhCSU9GT/ON9HHpKnfOvcZ2ber+u6r4AXV+aTmcece86cOTMCVcU4YBqwfaO2ATYDJgOTGr+OBzZu/PdjgIlFh5R6ZBWwuPHPTwLLgceBR4B5wKONXx8E7gHuAuYAawpPKmViRHQAtWwMsCuwe6OmN/59q8hQUgktJTUDdwA3Azc0anZkKKkoNgD5mwwcBBzcqH2BsaGJpGpbQGoErgJ+C1wDLIkMJPWCDUB+RpEG/GOAF5Pu8L1OUpylwB+AWcAlpIZgdWgiqQscWPIwHngJ8CrgaJ5+Ti8pP48APwN+AlwGLIuNI7XHBiDOGNId/quBlwHrx8aR1IbHgZ8DZ5FmB1bFxpGaZwNQvGcBbwbeAGweG0VSFz0I/Bj4DmlRoZQ1G4BijASOB04GjsDzLlXdFcCXgQtxVkCZciDqrXGk5/r/BuwcnEVS8e4FvgmcDjwWG0V6JhuA3tgEeA/wNmDT4CyS4i0mNQGfJW1IJIWzAeiu9YH/B3wQV/JLWteTpDUCnwTmBmdRzdkAdMc44J3A+0nb7krSUBYBX2zU4mH+W6knbAA6dxzwJWCH6CCSSmc+8B/AV3FzIRXMBqB900kD/+HBOSSV3zXAO4Dro4OoPtaLDlBC40kLea7HwV9SdxxA2m74dNIiYqnnnAFozaHAt/CVPkm98wjwr6SthqWecQagOeuTOvPLcfCX1FubkzYQ+i6+TaQecgZgePsDPyBt4StJRZoDvJH0nQGpq0ZGB8jYeqRX+34IbBacRVI9bQj8E2nt0SxgTWwcVYkzAAObApxD2rdfknJwCXAi7iSoLrEBWNf+pC96bRsdRJLWMof0CfGrooOo/FwE+EwnAb/FwV9SnrYhPQp4XXQQlZ9rAJKRpE19Pg2MDs4iSUMZCbycNIN7eXAWlZgNAEwEfgS8PjqIJDVpBGkjsu2BXwKrIsOonOq+BmAL4GfAftFBJKlNl5FmBJ6IDqJyqXMDMBW4FN/vl1R+VwIvwS8LqgV1bQCmkbrmadFBJKlLrgdeBCyIDqJyqGMDsAvpzn+r6CCS1GU3AEdhE6Am1K0B2I30Cs3k6CCS1CPXAS/ANQEaRp32AXgWcDEO/pKqbT/gp8DY6CDKW11eA9yWdOfvBj+S6mAasCNwQXQQ5asODcAWwO+AHaKDSFKBdgfGkdY8SeuoegMwEfgN6dm/JNXNIcBc0hsC0jNUeRHgeqSP+hwfHUSSAq0AjgR+Hx1EeanyIsAv4uAvSaOBc/HVZ62lqg3AW4F3RoeQpExsQZoRHRMdRPmo4hqA/Und7qjoIJKUkW2BDYFfRwdRHqrWAEwhbfG7aXQQScrQAcD9wI3RQRSvSosARwKXAEdEB5GkjC0BDgX+GB1Esaq0BuBUHPwlaTjjgQtJM6aqsarMAOwDXE1a7SpJGt6VpG8GLI8OohhVWAMwkbTHv92sJDVvO2AT4FfRQRSjCg3AfwFHR4eQpBLaH7gPuCk6iIpX9kcAhwP/S/n/HJIUZRlwGHBtdBAVq8wD53jgZtJnfiVJ7XsI2Bd4MDqIilPmtwA+joO/JHXDlqSdAsdGB1FxyroGYDpwBuVuYCQpJ9sCk4FfRAdRMcraAJwD7BAdQpIqZl/S4wA3CaqBMq4BeCVwXnQISaooPx9cE2VrAMYCt+Kzf0nqpYdJswEPRAdR75TtGfq7cPCXpF7r+3ywiwIrrExrANYHfkTa+U+S1FvbkHYL/El0EPVGmRqAU4GXRoeQpBqZDswFro8Oou4ryxqAjYG7SftWS5KKswI4Crg8Ooi6qyxrAN6Lg78kRRhNevy6TXQQdVcZZgAmkD5WMSk6iCTV2I3AwcCS6CDqjjLMALwZB39JirYX8N/RIdQ9uS8CHAl8H9g0OogkienAAvxyYCXkPgNwPLBjdAhJ0t99gfQpdpVc7g3AydEBJEnPMJq0SdC06CDqTM6LAHcE7iDvjJJUVzeRFgU+FR1E7cl5BuBfcPCXpFztCZweHULty3UR4Gjgf0jb/0qS8rQH8DhwdXQQtS7XGYBjSB+jkCTl7TOkzwerZHJtAF4THUCS1JRRwLn4xlbp5PiMfQLwCE7/S1KZ3AwcBDwZHUTNyXEG4CU4+EtS2ewBnEWeN5YaQI6LAD8K7BodQpLUsl1IrwVeGR1Ew8utUxsFzCN9/leSVD6rgWOBX0UH0dByewRwEA7+klRm6wE/AJ4VHURDy60BOCY6gCSpY5sAPwM2jA6iwdkASJJ6YRfgTPJ71KyGnBYBTgY+jz8sklQVzwGWA7+PDqJ15TQDcDAO/pJUNf9BWhSozOTWAEiSqmU94GzSIwFlxAZAktRrGwAXAhtFB9HTcplyHwssavwqSaqmnwAzgDXRQZTPDMBzcfCXpKp7OfDh6BBKcmkA9ogOIEkqxEzgFdEhZAMgSSrWCOC7+M2XcDYAkqSibQBcgFu/h8qlAXhudABJUqF2In0+OJdxqHZy2AlwPPAp8nkjQZJUjJ1JDcCs6CB1lEPntT0O/pJUVx8CTogOUUe5NACSpHoaAZwB7BYdpG5yaACmRQeQJIVan/T54EnRQeokhwZgm+gAkqRw04Dvkce4VAs5nOjNogNIkrJwDPCJ6BB1kUMD4JSPJKnPB4FXR4eogxwagMnRASRJ2ejbKXDv6CBVZwMgScrNeOB8HB96KocGYIPoAJKk7GwP/IA8NqyrpBwaAD8DLEkayNGknWLVAzk0AGOiA0iSsvU+4PXRIaoohy14nyI975EkaSBLgEOBP0YHqZIcGoCV+IxHkjS02cB+wLzoIFWRwyMAB39J0nCmAucAo6KDVEUODYAkSc14AfDZ6BBVkcMjgDXRASRJpfIm0hcE1QEbAElS2SwFDgOuiw5SZjYAkqQyuh/YF5gbHaSsXAMgSSqjbYELcC+ZttkASJLK6mDgC9EhyspHAJKksnsL8O3oEGVjAyBJKrtlpEWB10YHKRMbAElSFTxEWhT4YHSQsnANgCSpCrYEfoxfmG2aDYAkqSoOBL4UHaIsfAQgSaqatwKnR4fInQ2AJKlqVgBHAr+PDpIzGwBJUhU9TFoU+EB0kFy5BkCSVEVb4KLAIdkASJKq6gBcCzAoGwBJUpWdBJwcHSJHrgGQJFXdCuAo4PLoIDmxAZAk1cEjwH6kzwgLHwFIkuphc+CnwPjoILmwAZAk1cVewH9Hh8iFDYAkqU5eB7wjOkQOXAMgSaqblcDRwKzoIJFsACRJdTSftCjwnuggUXwEIEmqo0nABcCE6CBRbAAkSXW1JzXeKdAGQJJUZycC74kOEcE1AJKkulsFHAv8OjpIkWwAJEmCBcD+wF3RQYriIwBJkmBT0qLAidFBimIDIElSsgdwFnnMjvecDYAkSU+bAbwvOkQRcuhyXAMgScrJauA44JfRQXrJBkCSpHU9RloUeGd0kF7xEYAkSevaBPgZsGF0kF6xAZAkaWC7AGeSx2x519kASJI0uJcDp0aH6IUcuhrXAEiScrYaeBFwaXSQbrIBkCRpeA8Au5MWB1aCjwAkSRre1sBp0SG6yRkASZKaNwO4MDpEN9gASJLUvLmkRwFzo4N0ykcAkiQ1bwrw5egQ3eAMgCRJrXsVcF50iE7YAEiS1Lq5wE7Aougg7fIRgCRJrZsCfDQ6RCecAZAkqT0rgb2AW6ODtMMZAEmS2jMK+GJ0iHbZAEiS1L4XAsdFh2iHjwAkSerMXcCuwLLoIK1wBkCSpM7sCJwSHaJVzgBIktS5xcA0YEF0kGY5AyBJUuc2BN4VHaIVzgBIktQdi0izAKX4ZLAzAJIkdcdGwDuiQzTLGQBJkrpnIWkWYGF0kOE4AyBJUvdsDJwcHaIZzgBIktRd80mzAI9HBxmKMwCSJHXXJOAt0SGG4wyAJEndN5u0QdCq6CCDsQGQFGE5cC9pC9U7gYeBB4FHSN9Zfwp4koGnUCcA40jPWicBmzVqa9K06w6N2qiXfwCpCS8DLooOMRgbAEm9thi4BrixUTeRBv1e3xltB+zeqH2Ag4CtenxMqb9LgKOjQwzGBkBStz0BXAr8L/B74BbymQadChwMHEn6i3mb2DiquDXATqSGNzs2AJK6YQ5wPvBz0qBflq+i7QIcC8wAnkcefyeqWj4JfCg6xEBy+GG3AZDKaS5wDnAucBXl///yNsArgJOAvYOzqDrmANuTzyzY39kASGrFauBi4NukxU3LY+P0zO7A64E3kBYaSp04Bvh1dIi12QBIasYTwNnAacDtwVmKNBZ4NfBuYM/gLCqv75FmlrJiAyBpKI8Anwe+RfrSWZ0dCfwb8ILoICqdRcAWwNLoIP25E6CkgcwF/j/pffrP4+APcBmpCTgQ+GVwFpXLRsCLokOszQZAUn9PAh8lDfxfIG3Io2e6Bngp8Hzg6uAsKo8TogOszUcAkiAt7vsf4MOkHfnUvBmkZmn74BzK2wJgc2BldJA+zgBIupm0Oc6bcPBvxwXAc4GPkdkzXmVlU9Ljo2zYAEj19STpOf8+pGlttW8JMBPYDZgVG0UZe2l0gP58BCDV01Wk99yz3KK05EYAbwU+C2wQnEV5uRmYHh2ijw2AVC/LSVPVnyHDnckqZirwfeCQ6CDKxhpgCvBodBDwEYBUJ/eSBqP/xMG/CLOBI4CP4/lWMoL09kgWbACkevgF6Vn/ddFBamYl6bXKI4GHg7MoD4dHB+hjAyBV2xrgI8BxpNeQFONyYF/gD9FBFO7Q6AB9XAMgVdcq0v7jZ0cH0d+NBf6L9Mql6mklaWfA8E22nAGQqusUHPxzswx4M3Aq3vzU1Sgy+bCUDYBUTecCX4sOoUF9GjiR1BCofvaLDgA2AFIVLQLeGR1Cw/oh6TvxT0QHUeGy2AvABkCqnq+SPuOr/M0ivSo4PzqICrVLdABwEaBUNStJX/K7PzqIWrI38BtgcnQQFWIRsHF0CGcApGr5KQ7+ZXQD6Xvxi6KDqBAbAVtHh7ABkKrlp9EB1LYbgBfjmoC62CE6gA2AVC1XRQdQR64Bjse3A+pganQAGwCpOh4B7ooOoY5dSvpSo+ujqm3b6AA2AFJ13BEdQF3zI9JHhFRd20UHsAGQqsMFZNXyMeAH0SHUM1OiA9gASNWxMDqAumoNadvgG6KDqCc2jQ5gAyBVh/9/rp6lwKuwuasiGwBJXRO+qEg9cRcuCqyi8AbAnQCl6riPDF4tasMIUvOyU6OmkHZJ66vRwJON/3YhsASYDcwhbXp0JzCv2Mghvgq8PTqEumY+wTs/2gBI1bEK2AR4PDrIMCYDhzXqUNK+6OM7/D3vA64D/gBc3ahVHf6euZkA/BF4TnQQdcXjwIaRAWwApGo5FvhFdIgBPJf0LHsGsBu9/7tnPvBL4GekPfZzb4qatS9ps6fR0UHUsWXAuOgQ0dZYltW1Oot8bA78O3AzsefkCeBbwF69/eMW5hPE/5xZndfqtS9s0ZwBkKrlKWAaMDcww+7AKcCJwNjAHAO5GvgycB4Z/AXcpvGkpupZ0UHUsdAx2LcApGqZQLrrjrA38GvgT8AbyW/wBzgQOIf0bv1Lg7O0awnwtugQUjdET8NYVtVqJfA8irMd6dHDqi7/OYqo3wP7dP+UFOIc4s+f1VmF8hGAVE1zSE3Agz08xljgQ8B76XwVf6SVwGdJe++X6St82wN/wYVkZeYjAEldtw0wi97tCzAduJbUAJR58AcYBfwb6RW7/YKztOJe4CvRIVRezgBI1TYXOIn0Klw3jALeD3wUGNOl3zMnK4B3Ad+IDtKkjUgbIYVuKKO2OQMgqWemAL8Cvgfs0OHvNZ30DvonqebgD+n9+q8D36Qc79ovAj4fHULl5AyAVB+rSc3A14BLSc++hzOCtFvf24ATqNdNw+9IGxfNjw4yjPWBe3AWoIxCx2AbAKmeniRtnXsF6WMzi0l3k5DWD0wl7cv/AmDLiICZuAl4Ifk3AR8EPhUdQi2zAYgOIElD+BOpCXg0OsgQNiB9GGmj6CBqiWsAJClj04HLyHuK/XHgO9EhVC7OAEhSc64jPRJ5IjrIIKaS3ggYFR1ETXMGQJJKYD/SNwRyfTtgNunrh1JTbAAkqXkvBs4k3787vx0dQOXhIwBJat2ngVOjQwxgJOmVwG2jg6gpPgKQpJL5APAP0SEGsIo0QyENyxkASWrPo8BepA8v5WQn4PboEGqKMwCSVEKTgbPJb9X930h7F0hDsgGQpPYdSvqSYG7Oiw6g/PkIQJI6sxTYjbSlci58DFAObgUcHUAq2ELgDtJU7SLSLm6LSPvzLwM2Jn3gZSJpi9epwLOB7XDWLlc/B46LDrGWv5F+bpSv0DE4t2dXUtU8Tvqq3CzgWtJd2dw2f6+xpL/QdyVNPR8OPJc8Gvm6O7ZRP48O0s+vsQHQEHL4i8MZAFXNncAPSH8BX09zn91t1xTg+cDxpNfSJvTwWBraXaSGbHl0kIaXkldDonX5CCA6gNQFC4FzgbOAq4j5uV6f1AicSPp63ciADHX3RuC70SEaJgILgDHRQTQoG4DoAFIH5gLfAE4DFgdn6W8q8B7gzTgrUKTbSbMAq6ODNFwNHBAdQoNyHwCphB4BPghsD8wkr8Ef0odh3kVqBD5GuhNU7+0MvDw6RD9XRAdQvmwApNYsBz5BGvg/AywJTTO8R0kNyo7A10hbxaq3PhgdoJ8rowMoXz4CkJp3BfBW4M/RQTowndQIHBIdpOL2AW6IDgFsBTwQHUKD8hGAlLmlwMnAYZR78Ie0RexhwBtIew+oN06MDtDwIO2/dqqKswGQhnY/6TW7b1Kd2ao1pC/GTSctElP3/SP5vIXhdwE0IBsAaXCXkL72dm10kB6ZTdpM6ItUp7nJxZakc5sDGwANyAZAGthXgGOA+dFBemw56XXB40lbEat7TogO0PDX6ADKkw2AtK7Pk16hq9OK+Z8CRwDzooNUyBHRARpy+kiRMmIDID3TZ4H3RYcIch1pgeB90UEqYidg6+gQpK2ppXXYAEhP+zjwgegQwf4KHATcFh2kIg6PDkB6DXBpdAjlxwZASj4GfDQ6RCYeAI4C7okOUgGHRwcgLfB8MDqE8mMDIKWd8mYGZ8jNQ6Qm4JHoICW3R3SAhoejAyg/NgCqu5mku3+t6y7SN+6fiA5SYjtHB2h4KDqA8mMDoDr7GA7+w7keeB3uE9CujYAp0SFwN0ANwAZAdTUTp/2b9RPS9wPUnmdHBwAejw6g/NgAqI6882/d+4CbokOU1A7RAcjvc9XKgA2A6uZjeOffjmXAa3C3wHZsFB0AGwANwAZAdTITB/9O3E7aK0GtWT86AKmBk57BBkB1MROn/bvhS6RGQM3bIDoALuLUAGwAVAczcfDvluXAO6JDlEwODcDq6ADKjw2Aqs4Ff913CXBRdAi1xAZA67ABUJXNxGf+vfJhnFZuVg4L8MZGB1B+bABUVTPxzr+X/gRcFh2iJHLYSXF8dADlxwZAVTQTB/8ifDY6QEnksAnPuOgAyo8NgKrGZ/7FuQS4MTpECSyKDgBMiA6g/NgAqEpm4jP/op0RHaAE7ooOAEyODqD82ACoKmbinX+EHwEro0Nk7m/RAbAB0ABGRQeQuqDM0/6TgQOB5wHTSc9q1yft3HZHo64CrgZWBWUcyjzgUuDF0UEytQCYHx0CGwBlao1ldVAzKZ/1gGOAC4EVNPfnvB/4IHk+yz2J+J+DXOvqDs5rN/2Z+HNhrVu1F30BrPLWTMrnANIrdO3+me8Hjio89dAmkzaaif55yLFy+IzyCNJHnKLPhbVu1V70BbDKWTMpl9HAV0nT+J3+2VcB7yw2/rBuJv5nIsd6RScntUs2I/48WANX7UVfAKt8NZNyGQ2cT/fPw1uL/EMM4yvE/1zkVquASZ2c1C7Zj/hzYQ1coXwLQGXzMcrVAIwGzgFm9OD3/hrwkh78vu24PDpAhm4mjwWAO0UHUJ5sAFQmDv7PNAo4D9i7R79/K3JZ7JaTS6IDNOwaHUB5sgFQWTj4D2wCcC6wYY+PM5wHyeOjNzk5OzpAgw2ABmQDoDJw8B/ajuSxD0IOG97k4hbgpugQDbtFB1CebACUOwf/5rwdmFbwMdd2e/Dxc/K96AANk4j/uVCmbACUMwf/5o0C3htw3P7uCD5+LlYCP4gO0bAfaR8AaR02AMqVg3/r/hEYG3j8RwOPnZMfktZE5GD/6ADKlw2AcuTg355NgYMDj78w8Ni5WAV8MjpEPwdFB1C+bACUGwf/zhwaeGwbgPRaZi5rIcYAh0SHUL5sAJQTB//O7RJ47EWBx87BauAT0SH6eR4wMTqE8mUDoFw4+HfH5oHHXhl47Bz8N3BbdIh+XhAdQHmzAVAOHPy7Z3zgsccEHjvaQ8Cp0SHWkss20cqUDYCiOfh31xOBxx4XeOxo7yKvRyBbkV4BlAZlA6BIDv7dNyfw2JGvIEb6OWnxX06Oxff/NQwbAEVx8O+NWwOPXccFZ/cDb4oOMYDjowMofzYAivA5HPx75beBx94m8NgRlgGvBOZGB1nLFOCF0SGUv1HRAVQ7ZwAfiA7RgtHAjyjHHdVs4I+Bx98u8NgR3g5cGx1iAP+If7erCc4AqEjfA94CrIkO0qS+O/8yDP4A3yH23NZpBuAbwLejQwzixOgAUrPWWLWoS0kDalmMBs4n/rw1WwuBTXpyJpp3PfHnoYg6k3xvnvYg/vxYzVcop4lUhL8AJwArooM0qUzT/n0+AjwWePyRwHMCj1+UH5MW/a2ODjKIk6MDSK2I7sCs3tbDwFTKo2x3/muAWaQBONJ04s9Dr+s88r5p2gBYTPx5spqvULlOY6kaVpDu/GdHB2lSmVb797kPeC3pK3SR9g0+fq9dQDrPOW93/HpSEyCVRnQHZvWuTqE8ynjnP4/Yj//0903iz0ev6nzyX78yCrib+HNltVa1F30BrN7UDymPsg7+e/TiZLTpVuLPSS+qDIM/pFf/os+V1XrVXvQFsLpfd1KeqUgH/85NI/6c9KLKMviPAG4i/nxZrVco1wCo21YCrwMejw7ShL7V/mV65j8POBK4OTpIP8dFB+iBC4DXUI43V15BWoQplU50B2Z1t2ZSDqNJf8lHn69Wai553fn3+Q3x56abVZY7f0hvf9xG/Dmz2qvai74AVvfqOvJ+TaqP0/7dsxGwlPjz060q0+APcBLx58xqv2ov+gJY3akVwN7kzzv/7no78eenW1W2wX88cC/x581qv2ov+gJY3alPr31hM+Tg3303En+OulFlG/wBPk78ebM6q9qLvgBW53UXMGHtC5sZp/277wDiz1E3qoyD/zTgKeLPndVZ1V70BbA6r9z3zHfw740ziD9PnVYZB3+Ai4g/d1bnVXvRF8DqrGate0mz4rR/b2wHLCP+XHVSZR38X0v8ubO6U7UXfQGs9msVsM+6lzQbDv69czrx56qTKuvgPxl4hPjzZ3Wnai/6Aljt15kDXM9cOO3fO9sDy4k/X+1WWQd/gHOJP39W96r2oi+A1V6tAJ41wPXMgYN/b32b+PPVbpV58H8T8efP6m7VXvQFsNqrMwa6mBlw2r+39iNt9xx9ztqpMg/+zwIWE38Ore5W7UVfAKv1WgHsONDFDFbGO/8yDf6jKO97/2Ue/CdQ3vNuDV21F30BrNbrnAGvZKyRwI+JPzetVJkGf4D3En/O2qkyD/4A3yf+HFq9qdqLvgBW6/W8Aa9krM8Tf15aqbIN/tOAJ4g/b61W2Qf/dxN/Dq3eVe1FXwCrtbpy4MsY6p+JPy+tVNkG/zHANcSft1ar7IP/DNLjtujzaPWuai/6Alit1WsGvoxhDqVcG9KUbfAH+BLx563VqsLgX+ZXLa3mqvaiL4DVfD0KjB34MobYnHJtilLGwX8GsJr4c9dKOfhbZanai74AVvP1pUGuYZSfEH9Omq0yDv57AAuJP3etlIO/VaaqvegLYDVf0we5hhFOIv58NFtzgd17cxp6Zg/S5kTR566VcvC3yla1F30BrObqT4NdwABbAfOJPyfNlIN/MeXgb5WxQq0XHUCl8ePoAP18Gdg0OkQT5gEvBG6JDtKCPYDLSB+dKYsLSItTV0QHadMM0t4aZW5gpLZEd2BWc7XLYBewYPtTjkVp3vkXU975W2Wu2ou+ANbwddugV694s4g/H8NVWRf8OfgXy8Hfqr3oC2ANX58b9OoV66XEn4vhyjv/YsrB36pC1V70BbCGrxcOevWKdR3x52Ko8s6/mHLwt6pStRd9Aayh6ylg/KBXrzgHEH8uhirv/IspB3+rShXKtwA0nN8DS6JDACdHBxiCq/2L4Wp/qWKiOzBr6PrI4JeuMJNJTUj0uRiovPMvprzzt6pYoZwB0HCujg4AvB4YFx1iAN75F8M7f6miojswa/BaBWw0+KUrzFXEn4u1yzv/Yso7f6vKVXvRF8AavP48xHUryuakRiT6XPQvB/9iysHfqnqF8hGAhpLD1PZx5PVzOg84kjzOTbOc9i+e0/7KXk5/sSo/OewAeFx0gH4c/Ivh4C8VwAZAQ7k1+PgjgEOCM/Qp6+B/KQ7+RXLwV2mMig6grP0t+Pg7kMdX/8o6+HvnXywHf5WKMwAayuzg4+8XfPw+b8LBv9cc/KWC2QBoMPOBx4Mz7BN8fIBzgYuiQ7TAwb94Dv4qJRsADea+6ADArsHHXwKcEpyhFT7zL56Dv0rLNQAazMPRAYBtg49/HvBQcIZmeedfPAd/lZozABrM/OgAwNbBxz89+PjNcvAvnoO/Ss8GQIN5LPj4E4BNAo8/G7gy8PjNctq/eA7+qgQbAA1mQfDxtww+fg4fQRpO3+C/WXSQFjj4S5lwDYAGszT4+GODj39N8PGH47R/8Rz8VSnOAGgwy4KPH/2zeWfw8Yd5M6h2AAAQ2UlEQVTitH/xHPxVOc4AaDDLg48f/bP5ZPDxB+Odf/Ec/FVJ0XdZytfK4ONH/2wuCT7+QLzzL56Dvyor+i5L+Yr+Cy96AN4w+Phr886/eA7+qrTouyzlK3oR3qPBx98p+Pj9OfgXz8FflWcDoMGMCT7+AmB14PF3Djx2f077F8/BX7VgA6DBTAg+/ipiNyM6IvDYfXzPv3gO/qoNGwANZlJ0AGL34d+NNABHcfAvnoO/asUGQIPZNDoAcFvw8d8TdFwH/+I5+Kt2bAA0mBxmAG4NPv7rgH0KPubuOPgXzcFftWQDoMFE78UPcEvw8dcDvgesX9Dxdiet9nfwL46Dv2rLBkCDmRodgPgGAGAX0iDX69ciHfyL5+AvBVtjZVs5vHp2P/HnYQ3we3p3PvYA5mbwZ2ylzqfcA+cM0nbX0efRqneFcgZAQ5kaHQC4JDpAwyHAFcD2Xf59DwN+i3f+RfLOX8IGQEN7TnQA4OLoAP3sDFwHHNOF32sE8C5Sg7NJF36/ojj4S+qa6CkYa/D61BDXrSibkTYFij4X/Ws1aXHgNm3+mfYiPVKI/nO0Wk77W1Z3q/aiL4A1eF00xHUr0m+JPxcD1TLgDNI0/nCzaeOA44FfkBqI6OytloO/ZXW/Qo2IDkAGJ0GDuo881gG8AfhudIhhPAZcCfyFtKBvMWlqf2vSroIHAOPD0nXGaX+pN0LHYBsADWcrYrfkBZgIPExx7+PraQ7+Uu+EjsEuAtRwDowOADxJmoJWsRz8pQqzAdBwcmgAAL4RHaBmHPylirMB0HAOiQ7Q8AfSHvnqPQd/qQZcA6DhrAKmAAuigwCHA7OiQ1Scg79UHNcAKGsjgSOiQzT8lvT+vHrDwV+qERsANeNF0QH6+RDOGvWCg79UMzYAasZLyOdn5XfA96NDVIyDv1RDrgFQsw4hbXSTg82BvwIbRwepAAd/KY5rAFQKJ0QH6OcR4MPRISrAwV+qMWcA1Kw5pG2BV0cHaRhJei3w8OAcZeXgL8VzBkClsA35vA0A6fXE15C2CFZrHPwl2QCoJW+MDrCWR4DXkpoBNcfBXxJgA6DWzCB94S4ns4BPRYcoCQd/SX9nA6BWjAP+KTrEAD4KnB0dInMO/pKewUWAatU9wLPJb9p9NPBT4JjoIBly8Jfy5CJAlco04LjoEANYAbwSuCo6SGYc/CUNyAZA7Xh3dIBBPAW8DLg2OkgmHPwlDcoGQO04DDgoOsQg5gNHAr+JDhLsfBz8JQ3BBkDtmhkdYAhPAMcCZ0QHCfIV4NU4+EvK3BqrtHXIANczJyOAj5MWLEafqyJqKfD6rpy5ODOA5cSfS8sqokL5FoA6MQt4QXSIJhwFfI/0EaGqepg0eF4dHaQD3vmrbnwLQKV1BHm+EbC2S4A9gIujg/TIj0l/Pgd/SaUSPQVjdVa3U56/tEcCbwMeI/68daMeJS30Kzun/a26Vu1FXwCr8zplnauat82BM0lfNow+d+3UauCHwBbdPjEBHPytOlftRV8Aq/N6DNhy7QtbAocClxN//lqpS4B9enEyAjj4W3Wv2ou+AFZ36ry1L2yJHEraNyD6HA5VV5EWM1aFg79lKfwCWN2rl1Fu+5H2DlhM/LlcQ9rZ8DtU546/j4O/ZaUK5WuA6qb7SavRF0YH6dBE0iD1BuD5pMWDRVkFXAlcCJwFLCjw2EVwtb/0tNAx2AZA3XY2cGJ0iC7ahLS18NGNmtqDYzwMXAFcBPyCtJ1xFTn4S89kAxAdQF13IqkRqKKpwO7Abo1fdyWtxp/M8DMFDwMPAnOA24DrgOtJMydV5+AvrcsGIDqAum4hsCcwOzpIwSY3amLj3x9r/LoCeIT03LuOHPylgdkARAdQT9xE+mLgkuggCuXgLw3OrYBVSXsCX44OoVAO/lLGbADUS28B3hQdQiEc/KXM+QhAvbYceDHpy4GqBwd/qTmuAYgOoJ6bT1oP8LfoIOo5B3+pea4BUOVNAn4FTIkOop5y8JdKxAZARdkB+CmwQXQQ9YSDv1QyNgAq0gGkmYCJw/2HKhUHf6mEbABUtIOBC4Cx0UHUFQ7+UknZACjC0cCPsAkou1fh4C+Vlm8BKNIs0ieEn4gOopb9E/BdYFR0EKnEfAtAtXUE8Etgw+ggasnJwJk4+EulZgOgaIeSZgK2jA6iYY0APg58Hf/ukErPRwDKxYPAscCN0UE0oDHAd0hT/5K6w50AowMoG4uBE4CLo4PoGSaR3tw4LDqIVDGuAZAaNiStCZiJP5u52BO4Fgd/qXKcAVCuLgJOAhZGB6mx1wHfBCZEB5EqyhkAaQDHAdcAe0cHqaGJwLeBs3DwlyrLBkA52xn4A+mRwMjYKLWxH3AD8KboIJJ6y0cAKovLgTcA98bGqKxRwAeBj+DOflJRfAsgOoBK4ynSe+ifB1YFZ6mSvYDTgX2jg0g1YwMQHUClcz3wL7hnQKc2AP4DeDs+YpEiuAhQatG+pCbgLGCL4CxltB7pDYvbgXfh4C/VkjMAKrvFwKeALwFLg7OUwRHAF0jT/pJi+QggOoAqYS5wGvAVYElwlhwdBJxK2m5ZUh5sAKIDqFIeAD5N+lTtk8FZcvB84N+Bo6KDSFqHDUB0AFXSYuB/SG8M3B8bpXCjgZcD7wEOCM4iaXA2ANEBVGkrgAuBM4BLgNWxcXpqB+CfG7V1cBZJw7MBiA6g2riP9GjgHOCvwVm6ZSPgZaRNko4gj/9PS2qODUB0ANXSrcCPSZ+5vSU4S6smkRbzvZL0bH9sbBxJbbIBiA6g2psDXAz8BpgFzIuNs44xwP7A0cCLgH3w3X2pCmwAogNIa/kbcHWj/gj8mbQNcRHWIz3L3wM4sFH7AOMKOr6k4tgARAeQhrEauIf0qOBuYHbj3+8DHgXm0/wmROsBm5Km8bcGpjZqB2AX4Ln4CV6pLmwAogNIXfAUqRFYQWoYFjX+93HA+MY/b0wa/CUJbABsACRJteTHgCRJUrFsACRJqiEbAEmSasgGQJKkGrIBkCSphmwAJEmqIRsASZJqyAZAkqQasgGQJKmGbAAkSaohGwBJkmoohwZgVXQASZIKFj725dAALI8OIElSwZZFB7ABkCSpeDYA2ABIkurHBoAMToIkSQULv/nNoQFYHB1AkqSCLYoOkEMD8Gh0AEmSChY+9tkASJJUvPCxzwZAkqTihY99OTQA86MDSJJUsAXRAXJoAOZEB5AkqWD3RQfIoQG4JzqAJEkFCx/7bAAkSSrevdEBRkQHAMYBT5FHFkmSem01MIHgjfBymAFYCjwUHUKSpII8QAa74ObQAADcGh1AkqSC3BIdAPJpAG6ODiBJUkGyGPNyaQCy6IYkSSpAFmNeLg1AFt2QJEkFyGLMy2Xl/RjSl5HGRQeRJKmHlgAbASuig+QyA7AcuD46hCRJPfYHMhj8IZ8GAODK6ACSJPXYFdEB+tgASJJUnGzGulzWAABMAuaRVyZJkrplNWmsWxgdBPKaAZgP/Ck6hCRJPXI9mQz+kFcDAPDL6ACSJPXIr6ID9JdbA5DVyZEkqYuyGuNye94+EpgLbBodRJKkLnoU2AJYFR2kT24zAKuAi6NDSJLUZb8mo8Ef8msAAM6LDiBJUpedGx1gbbk9AoC0HfDDpK0SJUkqu4Wk6f9l0UH6y3EGYClwUXQISZK65EIyG/whzwYA4EfRASRJ6pLspv8hz0cAAKOA+4Ato4NIktSBh4DtgJXRQdaW6wzASuDM6BCSJHXoO2Q4+EO+MwAAOwB3kG+TIknSUNYAzwbuig4ykJwH17uBWdEhJElq0yVkOvhD3g0AwNejA0iS1KZvRAcYSs6PACA1KLcDz4oOIklSC/4G7EL6BHCWcp8BWA18KTqEJEktOo2MB3/IfwYAYAIwG5gcHUSSpCbMBbYHlgTnGFLuMwAAT+FaAElSeXyNzAd/KMcMAKTvAtyNnwmWJOVtPuk19sXRQYZThhkAgEXAF6NDSJI0jM9RgsEfyjMDALA+6X3KKdFBJEkawDxgR+Dx6CDNGBkdoAXLG78eHZpCkqSBfQj4XXSIZpVpBgBgDHAraWtFSZJycSewGxl+9ncwZVkD0Gc58P7oEJIkreUUSjT4Q/lmAPr8Bh8FSJLycClwVHSIVpW1AdgduAEYFR1EklRry4E9gb9EB2lVmRYB9jcXmAgcEh1EklRr/wmcFx2iHWWdAQAYC9xI+tiCJElFu5109780Okg7yrYIsL9lwMnAmuggkqTaWQ28mZIO/lDeRwB9ZgNbAvtGB5Ek1crXgW9Gh+hEmR8B9JkI/BHYOTqIJKkW/kK68XwqOkgnyvwIoM+TwGt5eqdASZJ6ZRlwIiUf/KH8jwD6PASsAo6MDiJJqrQPABdGh+iGKjwC6LMeaYOgF0YHkSRV0q+Al1KRxedVagAANgWuB6ZFB5EkVcpsYB9gfnSQbqnCGoD+FgAzgCXRQSRJlbGUNLZUZvCH6qwB6O9h4EHgH6KDSJIq4Y2kR8yVUsUGAOAmYEPgwOggkqRS+wxwWnSIXqjaGoD+1iPtzzwjOogkqZTOA15D2vWvcqrcAACMBy7DmQBJUmuuBY6gAu/7D6bqDQDAFOAK4NnRQSRJpfBX4FDg0eggvVS1twAGMhd4AXBPdBBJUvbuA15MxQd/qMcMQJ8dgd8BW0UHkSRl6QHgMODu6CBFqMMMQJ+7gKOBedFBJEnZmQscRU0Gf6hXAwBwG6m7eyA6iCQpGw+TviXzl+ggRarTI4D+tie9HbBDcA5JUqzZpG/I3BkdpGh1mwHocy/p9Y47gnNIkuLcDhxCDQd/qG8DAGml54GkVwQlSfVyDemR8JzoIFHq3ABA+rDDC4FzooNIkgpzPun18LnRQSJV9VsArVgFXND458MDc0iSeu8rwJuBFdFBotkAPO23pFcFXwyMjo0iSeqypcBbgU8Ba4KzZKGubwEMZU/SjMC06CCSpK64D3glcF10kJzUfQ3AQG4C9gMujg4iSerYr4C9cPBfh48ABrYE+AHwGGmhiOdJksplBfAJ0rR/Zb/o1wkfAQxvN+BsYPfoIJKkpvwVeC1wY3SQnHlnO7y5wFnAJsC+2DRJUq5WA18HTgDuD86SPQez1hwMfAvYJTqIJOkZ7gT+BZgVHaQsnAFozf3Ad0h7BxyE50+Soq0EPge8mppu6dsuZwDatyvwRdLnIyVJxfsN8G5q9hW/bvE1wPbdBhxNagD+HJxFkurkDuBVpI3bHPzb5BR25+4mPRZ4DNgbmBgbR5Iqay7wIeCfgVuCs5SejwC6ayLwduD9wKbBWSSpKhYAXwVOAxYHZ6kMG4De2Ag4hdQMTA7OIkllNY808H8ZB/6uswHorbGklamnAs8JziJJZXE36at938Jd/HrGBqAY6wEvB/4VOBIXX0rS2lYDlwLfAH7W+Hf1kA1A8bYBTgTeBmwXnEWSoj1E2m31dNKdvwpiAxBnFOk1wlcD/0BaNyBJdbAQ+AlwLnAJaTMfFcwGIA9jSe+zvgp4ETApNo4kdd2jwK+B80gb+CyLjSMbgPyMBPYHjmnU3rhmQFL5rAauJw36v2z886rQRHoGG4D8bQA8DziE9DGig4HxoYkkaV0rgJuBK4ErgMtI7+8rUzYA5TOa9DXC3YE9gOnAc0mLC72eknptNTCHtAX6n0g78t1C2pJ3RWAutcgBozrGAlOBacD2pIZgMrBZ49dJwARgQ9JjhtHA+hFBJWXlCdLAvYq02c5TwHzSM/t5jV/nAPcA9wKz8fl9JfwfsLR2WdFm1XYAAAAASUVORK5CYII=\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? ('ONE_FILE_ATTACHED' | nxtCustomTranslate : '1 File Attached') : ('MULTIPLE_FILES_ATTACHED' | nxtCustomTranslate : '+' + copyOfInputAllFiles.length + ' Files Attached') }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> {{ 'ADD_FILES' | nxtCustomTranslate : 'Add files' }} </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\">{{ 'NO_FILES_ATTACHED' | nxtCustomTranslate : 'No files attached' }}</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{ question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText): ''}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"{{ 'DELETE' | nxtCustomTranslate : 'Delete' }}\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>{{ 'NO_FILES_SELECTED' | nxtCustomTranslate : 'No files selected' }}</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"{{ 'ADD_FILE' | nxtCustomTranslate : 'Add file' }}\">\n {{ 'ADD_MORE_FILES' | nxtCustomTranslate : '+ Add More Files' }}\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>{{ 'LOADING_PREVIEW' | nxtCustomTranslate : 'Loading preview...' }}</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>{{ 'UNABLE_TO_LOAD_PREVIEW' | nxtCustomTranslate : 'Unable to load the file preview.' }}</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>{{ 'SELECT_FILE_TO_PREVIEW' | nxtCustomTranslate : 'Select a file to preview' }}</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtFileUploadComponent, deps: [{ token: i1.SharedService }, { token: i2.DataService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
266
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtFileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", mode: "mode", isShowNoFileIcon: "isShowNoFileIcon", question: "question", error: "error", from: "from" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? ('ONE_FILE_ATTACHED' | nxtCustomTranslate : '1 File Attached') : ('MULTIPLE_FILES_ATTACHED' | nxtCustomTranslate : '+' + copyOfInputAllFiles.length + ' Files Attached') }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> {{ 'ADD_FILES' | nxtCustomTranslate : 'Add files' }} </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\">{{ 'NO_FILES_ATTACHED' | nxtCustomTranslate : 'No files attached' }}</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{ question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText): ''}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"{{ 'DELETE' | nxtCustomTranslate : 'Delete' }}\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>{{ 'NO_FILES_SELECTED' | nxtCustomTranslate : 'No files selected' }}</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"{{ 'ADD_FILE' | nxtCustomTranslate : 'Add file' }}\">\n {{ 'ADD_MORE_FILES' | nxtCustomTranslate : '+ Add More Files' }}\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>{{ 'LOADING_PREVIEW' | nxtCustomTranslate : 'Loading preview...' }}</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>{{ 'UNABLE_TO_LOAD_PREVIEW' | nxtCustomTranslate : 'Unable to load the file preview.' }}</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>{{ 'SELECT_FILE_TO_PREVIEW' | nxtCustomTranslate : 'Select a file to preview' }}</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
270
267
  }
271
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtFileUploadComponent, decorators: [{
272
269
  type: Component,
273
270
  args: [{ selector: 'app-file-upload', standalone: true, imports: [
274
271
  CommonModule, NxtCustomTranslatePipe
275
272
  ], template: "<!-- SKS11JUN25 file-upload.component.html -->\n<div class=\"flex hover-wrapper\" style=\"align-items: center; gap: 10px;\">\n <div class=\"flex file-inner-div\">\n <svg *ngIf=\"from !== 'nxtTable'\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_616_35125)\" />\n <defs>\n <pattern id=\"pattern0_616_35125\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_616_35125\" transform=\"scale(0.00195312)\" />\n </pattern>\n <image id=\"image0_616_35125\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,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\" />\n </defs>\n </svg>\n @if(copyOfInputAllFiles && copyOfInputAllFiles.length > 0){\n <span (click)=\"openPopup()\" style=\"text-decoration: underline; cursor: pointer;\">\n {{ copyOfInputAllFiles.length === 1 ? ('ONE_FILE_ATTACHED' | nxtCustomTranslate : '1 File Attached') : ('MULTIPLE_FILES_ATTACHED' | nxtCustomTranslate : '+' + copyOfInputAllFiles.length + ' Files Attached') }}\n </span>\n }\n @else if(mode === 'edit') {\n <div> {{ 'ADD_FILES' | nxtCustomTranslate : 'Add files' }} </div>\n }\n @else {\n <div *ngIf=\"from !== 'nxtTable'\">{{ 'NO_FILES_ATTACHED' | nxtCustomTranslate : 'No files attached' }}</div>\n }\n <button *ngIf=\"mode === 'edit' && !question.isReadOnly\" \n (click)=\"fileInput.click()\" \n class=\"add-btn-icon\"\n type=\"button\">\n <span class=\"plus-icon\">+</span>\n </button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\n style=\"display:none;\" (change)=\"uploadMultipleFiles($event)\" />\n </div>\n <!-- SKS13JUN25 edit icon -->\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" (click)=\"viewEditClick(question)\"\n width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS13JUN25 save and cancel icons -->\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <!-- Error messages section -->\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\n <small class=\"text-danger\">\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\n </small>\n </div>\n</div>\n\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\n\n<!-- SKS11JUN25 File Selection Popup Modal -->\n<div class=\"file-popup-overlay\" *ngIf=\"showPopup\" (click)=\"closePopup()\">\n <div class=\"file-popup-modal\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"file-popup-header\">\n <div class=\"popup-title\">{{ question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText): ''}}</div>\n <button class=\"close-btn\" (click)=\"closePopup()\">\n <span class=\"close-icon\">\u00D7</span>\n </button>\n </div>\n\n <!-- SKS11JUN25 Content -->\n <div class=\"file-popup-content\">\n <!-- SKS11JUN25 Left Panel - File List -->\n <div class=\"file-list-panel\">\n <div class=\"file-item\" *ngFor=\"let file of copyOfInputAllFiles; let i = index\"\n [class.selected]=\"currentFile === file\" (click)=\"viewFile(file)\">\n <div class=\"file-icon\">\n <img style=\"width: 28px;height: 28px;\" [src]=\"getDocIcon(file?.name)\">\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\">{{ file.name }}</div>\n </div>\n <div *ngIf=\"!question.isReadOnly\" class=\"file-actions\">\n <button class=\"action-btn\" (click)=\"$event.stopPropagation(); deleteFile(i)\" title=\"{{ 'DELETE' | nxtCustomTranslate : 'Delete' }}\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"3,6 5,6 21,6\"></polyline>\n <path d=\"m19,6v14a2,2 0 0,1 -2,2H7a2,2 0 0,1 -2,-2V6m3,0V4a2,2 0 0,1 2,-2h4a2,2 0 0,1 2,2v2\"></path>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"!copyOfInputAllFiles || copyOfInputAllFiles.length === 0\">\n <div class=\"empty-icon\">\uD83D\uDCC4</div>\n <p>{{ 'NO_FILES_SELECTED' | nxtCustomTranslate : 'No files selected' }}</p>\n </div>\n <!-- Add Button -->\n <button class=\"add-btn\" (click)=\"fileInput.click()\" title=\"{{ 'ADD_FILE' | nxtCustomTranslate : 'Add file' }}\">\n {{ 'ADD_MORE_FILES' | nxtCustomTranslate : '+ Add More Files' }}\n </button>\n </div>\n\n <!-- SKS11JUN25 Right Panel - Preview -->\n <div class=\"file-preview-panel\">\n @if(currentFile){\n <div class=\"preview-content\">\n @if(isImage && fileUrl){\n <img [src]=\"fileUrl\" class=\"preview-image\" alt=\"File Preview\" />\n }\n @else if(fileUrl){\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n }\n @else if(isLoading){\n <div class=\"loading-indicator\">\n <p>{{ 'LOADING_PREVIEW' | nxtCustomTranslate : 'Loading preview...' }}</p>\n <div class=\"spinner\"></div>\n </div>\n }\n @else {\n <div>{{ 'UNABLE_TO_LOAD_PREVIEW' | nxtCustomTranslate : 'Unable to load the file preview.' }}</div>\n }\n </div>\n }\n @else{\n <div class=\"no-preview\">\n <p>{{ 'SELECT_FILE_TO_PREVIEW' | nxtCustomTranslate : 'Select a file to preview' }}</p>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.form-control[disabled]{border-radius:5px}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.Invalid{border:1px solid red!important}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.file-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1001}.file-popup-modal{background:#fff;border-radius:12px;width:90%;max-width:1000px;height:80%;max-height:600px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000001a;overflow:hidden}.file-popup-header{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #e5e7eb;background-color:#fafafa}.popup-title{font-size:16px;font-weight:600;color:#111827;margin:0}.close-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.close-icon{font-size:24px;color:#6b7280;line-height:1}.file-popup-content{display:flex;flex:1;overflow:hidden}.file-list-panel{width:300px;border-right:1px solid #e5e7eb;background-color:#fff;overflow-y:auto;padding:16px 16px 60px;position:relative}.file-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:8px;border:1px solid #dfe0e2;background-color:#fff}.file-item:hover{background-color:#f8fafc;border-color:#e2e8f0}.file-item.selected{background-color:#dbeafe;border-color:#3b82f6}.file-icon{margin-right:12px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.file-actions{margin-left:8px}.action-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.action-btn:hover{background-color:#fef2f2;color:#dc2626}.file-preview-panel{flex:1;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;padding:32px}.preview-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 4px 6px #0000001a}.no-preview{text-align:center;color:#6b7280}.empty-state{text-align:center;padding:32px 16px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.file-list-panel{padding-bottom:70px;width:100%}.add-btn{bottom:12px;left:12px;right:12px}.file-popup-modal{width:95%;height:85%}.file-popup-content{flex-direction:column}.file-preview-panel{flex:1;min-height:200px}}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}.file-inner-div{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px;align-items:center;gap:5px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#555}.spinner{margin-top:10px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.add-btn{position:absolute;bottom:16px;left:16px;right:16px;background-color:#007bff;color:#fff;border:none;padding:12px 16px;font-size:14px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0003;transition:background-color .2s;z-index:10}.add-btn:hover{background-color:#0056b3}.add-btn-icon{width:25px;height:25px;border-radius:50%;border:none;background:#007bff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.add-btn-icon:focus{outline:none!important}.add-btn-icon:hover{transform:scale(1.1);border:none}.add-btn-icon:active{transform:scale(.95)}.plus-icon{font-size:15px;font-weight:700;line-height:1;transition:transform .2s ease}\n"] }]
276
- }], ctorParameters: () => [{ type: i1.SharedService }, { type: i2.DataService }, { type: i3.DomSanitizer }, { type: i4.I18nService }], propDecorators: { selectedFileData: [{
273
+ }], ctorParameters: () => [{ type: i1.SharedService }, { type: i2.DataService }, { type: i3.DomSanitizer }], propDecorators: { selectedFileData: [{
277
274
  type: Output
278
275
  }], deletedFileData: [{
279
276
  type: Output
@@ -292,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
292
289
  }], from: [{
293
290
  type: Input
294
291
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFLckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBVTFFLE1BQU0sT0FBTyxzQkFBc0I7SUErQmI7SUFBc0M7SUFBa0M7SUFDbkY7SUEvQkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQixJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLDRCQUE0QjtJQUN0RSxnQkFBZ0IsQ0FBQztJQUNqQixRQUFRLENBQUM7SUFDVCxLQUFLLENBQU07SUFDWCxJQUFJLENBQU07SUFDbkIsY0FBYztJQUNQLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxXQUFXLEdBQVcsQ0FBQyxDQUFDLENBQUUsbUJBQW1CO0lBQzdDLFFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBSyxnQkFBZ0I7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFD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QUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsc0JBQXNCO3FCQUNyQztpS0FLUyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkL3NoYXJlZC5zZXJ2aWNlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE54dEN1c3RvbVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2N1c3RvbS10cmFuc2xhdGUucGlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBOeHRDdXN0b21UcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOeHRGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRGaWxlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbEZpbGVzO1xuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7IC8vIFNLUzExSlVOMjUgTmV3IG1vZGUgaW5wdXRcbiAgQElucHV0KCkgaXNTaG93Tm9GaWxlSWNvbjtcbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGVycm9yOiBhbnk7XG4gIEBJbnB1dCgpIGZyb206IGFueTtcbiAgLy9SUyAwOUpBTjIwMjVcbiAgcHVibGljIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMDsgIC8vIGluIGJ5dGVzKEJpbmFyeSlcbiAgcHVibGljIG1heEZpbGVzOiBudW1iZXIgPSA0OyAgICAgLy8gZGVmYXVsdCBsaW1pdFxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcblxuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGVOYW1lQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBjb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICBwdWJsaWMgY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0O1xuICBwdWJsaWMgZmlsZVVybDtcbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG4gIGN1cnJlbnRGaWxlOiBhbnk7XG4gIHB1YmxpYyBzaG93UG9wdXAgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBBZGQgcG9wdXAgdmlzaWJpbGl0eSBjb250cm9sXG4gIHZpZXdFZGl0OiBib29sZWFuID0gZmFsc2UgXG4gIG9yaWdpbmFsVmFsdWU6IGFueTsgLy8gU0tTMTNKVU4yNSBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkgeyB9XG4gIC8vUlMgMDlKQU4yMDI1XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZpbGVDb25maWdzKCk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChzaW1wbGVDaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IHNpbXBsZUNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzKSB7ICAvL1NLUzVOT1YyNVxuICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gc2ltcGxlQ2hhbmdlcy5hbGxGaWxlcy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgfVxuXG4gICAgaWYgKHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nKSB7XG4gICAgICB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCA9IHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nPy5jdXJyZW50VmFsdWU7XG4gICAgfVxuXG4gIH1cblxuICAvL1JTIDA5SkFOMjAyNSBJbml0aWFsaXplcyBmaWxlIHVwbG9hZCBzZXR0aW5ncyAoYWxsb3dlZCB0eXBlcywgbWF4IHNpemUsIGFuZCBtYXggZmlsZXMpIGJ5IHBhcnNpbmcgbWV0YWRhdGEgZnJvbSBmaWVsZHNNZXRhXG4gIGluaXRpYWxpemVGaWxlQ29uZmlncygpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uZmllbGRzTWV0YSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gU0tTMjBNQVIyNSBjaGVjayBpZiBxdWVzdGlvbiBmaWVsZHNtZXRhIGlzIHN0cmluZ1xuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IHR5cGVvZiB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvblsnZmllbGRzTWV0YSddIHx8IFtdIDogSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10pO1xuICAgICAgICBjb25zdCBmaWxlQ29uZmlnID0gbWV0YURhdGFbMF07ICAvLyBHZXQgZmlyc3QgY29uZmlnIG9iamVjdFxuICAgICAgICBpZiAoZmlsZUNvbmZpZykge1xuICAgICAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGVDb25maWcuYWxsb3dlZFR5cGVzIHx8IFtdO1xuICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUgPSBmaWxlQ29uZmlnLm1heEZpbGVTaXplIHx8IDA7XG4gICAgICAgICAgdGhpcy5tYXhGaWxlcyA9IGZpbGVDb25maWcubWF4RmlsZXMgfHwgNTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBmaWVsZHNNZXRhOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gU0tTMTFKVU4yNSBPcGVuIHRoZSBwb3B1cFxuICBvcGVuUG9wdXAoKSB7XG4gICAgdGhpcy5zaG93UG9wdXAgPSB0cnVlO1xuICAgIHRoaXMudmlld0ZpbGUodGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzWzBdKVxuICB9XG5cbiAgLy8gU0tTMTFKVU4yNSBDbG9zZSB0aGUgcG9wdXBcbiAgY2xvc2VQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dQb3B1cCA9IGZhbHNlO1xuICB9XG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdOyAvLyBSUyAxN0pBTjIwMjUgQ2xlYXIgcHJldmlvdXMgZXJyb3JzXG4gICAgbGV0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWxlRGF0YSA9IFtdO1xuICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAvLyBSUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBjb3VudCBsaW1pdFxuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoID4gdGhpcy5tYXhGaWxlcykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuXG4gICAgICAvL1JTIDA5SkFOMjAyNSBDaGVjayBmaWxlIHR5cGVcbiAgICAgIGNvbnN0IGZpbGVFeHQgPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dCkpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEZpbGUgdHlwZSAke2ZpbGVFeHR9IG5vdCBhbGxvd2VkLiBBbGxvd2VkIHR5cGVzOiAke3RoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy9SUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBzaXplXG4gICAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSA+IDAgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIGV4Y2VlZHMgc2l6ZSBsaW1pdCBvZiAke3RoaXMubWF4RmlsZVNpemUgLyAxMDQ4NTc2fU1CYCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gZmlsZUV4dC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGNvbnN0IGZpbGVSZWFkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0ge1xuICAgICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSwgLy8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEVycm9yIHJlYWRpbmcgZmlsZSBcIiR7ZmlsZS5uYW1lfVwiYCk7Ly8gUlMgMTdKQU4yMDI1IFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkRmlsZXNQcm9taXNlcy5wdXNoKGZpbGVSZWFkUHJvbWlzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZWFkRmlsZXNQcm9taXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBXYWl0IGZvciBhbGwgcHJvbWlzZXMgdG8gcmVzb2x2ZVxuICAgICAgUHJvbWlzZS5hbGwocmVhZEZpbGVzUHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBpbnB1dEZpbGVzO1xuICAgICAgICBsZXQgY2hhbmdlOiBhbnk7XG4gICAgICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGlucHV0RmlsZXM7XG4gICAgICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcmVhZGluZyBmaWxlcycpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignWW91IGNhbiB1cGxvYWQgbWF4IDUgZmlsZXMnKTtcbiAgICAgIC8vIHRoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcbiAgICB9XG5cbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xuICAgIGNvbnN0IGRlbGV0ZWRGaWxlTmFtZSA9IHRoaXMuc2VsZWN0ZWRGaWxlTmFtZUFycmF5LnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcy5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLnZpZXdGaWxlKHRoaXMuY29weU9mSW5wdXRBbGxGaWxlc1swXSkgOiB0aGlzLnZpZXdGaWxlKG51bGwpO1xuICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgfVxuXG5cbiAgLy8gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlc1xuICAvLyBSUyAwOURFQzI0IENoYW5nZWQga2V5c1xuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICAvLyBBUC0yNU1BUjI1IEVuc3VyZSBzdWJUZXh0IGlzIHBhcnNlZCBpbnRvIGFuIG9iamVjdCBpZiBpdCdzIG5vdCBhbHJlYWR5XG4gICAgdGhpcy5xdWVzdGlvblsnc3ViVGV4dCddID0gdHlwZW9mIHRoaXMucXVlc3Rpb24/LnN1YlRleHQgPT09ICdvYmplY3QnID8gdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA6IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvblsnc3ViVGV4dCddKSB8fCB7fTtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uc3ViVGV4dCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBmaWxlTWV0YSA9IHRoaXMucXVlc3Rpb24/LnN1YlRleHQ7XG4gICAgICBsZXQgZW5kcG9pbnQgPSBmaWxlTWV0YS5lbmRwb2ludDtcbiAgICAgIGxldCBxdWVyeVBhcmFtZXRlciA9IGZpbGVNZXRhLnF1ZXJ5UGFyYW1ldGVyO1xuICAgICAgbGV0IGZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICAgIGlmIChlbmRwb2ludCAmJiBmaWxlW3F1ZXJ5UGFyYW1ldGVyXSkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWVcbiAgICAgICAgY29uc3QgZnVsbEVuZFBvaW50ID0gZW5kcG9pbnQgKyAnPycgKyBxdWVyeVBhcmFtZXRlciArICc9JyArIGZpbGVbcXVlcnlQYXJhbWV0ZXJdO1xuICAgICAgICBpZiAoZnVsbEVuZFBvaW50KSB7XG4gICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmdWxsRW5kUG9pbnQpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnZpZXdMb2NhbEZpbGUoKTsgLy8gQ2FsbCBmYWxsYmFjayBtZXRob2RcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpOyAvLyBSZXR1cm4gYSBmYWxsYmFjayB2YWx1ZSB0byBrZWVwIG9ic2VydmFibGUgY2hhaW4gYWxpdmVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBpUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVDb250ZW50KGFwaVJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld0xvY2FsRmlsZSgpXG4gICAgfVxuICB9XG5cbiAgLy8gLy8gVkQgMDNBdWcyNCBwcm9jZXNzIGxvY2FsIHByZXZpZXcgXG4gIHZpZXdMb2NhbEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbGUpIHtcbiAgICAgIHRoaXMuc2V0RmlsZVVybCh0aGlzLmN1cnJlbnRGaWxlPy5kb2MpO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY3VycmVudEZpbGUubmFtZTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuY3VycmVudEZpbGUudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG4gICAgfVxuXG4gIH1cblxuXG4gIGhhbmRsZUZpbGVDb250ZW50KGZpbGVSZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZmlsZVJlc3BvbnNlLmNvbnRlbnQuZGF0YSk7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGZpbGVSZXNwb25zZS50eXBlIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIHRoaXMuc2V0RmlsZVVybCh1cmwpO1xuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgIGlmIChmaWxlUmVzcG9uc2UubmFtZSkge1xuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGVSZXNwb25zZS5uYW1lO1xuICAgICAgY29uc3QgaW1hZ2VFeHRlbnNpb25zID0gWydqcGcnLCAnanBlZycsICdwbmcnLCAnZ2lmJywgJ2JtcCcsICd3ZWJwJ107XG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZVJlc3BvbnNlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IGltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uIHx8ICcnKTtcbiAgICB9XG4gIH1cblxuICBzZXRGaWxlVXJsKHVybDogYW55KSB7XG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZVVybCA9IG51bGw7IC8vIG9yIGhhbmRsZSBncmFjZWZ1bGx5XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9jSWNvbihkb2NOYW1lKSB7XG4gICAgY29uc3QgZXh0ID0gZG9jTmFtZS5zcGxpdCgnLicpLnBvcCgtMSk7XG4gICAgcmV0dXJuIHRoaXMuU2hhcmVkU2VydmljZS5kb2NJY29uKGV4dCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmZpbGVOYW1lID0gJyc7XG4gICAgdGhpcy5maWxlVXJsID0gJyc7XG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmlsZVVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVVcmwpO1xuICAgIH1cbiAgfVxuICB2aWV3RWRpdENsaWNrKHF1ZXM6IGFueSkge1xuICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9ICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXM7IC8vU0tTMTNKVU4yNSBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gIH1cbiAgc2F2ZUNoYW5nZXMoKSB7XG4gICAgbGV0IHF1ZXMgPSB0aGlzLnF1ZXN0aW9uXG4gICAgcXVlc1snc2luZ2xlRmllbGRDaGFuZ2UnXSA9IHRydWVcbiAgICBsZXQgY2hhbmdlOiBhbnk7XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXM7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdCh7cXVlc3Rpb24gOiBxdWVzLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxuICBkaXNjYXJkQ2hhbmdlcygpIHtcbiAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSB0aGlzLm9yaWdpbmFsVmFsdWU7IC8vIFJldmVydCB0byBvcmlnaW5hbCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gU0tTMTNKVU4yNSBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTS1MxM0pVTjI1IFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICB9XG59XG4iLCI8IS0tIFNLUzExSlVOMjUgZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwgLS0+XG48ZGl2IGNsYXNzPVwiZmxleCBob3Zlci13cmFwcGVyXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZpbGUtaW5uZXItZGl2XCI+XG4gICAgPHN2ZyAqbmdJZj1cImZyb20gIT09ICdueHRUYWJsZSdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cInVybCgjcGF0dGVybjBfNjE2XzM1MTI1KVwiIC8+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPHBhdHRlcm4gaWQ9XCJwYXR0ZXJuMF82MTZfMzUxMjVcIiBwYXR0ZXJuQ29udGVudFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIiB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCI+XG4gICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ltYWdlMF82MTZfMzUxMjVcIiB0cmFuc2Zvcm09XCJzY2FsZSgwLjAwMTk1MzEyKVwiIC8+XG4gICAgICAgIDwvcGF0dGVybj5cbiAgICAgICAgPGltYWdlIGlkPVwiaW1hZ2UwXzYxNl8zNTEyNVwiIHdpZHRoPVwiNTEyXCIgaGVpZ2h0PVwiNTEyXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIlxuICAgICAgICAgIHhsaW5rOmhyZWY9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBSUFDQVlBQUFEMGVOVDZBQUFBQ1hCSVdYTUFBQTdEQUFBT3d3SEhiNmhrQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUIzZDNjdWFXNXJjMk5oY0dVdWIzSm5tKzQ4R2dBQUlBQkpSRUZVZUp6dDNYZllIMVdaLy9GM1NFL29DYUVUQWdvaUpYVHBnZ2lLZ2l0UjFKVVZYY3U2K0xPZy9penNXcUtyYThlNjZxTGlnb29JQWlwV3lrYVVKaUFnUlVWcUlMU0VoQ1NVOUdUL09OOUhIcEtuZk92Y1oyYmVyK3U2cjRBWFYrYVRtY2VjZTg2Y09UTUNWY1U0WUJxd2ZhTzJBVFlESmdPVEdyK09Celp1L1BkamdJbEZoNVI2WkJXd3VQSFBUd0xMZ2NlQlI0QjV3S09OWHg4RTdnSHVBdVlBYXdwUEttVmlSSFFBdFd3TXNDdXdlNk9tTi81OXE4aFFVZ2t0SlRVRGR3QTNBemMwYW5aa0tLa29OZ0Q1bXd3Y0JCemNxSDJCc2FHSnBHcGJRR29FcmdKK0Mxd0RMSWtNSlBXQ0RVQitScEVHL0dPQUY1UHU4TDFPVXB5bHdCK0FXY0FscElaZ2RXZ2lxUXNjV1BJd0huZ0o4Q3JnYUo1K1RpOHBQNDhBUHdOK0Fsd0dMSXVOSTdYSEJpRE9HTklkL3F1Qmx3SHJ4OGFSMUliSGdaOERaNUZtQjFiRnhwR2Fad05RdkdjQmJ3YmVBR3dlRzBWU0Z6MEkvQmo0RG1sUm9aUTFHNEJpakFTT0IwNEdqc0R6TGxYZEZjQ1hnUXR4VmtDWmNpRHFyWEdrNS9yL0J1d2NuRVZTOGU0RnZnbWNEandXRzBWNkpodUEzdGdFZUEvd05tRFQ0Q3lTNGkwbU5RR2ZKVzFJSklXekFlaXU5WUgvQjN3UVYvSkxXdGVUcERVQ253VG1CbWRSemRrQWRNYzQ0SjNBKzBuYjdrclNVQllCWDJ6VTRtSCtXNmtuYkFBNmR4endKV0NINkNDU1NtYys4Qi9BVjNGeklSWE1CcUI5MDBrRC8rSEJPU1NWM3pYQU80RHJvNE9vUHRhTERsQkM0MGtMZWE3SHdWOVNkeHhBMm03NGROSWlZcW5ubkFGb3phSEF0L0NWUGttOTh3andyNlN0aHFXZWNRYWdPZXVUT3ZQTGNmQ1gxRnVia3pZUStpNitUYVFlY2daZ2VQc0RQeUJ0NFN0SlJab0R2SkgwblFHcHEwWkdCOGpZZXFSWCszNEliQmFjUlZJOWJRajhFMm50MFN4Z1RXd2NWWWt6QUFPYkFweEQycmRma25Kd0NYQWk3aVNvTHJFQldOZitwQzk2YlJzZFJKTFdNb2YwQ2ZHcm9vT28vRndFK0V3bkFiL0Z3VjlTbnJZaFBRcDRYWFFRbFo5ckFKS1JwRTE5UGcyTURzNGlTVU1aQ2J5Y05JTjdlWEFXbFpnTkFFd0VmZ1M4UGpxSUpEVnBCR2tqc3UyQlh3S3JJc09vbk9xK0JtQUw0R2ZBZnRGQkpLbE5sNUZtQko2SURxSnlxWE1ETUJXNEZOL3ZsMVIrVndJdndTOExxZ1YxYlFDbWticm1hZEZCSktsTHJnZGVCQ3lJRHFKeXFHTURzQXZwem4rcjZDQ1MxR1UzQUVkaEU2QW0xSzBCMkkzMENzM2s2Q0NTMUNQWEFTL0FOUUVhUnAzMkFYZ1djREVPL3BLcWJUL2dwOERZNkNES1cxMWVBOXlXZE9mdkJqK1M2bUFhc0NOd1FYUVE1YXNPRGNBV3dPK0FIYUtEU0ZLQmRnZkdrZFk4U2V1b2VnTXdFZmdONmRtL0pOWE5JY0JjMGhzQzBqTlVlUkhnZXFTUCtod2ZIVVNTQXEwQWpnUitIeDFFZWFueUlzQXY0dUF2U2FPQmMvSFZaNjJscWczQVc0RjNSb2VRcEV4c1Fab1JIUk1kUlBtbzRocUEvVW5kN3Fqb0lKS1VrVzJCRFlGZlJ3ZFJIcXJXQUV3aGJmRzdhWFFRU2NyUUFjRDl3STNSUVJTdlNvc0FSd0tYQUVkRUI1R2tqQzBCRGdYK0dCMUVzYXEwQnVCVUhQd2xhVGpqZ1F0Sk02YXFzYXJNQU93RFhFMWE3U3BKR3Q2VnBHOEdMSThPb2hoVldBTXdrYlRIdjkyc0pEVnZPMkFUNEZmUlFSU2pDZzNBZndGSFI0ZVFwQkxhSDdnUHVDazZpSXBYOWtjQWh3UC9TL24vSEpJVVpSbHdHSEJ0ZEJBVnE4d0Q1M2pnWnRKbmZpVko3WHNJMkJkNE1EcUlpbFBtdHdBK2pvTy9KSFhEbHFTZEFzZEdCMUZ4eXJvR1lEcHdCdVZ1WUNRcEo5c0NrNEZmUkFkUk1jcmFBSndEN0JBZFFwSXFabC9TNHdBM0NhcUJNcTRCZUNWd1huUUlTYW9vUHg5Y0UyVnJBTVlDdCtLemYwbnFwWWRKc3dFUFJBZFI3NVR0R2ZxN2NQQ1hwRjdyKzN5d2l3SXJyRXhyQU5ZSGZrVGErVStTMUZ2YmtIWUwvRWwwRVBWR21ScUFVNEdYUm9lUXBCcVpEc3dGcm84T291NHJ5eHFBallHN1NmdFdTNUtLc3dJNENyZzhPb2k2cXl4ckFONkxnNzhrUlJoTmV2eTZUWFFRZFZjWlpnQW1rRDVXTVNrNmlDVFYySTNBd2NDUzZDRHFqakxNQUx3WkIzOUppcllYOE4vUklkUTl1UzhDSEFsOEg5ZzBPb2draWVuQUF2eHlZQ1hrUGdOd1BMQmpkQWhKMHQ5OWdmUXBkcFZjN2czQXlkRUJKRW5QTUpxMFNkQzA2Q0RxVE02TEFIY0U3aUR2akpKVVZ6ZVJGZ1UrRlIxRTdjbDVCdUJmY1BDWHBGenRDWndlSFVMdHkzVVI0R2pnZjBqYi8wcVM4clFIOERod2RYUVF0UzdYR1lCalNCK2prQ1RsN1RPa3p3ZXJaSEp0QUY0VEhVQ1MxSlJSd0xuNHhsYnA1UGlNZlFMd0NFNy9TMUtaM0F3Y0JEd1pIVVROeVhFRzRDVTQrRXRTMmV3Qm5FV2VONVlhUUk2TEFEOEs3Qm9kUXBMVXNsMUlyd1ZlR1IxRXc4dXRVeHNGekNOOS9sZVNWRDZyZ1dPQlgwVUgwZEJ5ZXdSd0VBNytrbFJtNndFL0FKNFZIVVJEeTYwQk9DWTZnQ1NwWTVzQVB3TTJqQTZpd2RrQVNKSjZZUmZnVFBKNzFLeUduQllCVGdZK2p6OHNrbFFWendHV0E3K1BEcUoxNVRRRGNEQU8vcEpVTmY5QldoU296T1RXQUVpU3FtVTk0R3pTSXdGbHhBWkFrdFJyR3dBWEFodEZCOUhUY3BseUh3c3NhdndxU2FxbW53QXpnRFhSUVpUUERNQnpjZkNYcEtwN09mRGg2QkJLY21rQTlvZ09JRWtxeEV6Z0ZkRWhaQU1nU1NyV0NPQzcrTTJYY0RZQWtxU2liUUJjZ0Z1L2g4cWxBWGh1ZEFCSlVxRjJJbjArT0pkeHFIWnkyQWx3UFBBcDhua2pRWkpVakoxSkRjQ3M2Q0IxbEVQbnRUME8vcEpVVng4Q1RvZ09VVWU1TkFDU3BIb2FBWndCN0JZZHBHNXlhQUNtUlFlUUpJVmFuL1Q1NEVuUlFlb2tod1pnbStnQWtxUncwNER2a2NlNFZBczVuT2pOb2dOSWtySndEUENKNkJCMWtVTUQ0SlNQSktuUEI0RlhSNGVvZ3h3YWdNblJBU1JKMmVqYktYRHY2Q0JWWndNZ1Njck5lT0I4SEI5NktvY0dZSVBvQUpLazdHd1AvSUE4TnF5cnBCd2FBRDhETEVrYXlOR2tuV0xWQXprMEFHT2lBMGlTc3ZVKzRQWFJJYW9vaHkxNG55STk3NUVrYVNCTGdFT0JQMFlIcVpJY0dvQ1YrSXhIa2pTMDJjQit3THpvSUZXUnd5TUFCMzlKMG5DbUF1Y0FvNktEVkVVT0RZQWtTYzE0QWZEWjZCQlZrY01qZ0RYUkFTUkpwZkltMGhjRTFRRWJBRWxTMlN3RkRnT3VpdzVTWmpZQWtxUXl1aC9ZRjVnYkhhU3NYQU1nU1NxamJZRUxjQytadHRrQVNKTEs2bURnQzlFaHlzcEhBSktrc25zTDhPM29FR1ZqQXlCSktydGxwRVdCMTBZSEtSTWJBRWxTRlR4RVdoVDRZSFNRc25BTmdDU3BDcllFZm94Zm1HMmFEWUFrcVNvT0JMNFVIYUlzZkFRZ1NhcWF0d0tuUjRmSW5RMkFKS2xxVmdCSEFyK1BEcEl6R3dCSlVoVTlURm9VK0VCMGtGeTVCa0NTVkVWYjRLTEFJZGtBU0pLcTZnQmNDekFvR3dCSlVwV2RCSndjSFNKSHJnR1FKRlhkQ3VBbzRQTG9JRG14QVpBazFjRWp3SDZrendnTEh3RklrdXBoYytDbndQam9JTG13QVpBazFjVmV3SDlIaDhpRkRZQWtxVTVlQjd3ak9rUU9YQU1nU2FxYmxjRFJ3S3pvSUpGc0FDUkpkVFNmdENqd251Z2dVWHdFSUVtcW8wbkFCY0NFNkNCUmJBQWtTWFcxSnpYZUtkQUdRSkpVWnljQzc0a09FY0UxQUpLa3Vsc0ZIQXY4T2pwSWtXd0FKRW1DQmNEK3dGM1JRWXJpSXdCSmttQlQwcUxBaWRGQmltSURJRWxTc2dkd0Zubk1qdmVjRFlBa1NVK2JBYnd2T2tRUmN1aHlYQU1nU2NySmF1QTQ0SmZSUVhySkJrQ1NwSFU5UmxvVWVHZDBrRjd4RVlBa1NldmFCUGdac0dGMGtGNnhBWkFrYVdDN0FHZVN4Mng1MTlrQVNKSTB1SmNEcDBhSDZJVWN1aHJYQUVpU2NyWWFlQkZ3YVhTUWJySUJrQ1JwZUE4QXU1TVdCMWFDandBa1NScmUxc0JwMFNHNnlSa0FTWkthTndPNE1EcEVOOWdBU0pMVXZMbWtSd0Z6bzROMHlrY0FraVExYndydzVlZ1EzZUFNZ0NSSnJYc1ZjRjUwaUU3WUFFaVMxTHE1d0U3QW91Z2c3ZklSZ0NSSnJac0NmRFE2UkNlY0FaQWtxVDByZ2IyQVc2T0R0TU1aQUVtUzJqTUsrR0owaUhiWkFFaVMxTDRYQXNkRmgyaUhqd0FrU2VyTVhjQ3V3TExvSUsxd0JrQ1NwTTdzQ0p3U0hhSlZ6Z0JJa3RTNXhjQTBZRUYwa0dZNUF5QkpVdWMyQk40VkhhSVZ6Z0JJa3RRZGkwaXpBS1g0WkxBekFKSWtkY2RHd0R1aVF6VExHUUJKa3JwbklXa1dZR0Ywa09FNEF5QkpVdmRzREp3Y0hhSVp6Z0JJa3RSZDgwbXpBSTlIQnhtS013Q1NKSFhYSk9BdDBTR0c0d3lBSkVuZE41dTBRZENxNkNDRHNRR1FGR0U1Y0M5cEM5VTdnWWVCQjRGSFNOOVpmd3A0a29HblVDY0E0MGpQV2ljQm16VnFhOUswNnc2TjJxaVhmd0NwQ1M4RExvb09NUmdiQUVtOXRoaTRCcml4VVRlUkJ2MWUzeGx0Qit6ZXFIMkFnNEN0ZW54TXFiOUxnS09qUXd6R0JrQlN0ejBCWEFyOEwvQjc0QmJ5bVFhZENod01IRW42aTNtYjJEaXF1RFhBVHFTR056czJBSks2WVE1d1B2QnowcUJmbHEraTdRSWNDOHdBbmtjZWZ5ZXFXajRKZkNnNnhFQnkrR0czQVpES2FTNXdEbkF1Y0JYbC8vL3lOc0FyZ0pPQXZZT3pxRHJtQU51VHp5elkzOWtBU0dyRmF1Qmk0TnVreFUzTFkrUDB6TzdBNjRFM2tCWWFTcDA0QnZoMWRJaTEyUUJJYXNZVHdObkFhY0R0d1ZtS05CWjROZkJ1WU0vZ0xDcXY3NUZtbHJKaUF5QnBLSThBbndlK1JmclNXWjBkQ2Z3YjhJTG9JQ3FkUmNBV3dOTG9JUDI1RTZDa2djd0Yvai9wZmZyUDQrQVBjQm1wQ1RnUStHVndGcFhMUnNDTG9rT3N6UVpBVW45UEFoOGxEZnhmSUczSW8yZTZCbmdwOEh6ZzZ1QXNLbzhUb2dPc3pVY0FraUF0N3ZzZjRNT2tIZm5VdkJta1ptbjc0QnpLMndKZ2MyQmxkSkEremdCSXVwbTBPYzZiY1BCdnh3WEFjNEdQa2RrelhtVmxVOUxqbzJ6WUFFajE5U1RwT2Y4K3BHbHR0VzhKTUJQWURaZ1ZHMFVaZTJsMGdQNThCQ0RWMDFXazk5eXozS0swNUVZQWJ3VStDMndRbkVWNXVSbVlIaDJpancyQVZDL0xTVlBWbnlIRG5ja3FaaXJ3ZmVDUTZDREt4aHBnQ3ZCb2RCRHdFWUJVSi9lU0JxUC94TUcvQ0xPQkk0Q1A0L2xXTW9MMDlrZ1diQUNrZXZnRjZWbi9kZEZCYW1ZbDZiWEtJNEdIZzdNb0Q0ZEhCK2hqQXlCVjJ4cmdJOEJ4cE5lUUZPTnlZRi9nRDlGQkZPN1E2QUI5WEFNZ1ZkY3EwdjdqWjBjSDBkK05CZjZMOU1xbDZta2xhV2ZBOEUyMm5BR1FxdXNVSFB4enN3eDRNM0FxM3Z6VTFTZ3krYkNVRFlCVVRlY0NYNHNPb1VGOUdqaVIxQkNvZnZhTERnQTJBRklWTFFMZUdSMUN3L29oNlR2eFQwUUhVZUd5MkF2QUJrQ3FucStTUHVPci9NMGl2U280UHpxSUNyVkxkQUJ3RWFCVU5TdEpYL0s3UHpxSVdySTM4QnRnY25RUUZXSVJzSEYwQ0djQXBHcjVLUTcrWlhRRDZYdnhpNktEcUJBYkFWdEhoN0FCa0tybHA5RUIxTFliZ0Jmam1vQzYyQ0U2Z0EyQVZDMVhSUWRRUjY0QmpzZTNBK3BnYW5RQUd3Q3BPaDRCN29vT29ZNWRTdnBTbyt1anFtM2I2QUEyQUZKMTNCRWRRRjN6STlKSGhGUmQyMFVIc0FHUXFzTUZaTlh5TWVBSDBTSFVNMU9pQTlnQVNOV3hNRHFBdW1vTmFkdmdHNktEcUNjMmpRNWdBeUJWaC85L3JwNmx3S3V3dWFzaUd3QkpYUk8rcUVnOWNSY3VDcXlpOEFiQW5RQ2w2cmlQREY0dGFzTUlVdk95VTZPbWtIWko2NnZSd0pPTi8zWWhzQVNZRGN3aGJYcDBKekN2Mk1naHZncThQVHFFdW1ZK3dUcy8yZ0JJMWJFSzJBUjRQRHJJTUNZRGh6WHFVTksrNk9NNy9EM3ZBNjREL2dCYzNhaFZIZjZldVprQS9CRjRUblFRZGNYandJYVJBV3dBcEdvNUZ2aEZkSWdCUEpmMExIc0dzQnU5Lzd0blB2Qkw0R2VrUGZaemI0cWF0UzlwczZmUjBVSFVzV1hBdU9nUTBkWllsdFcxT290OGJBNzhPM0F6c2Vma0NlQmJ3RjY5L2VNVzVoUEUvNXhabmRmcXRTOXMwWndCa0tybEtXQWFNRGN3dys3QUtjQ0p3TmpBSEFPNUd2Z3ljQjRaL0FYY3B2R2twdXBaMFVIVXNkQXgyTGNBcEdxWlFMcnJqckEzOEd2Z1Q4QWJ5Vy93QnpnUU9JZjBidjFMZzdPMGF3bnd0dWdRVWpkRVQ4TllWdFZxSmZBOGlyTWQ2ZEhEcWk3L09ZcW8zd1A3ZFArVUZPSWM0cytmMVZtRjhoR0FWRTF6U0UzQWd6MDh4bGpnUThCNzZYd1ZmNlNWd0dkSmUrK1g2U3Q4MndOL3dZVmtaZVlqQUVsZHR3MHdpOTd0Q3pBZHVKYlVBSlI1OEFjWUJmd2I2Ulc3L1lLenRPSmU0Q3ZSSVZSZXpnQkkxVFlYT0luMEtsdzNqQUxlRDN3VUdOT2wzek1uSzRCM0FkK0lEdEtralVnYklZVnVLS08yT1FNZ3FXZW1BTDhDdmdmczBPSHZOWjMwRHZvbnFlYmdEK245K3E4RDM2UWM3OW92QWo0ZkhVTGw1QXlBVkIrclNjM0ExNEJMU2MrK2h6T0N0RnZmMjRBVHFOZE53KzlJR3hmTmp3NHlqUFdCZTNBV29JeEN4MkFiQUttZW5pUnRuWHNGNldNemkwbDNrNURXRDB3bDdjdi9BbURMaUlDWnVBbDRJZmszQVI4RVBoVWRRaTJ6QVlnT0lFbEQrQk9wQ1hnME9zZ1FOaUI5R0dtajZDQnFpV3NBSkNsajA0SEx5SHVLL1hIZ085RWhWQzdPQUVoU2M2NGpQUko1SWpySUlLYVMzZ2dZRlIxRVRYTUdRSkpLWUQvU053UnlmVHRnTnVucmgxSlRiQUFrcVhrdkJzNGszNzg3dngwZFFPWGhJd0JKYXQybmdWT2pRd3hnSk9tVndHMmpnNmdwUGdLUXBKTDVBUEFQMFNFR3NJbzBReUVOeXhrQVNXclBvOEJlcEE4djVXUW40UGJvRUdxS013Q1NWRUtUZ2JQSmI5WDkzMGg3RjBoRHNnR1FwUFlkU3ZxU1lHN09pdzZnL1BrSVFKSTZzeFRZamJTbGNpNThERkFPYmdVY0hVQXEyRUxnRHRKVTdTTFNMbTZMU1B2ekx3TTJKbjNnWlNKcGk5ZXB3TE9CN1hEV0xsYy9CNDZMRHJHV3Y1RiticFN2MERFNHQyZFhVdFU4VHZxcTNDemdXdEpkMmR3MmY2K3hwTC9RZHlWTlBSOE9QSmM4R3ZtNk83WlJQNDhPMHMrdnNRSFFFSEw0aThNWkFGWE5uY0FQU0g4QlgwOXpuOTF0MXhUZytjRHhwTmZTSnZUd1dCcmFYYVNHYkhsMGtJYVhrbGREb25YNUNDQTZnTlFGQzRGemdiT0FxNGo1dVY2ZjFBaWNTUHA2M2NpQURIWDNSdUM3MFNFYUpnSUxnREhSUVRRb0c0RG9BRklINWdMZkFFNERGZ2RuNlc4cThCN2d6VGdyVUtUYlNiTUFxNk9ETkZ3TkhCQWRRb055SHdDcGhCNEJQZ2hzRDh3a3I4RWYwb2RoM2tWcUJENUd1aE5VNyswTXZEdzZSRDlYUkFkUXZtd0FwTllzQno1Qkd2Zy9BeXdKVFRPOFIwa055bzdBMTBoYnhhcTNQaGdkb0o4cm93TW9YejRDa0pwM0JmQlc0TS9SUVRvd25kUUlIQklkcE9MMkFXNklEZ0ZzQlR3UUhVS0Q4aEdBbExtbHdNbkFZWlI3OEllMFJleGh3QnRJZXcrb04wNk1EdER3SU8yL2RxcUtzd0dRaG5ZLzZUVzdiMUtkMmFvMXBDL0dUU2N0RWxQMy9TUDV2SVhoZHdFMElCc0FhWENYa0w3MmRtMTBrQjZaVGRwTTZJdFVwN25KeFpha2M1c0RHd0FOeUFaQUd0aFhnR09BK2RGQmVtdzU2WFhCNDBsYkVhdDdUb2dPMFBEWDZBREtrdzJBdEs3UGsxNmhxOU9LK1o4Q1J3RHpvb05VeUJIUkFScHkra2lSTW1JRElEM1RaNEgzUlljSWNoMXBnZUI5MFVFcVlpZGc2K2dRcEsycHBYWFlBRWhQK3pqd2dlZ1F3ZjRLSEFUY0ZoMmtJZzZQRGtCNkRYQnBkQWpseHdaQVNqNEdmRFE2UkNZZUFJNEM3b2tPVWdHSFJ3Y2dMZkI4TURxRThtTURJS1dkOG1ZR1o4ak5RNlFtNEpIb0lDVzNSM1NBaG9lakF5Zy9OZ0NxdTVta3UzK3Q2eTdTTis2ZmlBNVNZanRIQjJoNEtEcUE4bU1Eb0RyN0dBNyt3N2tlZUIzdUU5Q3VqWUFwMFNGd04wQU53QVpBZFRVVHAvMmI5UlBTOXdQVW5tZEhCd0Flanc2Zy9OZ0FxSTY4ODIvZCs0Q2Jva09VMUE3UkFjanZjOVhLZ0EyQTZ1WmplT2Zmam1YQWEzQzN3SFpzRkIwQUd3QU53QVpBZFRJVEIvOU8zRTdhSzBHdFdUODZBS21CazU3QkJrQjFNUk9uL2J2aFM2UkdRTTNiSURvQUx1TFVBR3dBVkFjemNmRHZsdVhBTzZKRGxFd09EY0RxNkFES2p3MkFxczRGZjkxM0NYQlJkQWkxeEFaQTY3QUJVSlhOeEdmK3ZmSmhuRlp1Vmc0TDhNWkdCMUIrYkFCVVZUUHh6citYL2dSY0ZoMmlKSExZU1hGOGRBRGx4d1pBVlRRVEIvOGlmRFk2UUVua3NBblB1T2dBeW84TmdLckdaLzdGdVFTNE1UcEVDU3lLRGdCTWlBNmcvTmdBcUVwbTRqUC9vcDBSSGFBRTdvb09BRXlPRHFEODJBQ29LbWJpblgrRUh3RXJvME5rN20vUkFiQUIwQUJHUlFlUXVxRE0wLzZUZ1FPQjV3SFRTYzlxMXlmdDNIWkhvNjRDcmdaV0JXVWN5anpnVXVERjBVRXl0UUNZSHgwQ0d3QmxhbzFsZFZBektaLzFnR09BQzRFVk5QZm52Qi80SUhrK3l6MkorSitEWE92cURzNXJOLzJaK0hOaHJWdTFGMzBCclBMV1RNcm5BTklyZE8zK21lOEhqaW84OWRBbWt6YWFpZjU1eUxGeStJenlDTkpIbktMUGhiVnUxVjcwQmJES1dUTXBsOUhBVjBuVCtKMysyVmNCN3l3Mi9yQnVKdjVuSXNkNlJTY250VXMySS80OFdBTlg3VVZmQUt0OE5aTnlHUTJjVC9mUHcxdUwvRU1NNHl2RS8xemtWcXVBU1oyYzFDN1pqL2h6WVExY29Yd0xRR1h6TWNyVkFJd0d6Z0ZtOU9EMy9ocndraDc4dnUyNFBEcEFobTRtandXQU8wVUhVSjVzQUZRbUR2N1BOQW80RDlpN1I3OS9LM0paN0phVFM2SUROT3dhSFVCNXNnRlFXVGo0RDJ3Q2NDNndZWStQTTV3SHllT2pOems1T3pwQWd3MkFCbVFEb0RKdzhCL2FqdVN4RDBJT0c5N2s0aGJncHVnUURidEZCMUNlYkFDVU93Zi81cndkbUZid01kZDJlL0R4Yy9LOTZBQU5rNGovdVZDbWJBQ1VNd2YvNW8wQzNodHczUDd1Q0Q1K0xsWUNQNGdPMGJBZmFSOEFhUjAyQU1xVmczL3IvaEVZRzNqOFJ3T1BuWk1ma3RaRTVHRC82QURLbHcyQWN1VGczNTVOZ1lNRGo3OHc4Tmk1V0FWOE1qcEVQd2RGQjFDK2JBQ1VHd2Yvemh3YWVHd2JnUFJhWmk1ckljWUFoMFNIVUw1c0FKUVRCLy9PN1JKNDdFV0J4ODdCYXVBVDBTSDZlUjR3TVRxRThtVURvRnc0K0hmSDVvSEhYaGw0N0J6OE4zQmJkSWgrWGhBZFFIbXpBVkFPSFB5N1ozemdzY2NFSGp2YVE4Q3AwU0hXa3NzMjBjcVVEWUNpT2ZoMzF4T0J4eDRYZU94bzd5S3ZSeUJia1Y0QmxBWmxBNkJJRHY3ZE55ZncySkd2SUViNk9XbnhYMDZPeGZmL05Rd2JBRVZ4OE8rTld3T1BYY2NGWi9jRGI0b09NWURqb3dNb2Z6WUFpdkE1SFB4NzViZUJ4OTRtOE5nUmxnR3ZCT1pHQjFuTEZPQ0YwU0dVdjFIUkFWUTdad0FmaUE3Umd0SEFqeWpISGRWczRJK0J4OTh1OE5nUjNnNWNHeDFpQVArSWY3ZXJDYzRBcUVqZkE5NENySWtPMHFTK08vOHlEUDRBM3lIMjNOWnBCdUFid0xlalF3eml4T2dBVXJQV1dMV29TMGtEYWxtTUJzNG4vcncxV3d1QlRYcHlKcHAzUGZIbm9ZZzZrM3h2bnZZZy92eFl6VmNvcDRsVWhMOEFKd0Fyb29NMHFVelQvbjArQWp3V2VQeVJ3SE1DajErVUg1TVcvYTJPRGpLSWs2TURTSzJJN3NDczN0YkR3RlRLbzJ4My9tdUFXYVFCT05KMDRzOURyK3M4OHI1cDJnQllUUHg1c3BxdlVMbE9ZNmthVnBEdS9HZEhCMmxTbVZiNzk3a1BlQzNwSzNTUjlnMCtmcTlkUURyUE9XOTMvSHBTRXlDVlJuUUhadld1VHFFOHluam5QNC9Zai8vMDkwM2l6MGV2Nm56eVg3OHlDcmliK0hObHRWYTFGMzBCck43VUR5bVBzZzcrZS9UaVpMVHBWdUxQU1MrcURJTS9wRmYvb3MrVjFYclZYdlFGc0xwZmQxS2VxVWdILzg1TkkvNmM5S0xLTXZpUEFHNGkvbnhaclZjbzF3Q28yMVlDcndNZWp3N1NoTDdWL21WNjVqOFBPQks0T1RwSVA4ZEZCK2lCQzREWFVJNDNWMTVCV29RcGxVNTBCMloxdDJaU0RxTkpmOGxIbjY5V2FpNTUzZm4zK1EzeDU2YWJWWlk3ZjBodmY5eEcvRG16MnF2YWk3NEFWdmZxT3ZKK1RhcVAwLzdkc3hHd2xQanowNjBxMCtBUGNCTHg1OHhxdjJvditnSlkzYWtWd043a3p6di83bm83OGVlblcxVzJ3WDg4Y0MveDU4MXF2Mm92K2dKWTNhbFByMzFoTStUZzMzMDNFbitPdWxGbEcvd0JQazc4ZWJNNnE5cUx2Z0JXNTNVWE1HSHRDNXNacC8yNzd3RGl6MUUzcW95RC96VGdLZUxQbmRWWjFWNzBCYkE2cjl6M3pIZnc3NDB6aUQ5UG5WWVpCMytBaTRnL2QxYm5WWHZSRjhEcXJHYXRlMG16NHJSL2Iyd0hMQ1ArWEhWU1pSMzhYMHY4dWJPNlU3VVhmUUdzOW1zVnNNKzZselFiRHY2OWN6cng1NnFUS3V2Z1B4bDRoUGp6WjNXbmFpLzZBbGp0MTVrRFhNOWNPTzNmTzlzRHk0ay9YKzFXV1FkL2dIT0pQMzlXOTZyMm9pK0ExVjZ0QUo0MXdQWE1nWU4vYjMyYitQUFZicFY1OEg4VDhlZlA2bTdWWHZRRnNOcXJNd2E2bUJsdzJyKzM5aU50OXh4OXp0cXBNZy8rendJV0UzOE9yZTVXN1VWZkFLdjFXZ0hzT05ERkRGYkdPLzh5RGY2aktPOTcvMlVlL0NkUTN2TnVEVjIxRjMwQnJOYnJuQUd2Wkt5UndJK0pQemV0VkprR2Y0RDNFbi9PMnFreUQvNEEzeWYrSEZxOXFkcUx2Z0JXNi9XOEFhOWtyTThUZjE1YXFiSU4vdE9BSjRnL2I2MVcyUWYvZHhOL0RxM2VWZTFGWHdDcnRicHk0TXNZNnArSlB5K3RWTmtHL3pIQU5jU2Z0MWFyN0lQL0ROTGp0dWp6YVBXdWFpLzZBbGl0MVdzR3ZveGhEcVZjRzlLVWJmQUgrQkx4NTYzVnFzTGdYK1pYTGEzbXF2YWlMNERWZkQwS2pCMzRNb2JZbkhKdGlsTEd3WDhHc0pyNGM5ZEtPZmhiWmFuYWk3NEFWdlAxcFVHdVlaU2ZFSDlPbXEweUR2NTdBQXVKUDNldGxJTy9WYWFxdmVnTFlEVmYwd2U1aGhGT0l2NThORnR6Z2QxN2N4cDZaZy9TNWtUUjU2NlZjdkMzeWxhMUYzMEJyT2JxVDROZHdBQmJBZk9KUHlmTmxJTi9NZVhnYjVXeFFxMFhIVUNsOGVQb0FQMThHZGcwT2tRVDVnRXZCRzZKRHRLQ1BZRExTQitkS1lzTFNJdFRWMFFIYWRNTTB0NGFaVzVncExaRWQyQldjN1hMWUJld1lQdFRqa1ZwM3ZrWFU5NzVXMld1Mm91K0FOYndkZHVnVjY5NHM0Zy9IOE5WV1JmOE9mZ1h5OEhmcXIzb0MyQU5YNThiOU9vVjY2WEVuNHZoeWp2L1lzckIzNnBDMVY3MEJiQ0dyeGNPZXZXS2RSM3g1MktvOHM2L21ITHd0NnBTdFJkOUFheWg2eWxnL0tCWHJ6Z0hFSDh1aGlydi9Jc3BCMytyU2hYS3R3QTBuTjhEUzZKREFDZEhCeGlDcS8yTDRXcC9xV0tpT3pCcjZQckk0SmV1TUpOSlRVajB1UmlvdlBNdnByenp0NnBZb1p3QjBIQ3VqZzRBdkI0WUZ4MWlBTjc1RjhNN2Y2bWlvanN3YS9CYUJXdzArS1VyekZYRW40dTF5enYvWXNvN2Y2dktWWHZSRjhBYXZQNDh4SFVyeXVha1JpVDZYUFF2Qi85aXlzSGZxbnFGOGhHQWhwTEQxUFp4NVBWek9nODRranpPVGJPYzlpK2UwLzdLWGs1L3NTby9PZXdBZUZ4MGdINGMvSXZoNEM4VndBWkFRN2sxK1BnamdFT0NNL1FwNitCL0tRNytSWEx3VjJtTWlnNmdyUDB0K1BnN2tNZFgvOG82K0h2blh5d0hmNVdLTXdBYXl1emc0KzhYZlB3K2I4TEJ2OWNjL0tXQzJRQm9NUE9CeDRNejdCTjhmSUJ6Z1l1aVE3VEF3Yjk0RHY0cUpSc0FEZWErNkFEQXJzSEhYd0tjRXB5aEZUN3pMNTZEdjByTE5RQWF6TVBSQVlCdGc0OS9IdkJRY0labWVlZGZQQWQvbFpvekFCck0vT2dBd05iQnh6ODkrUGpOY3ZBdm5vTy9TczhHUUlONUxQajRFNEJOQW84L0c3Z3k4UGpOY3RxL2VBNytxZ1FiQUExbVFmRHh0d3crZmc0ZlFScE8zK0MvV1hTUUZqajRTNWx3RFlBR3N6VDQrR09EajM5TjhQR0g0N1IvOFJ6OFZTbk9BR2d3eTRLUEgvMnplV2Z3OFlkNU02aDJBQUFRMlVsRVFWVGl0SC94SFB4Vk9jNEFhRERMZzQ4Zi9iUDVaUER4QitPZGYvRWMvRlZKMFhkWnl0Zks0T05ILzJ3dUNUNytRTHp6TDU2RHZ5b3IraTVMK1lyK0N5OTZBTjR3K1Bocjg4Ni9lQTcrcXJUb3V5emxLM29SM3FQQng5OHArUGo5T2ZnWHo4RmZsV2NEb01HTUNUNytBbUIxNFBGM0RqeDJmMDc3RjgvQlg3VmdBNkRCVEFnKy9pcGlOeU02SXZEWWZYelB2M2dPL3FvTkd3QU5abEowQUdMMzRkK05OQUJIY2ZBdm5vTy9hc1VHUUlQWk5Eb0FjRnZ3OGQ4VGRGd0gvK0k1K0t0MmJBQTBtQnhtQUc0TlB2N3JnSDBLUHVidU9QZ1h6Y0ZmdFdRRG9NRkU3OFVQY0V2dzhkY0R2Z2VzWDlEeGRpZXQ5bmZ3TDQ2RHYyckxCa0NEbVJvZGdQZ0dBR0FYMGlEWDY5Y2lIZnlMNStBdkJWdGpaVnM1dkhwMlAvSG5ZUTN3ZTNwM1B2WUE1bWJ3WjJ5bHpxZmNBK2NNMG5iWDBlZlJxbmVGY2daQVE1a2FIUUM0SkRwQXd5SEFGY0QyWGY1OUR3TitpM2YrUmZMT1g4SUdRRU43VG5RQTRPTG9BUDNzREZ3SEhOT0YzMnNFOEM1U2c3TkpGMzYvb2pqNFMrcWE2Q2tZYS9ENjFCRFhyU2lia1RZRmlqNFgvV3MxYVhIZ05tMyttZllpUFZLSS9uTzBXazc3VzFaM3EvYWlMNEExZUYwMHhIVXIwbStKUHhjRDFUTGdETkkwL25DemFlT0E0NEZma0JxSTZPeXRsb08vWlhXL1FvMklEa0FHSjBHRHVvODgxZ0c4QWZodWRJaGhQQVpjQ2Z5RnRLQnZNV2xxZjJ2U3JvSUhBT1BEMG5YR2FYK3BOMExIWUJzQURXY3JZcmZrQlpnSVBFeHg3K1ByYVE3K1V1K0Vqc0V1QXRSd0Rvd09BRHhKbW9KV3NSejhwUXF6QWRCd2NtZ0FBTDRSSGFCbUhQeWxpck1CMEhBT2lRN1E4QWZTSHZucVBRZC9xUVpjQTZEaHJBS21BQXVpZ3dDSEE3T2lRMVNjZzc5VUhOY0FLR3NqZ1NPaVF6VDhsdlQrdkhyRHdWK3FFUnNBTmVORjBRSDYrUkRPR3ZXQ2c3OVVNellBYXNaTHlPZG41WGZBOTZORFZJeUR2MVJEcmdGUXN3NGhiWFNUZzgyQnZ3SWJSd2VwQUFkL0tZNXJBRlFLSjBRSDZPY1I0TVBSSVNyQXdWK3FNV2NBMUt3NXBHMkJWMGNIYVJoSmVpM3c4T0FjWmVYZ0w4VnpCa0Nsc0EzNXZBMEE2ZlhFMTVDMkNGWnJIUHdsMlFDb0pXK01EckNXUjREWGtwb0JOY2ZCWHhKZ0E2RFd6Q0I5NFM0bnM0QlBSWWNvQ1FkL1NYOW5BNkJXakFQK0tUckVBRDRLbkIwZEluTU8vcEtld1VXQWF0VTl3TFBKYjlwOU5QQlQ0SmpvSUJseThKZnk1Q0pBbGNvMDRMam9FQU5ZQWJ3U3VDbzZTR1ljL0NVTnlBWkE3WGgzZElCQlBBVzhETGcyT2tnbUhQd2xEY29HUU8wNEREZ29Pc1FnNWdOSEFyK0pEaExzZkJ6OEpRM0JCa0R0bWhrZFlBaFBBTWNDWjBRSENmSVY0TlU0K0V2SzNCcXJ0SFhJQU5jekp5T0FqNU1XTEVhZnF5SnFLZkQ2cnB5NU9ET0E1Y1NmUzhzcW9rTDVGb0E2TVF0NFFYU0lKaHdGZkkvMEVhR3FlcGcwZUY0ZEhhUUQzdm1yYm53TFFLVjFCSG0rRWJDMlM0QTlnSXVqZy9USWowbC9QZ2QvU2FVU1BRVmpkVmEzVTU2L3RFY0Nid01lSS82OGRhTWVKUzMwS3p1bi9hMjZWdTFGWHdDcjh6cGxuYXVhdDgyQk0wbGZOb3crZCszVWF1Q0h3QmJkUGpFQkhQeXRPbGZ0UlY4QXEvTjZETmh5N1F0YkFvY0NseE4vL2xxcFM0QjllbkV5QWpqNFczV3Yyb3UrQUZaMzZyeTFMMnlKSEVyYU55RDZIQTVWVjVFV00xYUZnNzlsS2Z3Q1dOMnJsMUZ1KzVIMkRsaE0vTGxjUTlyWjhEdFU1NDYvajRPL1phVUs1V3VBNnFiN1NhdlJGMFlINmRCRTBpRDFCdUQ1cE1XRFJWa0ZYQWxjQ0p3RkxDancyRVZ3dGIvMHROQXgyQVpBM1hZMmNHSjBpQzdhaExTMThOR05tdHFEWXp3TVhBRmNCUHlDdEoxeEZUbjRTODlrQXhBZFFGMTNJcWtScUtLcHdPN0FibzFmZHlXdHhwL004RE1GRHdNUEFuT0EyNERyZ090Sk15ZFY1K0F2cmNzR0lEcUF1bTRoc0Njd096cEl3U1kzYW1MajN4OXIvTG9DZUlUMDNMdU9IUHlsZ2RrQVJBZFFUOXhFK21MZ2t1Z2dDdVhnTHczT3JZQlZTWHNDWDQ0T29WQU8vbExHYkFEVVMyOEIzaFFkUWlFYy9LWE0rUWhBdmJZY2VESHB5NEdxQndkL3FUbXVBWWdPb0o2YlQxb1A4TGZvSU9vNUIzK3BlYTRCVU9WTkFuNEZUSWtPb3A1eThKZEt4QVpBUmRrQitDbXdRWFFROVlTRHYxUXlOZ0FxMGdHa21ZQ0p3LzJIS2hVSGY2bUViQUJVdElPQkM0Q3gwVUhVRlE3K1VrblpBQ2pDMGNDUHNBa291MWZoNEMrVmxtOEJLTklzMGllRW40Z09vcGI5RS9CZFlGUjBFS25FZkF0QXRYVUU4RXRndytnZ2Fzbkp3Sms0K0V1bFpnT2dhSWVTWmdLMmpBNmlZWTBBUGc1OEhmL3VrRXJQUndES3hZUEFzY0NOMFVFMG9ESEFkMGhULzVLNnc1MEFvd01vRzR1QkU0Q0xvNFBvR1NhUjN0dzRMRHFJVkRHdUFaQWFOaVN0Q1ppSlA1dTUyQk80RmdkL3FYS2NBVkN1TGdKT0FoWkdCNm14MXdIZkJDWkVCNUVxeWhrQWFRREhBZGNBZTBjSHFhR0p3TGVCczNEd2x5ckxCa0E1MnhuNEErbVJ3TWpZS0xXeEgzQUQ4S2JvSUpKNnkwY0FLb3ZMZ1RjQTk4YkdxS3hSd0FlQmorRE9mbEpSZkFzZ09vQks0eW5TZStpZkIxWUZaNm1TdllEVGdYMmpnMGcxWXdNUUhVQ2xjejN3TDdoblFLYzJBUDREZURzK1lwRWl1QWhRYXRHK3BDYmdMR0NMNEN4bHRCN3BEWXZiZ1hmaDRDL1Zrak1BS3J2RndLZUFMd0ZMZzdPVXdSSEFGMGpUL3BKaStRZ2dPb0FxWVM1d0d2QVZZRWx3bGh3ZEJKeEsybTVaVWg1c0FLSURxRkllQUQ1TitsVHRrOEZaY3ZCODROK0JvNktEU0ZxSERVQjBBRlhTWXVCL1NHOE0zQjhicFhDamdaY0Q3d0VPQ000aWFYQTJBTkVCVkdrcmdBdUJNNEJMZ05XeGNYcHFCK0NmRzdWMWNCWkp3N01CaUE2ZzJyaVA5R2pnSE9DdndWbTZaU1BnWmFSTmtvNGdqLzlQUzJxT0RVQjBBTlhTcmNDUFNaKzV2U1U0UzZzbWtSYnp2WkwwYkg5c2JCeEpiYklCaUE2ZzJwc0RYQXo4QnBnRnpJdU5zNDR4d1A3QTBjQ0xnSDN3M1gycENtd0FvZ05JYS9rYmNIV2ovZ2o4bWJRTmNSSFdJejNMM3dNNHNGSDdBT01LT3I2azR0Z0FSQWVRaHJFYXVJZjBxT0J1WUhiajMrOERIZ1htMC93bVJPc0JtNUttOGJjR3BqWnFCMkFYNExuNENWNnBMbXdBb2dOSVhmQVVxUkZZUVdvWUZqWCs5M0hBK01ZL2Iwd2EvQ1VKYkFCc0FDUkp0ZVRIZ0NSSlVyRnNBQ1JKcWlFYkFFbVNhc2dHUUpLa0dySUJrQ1NwaG13QUpFbXFJUnNBU1pKcXlBWkFrcVFhc2dHUUpLbUdiQUFrU2FvaEd3QkprbW9vaHdaZ1ZYUUFTWklLRmo3MjVkQUFMSThPSUVsU3daWkZCN0FCa0NTcGVEWUEyQUJJa3VySEJvQU1Ub0lrU1FVTHYvbk5vUUZZSEIxQWtxU0NMWW9Pa0VNRDhHaDBBRW1TQ2hZKzl0a0FTSkpVdlBDeHp3WkFrcVRpaFk5OU9UUUE4Nk1EU0pKVXNBWFJBWEpvQU9aRUI1QWtxV0QzUlFmSW9RRzRKenFBSkVrRkN4LzdiQUFrU1NyZXZkRUJSa1FIQU1ZQlQ1RkhGa21TZW0wMU1JSGdqZkJ5bUFGWUNqd1VIVUtTcElJOFFBYTc0T2JRQUFEY0doMUFrcVNDM0JJZEFQSnBBRzZPRGlCSlVrR3lHUE55YVFDeTZJWWtTU3BBRm1OZUxnMUFGdDJRSkVrRnlHTE15MlhsL1JqU2w1SEdSUWVSSkttSGxnQWJBU3VpZytReUE3QWN1RDQ2aENSSlBmWUhNaGo4SVo4R0FPREs2QUNTSlBYWUZkRUIrdGdBU0pKVW5Hekd1bHpXQUFCTUF1YVJWeVpKa3JwbE5XbXNXeGdkQlBLYUFaZ1AvQ2s2aENSSlBYSTltUXora0ZjREFQREw2QUNTSlBYSXI2SUQ5SmRiQTVEVnlaRWtxWXV5R3VOeWU5NCtFcGdMYkJvZFJKS2tMbm9VMkFKWUZSMmtUMjR6QUt1QWk2TkRTSkxVWmI4bW84RWY4bXNBQU02TERpQkpVcGVkR3gxZ2JiazlBb0MwSGZERHBLMFNKVWtxdTRXazZmOWwwVUg2eTNFR1lDbHdVWFFJU1pLNjVFSXlHL3doendZQTRFZlJBU1JKNnBMc3B2OGh6MGNBQUtPQSs0QXRvNE5Ja3RTQmg0RHRnSlhSUWRhVzZ3ekFTdURNNkJDU0pIWG9PMlE0K0VPK013QUFPd0Iza0crVElrblNVTllBendidWlnNHlrSndIMTd1QldkRWhKRWxxMHlWa092aEQzZzBBd05lakEwaVMxS1p2UkFjWVNzNlBBQ0ExS0xjRHo0b09Ja2xTQy80RzdFTDZCSENXY3A4QldBMThLVHFFSkVrdE9vMk1CMy9JZndZQVlBSXdHNWdjSFVTU3BDYk1CYllIbGdUbkdGTHVNd0FBVCtGYUFFbFNlWHlOekFkL0tNY01BS1R2QXR5Tm53bVdKT1Z0UHVrMTlzWFJRWVpUaGhrQWdFWEFGNk5EU0pJMGpNOVJnc0VmeWpNREFMQSs2WDNLS2RGQkpFa2F3RHhnUitEeDZDRE5HQmtkb0FYTEc3OGVIWnBDa3FTQmZRajRYWFNJWnBWcEJnQmdESEFyYVd0RlNaSnljU2V3R3hsKzluY3daVmtEMEdjNThQN29FSklrcmVVVVNqVDRRL2xtQVByOEJoOEZTSkx5Y0Nsd1ZIU0lWcFcxQWRnZHVBRVlGUjFFa2xScnk0RTlnYjlFQjJsVm1SWUI5amNYbUFnY0VoMUVrbFJyL3dtY0Z4MmlIV1dkQVFBWUM5eEkrdGlDSkVsRnU1MTA5NzgwT2tnN3lyWUlzTDlsd01uQW11Z2drcVRhV1EyOG1aSU8vbERlUndCOVpnTmJBdnRHQjVFazFjclhnVzlHaCtoRW1SOEI5SmtJL0JIWU9UcUlKS2tXL2tLNjhYd3FPa2dueXZ3SW9NK1R3R3Q1ZXFkQVNaSjZaUmx3SWlVZi9LSDhqd0Q2UEFTc0FvNk1EaUpKcXJRUEFCZEdoK2lHS2p3QzZMTWVhWU9nRjBZSGtTUlYwcStBbDFLUnhlZFZhZ0FBTmdXdUI2WkZCNUVrVmNwc1lCOWdmblNRYnFuQ0dvRCtGZ0F6Z0NYUlFTUkpsYkdVTkxaVVp2Q0g2cXdCNk85aDRFSGdINktEU0pJcTRZMmtSOHlWVXNVR0FPQW1ZRVBnd09nZ2txUlMrd3h3V25TSVhxamFHb0QrMWlQdHp6d2pPb2drcVpUT0ExNUQydld2Y3FyY0FBQ01CeTdEbVFCSlVtdXVCWTZnQXUvN0Q2YnFEUURBRk9BSzROblJRU1JKcGZCWDRGRGcwZWdndlZTMXR3QUdNaGQ0QVhCUGRCQkpVdmJ1QTE1TXhRZC9xTWNNUUo4ZGdkOEJXMFVIa1NSbDZRSGdNT0R1NkNCRnFNTU1RSis3Z0tPQmVkRkJKRW5abVFzY1JVMEdmNmhYQXdCd0c2bTdleUE2aUNRcEd3K1R2aVh6bCtnZ1JhclRJNEQrdGllOUhiQkRjQTVKVXF6WnBHL0kzQmtkcEdoMW13SG9jeS9wOVk0N2duTklrdUxjRGh4Q0RRZC9xRzhEQUdtbDU0R2tWd1FsU2ZWeURlbVI4SnpvSUZIcTNBQkErckREQzRGem9vTklrZ3B6UHVuMThMblJRU0pWOVZzQXJWZ0ZYTkQ0NThNRGMwaVNldThyd0p1QkZkRkJvdGtBUE8yM3BGY0ZYd3lNam8waVNlcXlwY0JiZ1U4QmE0S3paS0d1YndFTVpVL1NqTUMwNkNDU3BLNjREM2dsY0YxMGtKelVmUTNBUUc0QzlnTXVqZzRpU2VyWXI0QzljUEJmaDQ4QUJyWUUrQUh3R0dtaGlPZEprc3BsQmZBSjByUi9aYi9vMXdrZkFReHZOK0JzWVBmb0lKS2twdndWZUMxd1kzU1FuSGxuTzd5NXdGbkFKc0MrMkRSSlVxNVdBMThIVGdEdUQ4NlNQUWV6MWh3TWZBdllKVHFJSk9rWjdnVCtCWmdWSGFRc25BRm96ZjNBZDBoN0J4eUU1MCtTb3EwRVBnZThtcHB1NmRzdVp3RGF0eXZ3UmRMbkl5Vkp4ZnNOOEc1cTloVy9idkUxd1BiZEJoeE5hZ0QrSEp4Rmt1cmtEdUJWcEkzYkhQemI1QlIyNSs0bVBSWjRETmdibUJnYlI1SXFheTd3SWVDZmdWdUNzNVNlandDNmF5THdkdUQ5d0tiQldTU3BLaFlBWHdWT0F4WUhaNmtNRzREZTJBZzRoZFFNVEE3T0lrbGxOWTgwOEg4WkIvNnVzd0hvcmJHa2xhbW5BczhKemlKSlpYRTM2YXQ5MzhKZC9IckdCcUFZNndFdkIvNFZPQklYWDByUzJsWURsd0xmQUg3VytIZjFrQTFBOGJZQlRnVGVCbXdYbkVXU29qMUUybTMxZE5LZHZ3cGlBeEJuRk9rMXdsY0QvMEJhTnlCSmRiQVErQWx3TG5BSmFUTWZGY3dHSUE5alNlK3p2Z3A0RVRBcE5vNGtkZDJqd0srQjgwZ2IrQ3lMalNNYmdQeU1CUFlIam1uVTNyaG1RRkw1ckFhdUp3MzZ2Mno4ODZyUVJIb0dHNEQ4YlFBOER6aUU5REdpZzRIeG9Za2thVjByZ0p1Qks0RXJnTXRJNys4clV6WUE1VE9hOURYQzNZRTlnT25BYzBtTEM3MmVrbnB0TlRDSHRBWDZuMGc3OHQxQzJwSjNSV0F1dGNnQm96ckdBbE9CYWNEMnBJWmdNckJaNDlkSndBUmdROUpqaHRIQStoRkJKV1hsQ2RMQXZZcTAyYzVUd0h6U00vdDVqVi9uQVBjQTl3S3o4Zmw5SmZ3ZnNMUjJXZEZtMVhZQUFBQUFTVVZPUks1Q1lJST1cIiAvPlxuICAgICAgPC9kZWZzPlxuICAgIDwvc3ZnPlxuICAgIEBpZihjb3B5T2ZJbnB1dEFsbEZpbGVzICYmIGNvcHlPZklucHV0QWxsRmlsZXMubGVuZ3RoID4gMCl7XG4gICAgPHNwYW4gKGNsaWNrKT1cIm9wZW5Qb3B1cCgpXCIgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgY3Vyc29yOiBwb2ludGVyO1wiPlxuICAgICAge3sgY29weU9mSW5wdXRBbGxGaWxlcy5sZW5ndGggPT09IDEgPyAoJ09ORV9GSUxFX0FUVEFDSEVEJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICcxIEZpbGUgQXR0YWNoZWQnKSA6ICgnTVVMVElQTEVfRklMRVNfQVRUQUNIRUQnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJysnICsgY29weU9mSW5wdXRBbGxGaWxlcy5sZW5ndGggKyAnIEZpbGVzIEF0dGFjaGVkJykgfX1cbiAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBlbHNlIGlmKG1vZGUgPT09ICdlZGl0Jykge1xuICAgIDxkaXY+IHt7ICdBRERfRklMRVMnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ0FkZCBmaWxlcycgfX0gPC9kaXY+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICA8ZGl2ICpuZ0lmPVwiZnJvbSAhPT0gJ254dFRhYmxlJ1wiPnt7ICdOT19GSUxFU19BVFRBQ0hFRCcgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnTm8gZmlsZXMgYXR0YWNoZWQnIH19PC9kaXY+XG4gICAgfVxuICAgIDxidXR0b24gKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBcbiAgICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIFxuICAgICAgICAgICAgY2xhc3M9XCJhZGQtYnRuLWljb25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJwbHVzLWljb25cIj4rPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVVwbG9hZFwiIG11bHRpcGxlPVwibXVsdGlwbGVcIiBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZXMuam9pbignLCcpXCJcbiAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6bm9uZTtcIiAoY2hhbmdlKT1cInVwbG9hZE11bHRpcGxlRmlsZXMoJGV2ZW50KVwiIC8+XG4gIDwvZGl2PlxuICA8IS0tIFNLUzEzSlVOMjUgZWRpdCBpY29uIC0tPlxuICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiAhcXVlc3Rpb24uaXNSZWFkT25seSAmJiBmcm9tICE9PSAnbnh0VGFibGUnIFwiIGNsYXNzPVwiZWRpdC1pY29uXCIgKGNsaWNrKT1cInZpZXdFZGl0Q2xpY2socXVlc3Rpb24pXCJcbiAgICB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk0xLjk5OTg3IDkuMDAxN0w0LjM5NjAyIDExLjM5NzlDNC41MDM3MSAxMS41MDU1IDQuNjY1MjUgMTEuNTA1NSA0Ljc3Mjk0IDExLjM5NzlMMTAuNzQ5OSA1LjM5NDAxQzEwLjg1NzYgNS4yODYzMSAxMC44NTc2IDUuMTI0NzcgMTAuNzQ5OSA1LjAxNzA4TDguMzgwNjQgMi42NDc4NUM4LjI3Mjk0IDIuNTQwMTYgOC4xMTE0MSAyLjU0MDE2IDguMDAzNzEgMi42NDc4NUwxLjk5OTg3IDguNjUxN0MxLjg5MjE3IDguNzU5MzkgMS44OTIxNyA4LjkyMDkzIDEuOTk5ODcgOS4wMDE3Wk05LjE2MTQgMS41NDQwMUM5LjA1MzcxIDEuNjUxNyA5LjA1MzcxIDEuODEzMjQgOS4xNjE0IDEuOTIwOTNMMTEuNTMwNiA0LjI5MDE2QzExLjYzODMgNC4zOTc4NSAxMS43OTk5IDQuMzk3ODUgMTEuOTA3NiA0LjI5MDE2TDEyLjU4MDYgMy42MTcwOEMxMy4wMTE0IDMuMjEzMjQgMTMuMDExNCAyLjU2NzA4IDEyLjU4MDYgMi4xMzYzMUwxMS4zMTUzIDAuODcwOTI4QzEwLjg4NDUgMC40NDAxNTkgMTAuMjExNCAwLjQ0MDE1OSA5Ljc4MDYzIDAuODcwOTI4TDkuMTYxNCAxLjU0NDAxWk0wLjAwNzU1ODYyIDEyLjk4NjNDLTAuMDQ2Mjg3NSAxMy4yNTU1IDAuMTk2MDIgMTMuNDk3OSAwLjQ2NTI1MSAxMy40NDRMMy4zOTk4NyAxMi43NDRDMy41MDc1NiAxMi43MTcxIDMuNTg4MzMgMTIuNjYzMiAzLjY0MjE3IDEyLjYwOTRMMy42OTYwMiAxMi41NTU1QzMuNzQ5ODcgMTIuNTAxNyAzLjc3Njc5IDEyLjMxMzIgMy42NjkxIDEyLjIwNTVMMS4yNDYwMiA5Ljc4MjQ3QzEuMTM4MzMgOS42NzQ3OCAwLjk0OTg2NiA5LjcwMTcgMC44OTYwMiA5Ljc1NTU0TDAuODQyMTc0IDkuODA5MzlDMC43NjE0MDUgOS44OTAxNiAwLjczNDQ4MiA5Ljk3MDkzIDAuNzA3NTU5IDEwLjA1MTdMMC4wMDc1NTg2MiAxMi45ODYzWlwiXG4gICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gIDwvc3ZnPlxuICA8IS0tIFNLUzEzSlVOMjUgc2F2ZSBhbmQgY2FuY2VsIGljb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiAobW91c2VlbnRlcik9XCJpc1NhdmVIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzU2F2ZUhvdmVyZWQgPSBmYWxzZVwiXG4gICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7XCI+XG4gICAgPHN2ZyAqbmdJZj1cIiFpc1NhdmVIb3ZlcmVkXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNS45NTAyIDAuNUM4Ljk2MDA2IDAuNTAwMTA2IDExLjQwMDQgMi45NDAzMSAxMS40MDA0IDUuOTUwMkMxMS40MDAzIDguOTU5OTkgOC45NTk5OSAxMS40MDAzIDUuOTUwMiAxMS40MDA0QzIuOTQwMzEgMTEuNDAwNCAwLjUwMDEwNiA4Ljk2MDA2IDAuNSA1Ljk1MDJDMC41IDIuOTQwMjQgMi45NDAyNCAwLjUgNS45NTAyIDAuNVpcIlxuICAgICAgICBzdHJva2U9XCIjODM3RjhFXCIgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNOC44ODExMSAzLjg0NTgzQzguODMyNjkgMy43OTcyIDguNzc1MTMgMy43NTg2IDguNzExNzYgMy43MzIyN0M4LjY0ODM4IDMuNzA1OTQgOC41ODA0MyAzLjY5MjM4IDguNTExOCAzLjY5MjM4QzguNDQzMTcgMy42OTIzOCA4LjM3NTIxIDMuNzA1OTQgOC4zMTE4NCAzLjczMjI3QzguMjQ4NDYgMy43NTg2IDguMTkwOTEgMy43OTcyIDguMTQyNDkgMy44NDU4M0w0LjgyNjkgNy4xNjM0N0wzLjM1MjUzIDUuNjg5MUMzLjMwNDAzIDUuNjQwNiAzLjI0NjQ2IDUuNjAyMTMgMy4xODMwOSA1LjU3NTg4QzMuMTE5NzIgNS41NDk2NCAzLjA1MTgxIDUuNTM2MTMgMi45ODMyMiA1LjUzNjEzQzIuOTE0NjMgNS41MzYxMyAyLjg0NjcyIDUuNTQ5NjQgMi43ODMzNSA1LjU3NTg4QzIuNzE5OTkgNS42MDIxMyAyLjY2MjQxIDUuNjQwNiAyLjYxMzkxIDUuNjg5MUMyLjU2NTQxIDUuNzM3NiAyLjUyNjk0IDUuNzk1MTggMi41MDA2OSA1Ljg1ODU0QzIuNDc0NDUgNS45MjE5MSAyLjQ2MDk0IDUuOTg5ODIgMi40NjA5NCA2LjA1ODQxQzIuNDYwOTQgNi4xMjcgMi40NzQ0NSA2LjE5NDkxIDIuNTAwNjkgNi4yNTgyOEMyLjUyNjk0IDYuMzIxNjUgMi41NjU0MSA2LjM3OTIyIDIuNjEzOTEgNi40Mjc3Mkw0LjQ1Njc3IDguMjcwNThDNC41MDUxOSA4LjMxOTIyIDQuNTYyNzQgOC4zNTc4MSA0LjYyNjEyIDguMzg0MTRDNC42ODk1IDguNDEwNDcgNC43NTc0NSA4LjQyNDAzIDQuODI2MDggOC40MjQwM0M0Ljg5NDcxIDguNDI0MDMgNC45NjI2NiA4LjQxMDQ3IDUuMDI2MDQgOC4zODQxNEM1LjA4OTQyIDguMzU3ODEgNS4xNDY5NyA4LjMxOTIyIDUuMTk1MzkgOC4yNzA1OEw4Ljg4MTExIDQuNTg0NDVDOC45Mjk3NCA0LjUzNjAzIDguOTY4MzQgNC40Nzg0OCA4Ljk5NDY3IDQuNDE1MUM5LjAyMSA0LjM1MTczIDkuMDM0NTYgNC4yODM3NyA5LjAzNDU2IDQuMjE1MTRDOS4wMzQ1NiA0LjE0NjUxIDkuMDIxIDQuMDc4NTYgOC45OTQ2NyA0LjAxNTE4QzguOTY4MzQgMy45NTE4IDguOTI5NzQgMy44OTQyNSA4Ljg4MTExIDMuODQ1ODNaXCJcbiAgICAgICAgZmlsbD1cIiM4MzdGOEVcIiAvPlxuICAgIDwvc3ZnPlxuXG4gICAgPHN2ZyAqbmdJZj1cImlzU2F2ZUhvdmVyZWRcIiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTUuOTUgMTIuODAwNEM5LjIzNjA5IDEyLjgwMDQgMTEuOSAxMC4xMzY1IDExLjkgNi44NTAzOUMxMS45IDMuNTY0MyA5LjIzNjA5IDAuOTAwMzkxIDUuOTUgMC45MDAzOTFDMi42NjM5MSAwLjkwMDM5MSAwIDMuNTY0MyAwIDYuODUwMzlDMCAxMC4xMzY1IDIuNjYzOTEgMTIuODAwNCA1Ljk1IDEyLjgwMDRaXCJcbiAgICAgICAgZmlsbD1cIiMyNTk1NjZcIiAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk04Ljg4MTExIDQuNzQ2MjJDOC44MzI2OSA0LjY5NzU5IDguNzc1MTMgNC42NTg5OSA4LjcxMTc2IDQuNjMyNjZDOC42NDgzOCA0LjYwNjMzIDguNTgwNDMgNC41OTI3NyA4LjUxMTggNC41OTI3N0M4LjQ0MzE3IDQuNTkyNzcgOC4zNzUyMSA0LjYwNjMzIDguMzExODQgNC42MzI2NkM4LjI0ODQ2IDQuNjU4OTkgOC4xOTA5MSA0LjY5NzU5IDguMTQyNDkgNC43NDYyMkw0LjgyNjkgOC4wNjM4NkwzLjM1MjUzIDYuNTg5NDlDMy4zMDQwMyA2LjU0MDk5IDMuMjQ2NDYgNi41MDI1MiAzLjE4MzA5IDYuNDc2MjdDMy4xMTk3MiA2LjQ1MDAzIDMuMDUxODEgNi40MzY1MiAyLjk4MzIyIDYuNDM2NTJDMi45MTQ2MyA2LjQzNjUyIDIuODQ2NzIgNi40NTAwMyAyLjc4MzM1IDYuNDc2MjdDMi43MTk5OSA2LjUwMjUyIDIuNjYyNDEgNi41NDA5OSAyLjYxMzkxIDYuNTg5NDlDMi41NjU0MSA2LjYzNzk5IDIuNTI2OTQgNi42OTU1NyAyLjUwMDY5IDYuNzU4OTNDMi40NzQ0NSA2LjgyMjMgMi40NjA5NCA2Ljg5MDIyIDIuNDYwOTQgNi45NTg4QzIuNDYwOTQgNy4wMjczOSAyLjQ3NDQ1IDcuMDk1MzEgMi41MDA2OSA3LjE1ODY3QzIuNTI2OTQgNy4yMjIwNCAyLjU2NTQxIDcuMjc5NjEgMi42MTM5MSA3LjMyODExTDQuNDU2NzcgOS4xNzA5N0M0LjUwNTE5IDkuMjE5NjEgNC41NjI3NCA5LjI1ODIgNC42MjYxMiA5LjI4NDUzQzQuNjg5NSA5LjMxMDg2IDQuNzU3NDUgOS4zMjQ0MiA0LjgyNjA4IDkuMzI0NDJDNC44OTQ3MSA5LjMyNDQyIDQuOTYyNjYgOS4zMTA4NiA1LjAyNjA0IDkuMjg0NTNDNS4wODk0MiA5LjI1ODIgNS4xNDY5NyA5LjIxOTYxIDUuMTk1MzkgOS4xNzA5N0w4Ljg4MTExIDUuNDg0ODRDOC45Mjk3NCA1LjQzNjQyIDguOTY4MzQgNS4zNzg4NyA4Ljk5NDY3IDUuMzE1NDlDOS4wMjEgNS4yNTIxMiA5LjAzNDU2IDUuMTg0MTYgOS4wMzQ1NiA1LjExNTUzQzkuMDM0NTYgNS4wNDY5IDkuMDIxIDQuOTc4OTUgOC45OTQ2NyA0LjkxNTU3QzguOTY4MzQgNC44NTIyIDguOTI5NzQgNC43OTQ2NSA4Ljg4MTExIDQuNzQ2MjJaXCJcbiAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdFwiIChtb3VzZWVudGVyKT1cImlzRGlzY2FyZEhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlXCI+XG4gICAgPHN2ZyAqbmdJZj1cIiFpc0Rpc2NhcmRIb3ZlcmVkXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNy4wNTU1NSA0LjAwODgzTDUuOTQgNS4xMjQzOEw0LjgyNDQ1IDQuMDA4ODNDNC41Nzg2MSAzLjc2Mjk5IDQuMTgxOTEgMy43NjI5OSAzLjkzNjA3IDQuMDA4ODNDMy42OTAyMyA0LjI1NDY3IDMuNjkwMjMgNC42NTEzNyAzLjkzNjA3IDQuODk3MjFMNS4wNTE2MiA2LjAxMjc2TDMuOTM2MDcgNy4xMjgzMUMzLjY5MDIzIDcuMzc0MTUgMy42OTAyMyA3Ljc3MDg1IDMuOTM2MDcgOC4wMTY2OUM0LjE4MTkxIDguMjYyNTMgNC41Nzg2MSA4LjI2MjUzIDQuODI0NDUgOC4wMTY2OUw1Ljk0IDYuOTAxMTRMNy4wNTU1NSA4LjAxNjY5QzcuMzAxMzkgOC4yNjI1MyA3LjY5ODA5IDguMjYyNTMgNy45NDM5MyA4LjAxNjY5QzguMTg5NzcgNy43NzA4NSA4LjE4OTc3IDcuMzc0MTUgNy45NDM5MyA3LjEyODMxTDYuODI4MzggNi4wMTI3Nkw3Ljk0MzkzIDQuODk3MjFDOC4xODk3NyA0LjY1MTM3IDguMTg5NzcgNC4yNTQ2NyA3Ljk0MzkzIDQuMDA4ODNDNy42OTgwOSAzLjc3Mjg1IDcuMzAwMjEgMy43NzI4NSA3LjA1NTU1IDQuMDA4ODNaTTUuOTQgMC4wODIwMzEyQzIuNzAwMTcgMC4wODIwMzEyIDAuMDgwODU5NCAyLjcwMTM0IDAuMDgwODU5NCA1Ljk0MTE4QzAuMDgwODU5NCA5LjE4MTAxIDIuNzAwMTcgMTEuODAwMyA1Ljk0IDExLjgwMDNDOS4xNzk4MyAxMS44MDAzIDExLjc5OTEgOS4xODEwMSAxMS43OTkxIDUuOTQxMThDMTEuNzk5MSAyLjcwMTM0IDkuMTc5ODMgMC4wODIwMzEyIDUuOTQgMC4wODIwMzEyWk01Ljk0IDEwLjYzNjdDMy4zNTQyNiAxMC42MzY3IDEuMjQ0MjIgOC41MjY2NyAxLjI0NDIyIDUuOTQxMThDMS4yNDQyMiAzLjM1NTUzIDMuMzU0MjYgMS4yNDU0OSA1Ljk0IDEuMjQ1NDlDOC41MjU1OCAxLjI0NTQ5IDEwLjYzNTYgMy4zNTU1MyAxMC42MzU2IDUuOTQxMThDMTAuNjM1NiA4LjUyNjY3IDguNTI1NTggMTAuNjM2NyA1Ljk0IDEwLjYzNjdaXCJcbiAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgIDwvc3ZnPlxuXG4gICAgPHN2ZyAqbmdJZj1cImlzRGlzY2FyZEhvdmVyZWRcIiAoY2xpY2spPVwiZGlzY2FyZENoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTcuMDU1NTUgNC45NzQ3MUw1Ljk0IDYuMDkwMjZMNC44MjQ0NSA0Ljk3NDcxQzQuNTc4NjEgNC43Mjg4NyA0LjE4MTkxIDQuNzI4ODcgMy45MzYwNyA0Ljk3NDcxQzMuNjkwMjMgNS4yMjA1NSAzLjY5MDIzIDUuNjE3MjUgMy45MzYwNyA1Ljg2MzA5TDUuMDUxNjIgNi45Nzg2NEwzLjkzNjA3IDguMDk0MTlDMy42OTAyMyA4LjM0MDAzIDMuNjkwMjMgOC43MzY3MyAzLjkzNjA3IDguOTgyNTdDNC4xODE5MSA5LjIyODQxIDQuNTc4NjEgOS4yMjg0MSA0LjgyNDQ1IDguOTgyNTdMNS45NCA3Ljg2NzAyTDcuMDU1NTUgOC45ODI1N0M3LjMwMTM5IDkuMjI4NDEgNy42OTgwOSA5LjIyODQxIDcuOTQzOTMgOC45ODI1N0M4LjE4OTc3IDguNzM2NzMgOC4xODk3NyA4LjM0MDAzIDcuOTQzOTMgOC4wOTQxOUw2LjgyODM4IDYuOTc4NjRMNy45NDM5MyA1Ljg2MzA5QzguMTg5NzcgNS42MTcyNSA4LjE4OTc3IDUuMjIwNTUgNy45NDM5MyA0Ljk3NDcxQzcuNjk4MDkgNC43Mzg3MyA3LjMwMDIxIDQuNzM4NzMgNy4wNTU1NSA0Ljk3NDcxWk01Ljk0IDEuMDYwNjJDMi43MDAxNyAxLjA2MDYyIDAuMDgwODU5NCAzLjY3OTkzIDAuMDgwODU5NCA2LjkxOTc3QzAuMDgwODU5NCAxMC4xNTk2IDIuNzAwMTcgMTIuNzc4OSA1Ljk0IDEyLjc3ODlDOS4xNzk4MyAxMi43Nzg5IDExLjc5OTEgMTAuMTU5NiAxMS43OTkxIDYuOTE5NzdDMTEuNzk5MSAzLjY3OTkzIDkuMTc5ODMgMS4wNjA2MiA1Ljk0IDEuMDYwNjJaTTUuOTQgMTEuNjE1M0MzLjM1NDI2IDExLjYxNTMgMS4yNDQyMiA5LjUwNTI1IDEuMjQ0MjIgNi45MTk3N0MxLjI0NDIyIDQuMzM0MTIgMy4zNTQyNiAyLjIyNDA4IDUuOTQgMi4yMjQwOEM4LjUyNTU4IDIuMjI0MDggMTAuNjM1NiA0LjMzNDEyIDEwLjYzNTYgNi45MTk3N0MxMC42MzU2IDkuNTA1MjUgOC41MjU1OCAxMS42MTUzIDUuOTQgMTEuNjE1M1pcIlxuICAgICAgICBmaWxsPVwiI0ZGMzYzNlwiIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XG4gIDwhLS0gRXJyb3IgbWVzc2FnZXMgc2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImZpbGUtY29uc3RyYWludHNcIiAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzXCI+e3sgZXJyb3IgfX08L2Rpdj5cbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDtcIj57e3F1ZXN0aW9uPy5lcnJvck1lc3NhZ2V9fTwvZGl2PlxuXG48IS0tIFNLUzExSlVOMjUgRmlsZSBTZWxlY3Rpb24gUG9wdXAgTW9kYWwgLS0+XG48ZGl2IGNsYXNzPVwiZmlsZS1wb3B1cC1vdmVybGF5XCIgKm5nSWY9XCJzaG93UG9wdXBcIiAoY2xpY2spPVwiY2xvc2VQb3B1cCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLW1vZGFsXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLXRpdGxlXCI+e3sgcXVlc3Rpb24/LnF1ZXN0aW9uVGV4dCA/ICgocXVlc3Rpb24/LmlkKycucXVlc3Rpb25UZXh0JykgfCBueHRDdXN0b21UcmFuc2xhdGUgOiBxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KTogJyd9fTwvZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiIChjbGljayk9XCJjbG9zZVBvcHVwKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZS1pY29uXCI+w5c8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU0tTMTFKVU4yNSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLWNvbnRlbnRcIj5cbiAgICAgIDwhLS0gU0tTMTFKVU4yNSBMZWZ0IFBhbmVsIC0gRmlsZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdC1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgY29weU9mSW5wdXRBbGxGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImN1cnJlbnRGaWxlID09PSBmaWxlXCIgKGNsaWNrKT1cInZpZXdGaWxlKGZpbGUpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaWNvblwiPlxuICAgICAgICAgICAgPGltZyBzdHlsZT1cIndpZHRoOiAyOHB4O2hlaWdodDogMjhweDtcIiBbc3JjXT1cImdldERvY0ljb24oZmlsZT8ubmFtZSlcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pc1JlYWRPbmx5XCIgY2xhc3M9XCJmaWxlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnRuXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZGVsZXRlRmlsZShpKVwiIHRpdGxlPVwie3sgJ0RFTEVURScgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnRGVsZXRlJyB9fVwiPlxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMyw2IDUsNiAyMSw2XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTE5LDZ2MTRhMiwyIDAgMCwxIC0yLDJIN2EyLDIgMCAwLDEgLTIsLTJWNm0zLDBWNGEyLDIgMCAwLDEgMiwtMmg0YTIsMiAwIDAsMSAyLDJ2MlwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCIgKm5nSWY9XCIhY29weU9mSW5wdXRBbGxGaWxlcyB8fCBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pY29uXCI+8J+ThDwvZGl2PlxuICAgICAgICAgIDxwPnt7ICdOT19GSUxFU19TRUxFQ1RFRCcgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnTm8gZmlsZXMgc2VsZWN0ZWQnIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ0blwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIHRpdGxlPVwie3sgJ0FERF9GSUxFJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdBZGQgZmlsZScgfX1cIj5cbiAgICAgICAgICB7eyAnQUREX01PUkVfRklMRVMnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJysgQWRkIE1vcmUgRmlsZXMnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU0tTMTFKVU4yNSBSaWdodCBQYW5lbCAtIFByZXZpZXcgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LXBhbmVsXCI+XG4gICAgICAgIEBpZihjdXJyZW50RmlsZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRlbnRcIj5cbiAgICAgICAgICBAaWYoaXNJbWFnZSAmJiBmaWxlVXJsKXtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiIGNsYXNzPVwicHJldmlldy1pbWFnZVwiIGFsdD1cIkZpbGUgUHJldmlld1wiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIGlmKGZpbGVVcmwpe1xuICAgICAgICAgIDxpZnJhbWUgW3NyY109XCJmaWxlVXJsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNTAwcHhcIj48L2lmcmFtZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2UgaWYoaXNMb2FkaW5nKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICA8cD57eyAnTE9BRElOR19QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdMb2FkaW5nIHByZXZpZXcuLi4nIH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICA8ZGl2Pnt7ICdVTkFCTEVfVE9fTE9BRF9QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdVbmFibGUgdG8gbG9hZCB0aGUgZmlsZSBwcmV2aWV3LicgfX08L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBlbHNle1xuICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcHJldmlld1wiPlxuICAgICAgICAgIDxwPnt7ICdTRUxFQ1RfRklMRV9UT19QUkVWSUVXJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdTZWxlY3QgYSBmaWxlIHRvIHByZXZpZXcnIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFJckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFVMUUsTUFBTSxPQUFPLHNCQUFzQjtJQStCYjtJQUFzQztJQUFrQztJQTlCbEYsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQixJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLDRCQUE0QjtJQUN0RSxnQkFBZ0IsQ0FBQztJQUNqQixRQUFRLENBQUM7SUFDVCxLQUFLLENBQU07SUFDWCxJQUFJLENBQU07SUFDbkIsY0FBYztJQUNQLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxXQUFXLEdBQVcsQ0FBQyxDQUFDLENBQUUsbUJBQW1CO0lBQzdDLFFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBSyxnQkFBZ0I7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBR2hDLHFCQUFxQixHQUFhLEVBQUUsQ0FBQztJQUNyQyxtQkFBbUIsQ0FBQztJQUNwQix3QkFBd0IsQ0FBQztJQUN6QixPQUFPLENBQUM7SUFDUixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsV0FBVyxDQUFNO0lBQ1YsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLDBDQUEwQztJQUNwRSxRQUFRLEdBQVksS0FBSyxDQUFBO0lBQ3pCLGFBQWEsQ0FBTSxDQUFDLHNFQUFzRTtJQUMxRixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLFlBQW9CLGFBQTRCLEVBQVUsV0FBd0IsRUFBVSxTQUF1QjtRQUEvRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFLLENBQUM7SUFDekgsY0FBYztJQUNkLFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0QsV0FBVyxDQUFDLGFBQTRCO1FBQ3RDLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFFLFdBQVc7WUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN2RSxDQUFDO1FBRUQsSUFBSSxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQztRQUNqRixDQUFDO0lBRUgsQ0FBQztJQUVELDRIQUE0SDtJQUM1SCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQztnQkFDSCxvREFBb0Q7Z0JBQ3BELE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDL0ksTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsMEJBQTBCO2dCQUMzRCxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLHFEQUFxRDtZQUN2RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCw0QkFBNEI7SUFDNUIsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUNELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUNqRSxJQUFJLFVBQVUsR0FBVSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRXpDLHNDQUFzQztRQUN0QyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLGdCQUFnQixDQUFDLENBQUM7WUFDckUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFN0IsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFTLGdCQUFnQixDQUFDO1lBRXBDLDhCQUE4QjtZQUM5QixNQUFNLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDakYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLE9BQU8sZ0NBQWdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuSCxTQUFTO1lBQ1gsQ0FBQztZQUVELDhCQUE4QjtZQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDeEcsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7d0JBQ25CLE1BQU0sUUFBUSxHQUFHOzRCQUNmLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTTs0QkFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTs0QkFDZixNQUFNOzRCQUNOLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQjs0QkFDakMsRUFBRSxFQUFFLElBQUk7eUJBQ1QsQ0FBQzt3QkFFRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzFCLE9BQU8sRUFBRSxDQUFDO29CQUNaLENBQUMsQ0FBQztvQkFFRixNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTt3QkFDcEIsTUFBTSxFQUFFLENBQUM7d0JBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQSxnQkFBZ0I7b0JBQ2xGLENBQUMsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDSCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxtQ0FBbUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUM7Z0JBQ3RDLElBQUksTUFBVyxDQUFDO2dCQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNaLHdDQUF3QztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzNDLHdGQUF3RjtRQUMxRixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsZ0JBQWdCO1FBQ3pCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQVcsQ0FBQztRQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM1QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzlDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBR0QsK0JBQStCO0lBQy9CLDBCQUEwQjtJQUMxQixRQUFRLENBQUMsV0FBVztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1SSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ3RDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUM3QyxJQUFJLElBQUksR0FBRyxXQUFXLENBQUM7WUFDdkIsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO2dCQUNyQixNQUFNLFlBQVksR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLGNBQWMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQzdDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyx1QkFBdUI7d0JBQzdDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMseURBQXlEO29CQUM1RSxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO3dCQUMxQixJQUFJLFdBQVcsRUFBRSxDQUFDOzRCQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTs0QkFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUN0QyxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUVILENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxZQUFpQjtRQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyx1QkFBdUI7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTztRQUNoQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUNELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMscUNBQXFDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsdUJBQXVCO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUE7UUFDaEMsSUFBSSxNQUFXLENBQUM7UUFDaEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM5QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUMsUUFBUSxFQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLHNCQUFzQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLDJCQUEyQjtJQUNqRCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsMkJBQTJCO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsaUNBQWlDO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsc0NBQXNDO0lBQzVELENBQUM7d0dBL1FVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJXQ2pCbkMseXk1QkFzS00sc2lLRDFKRixZQUFZLDJQQUFFLHNCQUFzQjs7NEZBSzNCLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLHNCQUFzQjtxQkFDckM7dUlBS1MsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIEhBIDE5REVDMjMgaW1wb3J0ZWQgdHJhbnNsYXRpb24gc2VydmljZVxuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBOeHRDdXN0b21UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZS9jdXN0b20tdHJhbnNsYXRlLnBpcGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgTnh0Q3VzdG9tVHJhbnNsYXRlUGlwZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTnh0RmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZWRGaWxlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxGaWxlcztcbiAgQElucHV0KCkgbGltaXRGaWxlVXBsb2FkaW5nO1xuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBTS1MxMUpVTjI1IE5ldyBtb2RlIGlucHV0XG4gIEBJbnB1dCgpIGlzU2hvd05vRmlsZUljb247XG4gIEBJbnB1dCgpIHF1ZXN0aW9uO1xuICBASW5wdXQoKSBlcnJvcjogYW55O1xuICBASW5wdXQoKSBmcm9tOiBhbnk7XG4gIC8vUlMgMDlKQU4yMDI1XG4gIHB1YmxpYyBhbGxvd2VkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgbWF4RmlsZVNpemU6IG51bWJlciA9IDA7ICAvLyBpbiBieXRlcyhCaW5hcnkpXG4gIHB1YmxpYyBtYXhGaWxlczogbnVtYmVyID0gNDsgICAgIC8vIGRlZmF1bHQgbGltaXRcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZ1tdID0gW107XG5cblxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlTmFtZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY29weU9mSW5wdXRBbGxGaWxlcztcbiAgcHVibGljIGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdDtcbiAgcHVibGljIGZpbGVVcmw7XG4gIHB1YmxpYyBpc0ltYWdlID0gZmFsc2U7XG4gIHB1YmxpYyBmaWxlTmFtZSA9ICcnO1xuICBjdXJyZW50RmlsZTogYW55O1xuICBwdWJsaWMgc2hvd1BvcHVwID0gZmFsc2U7IC8vIFNLUzExSlVOMjUgQWRkIHBvcHVwIHZpc2liaWxpdHkgY29udHJvbFxuICB2aWV3RWRpdDogYm9vbGVhbiA9IGZhbHNlIFxuICBvcmlnaW5hbFZhbHVlOiBhbnk7IC8vIFNLUzEzSlVOMjUgVG8gc3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlIHdoZW4gZW50ZXJpbmcgdmlldyBlZGl0IG1vZGVcbiAgaXNTYXZlSG92ZXJlZCA9IGZhbHNlO1xuICBpc0Rpc2NhcmRIb3ZlcmVkID0gZmFsc2U7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgU2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgKSB7IH1cbiAgLy9SUyAwOUpBTjIwMjVcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRmlsZUNvbmZpZ3MoKTtcbiAgfVxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHNpbXBsZUNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy5tb2RlID0gc2ltcGxlQ2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHNpbXBsZUNoYW5nZXMuYWxsRmlsZXMpIHsgIC8vU0tTNU5PVjI1XG4gICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzLmN1cnJlbnRWYWx1ZSB8fCBbXTtcbiAgICB9XG5cbiAgICBpZiAoc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0ID0gc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmc/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIC8vUlMgMDlKQU4yMDI1IEluaXRpYWxpemVzIGZpbGUgdXBsb2FkIHNldHRpbmdzIChhbGxvd2VkIHR5cGVzLCBtYXggc2l6ZSwgYW5kIG1heCBmaWxlcykgYnkgcGFyc2luZyBtZXRhZGF0YSBmcm9tIGZpZWxkc01ldGFcbiAgaW5pdGlhbGl6ZUZpbGVDb25maWdzKCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uPy5maWVsZHNNZXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBTS1MyME1BUjI1IGNoZWNrIGlmIHF1ZXN0aW9uIGZpZWxkc21ldGEgaXMgc3RyaW5nXG4gICAgICAgIGNvbnN0IG1ldGFEYXRhID0gdHlwZW9mIHRoaXMucXVlc3Rpb25bJ2ZpZWxkc01ldGEnXSA9PT0gJ29iamVjdCcgPyB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gfHwgW10gOiBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb25bJ2ZpZWxkc01ldGEnXSk7XG4gICAgICAgIGNvbnN0IGZpbGVDb25maWcgPSBtZXRhRGF0YVswXTsgIC8vIEdldCBmaXJzdCBjb25maWcgb2JqZWN0XG4gICAgICAgIGlmIChmaWxlQ29uZmlnKSB7XG4gICAgICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZUNvbmZpZy5hbGxvd2VkVHlwZXMgfHwgW107XG4gICAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZSA9IGZpbGVDb25maWcubWF4RmlsZVNpemUgfHwgMDtcbiAgICAgICAgICB0aGlzLm1heEZpbGVzID0gZmlsZUNvbmZpZy5tYXhGaWxlcyB8fCA1O1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIGZpZWxkc01ldGE6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBTS1MxMUpVTjI1IE9wZW4gdGhlIHBvcHVwXG4gIG9wZW5Qb3B1cCgpIHtcbiAgICB0aGlzLnNob3dQb3B1cCA9IHRydWU7XG4gICAgdGhpcy52aWV3RmlsZSh0aGlzLmNvcHlPZklucHV0QWxsRmlsZXNbMF0pXG4gIH1cblxuICAvLyBTS1MxMUpVTjI1IENsb3NlIHRoZSBwb3B1cFxuICBjbG9zZVBvcHVwKCkge1xuICAgIHRoaXMuc2hvd1BvcHVwID0gZmFsc2U7XG4gIH1cbiAgdXBsb2FkTXVsdGlwbGVGaWxlcyhldmVudDogYW55KSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107IC8vIFJTIDE3SkFOMjAyNSBDbGVhciBwcmV2aW91cyBlcnJvcnNcbiAgICBsZXQgaW5wdXRGaWxlczogYW55W10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPyB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgOiBbXTtcbiAgICBjb25zdCBzZWxlY3RlZEZpbGVEYXRhID0gW107XG4gICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcblxuICAgIC8vIFJTIDA5SkFOMjAyNSBDaGVjayBmaWxlIGNvdW50IGxpbWl0XG4gICAgaWYgKHVwbG9hZGVkRmlsZXMubGVuZ3RoICsgaW5wdXRGaWxlcy5sZW5ndGggPiB0aGlzLm1heEZpbGVzKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgKTtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlYWRGaWxlc1Byb21pc2VzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGVhY2hVcGxvYWRlZEZpbGUgb2YgdXBsb2FkZWRGaWxlcykge1xuICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGVhY2hVcGxvYWRlZEZpbGU7XG5cbiAgICAgIC8vUlMgMDlKQU4yMDI1IENoZWNrIGZpbGUgdHlwZVxuICAgICAgY29uc3QgZmlsZUV4dCA9ICcuJyArIGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodGhpcy5hbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWxsb3dlZEZpbGVUeXBlcy5pbmNsdWRlcyhmaWxlRXh0KSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRmlsZSB0eXBlICR7ZmlsZUV4dH0gbm90IGFsbG93ZWQuIEFsbG93ZWQgdHlwZXM6ICR7dGhpcy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvL1JTIDA5SkFOMjAyNSBDaGVjayBmaWxlIHNpemVcbiAgICAgIGlmICh0aGlzLm1heEZpbGVTaXplID4gMCAmJiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKGBGaWxlIFwiJHtmaWxlLm5hbWV9XCIgZXhjZWVkcyBzaXplIGxpbWl0IG9mICR7dGhpcy5tYXhGaWxlU2l6ZSAvIDEwNDg1NzZ9TUJgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlRXh0LnN1YnN0cmluZygxKTtcbiAgICAgICAgY29uc3QgZmlsZVJlYWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG5cbiAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSB7XG4gICAgICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgIGZvcm1hdCxcbiAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLCAvLyBSUyAxN0pBTjIwMjUgXG4gICAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc2VsZWN0ZWRGaWxlRGF0YS5wdXNoKGZpbGVEYXRhKTtcbiAgICAgICAgICAgIGlucHV0RmlsZXMucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRXJyb3IgcmVhZGluZyBmaWxlIFwiJHtmaWxlLm5hbWV9XCJgKTsvLyBSUyAxN0pBTjIwMjUgXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRGaWxlc1Byb21pc2VzLnB1c2goZmlsZVJlYWRQcm9taXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJlYWRGaWxlc1Byb21pc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byByZXNvbHZlXG4gICAgICBQcm9taXNlLmFsbChyZWFkRmlsZXNQcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IGlucHV0RmlsZXM7XG4gICAgICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICAgICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICAgICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gaW5wdXRGaWxlcztcbiAgICAgICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvciByZWFkaW5nIGZpbGVzJyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdZb3UgY2FuIHVwbG9hZCBtYXggNSBmaWxlcycpO1xuICAgICAgLy8gdGhpcy50b2FzdHIud2FybmluZyhUT0FTVEVSX01FU1NBR0VTLk1BWF9GSVZFX0ZJTEVTLCBUT0FTVEVSX01FU1NBR0VTLldBUk5JTkdfVElUTEUpO1xuICAgIH1cblxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgZGVsZXRlRmlsZShjdXJyZW50RmlsZUluZGV4KSB7XG4gICAgY29uc3QgZGVsZXRlZEZpbGVOYW1lID0gdGhpcy5zZWxlY3RlZEZpbGVOYW1lQXJyYXkuc3BsaWNlKGN1cnJlbnRGaWxlSW5kZXgsIDEpO1xuICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMubGVuZ3RoID4gMCA/IHRoaXMudmlld0ZpbGUodGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzWzBdKSA6IHRoaXMudmlld0ZpbGUobnVsbCk7XG4gICAgdGhpcy5kZWxldGVkRmlsZURhdGEuZW1pdChkZWxldGVkRmlsZVswXSk7XG4gICAgbGV0IGNoYW5nZTogYW55O1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICB9XG5cblxuICAvLyBWRCAyME1heTI0IC0gcHJldmlldyBjaGFuZ2VzXG4gIC8vIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzXG4gIHZpZXdGaWxlKGN1cnJlbnRGaWxlKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsZSA9IGN1cnJlbnRGaWxlO1xuICAgIC8vIEFQLTI1TUFSMjUgRW5zdXJlIHN1YlRleHQgaXMgcGFyc2VkIGludG8gYW4gb2JqZWN0IGlmIGl0J3Mgbm90IGFscmVhZHlcbiAgICB0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10gPSB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA9PT0gJ29iamVjdCcgPyB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0IDogSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10pIHx8IHt9O1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IGZpbGVNZXRhID0gdGhpcy5xdWVzdGlvbj8uc3ViVGV4dDtcbiAgICAgIGxldCBlbmRwb2ludCA9IGZpbGVNZXRhLmVuZHBvaW50O1xuICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyID0gZmlsZU1ldGEucXVlcnlQYXJhbWV0ZXI7XG4gICAgICBsZXQgZmlsZSA9IGN1cnJlbnRGaWxlO1xuICAgICAgaWYgKGVuZHBvaW50ICYmIGZpbGVbcXVlcnlQYXJhbWV0ZXJdKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZVxuICAgICAgICBjb25zdCBmdWxsRW5kUG9pbnQgPSBlbmRwb2ludCArICc/JyArIHF1ZXJ5UGFyYW1ldGVyICsgJz0nICsgZmlsZVtxdWVyeVBhcmFtZXRlcl07XG4gICAgICAgIGlmIChmdWxsRW5kUG9pbnQpIHtcbiAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGZ1bGxFbmRQb2ludCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudmlld0xvY2FsRmlsZSgpOyAvLyBDYWxsIGZhbGxiYWNrIG1ldGhvZFxuICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7IC8vIFJldHVybiBhIGZhbGxiYWNrIHZhbHVlIHRvIGtlZXAgb2JzZXJ2YWJsZSBjaGFpbiBhbGl2ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChhcGlSZXNwb25zZSkge1xuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmlsZUNvbnRlbnQoYXBpUmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpZXdMb2NhbEZpbGUoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKClcbiAgICB9XG4gIH1cblxuICAvLyAvLyBWRCAwM0F1ZzI0IHByb2Nlc3MgbG9jYWwgcHJldmlldyBcbiAgdmlld0xvY2FsRmlsZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsZSkge1xuICAgICAgdGhpcy5zZXRGaWxlVXJsKHRoaXMuY3VycmVudEZpbGU/LmRvYyk7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gdGhpcy5jdXJyZW50RmlsZS5uYW1lO1xuICAgICAgdGhpcy5pc0ltYWdlID0gdGhpcy5jdXJyZW50RmlsZS50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKTtcbiAgICB9XG5cbiAgfVxuXG5cbiAgaGFuZGxlRmlsZUNvbnRlbnQoZmlsZVJlc3BvbnNlOiBhbnkpIHtcbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShmaWxlUmVzcG9uc2UuY29udGVudC5kYXRhKTtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogZmlsZVJlc3BvbnNlLnR5cGUgfSk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgdGhpcy5zZXRGaWxlVXJsKHVybCk7XG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgaWYgKGZpbGVSZXNwb25zZS5uYW1lKSB7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gZmlsZVJlc3BvbnNlLm5hbWU7XG4gICAgICBjb25zdCBpbWFnZUV4dGVuc2lvbnMgPSBbJ2pwZycsICdqcGVnJywgJ3BuZycsICdnaWYnLCAnYm1wJywgJ3dlYnAnXTtcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlUmVzcG9uc2UubmFtZS5zcGxpdCgnLicpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgdGhpcy5pc0ltYWdlID0gaW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24gfHwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbGVVcmwodXJsOiBhbnkpIHtcbiAgICBpZiAodXJsKSB7XG4gICAgICB0aGlzLmZpbGVVcmwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlVXJsID0gbnVsbDsgLy8gb3IgaGFuZGxlIGdyYWNlZnVsbHlcbiAgICB9XG4gIH1cblxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcbiAgICBjb25zdCBleHQgPSBkb2NOYW1lLnNwbGl0KCcuJykucG9wKC0xKTtcbiAgICByZXR1cm4gdGhpcy5TaGFyZWRTZXJ2aWNlLmRvY0ljb24oZXh0KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZmlsZU5hbWUgPSAnJztcbiAgICB0aGlzLmZpbGVVcmwgPSAnJztcbiAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5maWxlVXJsKSB7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMuZmlsZVVybCk7XG4gICAgfVxuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlczsgLy9TS1MxM0pVTjI1IFN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSB0cnVlOyAvLyBFbnRlciB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICdlZGl0JztcbiAgfVxuICBzYXZlQ2hhbmdlcygpIHtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIEV4aXQgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAndmlldyc7IC8vIFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICB9XG4gIGRpc2NhcmRDaGFuZ2VzKCkge1xuICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IHRoaXMub3JpZ2luYWxWYWx1ZTsgLy8gUmV2ZXJ0IHRvIG9yaWdpbmFsIHZhbHVlXG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBTS1MxM0pVTjI1IEV4aXQgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAndmlldyc7IC8vIFNLUzEzSlVOMjUgU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gIH1cbn1cbiIsIjwhLS0gU0tTMTFKVU4yNSBmaWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCAtLT5cbjxkaXYgY2xhc3M9XCJmbGV4IGhvdmVyLXdyYXBwZXJcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDtcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmlsZS1pbm5lci1kaXZcIj5cbiAgICA8c3ZnICpuZ0lmPVwiZnJvbSAhPT0gJ254dFRhYmxlJ1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XG4gICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwidXJsKCNwYXR0ZXJuMF82MTZfMzUxMjUpXCIgLz5cbiAgICAgIDxkZWZzPlxuICAgICAgICA8cGF0dGVybiBpZD1cInBhdHRlcm4wXzYxNl8zNTEyNVwiIHBhdHRlcm5Db250ZW50VW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIj5cbiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaW1hZ2UwXzYxNl8zNTEyNVwiIHRyYW5zZm9ybT1cInNjYWxlKDAuMDAxOTUzMTIpXCIgLz5cbiAgICAgICAgPC9wYXR0ZXJuPlxuICAgICAgICA8aW1hZ2UgaWQ9XCJpbWFnZTBfNjE2XzM1MTI1XCIgd2lkdGg9XCI1MTJcIiBoZWlnaHQ9XCI1MTJcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgICAgeGxpbms6aHJlZj1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFJQUNBWUFBQUQwZU5UNkFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR1hSRldIUlRiMlowZDJGeVpRQjNkM2N1YVc1cmMyTmhjR1V1YjNKbm0rNDhHZ0FBSUFCSlJFRlVlSnp0M1hmWUgxV1ovL0YzU0Uvb0NhRVRBZ29pSlhUcGdnaUtnaXRSMUpVVlhjdTYrTE9nL2l6c1dxS3JhOGU2NnFMaWdvb0lBaXBXeWthVUppQWdSVVZxSUxTRWhDU1U5R1QvT045SEhwS25mT3ZjWjJiZXIrdTZyNEFYVithVG1jZWNlODZjT1RNQ1ZjVTRZQnF3ZmFPMkFUWURKZ09UR3IrT0J6WnUvUGRqZ0lsRmg1UjZaQld3dVBIUFR3TExnY2VCUjRCNXdLT05YeDhFN2dIdUF1WUFhd3BQS21WaVJIUUF0V3dNc0N1d2U2T21OLzU5cThoUVVna3RKVFVEZHdBM0F6YzBhblprS0trb05nRDVtd3djQkJ6Y3FIMkJzYUdKcEdwYlFHb0VyZ0orQzF3RExJa01KUFdDRFVCK1JwRUcvR09BRjVQdThMMU9VcHlsd0IrQVdjQWxwSVpnZFdnaXFRc2NXUEl3SG5nSjhDcmdhSjUrVGk4cFA0OEFQd04rQWx3R0xJdU5JN1hIQmlET0dOSWQvcXVCbHdIcng4YVIxSWJIZ1o4RFo1Rm1CMWJGeHBHYVp3TlF2R2NCYndiZUFHd2VHMFZTRnowSS9CajREbWxSb1pRMUc0QmlqQVNPQjA0R2pzRHpMbFhkRmNDWGdRdHhWa0NaY2lEcXJYR2s1L3IvQnV3Y25FVlM4ZTRGdmdtY0Rqd1dHMFY2Smh1QTN0Z0VlQS93Tm1EVDRDeVM0aTBtTlFHZkpXMUlKSVd6QWVpdTlZSC9CM3dRVi9KTFd0ZVRwRFVDbndUbUJtZFJ6ZGtBZE1jNDRKM0ErMG5iN2tyU1VCWUJYMnpVNG1IK1c2a25iQUE2ZHh6d0pXQ0g2Q0NTU21jKzhCL0FWM0Z6SVJYTUJxQjkwMGtELytIQk9TU1YzelhBTzREcm80T29QdGFMRGxCQzQwa0xlYTdId1Y5U2R4eEEybTc0ZE5JaVlxbm5uQUZvemFIQXQvQ1ZQa205OHdqd3I2U3RocVdlY1FhZ09ldVRPdlBMY2ZDWDFGdWJrellRK2k2K1RhUWVjZ1pnZVBzRFB5QnQ0U3RKUlpvRHZKSDBuUUdwcTBaR0I4alllcVJYKzM0SWJCYWNSVkk5YlFqOEUybnQwU3hnVFd3Y1ZZa3pBQU9iQXB4RDJyZGZrbkp3Q1hBaTdpU29MckVCV05mK3BDOTZiUnNkUkpMV01vZjBDZkdyb29Pby9Gd0UrRXduQWIvRndWOVNuclloUFFwNFhYUVFsWjlyQUpLUnBFMTlQZzJNRHM0aVNVTVpDYnljTklON2VYQVdsWmdOQUV3RWZnUzhQanFJSkRWcEJHa2pzdTJCWHdLcklzT29uT3ErQm1BTDRHZkFmdEZCSktsTmw1Rm1CSjZJRHFKeXFYTURNQlc0Rk4vdmwxUitWd0l2d1M4THFnVjFiUUNta2JybWFkRkJKS2xMcmdkZUJDeUlEcUp5cUdNRHNBdnB6bityNkNDUzFHVTNBRWRoRTZBbTFLMEIySTMwQ3MzazZDQ1MxQ1BYQVMvQU5RRWFScDMyQVhnV2NERU8vcEtxYlQvZ3A4RFk2Q0RLVzExZUE5eVdkT2Z2QmorUzZtQWFzQ053UVhRUTVhc09EY0FXd08rQUhhS0RTRktCZGdmR2tkWThTZXVvZWdNd0VmZ042ZG0vSk5YTkljQmMwaHNDMGpOVWVSSGdlcVNQK2h3ZkhVU1NBcTBBamdSK0h4MUVlYW55SXNBdjR1QXZTYU9CYy9IVlo2MmxxZzNBVzRGM1JvZVFwRXhzUVpvUkhSTWRSUG1vNGhxQS9VbmQ3cWpvSUpLVWtXMkJEWUZmUndkUkhxcldBRXdoYmZHN2FYUVFTY3JRQWNEOXdJM1JRUlN2U29zQVJ3S1hBRWRFQjVHa2pDMEJEZ1grR0IxRXNhcTBCdUJVSFB3bGFUampnUXRKTTZhcXNhck1BT3dEWEUxYTdTcEpHdDZWcEc4R0xJOE9vaGhWV0FNd2tiVEh2OTJzSkRWdk8yQVQ0RmZSUVJTakNnM0Fmd0ZIUjRlUXBCTGFIN2dQdUNrNmlJcFg5a2NBaHdQL1Mvbi9ISklVWlJsd0dIQnRkQkFWcTh3RDUzamdadEpuZmlWSjdYc0kyQmQ0TURxSWlsUG10d0Eram9PL0pIWERscVNkQXNkR0IxRnh5cm9HWURwd0J1VnVZQ1FwSjlzQ2s0RmZSQWRSTWNyYUFKd0Q3QkFkUXBJcVpsL1M0d0EzQ2FxQk1xNEJlQ1Z3WG5RSVNhb29QeDljRTJWckFNWUN0K0t6ZjBucXBZZEpzd0VQUkFkUjc1VHRHZnE3Y1BDWHBGN3IrM3l3aXdJcnJFeHJBTllIZmtUYStVK1MxRnZia0hZTC9FbDBFUFZHbVJxQVU0R1hSb2VRcEJxWkRzd0ZybzhPb3U0cnl4cUFqWUc3U2Z0V1M1S0tzd0k0Q3JnOE9vaTZxeXhyQU42TGc3OGtSUmhOZXZ5NlRYUVFkVmNaWmdBbWtENVdNU2s2aUNUVjJJM0F3Y0NTNkNEcWpqTE1BTHdaQjM5SmlyWVg4Ti9SSWRROXVTOENIQWw4SDlnME9vZ2tpZW5BQXZ4eVlDWGtQZ053UExCamRBaEowdDk5Z2ZRcGRwVmM3ZzNBeWRFQkpFblBNSnEwU2RDMDZDRHFUTTZMQUhjRTdpRHZqSkpVVnplUkZnVStGUjFFN2NsNUJ1QmZjUENYcEZ6dENad2VIVUx0eTNVUjRHamdmMGpiLzBxUzhyUUg4RGh3ZFhRUXRTN1hHWUJqU0IramtDVGw3VE9rendlclpISnRBRjRUSFVDUzFKUlJ3TG40eGxicDVQaU1mUUx3Q0U3L1MxS1ozQXdjQkR3WkhVVE55WEVHNENVNCtFdFMyZXdCbkVXZU41WWFRSTZMQUQ4SzdCb2RRcExVc2wxSXJ3VmVHUjFFdzh1dFV4c0Z6Q045L2xlU1ZENnJnV09CWDBVSDBkQnlld1J3RUE3K2tsUm02d0UvQUo0VkhVUkR5NjBCT0NZNmdDU3BZNXNBUHdNMmpBNml3ZGtBU0pKNllSZmdUUEo3MUt5R25CWUJUZ1krano4c2tsUVZ6d0dXQTcrUERxSjE1VFFEY0RBTy9wSlVOZjlCV2hTb3pPVFdBRWlTcW1VOTRHelNJd0ZseEFaQWt0UnJHd0FYQWh0RkI5SFRjcGx5SHdzc2F2d3FTYXFtbndBemdEWFJRWlRQRE1CemNmQ1hwS3A3T2ZEaDZCQktjbWtBOW9nT0lFa3F4RXpnRmRFaFpBTWdTU3JXQ09DNytNMlhjRFlBa3FTaWJRQmNnRnUvaDhxbEFYaHVkQUJKVXFGMkluMCtPSmR4cUhaeTJBbHdQUEFwOG5ralFaSlVqSjFKRGNDczZDQjFsRVBudFQwTy9wSlVWeDhDVG9nT1VVZTVOQUNTcEhvYUFad0I3QllkcEc1eWFBQ21SUWVRSklWYW4vVDU0RW5SUWVva2h3WmdtK2dBa3FSdzA0RHZrY2U0VkFzNW5Pak5vZ05Ja3JKd0RQQ0o2QkIxa1VNRDRKU1BKS25QQjRGWFI0ZW9neHdhZ01uUkFTUkoyZWpiS1hEdjZDQlZad01nU2NyTmVPQjhIQjk2S29jR1lJUG9BSktrN0d3UC9JQThOcXlycEJ3YUFEOERMRWtheU5Ha25XTFZBemswQUdPaUEwaVNzdlUrNFBYUklhb29oeTE0bnlJOTc1RWthU0JMZ0VPQlAwWUhxWkljR29DVitJeEhralMwMmNCK3dMem9JRldSd3lNQUIzOUowbkNtQXVjQW82S0RWRVVPRFlBa1NjMTRBZkRaNkJCVmtjTWpnRFhSQVNSSnBmSW0waGNFMVFFYkFFbFMyU3dGRGdPdWl3NVNaallBa3FReXVoL1lGNWdiSGFTc1hBTWdTU3FqYllFTGNDK1p0dGtBU0pMSzZtRGdDOUVoeXNwSEFKS2tzbnNMOE8zb0VHVmpBeUJKS3J0bHBFV0IxMFlIS1JNYkFFbFNGVHhFV2hUNFlIU1FzbkFOZ0NTcENyWUVmb3hmbUcyYURZQWtxU29PQkw0VUhhSXNmQVFnU2FxYXR3S25SNGZJblEyQUpLbHFWZ0JIQXIrUERwSXpHd0JKVWhVOVRGb1UrRUIwa0Z5NUJrQ1NWRVZiNEtMQUlka0FTSktxNmdCY0N6QW9Hd0JKVXBXZEJKd2NIU0pIcmdHUUpGWGRDdUFvNFBMb0lEbXhBWkFrMWNFandINmt6d2dMSHdGSWt1cGhjK0Nud1Bqb0lMbXdBWkFrMWNWZXdIOUhoOGlGRFlBa3FVNWVCN3dqT2tRT1hBTWdTYXFibGNEUndLem9JSkZzQUNSSmRUU2Z0Q2p3bnVnZ1VYd0VJRW1xbzBuQUJjQ0U2Q0JSYkFBa1NYVzFKelhlS2RBR1FKSlVaeWNDNzRrT0VjRTFBSktrdWxzRkhBdjhPanBJa1d3QUpFbUNCY0Qrd0YzUlFZcmlJd0JKa21CVDBxTEFpZEZCaW1JRElFbFNzZ2R3Rm5uTWp2ZWNEWUFrU1UrYkFid3ZPa1FSY3VoeVhBTWdTY3JKYXVBNDRKZlJRWHJKQmtDU3BIVTlSbG9VZUdkMGtGN3hFWUFrU2V2YUJQZ1pzR0Ywa0Y2eEFaQWthV0M3QUdlU3gyeDUxOWtBU0pJMHVKY0RwMGFINklVY3VoclhBRWlTY3JZYWVCRndhWFNRYnJJQmtDUnBlQThBdTVNV0IxYUNqd0FrU1JyZTFzQnAwU0c2eVJrQVNaS2FOd080TURwRU45Z0FTSkxVdkxta1J3RnpvNE4weWtjQWtpUTFid3J3NWVnUTNlQU1nQ1JKclhzVmNGNTBpRTdZQUVpUzFMcTV3RTdBb3VnZzdmSVJnQ1JKclpzQ2ZEUTZSQ2VjQVpBa3FUMHJnYjJBVzZPRHRNTVpBRW1TMmpNSytHSjBpSGJaQUVpUzFMNFhBc2RGaDJpSGp3QWtTZXJNWGNDdXdMTG9JSzF3QmtDU3BNN3NDSndTSGFKVnpnQklrdFM1eGNBMFlFRjBrR1k1QXlCSlV1YzJCTjRWSGFJVnpnQklrdFFkaTBpekFLWDRaTEF6QUpJa2RjZEd3RHVpUXpUTEdRQkprcnBuSVdrV1lHRjBrT0U0QXlCSlV2ZHNESndjSGFJWnpnQklrdFJkODBtekFJOUhCeG1LTXdDU0pIWFhKT0F0MFNHRzR3eUFKRW5kTjV1MFFkQ3E2Q0NEc1FHUUZHRTVjQzlwQzlVN2dZZUJCNEZIU045WmZ3cDRrb0duVUNjQTQwalBXaWNCbXpWcWE5SzA2dzZOMnFpWGZ3Q3BDUzhETG9vT01SZ2JBRW05dGhpNEJyaXhVVGVSQnYxZTN4bHRCK3plcUgyQWc0Q3RlbnhNcWI5TGdLT2pRd3pHQmtCU3R6MEJYQXI4TC9CNzRCYnltUWFkQ2h3TUhFbjZpM21iMkRpcXVEWEFUcVNHTnpzMkFKSzZZUTV3UHZCejBxQmZscStpN1FJY0M4d0Fua2NlZnllcVdqNEpmQ2c2eEVCeStHRzNBWkRLYVM1d0RuQXVjQlhsLy8veU5zQXJnSk9BdllPenFEcm1BTnVUenl6WTM5a0FTR3JGYXVCaTROdWt4VTNMWStQMHpPN0E2NEUza0JZYVNwMDRCdmgxZElpMTJRQklhc1lUd05uQWFjRHR3Vm1LTkJaNE5mQnVZTS9nTENxdjc1Rm1sckppQXlCcEtJOEFud2UrUmZyU1daMGRDZndiOElMb0lDcWRSY0FXd05Mb0lQMjVFNkNrZ2N3Ri9qL3BmZnJQNCtBUGNCbXBDVGdRK0dWd0ZwWExSc0NMb2tPc3pRWkFVbjlQQWg4bERmeGZJRzNJbzJlNkJuZ3A4SHpnNnVBc0tvOFRvZ09zelVjQWtpQXQ3dnNmNE1Pa0hmblV2Qm1rWm1uNzRCeksyd0pnYzJCbGRKQSt6Z0JJdXBtME9jNmJjUEJ2eHdYQWM0R1BrZGt6WG1WbFU5TGpvMnpZQUVqMTlTVHBPZjgrcEdsdHRXOEpNQlBZRFpnVkcwVVplMmwwZ1A1OEJDRFYwMVdrOTl5ejNLSzA1RVlBYndVK0Myd1FuRVY1dVJtWUhoMmlqdzJBVkMvTFNWUFZueUhEbmNrcVppcndmZUNRNkNES3hocGdDdkJvZEJEd0VZQlVKL2VTQnFQL3hNRy9DTE9CSTRDUDQvbFdNb0wwOWtnV2JBQ2tldmdGNlZuL2RkRkJhbVlsNmJYS0k0R0hnN01vRDRkSEIraGpBeUJWMnhyZ0k4QnhwTmVRRk9OeVlGL2dEOUZCRk83UTZBQjlYQU1nVmRjcTB2N2paMGNIMGQrTkJmNkw5TXFsNm1rbGFXZkE4RTIybkFHUXF1c1VIUHh6c3d4NE0zQXEzdnpVMVNneStiQ1VEWUJVVGVjQ1g0c09vVUY5R2ppUjFCQ29mdmFMRGdBMkFGSVZMUUxlR1IxQ3cvb2g2VHZ4VDBRSFVlR3kyQXZBQmtDcW5xK1NQdU9yL00waXZTbzRQenFJQ3JWTGRBQndFYUJVTlN0SlgvSzdQenFJV3JJMzhCdGdjblFRRldJUnNIRjBDR2NBcEdyNUtRNytaWFFENlh2eGk2S0RxQkFiQVZ0SGg3QUJrS3JscDlFQjFMWWJnQmZqbW9DNjJDRTZnQTJBVkMxWFJRZFFSNjRCanNlM0ErcGdhblFBR3dDcE9oNEI3b29Pb1k1ZFN2cFNvK3VqcW0zYjZBQTJBRkoxM0JFZFFGM3pJOUpIaEZSZDIwVUhzQUdRcXNNRlpOWHlNZUFIMFNIVU0xT2lBOWdBU05XeE1EcUF1bW9OYWR2Z0c2S0RxQ2MyalE1Z0F5QlZoLzkvcnA2bHdLdXd1YXNpR3dCSlhSTytxRWc5Y1JjdUNxeWk4QWJBblFDbDZyaVBERjR0YXNNSVV2T3lVNk9ta0haSjY2dlJ3Sk9OLzNZaHNBU1lEY3doYlhwMEp6Q3YyTWdodmdxOFBUcUV1bVkrd1RzLzJnQkkxYkVLMkFSNFBEcklNQ1lEaHpYcVVOSys2T003L0QzdkE2NEQvZ0JjM2FoVkhmNmV1WmtBL0JGNFRuUVFkY1hqd0lhUkFXd0FwR281RnZoRmRJZ0JQSmYwTEhzR3NCdTkvN3RuUHZCTDRHZWtQZlp6YjRxYXRTOXBzNmZSMFVIVXNXWEF1T2dRMGRaWWx0VzFPb3Q4YkE3OE8zQXpzZWZrQ2VCYndGNjkvZU1XNWhQRS81eFpuZGZxdFM5czBad0JrS3JsS1dBYU1EY3d3KzdBS2NDSndOakFIQU81R3ZneWNCNFovQVhjcHZHa3B1cFowVUhVc2RBeDJMY0FwR3FaUUxycmpyQTM4R3ZnVDhBYnlXL3dCemdRT0lmMGJ2MUxnN08wYXdud3R1Z1FVamRFVDhOWVZ0VnFKZkE4aXJNZDZkSERxaTcvT1lxbzN3UDdkUCtVRk9JYzRzK2YxVm1GOGhHQVZFMXpTRTNBZ3owOHhsamdROEI3Nlh3VmY2U1Z3R2RKZSsrWDZTdDgyd04vd1lWa1plWWpBRWxkdHcwd2k5N3RDekFkdUpiVUFKUjU4QWNZQmZ3YjZSVzcvWUt6dE9KZTRDdlJJVlJlemdCSTFUWVhPSW4wS2x3M2pBTGVEM3dVR05PbDN6TW5LNEIzQWQrSUR0S2tqVWdiSVlWdUtLTzJPUU1ncVdlbUFMOEN2Z2ZzME9Idk5aMzBEdm9ucWViZ0QrbjkrcThEMzZRYzc5b3ZBajRmSFVMbDVBeUFWQityU2MzQTE0QkxTYysraHpPQ3RGdmYyNEFUcU5kTncrOUlHeGZOanc0eWpQV0JlM0FXb0l4Q3gyQWJBS21lbmlSdG5Yc0Y2V016aTBsM2s1RFdEMHdsN2N2L0FtRExpSUNadUFsNElmazNBUjhFUGhVZFFpMnpBWWdPSUVsRCtCT3BDWGcwT3NnUU5pQjlHR21qNkNCcWlXc0FKQ2xqMDRITHlIdUsvWEhnTzlFaFZDN09BRWhTYzY0alBSSjVJanJJSUthUzNnZ1lGUjFFVFhNR1FKSktZRC9TTndSeWZUdGdOdW5yaDFKVGJBQWtxWGt2QnM0azM3ODd2eDBkUU9YaEl3QkphdDJuZ1ZPalF3eGdKT21Wd0cyamc2Z3BQZ0tRcEpMNUFQQVAwU0VHc0lvMFF5RU55eGtBU1dyUG84QmVwQTh2NVdRbjRQYm9FR3FLTXdDU1ZFS1RnYlBKYjlYOTMwaDdGMGhEc2dHUXBQWWRTdnFTWUc3T2l3NmcvUGtJUUpJNnN4VFlqYlNsY2k1OERGQU9iZ1VjSFVBcTJFTGdEdEpVN1NMU0xtNkxTUHZ6THdNMkpuM2daU0pwaTllcHdMT0I3WERXTGxjL0I0NkxEckdXdjVGK2JwU3YwREU0dDJkWFV0VThUdnFxM0N6Z1d0SmQyZHcyZjYreHBML1FkeVZOUFI4T1BKYzhHdm02TzdaUlA0OE8wcyt2c1FIUUVITDRpOE1aQUZYTm5jQVBTSDhCWDA5em45MXQxeFRnK2NEeHBOZlNKdlR3V0JyYVhhU0diSGwwa0lhWGtsZERvblg1Q0NBNmdOUUZDNEZ6Z2JPQXE0ajV1VjZmMUFpY1NQcDYzY2lBREhYM1J1QzcwU0VhSmdJTGdESFJRVFFvRzREb0FGSUg1Z0xmQUU0REZnZG42VzhxOEI3Z3pUZ3JVS1RiU2JNQXE2T0RORndOSEJBZFFvTnlId0NwaEI0QlBnaHNEOHdrcjhFZjBvZGgza1ZxQkQ1R3VoTlU3KzBNdkR3NlJEOVhSQWRRdm13QXBOWXNCejVCR3ZnL0F5d0pUVE84UjBrTnlvN0ExMGhieGFxM1BoZ2RvSjhyb3dNb1h6NENrSnAzQmZCVzRNL1JRVG93bmRRSUhCSWRwT0wyQVc2SURnRnNCVHdRSFVLRDhoR0FsTG1sd01uQVlaUjc4SWUwUmV4aHdCdElldytvTjA2TUR0RHdJTzIvZHFxS3N3R1FoblkvNlRXN2IxS2QyYW8xcEMvR1RTY3RFbFAzL1NQNXZJWGhkd0UwSUJzQWFYQ1hrTDcyZG0xMGtCNlpUZHBNNkl0VXA3bkp4WmFrYzVzREd3QU55QVpBR3RoWGdHT0ErZEZCZW13NTZYWEI0MGxiRWF0N1RvZ08wUERYNkFES2t3MkF0SzdQazE2aHE5T0srWjhDUndEem9vTlV5QkhSQVJweStraVJNbUlESUQzVFo0SDNSWWNJY2gxcGdlQjkwVUVxWWlkZzYrZ1FwSzJwcFhYWUFFaFAremp3Z2VnUXdmNEtIQVRjRmgya0lnNlBEa0I2RFhCcGRBamx4d1pBU2o0R2ZEUTZSQ1llQUk0Qzdva09VZ0dIUndjZ0xmQjhNRHFFOG1NRElLV2Q4bVlHWjhqTlE2UW00SkhvSUNXM1IzU0Fob2VqQXlnL05nQ3F1NW1rdTMrdDZ5N1NOKzZmaUE1U1lqdEhCMmg0S0RxQThtTURvRHI3R0E3K3c3a2VlQjN1RTlDdWpZQXAwU0Z3TjBBTndBWkFkVFVUcC8yYjlSUFM5d1BVbm1kSEJ3QWVqdzZnL05nQXFJNjg4Mi9kKzRDYm9rT1UxQTdSQWNqdmM5WEtnQTJBNnVaamVPZmZqbVhBYTNDM3dIWnNGQjBBR3dBTndBWkFkVElUQi85TzNFN2FLMEd0V1Q4NkFLbUJrNTdCQmtCMU1ST24vYnZoUzZSR1FNM2JJRG9BTHVMVUFHd0FWQWN6Y2ZEdmx1WEFPNkpEbEV3T0RjRHE2QURLancyQXFzNEZmOTEzQ1hCUmRBaTF4QVpBNjdBQlVKWE54R2YrdmZKaG5GWnVWZzRMOE1aR0IxQitiQUJVVlRQeHpyK1gvZ1JjRmgyaUpITFlTWEY4ZEFEbHh3WkFWVFFUQi84aWZEWTZRRW5rc0FuUHVPZ0F5bzhOZ0tyR1ovN0Z1UVM0TVRwRUNTeUtEZ0JNaUE2Zy9OZ0FxRXBtNGpQL29wMFJIYUFFN29vT0FFeU9EcUQ4MkFDb0ttYmluWCtFSHdFcm8wTms3bS9SQWJBQjBBQkdSUWVRdXFETTAvNlRnUU9CNXdIVFNjOXExeWZ0M0haSG82NENyZ1pXQldVY3lqemdVdURGMFVFeXRRQ1lIeDBDR3dCbGFvMWxkVkF6S1ovMWdHT0FDNEVWTlBmbnZCLzRJSGsreXoySitKK0RYT3ZxRHM1ck4vMlorSE5oclZ1MUYzMEJyUExXVE1ybkFOSXJkTzMrbWU4SGppbzg5ZEFta3phYWlmNTV5TEZ5K0l6eUNOSkhuS0xQaGJWdTFWNzBCYkRLV1RNcGw5SEFWMG5UK0ozKzJWY0I3eXcyL3JCdUp2NW5Jc2Q2UlNjbnRVczJJLzQ4V0FOWDdVVmZBS3Q4TlpOeUdRMmNUL2ZQdzF1TC9FTU00eXZFLzF6a1ZxdUFTWjJjMUM3WmovaHpZUTFjb1h3TFFHWHpNY3JWQUl3R3pnRm05T0QzL2hyd2toNzh2dTI0UERwQWhtNG1qd1dBTzBVSFVKNXNBRlFtRHY3UE5BbzREOWk3Ujc5L0szSlo3SmFUUzZJRE5Pd2FIVUI1c2dGUVdUajREMndDY0M2d1lZK1BNNXdIeWVPak56azVPenBBZ3cyQUJtUURvREp3OEIvYWp1U3hEMElPRzk3azRoYmdwdWdRRGJ0RkIxQ2ViQUNVT3dmLzVyd2RtRmJ3TWRkMmUvRHhjL0s5NkFBTms0ai91VkNtYkFDVU13Zi81bzBDM2h0dzNQN3VDRDUrTGxZQ1A0Z08wYkFmYVI4QWFSMDJBTXFWZzMvci9oRVlHM2o4UndPUG5aTWZrdFpFNUdELzZBREtsdzJBY3VUZzM1NU5nWU1Eajc4dzhOaTVXQVY4TWpwRVB3ZEZCMUMrYkFDVUd3Zi96aHdhZUd3YmdQUmFaaTVySWNZQWgwU0hVTDVzQUpRVEIvL083Uko0N0VXQng4N0JhdUFUMFNINmVSNHdNVHFFOG1VRG9GdzQrSGZINW9ISFhobDQ3Qno4TjNCYmRJaCtYaEFkUUhtekFWQU9IUHk3WjN6Z3NjY0VIanZhUThDcDBTSFdrc3MyMGNxVURZQ2lPZmgzMXhPQnh4NFhlT3hvN3lLdlJ5QmJrVjRCbEFabEE2QklEdjdkTnlmdzJKR3ZJRWI2T1dueFgwNk94ZmYvTlF3YkFFVng4TytOV3dPUFhjY0ZaL2NEYjRvT01ZRGpvd01vZnpZQWl2QTVIUHg3NWJlQng5NG04TmdSbGdHdkJPWkdCMW5MRk9DRjBTR1V2MUhSQVZRN1p3QWZpQTdSZ3RIQWp5akhIZFZzNEkrQng5OHU4TmdSM2c1Y0d4MWlBUCtJZjdlckNjNEFxRWpmQTk0Q3JJa08wcVMrTy84eURQNEEzeUgyM05acEJ1QWJ3TGVqUXd6aXhPZ0FVclBXV0xXb1Mwa0RhbG1NQnM0bi9ydzFXd3VCVFhweUpwcDNQZkhub1lnNmszeHZudllnL3Z4WXpWY29wNGxVaEw4QUp3QXJvb00wcVV6VC9uMCtBandXZVB5UndITUNqMStVSDVNVy9hMk9EaktJazZNRFNLMkk3c0NzM3RiRHdGVEtvMngzL211QVdhUUJPTkowNHM5RHIrczg4cjVwMmdCWVRQeDVzcHF2VUxsT1k2a2FWcER1L0dkSEIybFNtVmI3OTdrUGVDM3BLM1NSOWcwK2ZxOWRRRHJQT1c5My9IcFNFeUNWUm5RSFp2V3VUcUU4eW5qblA0L1lqLy8wOTAzaXowZXY2bnp5WDc4eUNyaWIrSE5sdFZhMUYzMEJyTjdVRHltUHNnNytlL1RpWkxUcFZ1TFBTUytxRElNL3BGZi9vcytWMVhyVlh2UUZzTHBmZDFLZXFVZ0gvODVOSS82YzlLTEtNdmlQQUc0aS9ueFpyVmNvMXdDbzIxWUNyd01lanc3U2hMN1YvbVY2NWo4UE9CSzRPVHBJUDhkRkIraUJDNERYVUk0M1YxNUJXb1FwbFU1MEIyWjF0MlpTRHFOSmY4bEhuNjlXYWk1NTNmbjMrUTN4NTZhYlZaWTdmMGh2Zjl4Ry9EbXoycXZhaTc0QVZ2ZnFPdkorVGFxUDAvN2RzeEd3bFBqejA2MHEwK0FQY0JMeDU4eHF2Mm92K2dKWTNha1Z3Tjdrenp2Lzdubzc4ZWVuVzFXMndYODhjQy94NTgxcXYyb3YrZ0pZM2FsUHIzMWhNK1RnMzMwM0VuK091bEZsRy93QlBrNzhlYk02cTlxTHZnQlc1M1VYTUdIdEM1c1pwLzI3N3dEaXoxRTNxb3lEL3pUZ0tlTFBuZFZaMVY3MEJiQTZyOXozekhmdzc0MHppRDlQblZZWkIzK0FpNGcvZDFiblZYdlJGOERxckdhdGUwbXo0clIvYjJ3SExDUCtYSFZTWlIzOFgwdjh1Yk82VTdVWGZRR3M5bXNWc00rNmx6UWJEdjY5Y3pyeDU2cVRLdXZnUHhsNGhQanpaM1duYWkvNkFsanQxNWtEWE05Y09PM2ZPOXNEeTRrL1grMVdXUWQvZ0hPSlAzOVc5NnIyb2krQTFWNnRBSjQxd1BYTWdZTi9iMzJiK1BQVmJwVjU4SDhUOGVmUDZtN1ZYdlFGc05xck13YTZtQmx3MnIrMzlpTnQ5eHg5enRxcE1nLyt6d0lXRTM4T3JlNVc3VVZmQUt2MVdnSHNPTkRGREZiR08vOHlEZjZqS085Ny8yVWUvQ2RRM3ZOdURWMjFGMzBCck5icm5BR3ZaS3lSd0krSlB6ZXRWSmtHZjREM0VuL08ycWt5RC80QTN5ZitIRnE5cWRxTHZnQlc2L1c4QWE5a3JNOFRmMTVhcWJJTi90T0FKNGcvYjYxVzJRZi9keE4vRHEzZVZlMUZYd0NydGJweTRNc1k2cCtKUHkrdFZOa0cvekhBTmNTZnQxYXI3SVAvRE5ManR1anphUFd1YWkvNkFsaXQxV3NHdm94aERxVmNHOUtVYmZBSCtCTHg1NjNWcXNMZ1grWlhMYTNtcXZhaUw0RFZmRDBLakIzNE1vYlluSEp0aWxMR3dYOEdzSnI0YzlkS09maGJaYW5haTc0QVZ2UDFwVUd1WVpTZkVIOU9tcTB5RHY1N0FBdUpQM2V0bElPL1ZhYXF2ZWdMWURWZjB3ZTVoaEZPSXY1OE5GdHpnZDE3Y3hwNlpnL1M1a1RSNTY2VmN2QzN5bGExRjMwQnJPYnFUNE5kd0FCYkFmT0pQeWZObElOL01lWGdiNVd4UXEwWEhVQ2w4ZVBvQVAxOEdkZzBPa1FUNWdFdkJHNkpEdEtDUFlETFNCK2RLWXNMU0l0VFYwUUhhZE1NMHQ0YVpXNWdwTFpFZDJCV2M3WExZQmV3WVB0VGprVnAzdmtYVTk3NVcyV3Uyb3UrQU5id2RkdWdWNjk0czRnL0g4TlZXUmY4T2ZnWHk4SGZxcjNvQzJBTlg1OGI5T29WNjZYRW40dmh5anYvWXNyQjM2cEMxVjcwQmJDR3J4Y09ldldLZFIzeDUyS284czYvbUhMd3Q2cFN0UmQ5QWF5aDZ5bGcvS0JYcnpnSEVIOHVoaXJ2L0lzcEIzK3JTaFhLdHdBMG5OOERTNkpEQUNkSEJ4aUNxLzJMNFdwL3FXS2lPekJyNlBySTRKZXVNSk5KVFVqMHVSaW92UE12cHJ6enQ2cFlvWndCMEhDdWpnNEF2QjRZRngxaUFONzVGOE03ZjZtaW9qc3dhL0JhQld3MCtLVXJ6RlhFbjR1MXl6di9Zc283ZjZ2S1ZYdlJGOEFhdlA0OHhIVXJ5dWFrUmlUNlhQUXZCLzlpeXNIZnFucUY4aEdBaHBMRDFQWng1UFZ6T2c4NGtqek9UYk9jOWkrZTAvN0tYazUvc1NvL09ld0FlRngwZ0g0Yy9Jdmg0QzhWd0FaQVE3azErUGdqZ0VPQ00vUXA2K0IvS1E3K1JYTHdWMm1NaWc2Z3JQMHQrUGc3a01kWC84bzYrSHZuWHl3SGY1V0tNd0FheXV6ZzQrOFhmUHcrYjhMQnY5Y2MvS1dDMlFCb01QT0J4NE16N0JOOGZJQnpnWXVpUTdUQXdiOTREdjRxSlJzQURlYSs2QURBcnNISFh3S2NFcHloRlQ3ekw1NkR2MHJMTlFBYXpNUFJBWUJ0ZzQ5L0h2QlFjSVptZWVkZlBBZC9sWm96QUJyTS9PZ0F3TmJCeHo4OStQak5jdkF2bm9PL1NzOEdRSU41TFBqNEU0Qk5BbzgvRzdneThQak5jdHEvZUE3K3FnUWJBQTFtUWZEeHR3dytmZzRmUVJwTzMrQy9XWFNRRmpqNFM1bHdEWUFHc3pUNCtHT0RqMzlOOFBHSDQ3Ui84Uno4VlNuT0FHZ3d5NEtQSC8yemVXZnc4WWQ1TTZoMkFBQVEyVWxFUVZUaXRIL3hIUHhWT2M0QWFERExnNDhmL2JQNVpQRHhCK09kZi9FYy9GVkowWGRaeXRmSzRPTkgvMnd1Q1Q3K1FMenpMNTZEdnlvcitpNUwrWXIrQ3k5NkFONHcrUGhyODg2L2VBNytxclRvdXl6bEszb1IzcVBCeDk4cCtQajlPZmdYejhGZmxXY0RvTUdNQ1Q3K0FtQjE0UEYzRGp4MmYwNzdGOC9CWDdWZ0E2REJUQWcrL2lwaU55TTZJdkRZZlh6UHYzZ08vcW9OR3dBTlpsSjBBR0wzNGQrTk5BQkhjZkF2bm9PL2FzVUdRSVBaTkRvQWNGdnc4ZDhUZEZ3SC8rSTUrS3QyYkFBMG1CeG1BRzROUHY3cmdIMEtQdWJ1T1BnWHpjRmZ0V1FEb01GRTc4VVBjRXZ3OGRjRHZnZXNYOUR4ZGlldDluZndMNDZEdjJyTEJrQ0RtUm9kZ1BnR0FHQVgwaURYNjljaUhmeUw1K0F2QlZ0alpWczV2SHAyUC9IbllRM3dlM3AzUHZZQTVtYndaMnlsenFmY0ErY00wbmJYMGVmUnFuZUZjZ1pBUTVrYUhRQzRKRHBBd3lIQUZjRDJYZjU5RHdOK2kzZitSZkxPWDhJR1FFTjdUblFBNE9Mb0FQM3NERndISE5PRjMyc0U4QzVTZzdOSkYzNi9vamo0UytxYTZDa1lhL0Q2MUJEWHJTaWJrVFlGaWo0WC9XczFhWEhnTm0zK21mWWlQVktJL25PMFdrNzdXMVozcS9haUw0QTFlRjAweEhVcjBtK0pQeGNEMVRMZ0ROSTAvbkN6YWVPQTQ0RmZrQnFJNk95dGxvTy9aWFcvUW8ySURrQUdKMEdEdW84ODFnRzhBZmh1ZEloaFBBWmNDZnlGdEtCdk1XbHFmMnZTcm9JSEFPUEQwblhHYVgrcE4wTEhZQnNBRFdjcllyZmtCWmdJUEV4eDcrUHJhUTcrVXUrRWpzRXVBdFJ3RG93T0FEeEptb0pXc1J6OHBRcXpBZEJ3Y21nQUFMNFJIYUJtSFB5bGlyTUIwSEFPaVE3UThBZlNIdm5xUFFkL3FRWmNBNkRockFLbUFBdWlnd0NIQTdPaVExU2NnNzlVSE5jQUtHc2pnU09pUXpUOGx2VCt2SHJEd1YrcUVSc0FOZU5GMFFINitSRE9HdldDZzc5VU16WUFhc1pMeU9kbjVYZkE5Nk5EVkl5RHYxUkRyZ0ZRc3c0aGJYU1RnODJCdndJYlJ3ZXBBQWQvS1k1ckFGUUtKMFFINk9jUjRNUFJJU3JBd1YrcU1XY0ExS3c1cEcyQlYwY0hhUmhKZWkzdzhPQWNaZVhnTDhWekJrQ2xzQTM1dkEwQTZmWEUxNUMyQ0ZackhQd2wyUUNvSlcrTURyQ1dSNERYa3BvQk5jZkJYeEpnQTZEV3pDQjk0UzRuczRCUFJZY29DUWQvU1g5bkE2QldqQVArS1RyRUFENEtuQjBkSW5NTy9wS2V3VVdBYXRVOXdMUEpiOXA5TlBCVDRKam9JQmx5OEpmeTVDSkFsY28wNExqb0VBTllBYndTdUNvNlNHWWMvQ1VOeUFaQTdYaDNkSUJCUEFXOERMZzJPa2dtSFB3bERjb0dRTzA0RERnb09zUWc1Z05IQXIrSkRoTHNmQno4SlEzQkJrRHRtaGtkWUFoUEFNY0NaMFFIQ2ZJVjROVTQrRXZLM0JxcnRIWElBTmN6SnlPQWo1TVdMRWFmcXlKcUtmRDZycHk1T0RPQTVjU2ZTOHNxb2tMNUZvQTZNUXQ0UVhTSUpod0ZmSS8wRWFHcWVwZzBlRjRkSGFRRDN2bXJibndMUUtWMUJIbStFYkMyUzRBOWdJdWpnL1RJajBsL1BnZC9TYVVTUFFWamRWYTNVNTYvdEVjQ2J3TWVJLzY4ZGFNZUpTMzBLenVuL2EyNlZ1MUZYd0NyOHpwbG5hdWF0ODJCTTBsZk5vdytkKzNVYXVDSHdCYmRQakVCSFB5dE9sZnRSVjhBcS9ONkROaHk3UXRiQW9jQ2x4Ti8vbHFwUzRCOWVuRXlBamo0VzNXdjJvdStBRlozNnJ5MUwyeUpIRXJhTnlENkhBNVZWNUVXTTFhRmc3OWxLZndDV04ycmwxRnUrNUgyRGxoTS9MbGNROXJaOER0VTU0Ni9qNE8vWmFVSzVXdUE2cWI3U2F2UkYwWUg2ZEJFMGlEMUJ1RDVwTVdEUlZrRlhBbGNDSndGTENqdzJFVnd0Yi8wdE5BeDJBWkEzWFkyY0dKMGlDN2FoTFMxOE5HTm10cURZendNWEFGY0JQeUN0SjF4RlRuNFM4OWtBeEFkUUYxM0lxa1JxS0twd083QWJvMWZkeVd0eHAvTThETUZEd01QQW5PQTI0RHJnT3RKTXlkVjUrQXZyY3NHSURxQXVtNGhzQ2N3T3pwSXdTWTNhbUxqM3g5ci9Mb0NlSVQwM0x1T0hQeWxnZGtBUkFkUVQ5eEUrbUxna3VnZ0N1WGdMdzNPcllCVlNYc0NYNDRPb1ZBTy9sTEdiQURVUzI4QjNoUWRRaUVjL0tYTStRaEF2YlljZURIcHk0R3FCd2QvcVRtdUFZZ09vSjZiVDFvUDhMZm9JT281QjMrcGVhNEJVT1ZOQW40RlRJa09vcDV5OEpkS3hBWkFSZGtCK0Ntd1FYUVE5WVNEdjFReU5nQXEwZ0drbVlDSncvMkhLaFVIZjZtRWJBQlV0SU9CQzRDeDBVSFVGUTcrVWtuWkFDakMwY0NQc0Frb3UxZmg0QytWbG04QktOSXMwaWVFbjRnT29wYjlFL0JkWUZSMEVLbkVmQXRBdFhVRThFdGd3K2dnYXNuSndKazQrRXVsWmdPZ2FJZVNaZ0syakE2aVlZMEFQZzU4SGYvdWtFclBSd0RLeFlQQXNjQ04wVUUwb0RIQWQwaFQvNUs2dzUwQW93TW9HNHVCRTRDTG80UG9HU2FSM3R3NExEcUlWREd1QVpBYU5pU3RDWmlKUDV1NTJCTzRGZ2QvcVhLY0FWQ3VMZ0pPQWhaR0I2bXgxd0hmQkNaRUI1RXF5aGtBYVFESEFkY0FlMGNIcWFHSndMZUJzM0R3bHlyTEJrQTUyeG40QSttUndNallLTFd4SDNBRDhLYm9JSko2eTBjQUtvdkxnVGNBOThiR3FLeFJ3QWVCaitET2ZsSlJmQXNnT29CSzR5blNlK2lmQjFZRlo2bVN2WURUZ1gyamcwZzFZd01RSFVDbGN6M3dMN2huUUtjMkFQNERlRHMrWXBFaXVBaFFhdEcrcENiZ0xHQ0w0Q3hsdEI3cERZdmJnWGZoNEMvVmtqTUFLcnZGd0tlQUx3RkxnN09Vd1JIQUYwalQvcEppK1FnZ09vQXFZUzV3R3ZBVllFbHdsaHdkQkp4SzJtNVpVaDVzQUtJRHFGSWVBRDVOK2xUdGs4RlpjdkI4NE4rQm82S0RTRnFIRFVCMEFGWFNZdUIvU0c4TTNCOGJwWENqZ1pjRDd3RU9DTTRpYVhBMkFORUJWR2tyZ0F1Qk00QkxnTld4Y1hwcUIrQ2ZHN1YxY0JaSnc3TUJpQTZnMnJpUDlHamdIT0N2d1ZtNlpTUGdaYVJOa280Z2ovOVBTMnFPRFVCMEFOWFNyY0NQU1orNXZTVTRTNnNta1JienZaTDBiSDlzYkJ4SmJiSUJpQTZnMnBzRFhBejhCcGdGekl1TnM0NHh3UDdBMGNDTGdIM3czWDJwQ213QW9nTklhL2tiY0hXai9najhtYlFOY1JIV0l6M0wzd000c0ZIN0FPTUtPcjZrNHRnQVJBZVFockVhdUlmMHFPQnVZSGJqMys4REhnWG0wL3dtUk9zQm01S204YmNHcGpacUIyQVg0TG40Q1Y2cExtd0FvZ05JWGZBVXFSRllRV29ZRmpYKzkzSEErTVkvYjB3YS9DVUpiQUJzQUNSSnRlVEhnQ1JKVXJGc0FDUkpxaUViQUVtU2FzZ0dRSktrR3JJQmtDU3BobXdBSkVtcUlSc0FTWkpxeUFaQWtxUWFzZ0dRSkttR2JBQWtTYW9oR3dCSmttb29od1pnVlhRQVNaSUtGajcyNWRBQUxJOE9JRWxTd1paRkI3QUJrQ1NwZURZQTJBQklrdXJIQm9BTVRvSWtTUVVMdi9uTm9RRllIQjFBa3FTQ0xZb09rRU1EOEdoMEFFbVNDaFkrOXRrQVNKSlV2UEN4endaQWtxVGloWTk5T1RRQTg2TURTSkpVc0FYUkFYSm9BT1pFQjVBa3FXRDNSUWZJb1FHNEp6cUFKRWtGQ3gvN2JBQWtTU3JldmRFQlJrUUhBTVlCVDVGSEZrbVNlbTAxTUlIZ2pmQnltQUZZQ2p3VUhVS1NwSUk4UUFhNzRPYlFBQURjR2gxQWtxU0MzQklkQVBKcEFHNk9EaUJKVWtHeUdQTnlhUUN5NklZa1NTcEFGbU5lTGcxQUZ0MlFKRWtGeUdMTXkyWGwvUmpTbDVIR1JRZVJKS21IbGdBYkFTdWlnK1F5QTdBY3VENDZoQ1JKUGZZSE1oajhJWjhHQU9ESzZBQ1NKUFhZRmRFQit0Z0FTSkpVbkd6R3VseldBQUJNQXVhUlZ5WkprcnBsTldtc1d4Z2RCUEthQVpnUC9DazZoQ1JKUFhJOW1ReitrRmNEQVBETDZBQ1NKUFhJcjZJRDlKZGJBNURWeVpFa3FZdXlHdU55ZTk0K0VwZ0xiQm9kUkpLa0xub1UyQUpZRlIya1QyNHpBS3VBaTZORFNKTFVaYjhtbzhFZjhtc0FBTTZMRGlCSlVwZWRHeDFnYmJrOUFvQzBIZkREcEswU0pVa3F1NFdrNmY5bDBVSDZ5M0VHWUNsd1VYUUlTWks2NUVJeUcvd2h6d1lBNEVmUkFTUko2cExzcHY4aHowY0FBS09BKzRBdG80TklrdFNCaDREdGdKWFJRZGFXNnd6QVN1RE02QkNTSkhYb08yUTQrRU8rTXdBQU93QjNrRytUSWtuU1VOWUF6d2J1aWc0eWtKd0gxN3VCV2RFaEpFbHEweVZrT3ZoRDNnMEF3TmVqQTBpUzFLWnZSQWNZU3M2UEFDQTFLTGNEejRvT0lrbFNDLzRHN0VMNkJIQ1djcDhCV0ExOEtUcUVKRWt0T28yTUIzL0lmd1lBWUFJd0c1Z2NIVVNTcENiTUJiWUhsZ1RuR0ZMdU13QUFUK0ZhQUVsU2VYeU56QWQvS01jTUFLVHZBdHlObndtV0pPVnRQdWsxOXNYUlFZWlRoaGtBZ0VYQUY2TkRTSkkwak05UmdzRWZ5ak1EQUxBKzZYM0tLZEZCSkVrYXdEeGdSK0R4NkNETkdCa2RvQVhMRzc4ZUhacENrcVNCZlFqNFhYU0lacFZwQmdCZ0RIQXJhV3RGU1pKeWNTZXdHeGwrOW5jd1pWa0QwR2M1OFA3b0VKSWtyZVVVU2pUNFEvbG1BUHI4Qmg4RlNKTHljQ2x3VkhTSVZwVzFBZGdkdUFFWUZSMUVrbFJyeTRFOWdiOUVCMmxWbVJZQjlqY1htQWdjRWgxRWtsUnIvd21jRngyaUhXV2RBUUFZQzl4SSt0aUNKRWxGdTUxMDk3ODBPa2c3eXJZSXNMOWx3TW5BbXVnZ2txVGFXUTI4bVpJTy9sRGVSd0I5WmdOYkF2dEdCNUVrMWNyWGdXOUdoK2hFbVI4QjlKa0kvQkhZT1RxSUpLa1cva0s2OFh3cU9rZ255dndJb00rVHdHdDVlcWRBU1pKNlpSbHdJaVVmL0tIOGp3RDZQQVNzQW82TURpSkpxclFQQUJkR2graUdLandDNkxNZWFZT2dGMFlIa1NSVjBxK0FsMUtSeGVkVmFnQUFOZ1d1QjZaRkI1RWtWY3BzWUI5Z2ZuU1FicW5DR29EK0ZnQXpnQ1hSUVNSSmxiR1VOTFpVWnZDSDZxd0I2TzloNEVIZ0g2S0RTSklxNFkya1I4eVZVc1VHQU9BbVlFUGd3T2dna3FSUyt3eHdXblNJWHFqYUdvRCsxaVB0enp3ak9vZ2txWlRPQTE1RDJ2V3ZjcXJjQUFDTUJ5N0RtUUJKVW11dUJZNmdBdS83RDZicURRREFGT0FLNE5uUlFTUkpwZkJYNEZEZzBlZ2d2VlMxdHdBR01oZDRBWEJQZEJCSlV2YnVBMTVNeFFkL3FNY01RSjhkZ2Q4QlcwVUhrU1JsNlFIZ01PRHU2Q0JGcU1NTVFKKzdnS09CZWRGQkpFblptUXNjUlUwR2Y2aFhBd0J3RzZtN2V5QTZpQ1FwR3crVHZpWHpsK2dnUmFyVEk0RCt0aWU5SGJCRGNBNUpVcXpacEcvSTNCa2RwR2gxbXdIb2N5L3A5WTQ3Z25OSWt1TGNEaHhDRFFkL3FHOERBR21sNTRHa1Z3UWxTZlZ5RGVtUjhKem9JRkhxM0FCQStyRERDNEZ6b29OSWtncHpQdW4xOExuUlFTSlY5VnNBclZnRlhORDQ1OE1EYzBpU2V1OHJ3SnVCRmRGQm90a0FQTzIzcEZjRlh3eU1qbzBpU2VxeXBjQmJnVThCYTRLelpLR3Vid0VNWlUvU2pNQzA2Q0NTcEs2NEQzZ2xjRjEwa0p6VWZRM0FRRzRDOWdNdWpnNGlTZXJZcjRDOWNQQmZoNDhBQnJZRStBSHdHR21oaU9kSmtzcGxCZkFKMHJSL1piL28xd2tmQVF4dk4rQnNZUGZvSUpLa3B2d1ZlQzF3WTNTUW5IbG5PN3k1d0ZuQUpzQysyRFJKVXE1V0ExOEhUZ0R1RDg2U1BRZXoxaHdNZkF2WUpUcUlKT2taN2dUK0JaZ1ZIYVFzbkFGb3pmM0FkMGg3Qnh5RTUwK1NvcTBFUGdlOG1wcHU2ZHN1WndEYXR5dndSZExuSXlWSnhmc044RzVxOWhXL2J2RTF3UGJkQmh4TmFnRCtISnhGa3Vya0R1QlZwSTNiSFB6YjVCUjI1KzRtUFJaNEROZ2JtQmdiUjVJcWF5N3dJZUNmZ1Z1Q3M1U2Vqd0M2YXlMd2R1RDl3S2JCV1NTcEtoWUFYd1ZPQXhZSFo2a01HNERlMkFnNGhkUU1UQTdPSWtsbE5ZODA4SDhaQi82dXN3SG9yYkdrbGFtbkFzOEp6aUpKWlhFMzZhdDkzOEpkL0hyR0JxQVk2d0V2Qi80Vk9CSVhYMHJTMmxZRGx3TGZBSDdXK0hmMWtBMUE4YllCVGdUZUJtd1huRVdTb2oxRTJtMzFkTktkdndwaUF4Qm5GT2sxd2xjRC8wQmFOeUJKZGJBUStBbHdMbkFKYVRNZkZjd0dJQTlqU2UrenZncDRFVEFwTm80a2RkMmp3SytCODBnYitDeUxqU01iZ1B5TUJQWUhqbW5VM3JobVFGTDVyQWF1SnczNnYyejg4NnJRUkhvR0c0RDhiUUE4RHppRTlER2lnNEh4b1lra2FWMHJnSnVCSzRFcmdNdEk3KzhyVXpZQTVUT2E5RFhDM1lFOWdPbkFjMG1MQzcyZWtucHROVENIdEFYNm4wZzc4dDFDMnBKM1JXQXV0Y2dCb3pyR0FsT0JhY0QycElaZ01yQlo0OWRKd0FSZ1E5SmpodEhBK2hGQkpXWGxDZExBdllxMDJjNVR3SHpTTS90NWpWL25BUGNBOXdLejhmbDlKZndmc0xSMldkRm0xWFlBQUFBQVNVVk9SSzVDWUlJPVwiIC8+XG4gICAgICA8L2RlZnM+XG4gICAgPC9zdmc+XG4gICAgQGlmKGNvcHlPZklucHV0QWxsRmlsZXMgJiYgY29weU9mSW5wdXRBbGxGaWxlcy5sZW5ndGggPiAwKXtcbiAgICA8c3BhbiAoY2xpY2spPVwib3BlblBvcHVwKClcIiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICB7eyBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCA9PT0gMSA/ICgnT05FX0ZJTEVfQVRUQUNIRUQnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJzEgRmlsZSBBdHRhY2hlZCcpIDogKCdNVUxUSVBMRV9GSUxFU19BVFRBQ0hFRCcgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnKycgKyBjb3B5T2ZJbnB1dEFsbEZpbGVzLmxlbmd0aCArICcgRmlsZXMgQXR0YWNoZWQnKSB9fVxuICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGVsc2UgaWYobW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgPGRpdj4ge3sgJ0FERF9GSUxFUycgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnQWRkIGZpbGVzJyB9fSA8L2Rpdj5cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgIDxkaXYgKm5nSWY9XCJmcm9tICE9PSAnbnh0VGFibGUnXCI+e3sgJ05PX0ZJTEVTX0FUVEFDSEVEJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdObyBmaWxlcyBhdHRhY2hlZCcgfX08L2Rpdj5cbiAgICB9XG4gICAgPGJ1dHRvbiAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JyAmJiAhcXVlc3Rpb24uaXNSZWFkT25seVwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgXG4gICAgICAgICAgICBjbGFzcz1cImFkZC1idG4taWNvblwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInBsdXMtaWNvblwiPis8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIG5hbWU9XCJmaWxlVXBsb2FkXCIgbXVsdGlwbGU9XCJtdWx0aXBsZVwiIFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsJylcIlxuICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTpub25lO1wiIChjaGFuZ2UpPVwidXBsb2FkTXVsdGlwbGVGaWxlcygkZXZlbnQpXCIgLz5cbiAgPC9kaXY+XG4gIDwhLS0gU0tTMTNKVU4yNSBlZGl0IGljb24gLS0+XG4gIDxzdmcgKm5nSWY9XCJtb2RlICE9PSAnZWRpdCcgJiYgIXZpZXdFZGl0ICYmICFxdWVzdGlvbi5pc1JlYWRPbmx5ICYmIGZyb20gIT09ICdueHRUYWJsZScgXCIgY2xhc3M9XCJlZGl0LWljb25cIiAoY2xpY2spPVwidmlld0VkaXRDbGljayhxdWVzdGlvbilcIlxuICAgIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTEuOTk5ODcgOS4wMDE3TDQuMzk2MDIgMTEuMzk3OUM0LjUwMzcxIDExLjUwNTUgNC42NjUyNSAxMS41MDU1IDQuNzcyOTQgMTEuMzk3OUwxMC43NDk5IDUuMzk0MDFDMTAuODU3NiA1LjI4NjMxIDEwLjg1NzYgNS4xMjQ3NyAxMC43NDk5IDUuMDE3MDhMOC4zODA2NCAyLjY0Nzg1QzguMjcyOTQgMi41NDAxNiA4LjExMTQxIDIuNTQwMTYgOC4wMDM3MSAyLjY0Nzg1TDEuOTk5ODcgOC42NTE3QzEuODkyMTcgOC43NTkzOSAxLjg5MjE3IDguOTIwOTMgMS45OTk4NyA5LjAwMTdaTTkuMTYxNCAxLjU0NDAxQzkuMDUzNzEgMS42NTE3IDkuMDUzNzEgMS44MTMyNCA5LjE2MTQgMS45MjA5M0wxMS41MzA2IDQuMjkwMTZDMTEuNjM4MyA0LjM5Nzg1IDExLjc5OTkgNC4zOTc4NSAxMS45MDc2IDQuMjkwMTZMMTIuNTgwNiAzLjYxNzA4QzEzLjAxMTQgMy4yMTMyNCAxMy4wMTE0IDIuNTY3MDggMTIuNTgwNiAyLjEzNjMxTDExLjMxNTMgMC44NzA5MjhDMTAuODg0NSAwLjQ0MDE1OSAxMC4yMTE0IDAuNDQwMTU5IDkuNzgwNjMgMC44NzA5MjhMOS4xNjE0IDEuNTQ0MDFaTTAuMDA3NTU4NjIgMTIuOTg2M0MtMC4wNDYyODc1IDEzLjI1NTUgMC4xOTYwMiAxMy40OTc5IDAuNDY1MjUxIDEzLjQ0NEwzLjM5OTg3IDEyLjc0NEMzLjUwNzU2IDEyLjcxNzEgMy41ODgzMyAxMi42NjMyIDMuNjQyMTcgMTIuNjA5NEwzLjY5NjAyIDEyLjU1NTVDMy43NDk4NyAxMi41MDE3IDMuNzc2NzkgMTIuMzEzMiAzLjY2OTEgMTIuMjA1NUwxLjI0NjAyIDkuNzgyNDdDMS4xMzgzMyA5LjY3NDc4IDAuOTQ5ODY2IDkuNzAxNyAwLjg5NjAyIDkuNzU1NTRMMC44NDIxNzQgOS44MDkzOUMwLjc2MTQwNSA5Ljg5MDE2IDAuNzM0NDgyIDkuOTcwOTMgMC43MDc1NTkgMTAuMDUxN0wwLjAwNzU1ODYyIDEyLjk4NjNaXCJcbiAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgPC9zdmc+XG4gIDwhLS0gU0tTMTNKVU4yNSBzYXZlIGFuZCBjYW5jZWwgaWNvbnMgLS0+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdFwiIChtb3VzZWVudGVyKT1cImlzU2F2ZUhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNTYXZlSG92ZXJlZCA9IGZhbHNlXCJcbiAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj5cbiAgICA8c3ZnICpuZ0lmPVwiIWlzU2F2ZUhvdmVyZWRcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk01Ljk1MDIgMC41QzguOTYwMDYgMC41MDAxMDYgMTEuNDAwNCAyLjk0MDMxIDExLjQwMDQgNS45NTAyQzExLjQwMDMgOC45NTk5OSA4Ljk1OTk5IDExLjQwMDMgNS45NTAyIDExLjQwMDRDMi45NDAzMSAxMS40MDA0IDAuNTAwMTA2IDguOTYwMDYgMC41IDUuOTUwMkMwLjUgMi45NDAyNCAyLjk0MDI0IDAuNSA1Ljk1MDIgMC41WlwiXG4gICAgICAgIHN0cm9rZT1cIiM4MzdGOEVcIiAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk04Ljg4MTExIDMuODQ1ODNDOC44MzI2OSAzLjc5NzIgOC43NzUxMyAzLjc1ODYgOC43MTE3NiAzLjczMjI3QzguNjQ4MzggMy43MDU5NCA4LjU4MDQzIDMuNjkyMzggOC41MTE4IDMuNjkyMzhDOC40NDMxNyAzLjY5MjM4IDguMzc1MjEgMy43MDU5NCA4LjMxMTg0IDMuNzMyMjdDOC4yNDg0NiAzLjc1ODYgOC4xOTA5MSAzLjc5NzIgOC4xNDI0OSAzLjg0NTgzTDQuODI2OSA3LjE2MzQ3TDMuMzUyNTMgNS42ODkxQzMuMzA0MDMgNS42NDA2IDMuMjQ2NDYgNS42MDIxMyAzLjE4MzA5IDUuNTc1ODhDMy4xMTk3MiA1LjU0OTY0IDMuMDUxODEgNS41MzYxMyAyLjk4MzIyIDUuNTM2MTNDMi45MTQ2MyA1LjUzNjEzIDIuODQ2NzIgNS41NDk2NCAyLjc4MzM1IDUuNTc1ODhDMi43MTk5OSA1LjYwMjEzIDIuNjYyNDEgNS42NDA2IDIuNjEzOTEgNS42ODkxQzIuNTY1NDEgNS43Mzc2IDIuNTI2OTQgNS43OTUxOCAyLjUwMDY5IDUuODU4NTRDMi40NzQ0NSA1LjkyMTkxIDIuNDYwOTQgNS45ODk4MiAyLjQ2MDk0IDYuMDU4NDFDMi40NjA5NCA2LjEyNyAyLjQ3NDQ1IDYuMTk0OTEgMi41MDA2OSA2LjI1ODI4QzIuNTI2OTQgNi4zMjE2NSAyLjU2NTQxIDYuMzc5MjIgMi42MTM5MSA2LjQyNzcyTDQuNDU2NzcgOC4yNzA1OEM0LjUwNTE5IDguMzE5MjIgNC41NjI3NCA4LjM1NzgxIDQuNjI2MTIgOC4zODQxNEM0LjY4OTUgOC40MTA0NyA0Ljc1NzQ1IDguNDI0MDMgNC44MjYwOCA4LjQyNDAzQzQuODk0NzEgOC40MjQwMyA0Ljk2MjY2IDguNDEwNDcgNS4wMjYwNCA4LjM4NDE0QzUuMDg5NDIgOC4zNTc4MSA1LjE0Njk3IDguMzE5MjIgNS4xOTUzOSA4LjI3MDU4TDguODgxMTEgNC41ODQ0NUM4LjkyOTc0IDQuNTM2MDMgOC45NjgzNCA0LjQ3ODQ4IDguOTk0NjcgNC40MTUxQzkuMDIxIDQuMzUxNzMgOS4wMzQ1NiA0LjI4Mzc3IDkuMDM0NTYgNC4yMTUxNEM5LjAzNDU2IDQuMTQ2NTEgOS4wMjEgNC4wNzg1NiA4Ljk5NDY3IDQuMDE1MThDOC45NjgzNCAzLjk1MTggOC45Mjk3NCAzLjg5NDI1IDguODgxMTEgMy44NDU4M1pcIlxuICAgICAgICBmaWxsPVwiIzgzN0Y4RVwiIC8+XG4gICAgPC9zdmc+XG5cbiAgICA8c3ZnICpuZ0lmPVwiaXNTYXZlSG92ZXJlZFwiIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNS45NSAxMi44MDA0QzkuMjM2MDkgMTIuODAwNCAxMS45IDEwLjEzNjUgMTEuOSA2Ljg1MDM5QzExLjkgMy41NjQzIDkuMjM2MDkgMC45MDAzOTEgNS45NSAwLjkwMDM5MUMyLjY2MzkxIDAuOTAwMzkxIDAgMy41NjQzIDAgNi44NTAzOUMwIDEwLjEzNjUgMi42NjM5MSAxMi44MDA0IDUuOTUgMTIuODAwNFpcIlxuICAgICAgICBmaWxsPVwiIzI1OTU2NlwiIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTguODgxMTEgNC43NDYyMkM4LjgzMjY5IDQuNjk3NTkgOC43NzUxMyA0LjY1ODk5IDguNzExNzYgNC42MzI2NkM4LjY0ODM4IDQuNjA2MzMgOC41ODA0MyA0LjU5Mjc3IDguNTExOCA0LjU5Mjc3QzguNDQzMTcgNC41OTI3NyA4LjM3NTIxIDQuNjA2MzMgOC4zMTE4NCA0LjYzMjY2QzguMjQ4NDYgNC42NTg5OSA4LjE5MDkxIDQuNjk3NTkgOC4xNDI0OSA0Ljc0NjIyTDQuODI2OSA4LjA2Mzg2TDMuMzUyNTMgNi41ODk0OUMzLjMwNDAzIDYuNTQwOTkgMy4yNDY0NiA2LjUwMjUyIDMuMTgzMDkgNi40NzYyN0MzLjExOTcyIDYuNDUwMDMgMy4wNTE4MSA2LjQzNjUyIDIuOTgzMjIgNi40MzY1MkMyLjkxNDYzIDYuNDM2NTIgMi44NDY3MiA2LjQ1MDAzIDIuNzgzMzUgNi40NzYyN0MyLjcxOTk5IDYuNTAyNTIgMi42NjI0MSA2LjU0MDk5IDIuNjEzOTEgNi41ODk0OUMyLjU2NTQxIDYuNjM3OTkgMi41MjY5NCA2LjY5NTU3IDIuNTAwNjkgNi43NTg5M0MyLjQ3NDQ1IDYuODIyMyAyLjQ2MDk0IDYuODkwMjIgMi40NjA5NCA2Ljk1ODhDMi40NjA5NCA3LjAyNzM5IDIuNDc0NDUgNy4wOTUzMSAyLjUwMDY5IDcuMTU4NjdDMi41MjY5NCA3LjIyMjA0IDIuNTY1NDEgNy4yNzk2MSAyLjYxMzkxIDcuMzI4MTFMNC40NTY3NyA5LjE3MDk3QzQuNTA1MTkgOS4yMTk2MSA0LjU2Mjc0IDkuMjU4MiA0LjYyNjEyIDkuMjg0NTNDNC42ODk1IDkuMzEwODYgNC43NTc0NSA5LjMyNDQyIDQuODI2MDggOS4zMjQ0MkM0Ljg5NDcxIDkuMzI0NDIgNC45NjI2NiA5LjMxMDg2IDUuMDI2MDQgOS4yODQ1M0M1LjA4OTQyIDkuMjU4MiA1LjE0Njk3IDkuMjE5NjEgNS4xOTUzOSA5LjE3MDk3TDguODgxMTEgNS40ODQ4NEM4LjkyOTc0IDUuNDM2NDIgOC45NjgzNCA1LjM3ODg3IDguOTk0NjcgNS4zMTU0OUM5LjAyMSA1LjI1MjEyIDkuMDM0NTYgNS4xODQxNiA5LjAzNDU2IDUuMTE1NTNDOS4wMzQ1NiA1LjA0NjkgOS4wMjEgNC45Nzg5NSA4Ljk5NDY3IDQuOTE1NTdDOC45NjgzNCA0Ljg1MjIgOC45Mjk3NCA0Ljc5NDY1IDguODgxMTEgNC43NDYyMlpcIlxuICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZpZXdFZGl0XCIgKG1vdXNlZW50ZXIpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gZmFsc2VcIj5cbiAgICA8c3ZnICpuZ0lmPVwiIWlzRGlzY2FyZEhvdmVyZWRcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk03LjA1NTU1IDQuMDA4ODNMNS45NCA1LjEyNDM4TDQuODI0NDUgNC4wMDg4M0M0LjU3ODYxIDMuNzYyOTkgNC4xODE5MSAzLjc2Mjk5IDMuOTM2MDcgNC4wMDg4M0MzLjY5MDIzIDQuMjU0NjcgMy42OTAyMyA0LjY1MTM3IDMuOTM2MDcgNC44OTcyMUw1LjA1MTYyIDYuMDEyNzZMMy45MzYwNyA3LjEyODMxQzMuNjkwMjMgNy4zNzQxNSAzLjY5MDIzIDcuNzcwODUgMy45MzYwNyA4LjAxNjY5QzQuMTgxOTEgOC4yNjI1MyA0LjU3ODYxIDguMjYyNTMgNC44MjQ0NSA4LjAxNjY5TDUuOTQgNi45MDExNEw3LjA1NTU1IDguMDE2NjlDNy4zMDEzOSA4LjI2MjUzIDcuNjk4MDkgOC4yNjI1MyA3Ljk0MzkzIDguMDE2NjlDOC4xODk3NyA3Ljc3MDg1IDguMTg5NzcgNy4zNzQxNSA3Ljk0MzkzIDcuMTI4MzFMNi44MjgzOCA2LjAxMjc2TDcuOTQzOTMgNC44OTcyMUM4LjE4OTc3IDQuNjUxMzcgOC4xODk3NyA0LjI1NDY3IDcuOTQzOTMgNC4wMDg4M0M3LjY5ODA5IDMuNzcyODUgNy4zMDAyMSAzLjc3Mjg1IDcuMDU1NTUgNC4wMDg4M1pNNS45NCAwLjA4MjAzMTJDMi43MDAxNyAwLjA4MjAzMTIgMC4wODA4NTk0IDIuNzAxMzQgMC4wODA4NTk0IDUuOTQxMThDMC4wODA4NTk0IDkuMTgxMDEgMi43MDAxNyAxMS44MDAzIDUuOTQgMTEuODAwM0M5LjE3OTgzIDExLjgwMDMgMTEuNzk5MSA5LjE4MTAxIDExLjc5OTEgNS45NDExOEMxMS43OTkxIDIuNzAxMzQgOS4xNzk4MyAwLjA4MjAzMTIgNS45NCAwLjA4MjAzMTJaTTUuOTQgMTAuNjM2N0MzLjM1NDI2IDEwLjYzNjcgMS4yNDQyMiA4LjUyNjY3IDEuMjQ0MjIgNS45NDExOEMxLjI0NDIyIDMuMzU1NTMgMy4zNTQyNiAxLjI0NTQ5IDUuOTQgMS4yNDU0OUM4LjUyNTU4IDEuMjQ1NDkgMTAuNjM1NiAzLjM1NTUzIDEwLjYzNTYgNS45NDExOEMxMC42MzU2IDguNTI2NjcgOC41MjU1OCAxMC42MzY3IDUuOTQgMTAuNjM2N1pcIlxuICAgICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gICAgPC9zdmc+XG5cbiAgICA8c3ZnICpuZ0lmPVwiaXNEaXNjYXJkSG92ZXJlZFwiIChjbGljayk9XCJkaXNjYXJkQ2hhbmdlcygpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNy4wNTU1NSA0Ljk3NDcxTDUuOTQgNi4wOTAyNkw0LjgyNDQ1IDQuOTc0NzFDNC41Nzg2MSA0LjcyODg3IDQuMTgxOTEgNC43Mjg4NyAzLjkzNjA3IDQuOTc0NzFDMy42OTAyMyA1LjIyMDU1IDMuNjkwMjMgNS42MTcyNSAzLjkzNjA3IDUuODYzMDlMNS4wNTE2MiA2Ljk3ODY0TDMuOTM2MDcgOC4wOTQxOUMzLjY5MDIzIDguMzQwMDMgMy42OTAyMyA4LjczNjczIDMuOTM2MDcgOC45ODI1N0M0LjE4MTkxIDkuMjI4NDEgNC41Nzg2MSA5LjIyODQxIDQuODI0NDUgOC45ODI1N0w1Ljk0IDcuODY3MDJMNy4wNTU1NSA4Ljk4MjU3QzcuMzAxMzkgOS4yMjg0MSA3LjY5ODA5IDkuMjI4NDEgNy45NDM5MyA4Ljk4MjU3QzguMTg5NzcgOC43MzY3MyA4LjE4OTc3IDguMzQwMDMgNy45NDM5MyA4LjA5NDE5TDYuODI4MzggNi45Nzg2NEw3Ljk0MzkzIDUuODYzMDlDOC4xODk3NyA1LjYxNzI1IDguMTg5NzcgNS4yMjA1NSA3Ljk0MzkzIDQuOTc0NzFDNy42OTgwOSA0LjczODczIDcuMzAwMjEgNC43Mzg3MyA3LjA1NTU1IDQuOTc0NzFaTTUuOTQgMS4wNjA2MkMyLjcwMDE3IDEuMDYwNjIgMC4wODA4NTk0IDMuNjc5OTMgMC4wODA4NTk0IDYuOTE5NzdDMC4wODA4NTk0IDEwLjE1OTYgMi43MDAxNyAxMi43Nzg5IDUuOTQgMTIuNzc4OUM5LjE3OTgzIDEyLjc3ODkgMTEuNzk5MSAxMC4xNTk2IDExLjc5OTEgNi45MTk3N0MxMS43OTkxIDMuNjc5OTMgOS4xNzk4MyAxLjA2MDYyIDUuOTQgMS4wNjA2MlpNNS45NCAxMS42MTUzQzMuMzU0MjYgMTEuNjE1MyAxLjI0NDIyIDkuNTA1MjUgMS4yNDQyMiA2LjkxOTc3QzEuMjQ0MjIgNC4zMzQxMiAzLjM1NDI2IDIuMjI0MDggNS45NCAyLjIyNDA4QzguNTI1NTggMi4yMjQwOCAxMC42MzU2IDQuMzM0MTIgMTAuNjM1NiA2LjkxOTc3QzEwLjYzNTYgOS41MDUyNSA4LjUyNTU4IDExLjYxNTMgNS45NCAxMS42MTUzWlwiXG4gICAgICAgIGZpbGw9XCIjRkYzNjM2XCIgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbC1sZy02XCIgc3R5bGU9XCJwYWRkaW5nOjA7bWFyZ2luLXRvcDogMTBweDtcIj5cbiAgPCEtLSBFcnJvciBtZXNzYWdlcyBzZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1jb25zdHJhaW50c1wiICpuZ0lmPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPiAwXCI+XG4gICAgPHNtYWxsIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIHZhbGlkYXRpb25FcnJvcnNcIj57eyBlcnJvciB9fTwvZGl2PlxuICAgIDwvc21hbGw+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbXNnXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4O1wiPnt7cXVlc3Rpb24/LmVycm9yTWVzc2FnZX19PC9kaXY+XG5cbjwhLS0gU0tTMTFKVU4yNSBGaWxlIFNlbGVjdGlvbiBQb3B1cCBNb2RhbCAtLT5cbjxkaXYgY2xhc3M9XCJmaWxlLXBvcHVwLW92ZXJsYXlcIiAqbmdJZj1cInNob3dQb3B1cFwiIChjbGljayk9XCJjbG9zZVBvcHVwKClcIj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcG9wdXAtbW9kYWxcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtcG9wdXAtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtdGl0bGVcIj57eyBxdWVzdGlvbj8ucXVlc3Rpb25UZXh0ID8gKChxdWVzdGlvbj8uaWQrJy5xdWVzdGlvblRleHQnKSB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6IHF1ZXN0aW9uPy5xdWVzdGlvblRleHQpOiAnJ319PC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlUG9wdXAoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIj7Dlzwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBTS1MxMUpVTjI1IENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtcG9wdXAtY29udGVudFwiPlxuICAgICAgPCEtLSBTS1MxMUpVTjI1IExlZnQgUGFuZWwgLSBGaWxlIExpc3QgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0LXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBjb3B5T2ZJbnB1dEFsbEZpbGVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiY3VycmVudEZpbGUgPT09IGZpbGVcIiAoY2xpY2spPVwidmlld0ZpbGUoZmlsZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pY29uXCI+XG4gICAgICAgICAgICA8aW1nIHN0eWxlPVwid2lkdGg6IDI4cHg7aGVpZ2h0OiAyOHB4O1wiIFtzcmNdPVwiZ2V0RG9jSWNvbihmaWxlPy5uYW1lKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBjbGFzcz1cImZpbGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZWxldGVGaWxlKGkpXCIgdGl0bGU9XCJ7eyAnREVMRVRFJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdEZWxldGUnIH19XCI+XG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPlxuICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIzLDYgNSw2IDIxLDZcIj48L3BvbHlsaW5lPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTksNnYxNGEyLDIgMCAwLDEgLTIsMkg3YTIsMiAwIDAsMSAtMiwtMlY2bTMsMFY0YTIsMiAwIDAsMSAyLC0yaDRhMiwyIDAgMCwxIDIsMnYyXCI+PC9wYXRoPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEVtcHR5IHN0YXRlIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIiFjb3B5T2ZJbnB1dEFsbEZpbGVzIHx8IGNvcHlPZklucHV0QWxsRmlsZXMubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWljb25cIj7wn5OEPC9kaXY+XG4gICAgICAgICAgPHA+e3sgJ05PX0ZJTEVTX1NFTEVDVEVEJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdObyBmaWxlcyBzZWxlY3RlZCcgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEFkZCBCdXR0b24gLS0+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtYnRuXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgdGl0bGU9XCJ7eyAnQUREX0ZJTEUnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ0FkZCBmaWxlJyB9fVwiPlxuICAgICAgICAgIHt7ICdBRERfTU9SRV9GSUxFUycgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnKyBBZGQgTW9yZSBGaWxlcycgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBTS1MxMUpVTjI1IFJpZ2h0IFBhbmVsIC0gUHJldmlldyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXctcGFuZWxcIj5cbiAgICAgICAgQGlmKGN1cnJlbnRGaWxlKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGVudFwiPlxuICAgICAgICAgIEBpZihpc0ltYWdlICYmIGZpbGVVcmwpe1xuICAgICAgICAgIDxpbWcgW3NyY109XCJmaWxlVXJsXCIgY2xhc3M9XCJwcmV2aWV3LWltYWdlXCIgYWx0PVwiRmlsZSBQcmV2aWV3XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2UgaWYoZmlsZVVybCl7XG4gICAgICAgICAgPGlmcmFtZSBbc3JjXT1cImZpbGVVcmxcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCI1MDBweFwiPjwvaWZyYW1lPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSBpZihpc0xvYWRpbmcpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctaW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgIDxwPnt7ICdMT0FESU5HX1BSRVZJRVcnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ0xvYWRpbmcgcHJldmlldy4uLicgfX08L3A+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIDxkaXY+e3sgJ1VOQUJMRV9UT19MT0FEX1BSRVZJRVcnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ1VuYWJsZSB0byBsb2FkIHRoZSBmaWxlIHByZXZpZXcuJyB9fTwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2V7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcmV2aWV3XCI+XG4gICAgICAgICAgPHA+e3sgJ1NFTEVDVF9GSUxFX1RPX1BSRVZJRVcnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ1NlbGVjdCBhIGZpbGUgdG8gcHJldmlldycgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=