@colijnit/sharedcomponents 1.0.29 → 1.0.31

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 (134) hide show
  1. package/README.md +24 -24
  2. package/bundles/colijnit-sharedcomponents.umd.js +789 -1887
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +40 -29
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +41 -30
  7. package/esm2015/lib/components/date-planning/date-planning.component.js +6 -4
  8. package/esm2015/lib/components/docsign/component/signature/signature.component.js +3 -3
  9. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +7 -7
  10. package/esm2015/lib/components/docsign/docsign.component.js +5 -5
  11. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +3 -3
  12. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +57 -0
  13. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +19 -0
  14. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +76 -0
  15. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -0
  16. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +59 -0
  17. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +23 -0
  18. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +50 -0
  19. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +26 -0
  20. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -0
  21. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +162 -251
  22. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +12 -13
  23. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -0
  24. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +101 -27
  25. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +3 -1
  26. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +4 -2
  27. package/esm2015/lib/components/stock/stock.component.js +8 -1
  28. package/esm2015/lib/enum/icon.enum.js +6 -1
  29. package/esm2015/lib/model/icon-svg.js +7 -2
  30. package/esm2015/lib/model/send-method.js +8 -0
  31. package/esm2015/lib/model/time-window.bo.js +4 -4
  32. package/esm2015/lib/service/icon-cache.service.js +1 -1
  33. package/esm2015/lib/service/shared-connector.service.js +91 -121
  34. package/esm2015/lib/service/shared.service.js +11 -1
  35. package/esm2015/lib/service/stock.service.js +19 -36
  36. package/fesm2015/colijnit-sharedcomponents.js +834 -1849
  37. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  38. package/lib/components/circular-gauge/style/_layout.scss +0 -2
  39. package/lib/components/circular-gauge/style/_theme.scss +0 -2
  40. package/lib/components/circular-gauge/style/material.scss +1 -0
  41. package/lib/components/date-planning/date-planning.component.d.ts +3 -2
  42. package/lib/components/date-planning/style/_layout.scss +2 -4
  43. package/lib/components/date-planning/style/_theme.scss +2 -4
  44. package/lib/components/docsign/component/signature/style/_layout.scss +2 -4
  45. package/lib/components/docsign/component/signature/style/_theme.scss +2 -4
  46. package/lib/components/docsign/component/signature/style/material.scss +1 -3
  47. package/lib/components/docsign/component/signatures/style/_layout.scss +3 -5
  48. package/lib/components/docsign/component/signatures/style/_theme.scss +2 -4
  49. package/lib/components/docsign/component/signatures/style/material.scss +1 -2
  50. package/lib/components/docsign/style/_layout.scss +3 -5
  51. package/lib/components/docsign/style/_theme.scss +2 -4
  52. package/lib/components/docsign/style/material.scss +1 -0
  53. package/lib/components/layout-switcher/style/_layout.scss +2 -4
  54. package/lib/components/layout-switcher/style/_theme.scss +2 -4
  55. package/lib/components/layout-switcher/style/material.scss +1 -0
  56. package/lib/components/linear-gauge/style/_layout.scss +0 -2
  57. package/lib/components/linear-gauge/style/_theme.scss +0 -2
  58. package/lib/components/linear-gauge/style/material.scss +1 -0
  59. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +13 -0
  60. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -0
  61. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +34 -0
  62. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -0
  63. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -0
  64. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -0
  65. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +18 -0
  66. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -0
  67. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +59 -0
  68. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +39 -0
  69. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -0
  70. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -0
  71. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -0
  72. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -0
  73. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +21 -0
  74. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -0
  75. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -0
  76. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -0
  77. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +10 -0
  78. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -0
  79. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +17 -0
  80. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -0
  81. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -0
  82. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -0
  83. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -0
  84. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +53 -61
  85. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -0
  86. package/lib/components/send-method-dialog/style/_layout.scss +44 -184
  87. package/lib/components/send-method-dialog/style/_material-definition.scss +30 -1
  88. package/lib/components/send-method-dialog/style/_theme.scss +31 -5
  89. package/lib/components/send-method-dialog/style/material.scss +5 -0
  90. package/lib/components/statusbar/style/_layout.scss +0 -2
  91. package/lib/components/statusbar/style/_theme.scss +0 -2
  92. package/lib/components/statusbar/style/material.scss +1 -0
  93. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +12 -1
  94. package/lib/components/stock/stock.component.d.ts +2 -0
  95. package/lib/components/stock/style/_layout.scss +0 -2
  96. package/lib/components/stock/style/_theme.scss +0 -3
  97. package/lib/components/stock/style/material.scss +1 -0
  98. package/lib/enum/icon.enum.d.ts +5 -0
  99. package/lib/model/send-method.d.ts +7 -0
  100. package/lib/model/time-window.bo.d.ts +1 -1
  101. package/lib/service/icon-cache.service.d.ts +1 -1
  102. package/lib/service/shared-connector.service.d.ts +21 -29
  103. package/lib/service/shared.service.d.ts +4 -0
  104. package/lib/service/stock.service.d.ts +1 -12
  105. package/lib/style/_variables.scss +5 -1
  106. package/package.json +6 -6
  107. package/esm2015/lib/components/send-method-dialog/enums/send-option.js +0 -8
  108. package/esm2015/lib/factory/business-object-factory.js +0 -120
  109. package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
  110. package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
  111. package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
  112. package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
  113. package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
  114. package/esm2015/lib/model/business-object.js +0 -81
  115. package/esm2015/lib/utils/array-utils.js +0 -202
  116. package/esm2015/lib/utils/check-precision-and-scale-result.js +0 -2
  117. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +0 -2
  118. package/esm2015/lib/utils/is-nill.function.js +0 -5
  119. package/esm2015/lib/utils/number-utils.js +0 -390
  120. package/esm2015/lib/utils/object-utils.js +0 -278
  121. package/lib/components/send-method-dialog/enums/send-option.d.ts +0 -6
  122. package/lib/factory/business-object-factory.d.ts +0 -23
  123. package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
  124. package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
  125. package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
  126. package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
  127. package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
  128. package/lib/model/business-object.d.ts +0 -7
  129. package/lib/utils/array-utils.d.ts +0 -63
  130. package/lib/utils/check-precision-and-scale-result.d.ts +0 -4
  131. package/lib/utils/check-within-stepped-bounds-result.d.ts +0 -8
  132. package/lib/utils/is-nill.function.d.ts +0 -1
  133. package/lib/utils/number-utils.d.ts +0 -125
  134. package/lib/utils/object-utils.d.ts +0 -40
@@ -1,9 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ButtonModule, CoDialogModule, CoDialogPromptModule, CoDialogWizardModule, IconModule, InputCheckboxModule, InputComboBoxModule, InputNumberPickerModule } from "@colijnit/corecomponents_v12";
4
- import { SendMethodDialogComponent } from "./send-method-dialog.component";
5
- import { StockService } from "../../service/stock.service";
6
- import { DocsignModule } from "../docsign/docsign.module";
3
+ import { ButtonModule, CoDialogModule, IconModule } from '@colijnit/corecomponents_v12';
4
+ import { SendMethodDialogComponent } from './send-method-dialog.component';
5
+ import { StockService } from '../../service/stock.service';
6
+ import { SendMethodService } from './service/send-method.service';
7
+ import { SendMethodEmailModule } from './components/send-method-email/send-method-email.module';
8
+ import { SendMethodPrinterModule } from './components/send-method-printer/send-method-printer.module';
7
9
  export class SendMethodDialogModule {
8
10
  }
9
11
  SendMethodDialogModule.decorators = [
@@ -13,22 +15,19 @@ SendMethodDialogModule.decorators = [
13
15
  ],
14
16
  imports: [
15
17
  CommonModule,
16
- CoDialogPromptModule,
17
- InputCheckboxModule,
18
- InputComboBoxModule,
18
+ CoDialogModule,
19
19
  IconModule,
20
- InputNumberPickerModule,
21
- CoDialogWizardModule,
22
- ButtonModule,
23
- DocsignModule,
24
- CoDialogModule
20
+ SendMethodEmailModule,
21
+ SendMethodPrinterModule,
22
+ ButtonModule
25
23
  ],
26
24
  exports: [
27
25
  SendMethodDialogComponent
28
26
  ],
29
27
  providers: [
28
+ SendMethodService,
30
29
  StockService
31
30
  ]
32
31
  },] }
33
32
  ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxZQUFZLEVBQUUsY0FBYyxFQUM1QixvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQ3RELG1CQUFtQixFQUNuQixtQkFBbUIsRUFBRSx1QkFBdUIsRUFDL0MsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBeUJ4RCxNQUFNLE9BQU8sc0JBQXNCOzs7WUF2QmxDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1oseUJBQXlCO2lCQUMxQjtnQkFDQyxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIsbUJBQW1CO29CQUNuQixVQUFVO29CQUNWLHVCQUF1QjtvQkFDdkIsb0JBQW9CO29CQUNwQixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsY0FBYztpQkFDakI7Z0JBQ0gsT0FBTyxFQUFFO29CQUNQLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgICBCdXR0b25Nb2R1bGUsIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgQ29EaWFsb2dQcm9tcHRNb2R1bGUsIENvRGlhbG9nV2l6YXJkTW9kdWxlLCBJY29uTW9kdWxlLFxyXG4gICAgSW5wdXRDaGVja2JveE1vZHVsZSxcclxuICAgIElucHV0Q29tYm9Cb3hNb2R1bGUsIElucHV0TnVtYmVyUGlja2VyTW9kdWxlXHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtTZW5kTWV0aG9kRGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi9zZW5kLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RG9jc2lnbk1vZHVsZX0gZnJvbSBcIi4uL2RvY3NpZ24vZG9jc2lnbi5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZW5kTWV0aG9kRGlhbG9nQ29tcG9uZW50XHJcbiAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQ29EaWFsb2dQcm9tcHRNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBJbnB1dENvbWJvQm94TW9kdWxlLFxyXG4gICAgICAgIEljb25Nb2R1bGUsXHJcbiAgICAgICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICAgICAgQ29EaWFsb2dXaXphcmRNb2R1bGUsXHJcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIERvY3NpZ25Nb2R1bGUsXHJcbiAgICAgICAgQ29EaWFsb2dNb2R1bGVcclxuICAgIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VuZE1ldGhvZERpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTdG9ja1NlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW5kTWV0aG9kRGlhbG9nTW9kdWxlIHsgfVxyXG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQXNCcEcsTUFBTSxPQUFPLHNCQUFzQjs7O1lBcEJsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtpQkFDMUI7Z0JBQ0MsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxVQUFVO29CQUNWLHFCQUFxQjtvQkFDckIsdUJBQXVCO29CQUN2QixZQUFZO2lCQUNmO2dCQUNILE9BQU8sRUFBRTtvQkFDUCx5QkFBeUI7aUJBQzFCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7b0JBQ2pCLFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIENvRGlhbG9nTW9kdWxlLCBJY29uTW9kdWxlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL3NlbmQtbWV0aG9kLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL3NlbmQtbWV0aG9kLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NlbmRNZXRob2RFbWFpbE1vZHVsZX0gZnJvbSAnLi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWVtYWlsL3NlbmQtbWV0aG9kLWVtYWlsLm1vZHVsZSc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFByaW50ZXJNb2R1bGV9IGZyb20gJy4vY29tcG9uZW50cy9zZW5kLW1ldGhvZC1wcmludGVyL3NlbmQtbWV0aG9kLXByaW50ZXIubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZW5kTWV0aG9kRGlhbG9nQ29tcG9uZW50XHJcbiAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQ29EaWFsb2dNb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBTZW5kTWV0aG9kRW1haWxNb2R1bGUsXHJcbiAgICAgICAgU2VuZE1ldGhvZFByaW50ZXJNb2R1bGUsXHJcbiAgICAgICAgQnV0dG9uTW9kdWxlXHJcbiAgICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNlbmRNZXRob2REaWFsb2dDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgU2VuZE1ldGhvZFNlcnZpY2UsXHJcbiAgICBTdG9ja1NlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW5kTWV0aG9kRGlhbG9nTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReportingDocumentPrintBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-print-base-request';
3
+ import { ReportingDocumentEmailBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-email-base-request';
4
+ import { ReportingDocumentPdfBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-pdf-base-request';
5
+ import { Subject } from 'rxjs';
6
+ export class SendMethodService {
7
+ constructor() {
8
+ this.reportingDocumentPrintBaseRequestChanged = new Subject();
9
+ this.reportingDocumentEmailBaseRequestChanged = new Subject();
10
+ this.reportingDocumentPdfBaseRequestChanged = new Subject();
11
+ this.selectedEmailAddresses = [];
12
+ this._reportingDocumentPrintBaseRequest = new ReportingDocumentPrintBaseRequest();
13
+ this._reportingDocumentEmailBaseRequest = new ReportingDocumentEmailBaseRequest();
14
+ this._reportingDocumentPdfBaseRequest = new ReportingDocumentPdfBaseRequest();
15
+ }
16
+ set reportingDocumentPrintBaseRequest(value) {
17
+ this._reportingDocumentPrintBaseRequest = value;
18
+ this.activePrinter = this._reportingDocumentPrintBaseRequest.printerName;
19
+ this.reportingDocumentPrintBaseRequestChanged.next(this._reportingDocumentPrintBaseRequest);
20
+ }
21
+ get reportingDocumentPrintBaseRequest() {
22
+ return this._reportingDocumentPrintBaseRequest;
23
+ }
24
+ set reportingDocumentEmailBaseRequest(value) {
25
+ this._reportingDocumentEmailBaseRequest = value;
26
+ this.selectedEmailAddresses = this._reportingDocumentEmailBaseRequest.toAddresses.split(';');
27
+ this.reportingDocumentEmailBaseRequestChanged.next(this._reportingDocumentEmailBaseRequest);
28
+ }
29
+ get reportingDocumentEmailBaseRequest() {
30
+ return this._reportingDocumentEmailBaseRequest;
31
+ }
32
+ set reportingDocumentPdfBaseRequest(value) {
33
+ this._reportingDocumentPdfBaseRequest = value;
34
+ this.reportingDocumentPdfBaseRequestChanged.next(this._reportingDocumentPdfBaseRequest);
35
+ }
36
+ get reportingDocumentPdfBaseRequest() {
37
+ return this._reportingDocumentPdfBaseRequest;
38
+ }
39
+ removeEmailAddress(address) {
40
+ if (this.selectedEmailAddresses.indexOf(address) > -1) {
41
+ this.selectedEmailAddresses.splice(this.selectedEmailAddresses.indexOf(address), 1);
42
+ this._updateEmailAddresses();
43
+ }
44
+ }
45
+ addEmailAddress(address) {
46
+ if (this.selectedEmailAddresses.indexOf(address) < 0) {
47
+ this.selectedEmailAddresses.push(address);
48
+ this._updateEmailAddresses();
49
+ }
50
+ }
51
+ _updateEmailAddresses() {
52
+ this._reportingDocumentEmailBaseRequest.toAddresses = this.selectedEmailAddresses.join(';');
53
+ this.reportingDocumentEmailBaseRequestChanged.next(this._reportingDocumentEmailBaseRequest);
54
+ }
55
+ }
56
+ SendMethodService.decorators = [
57
+ { type: Injectable }
58
+ ];
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZXJ2aWNlL3NlbmQtbWV0aG9kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUNsSCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzdCLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFUyw2Q0FBd0MsR0FBK0MsSUFBSSxPQUFPLEVBQXFDLENBQUM7UUFDeEksNkNBQXdDLEdBQStDLElBQUksT0FBTyxFQUFxQyxDQUFDO1FBQ3hJLDJDQUFzQyxHQUE2QyxJQUFJLE9BQU8sRUFBbUMsQ0FBQztRQTBCbEksMkJBQXNCLEdBQWEsRUFBRSxDQUFDO1FBR3JDLHVDQUFrQyxHQUFzQyxJQUFJLGlDQUFpQyxFQUFFLENBQUM7UUFDaEgsdUNBQWtDLEdBQXNDLElBQUksaUNBQWlDLEVBQUUsQ0FBQztRQUNoSCxxQ0FBZ0MsR0FBb0MsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO0lBcUJwSCxDQUFDO0lBbERDLElBQVcsaUNBQWlDLENBQUMsS0FBd0M7UUFDbkYsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxXQUFXLENBQUM7UUFDekUsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsSUFBVyxpQ0FBaUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsaUNBQWlDLENBQUMsS0FBd0M7UUFDbkYsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsSUFBVyxpQ0FBaUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsK0JBQStCLENBQUMsS0FBc0M7UUFDL0UsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFDRCxJQUFXLCtCQUErQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztJQUMvQyxDQUFDO0lBU00sa0JBQWtCLENBQUMsT0FBZTtRQUN2QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUFlO1FBQ3BDLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDOUYsQ0FBQzs7O1lBdERGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50ZXIuYm8nO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXByaW50LWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtZW1haWwtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcGRmLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZW5kTWV0aG9kU2VydmljZSB7XHJcbiAgcHVibGljIHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdENoYW5nZWQ6IFN1YmplY3Q8UmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0PiA9IG5ldyBTdWJqZWN0PFJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdD4oKTtcclxuICBwdWJsaWMgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0Q2hhbmdlZDogU3ViamVjdDxSZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3Q+ID0gbmV3IFN1YmplY3Q8UmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0PigpO1xyXG4gIHB1YmxpYyByZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0Q2hhbmdlZDogU3ViamVjdDxSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0PiA9IG5ldyBTdWJqZWN0PFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3Q+KCk7XHJcblxyXG4gIHB1YmxpYyBzZXQgcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0KHZhbHVlOiBSZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QpIHtcclxuICAgIHRoaXMuX3JlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5hY3RpdmVQcmludGVyID0gdGhpcy5fcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0LnByaW50ZXJOYW1lO1xyXG4gICAgdGhpcy5yZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3RDaGFuZ2VkLm5leHQodGhpcy5fcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0KTtcclxuICB9XHJcbiAgcHVibGljIGdldCByZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QoKTogUmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0IHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3Q7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KHZhbHVlOiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QpIHtcclxuICAgIHRoaXMuX3JlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVtYWlsQWRkcmVzc2VzID0gdGhpcy5fcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0LnRvQWRkcmVzc2VzLnNwbGl0KCc7Jyk7XHJcbiAgICB0aGlzLnJlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdENoYW5nZWQubmV4dCh0aGlzLl9yZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IHJlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdCgpOiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdDtcclxuICB9XHJcbiAgcHVibGljIHNldCByZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KHZhbHVlOiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KSB7XHJcbiAgICB0aGlzLl9yZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3RDaGFuZ2VkLm5leHQodGhpcy5fcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCgpOiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0IHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRW1haWxBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGFjdGl2ZVByaW50ZXI6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0KCk7XHJcbiAgcHJpdmF0ZSBfcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KCk7XHJcbiAgcHJpdmF0ZSBfcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFbWFpbEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEVtYWlsQWRkcmVzc2VzLmluZGV4T2YoYWRkcmVzcykgPiAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW1haWxBZGRyZXNzZXMuc3BsaWNlKHRoaXMuc2VsZWN0ZWRFbWFpbEFkZHJlc3Nlcy5pbmRleE9mKGFkZHJlc3MpLCAxKTtcclxuICAgICAgdGhpcy5fdXBkYXRlRW1haWxBZGRyZXNzZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRFbWFpbEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEVtYWlsQWRkcmVzc2VzLmluZGV4T2YoYWRkcmVzcykgPCAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbWFpbEFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xyXG4gICAgICB0aGlzLl91cGRhdGVFbWFpbEFkZHJlc3NlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRW1haWxBZGRyZXNzZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QudG9BZGRyZXNzZXMgPSB0aGlzLnNlbGVjdGVkRW1haWxBZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgdGhpcy5yZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3RDaGFuZ2VkLm5leHQodGhpcy5fcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -5,6 +5,7 @@ import { IconCacheService } from "../../../service/icon-cache.service";
5
5
  import { Icon } from "../../../enum/icon.enum";
6
6
  import { ArticleStock } from "@colijnit/articleapi/build/model/article-stock";
7
7
  import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
8
+ import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
8
9
  import { ArticleTransaction } from "@colijnit/articleapi/build/model/article-transaction";
9
10
  import { PrintPriceStickers } from "@colijnit/sharedapi/build/model/print-price-stickers.bo";
10
11
  export class StockInformationGridComponent {
@@ -14,13 +15,17 @@ export class StockInformationGridComponent {
14
15
  this.icons = Icon;
15
16
  this.transferIconClicked = new EventEmitter();
16
17
  this.historyClicked = new EventEmitter();
18
+ this.cancelButtonClicked = new EventEmitter();
19
+ this.okButtonClicked = new EventEmitter();
17
20
  this.show = false;
18
21
  this.hideOrShowLocationTab = false;
19
22
  this.showStockHistory = false;
20
23
  this.showSendMethodDialog = false;
21
24
  this.hideOrShowTabs = true;
22
25
  this.dataWareHouseFields = { text: "warehouseDescription", value: "warehouseNo" };
26
+ this.dataLocationFields = { text: "locationNo", value: "locationNo" };
23
27
  this.articleStockSearchInfo = new ArticleStock();
28
+ this.selectedArticleDetailsData = new ArticleDetailsBo();
24
29
  this.showChangeStockDetails = false;
25
30
  this.articleDetailsInformation = new ArticleStockManagement();
26
31
  this.tabs = [
@@ -91,14 +96,16 @@ export class StockInformationGridComponent {
91
96
  this._stockService.printLayoutParams.goodId = data.goodId;
92
97
  this._stockService.printLayoutParams.warehouse = data.warehouseNo;
93
98
  }
94
- this.showSendMethodDialog = !this.showSendMethodDialog;
99
+ this.showSendMethodDialog = true;
95
100
  }
96
101
  printStockStickers() {
97
- this._stockService.getPrintStockStickers(this._stockService.printLayoutParams);
102
+ // this._stockService.getPrintStockStickers(this._stockService.printLayoutParams);
98
103
  }
99
104
  onOkClick() {
105
+ this.okButtonClicked.emit();
100
106
  }
101
107
  onCancelClick() {
108
+ this.cancelButtonClicked.emit();
102
109
  }
103
110
  openDialogClick(data) {
104
111
  this.selectedArticleDetailsData = data;
@@ -143,7 +150,24 @@ export class StockInformationGridComponent {
143
150
  this.orderInformation = yield this._stockService.getArticleTransaction(orderData);
144
151
  });
145
152
  }
146
- addNewRow() {
153
+ onSelectLocation() {
154
+ this._stockService.getStockManagementLocations(this.selectedWarehouse).then((locations) => {
155
+ this.stockLocations = locations;
156
+ });
157
+ }
158
+ onOkClickSendLocations() {
159
+ console.log(this.article);
160
+ this.selectedArticleDetailsData.selected = true;
161
+ this.selectedArticleDetailsData.goodId = this.article.goodId;
162
+ this.selectedArticleDetailsData.entryDate = new Date();
163
+ this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse;
164
+ this._stockService.updateArticleDetails(this.selectedArticleDetailsData);
165
+ }
166
+ onCancelClickSendLocations() {
167
+ }
168
+ amountInStockChanged(data, row) {
169
+ console.log(data);
170
+ console.log(row);
147
171
  }
148
172
  }
149
173
  StockInformationGridComponent.decorators = [
@@ -168,10 +192,6 @@ StockInformationGridComponent.decorators = [
168
192
  <co-simple-grid *ngIf="activeTab === tabs[0] && hideOrShowTabs"
169
193
  [data]="articleStockInformation"
170
194
  class="simple-grid"
171
- [showAdd]="true"
172
- [showToolbar]="true"
173
- (addRow)="addNewRow()"
174
- [inlineEdit]="true"
175
195
  [rowsPerPage]="20"
176
196
  >
177
197
  <co-simple-grid-column [headerText]="'WAREHOUSE'" [field]="'warehouseNo'" [order]="10"></co-simple-grid-column>
@@ -193,7 +213,11 @@ StockInformationGridComponent.decorators = [
193
213
  >
194
214
  <co-simple-grid-column [headerText]="'IN_ORDER2'" [field]="'transactionNr'"></co-simple-grid-column>
195
215
  <co-simple-grid-column [headerText]="'CUSTOMER'" [field]="'user'"></co-simple-grid-column>
196
- <co-simple-grid-column [headerText]="'DATE'" [field]="'transactionDate'"></co-simple-grid-column>
216
+ <co-simple-grid-column [headerText]="'DATE'">
217
+ <ng-template #template let-row="row">
218
+ <span [textContent]="row.transactionDate | date:'dd-MM-yyyy'"></span>
219
+ </ng-template>
220
+ </co-simple-grid-column>
197
221
  <co-simple-grid-column [headerText]="'AMOUNT'" [field]="'amountInOrder'"></co-simple-grid-column>
198
222
  <co-simple-grid-column [headerText]="'WAREHOUSE'" [field]="'wareHouseNr'"></co-simple-grid-column>
199
223
  <co-simple-grid-column [headerText]="'DESCRIPTION'" [field]="'locationNr'"></co-simple-grid-column>
@@ -216,11 +240,19 @@ StockInformationGridComponent.decorators = [
216
240
  [rowsPerPage]="20"
217
241
  >
218
242
  <co-simple-grid-column [headerText]="'PURCHASE_ORDER_NR'" [field]="'transactionNr'"></co-simple-grid-column>
219
- <co-simple-grid-column [headerText]="'DATE'" [field]="'transactionDate'"></co-simple-grid-column>
243
+ <co-simple-grid-column [headerText]="'DATE'">
244
+ <ng-template #template let-row="row">
245
+ <span [textContent]="row.transactionDate | date:'dd-MM-yyyy'"></span>
246
+ </ng-template>
247
+ </co-simple-grid-column>
220
248
  <co-simple-grid-column [headerText]="'AMOUNT'" [field]="'amountInOrder'"></co-simple-grid-column>
221
249
  <co-simple-grid-column [headerText]="'RESERVED'" [field]="'reserved'"></co-simple-grid-column>
222
250
  <co-simple-grid-column [headerText]="'FREE_STOCK'" [field]="'freeStock'"></co-simple-grid-column>
223
- <co-simple-grid-column [headerText]="'DELIVERY_DATE1'" [field]="'deliveryDate'"></co-simple-grid-column>
251
+ <co-simple-grid-column [headerText]="'DELIVERY_DATE1'">
252
+ <ng-template #template let-row="row">
253
+ <span [textContent]="row.deliveryDate | date:'dd-MM-yyyy'"></span>
254
+ </ng-template>
255
+ </co-simple-grid-column>
224
256
  <co-simple-grid-column [headerText]="'RESERVE'" [field]="'reservation'"></co-simple-grid-column>
225
257
  </co-simple-grid>
226
258
  </div>
@@ -245,23 +277,50 @@ StockInformationGridComponent.decorators = [
245
277
  <co-simple-grid [data]="articleDetails"
246
278
  class="simple-grid"
247
279
  [rowsPerPage]="20"
280
+ [showAdd]="true"
281
+ [showToolbar]="true"
282
+ [showDelete]="true"
283
+ [inlineEdit]="true"
248
284
  >
249
285
  <div class="stock-location-group">
250
286
  <div class="stock-location-left-group">
251
287
  <co-button class="stock-lines-button" [textContent]="'BACK_TO_STOCK_LINES'" (click)="handleBackToStockClick()"></co-button>
252
288
  </div>
253
289
  </div>
254
- <co-simple-grid-column [headerText]="'WAREHOUSE'" [field]="'warehouseDescription'"></co-simple-grid-column>
255
- <co-simple-grid-column [headerText]="'BATCH'" [field]="'batchNo'"></co-simple-grid-column>
256
- <co-simple-grid-column [headerText]="'SERIAL_NO'" [field]="'serialNo'"></co-simple-grid-column>
290
+ <co-simple-grid-column [headerText]="'LOCATION'" [field]="'locationNo'">
291
+ <ng-template #editTemplate let-row="row">
292
+ <co-drop-down-list [(model)]="row.locationNo"
293
+ [collection]="stockLocations"
294
+ [fields]="dataLocationFields"
295
+ [placeholder]="'LOCATION'"
296
+ (click)="onSelectLocation()"
297
+ [required]="true"
298
+ ></co-drop-down-list>
299
+ </ng-template>
300
+ </co-simple-grid-column>
301
+ <co-simple-grid-column [headerText]="'BATCH'" [field]="'batchNo'">
302
+ <ng-template #editTemplate let-row="row">
303
+ <co-input-text [(model)]="row.batchNo"
304
+ [placeholder]="'BATCH'"
305
+ ></co-input-text>
306
+ </ng-template>
307
+ </co-simple-grid-column>
308
+ <co-simple-grid-column [headerText]="'SERIAL_NO'" [field]="'serialNo'">
309
+ <ng-template #editTemplate let-row="row">
310
+ <co-input-text [(model)]="row.serialNo"
311
+ [placeholder]="'SERIAL_NO'"
312
+ ></co-input-text>
313
+ </ng-template>
314
+ </co-simple-grid-column>
257
315
  <co-simple-grid-column [headerText]="'STOCK'" [field]="'amountInStock'">
258
- <ng-template #template let-row="row">
259
- <co-input-number-picker (keyup.enter)="openDialogClick(row)" [(model)]="row['amountInStock']">
260
-
261
- </co-input-number-picker>
316
+ <ng-template #editTemplate let-row="row">
317
+ <co-input-text [(model)]="row.amountInStock"
318
+ [label]="'STOCK'"
319
+ (modelChange)="amountInStockChanged($event, row)"
320
+ ></co-input-text>
262
321
  </ng-template>
263
322
  </co-simple-grid-column>
264
- <co-simple-grid-column [headerText]="'ALLOCATED'" [field]="'amountInStockFree'"></co-simple-grid-column>
323
+ <co-simple-grid-column [headerText]="'ALLOCATED'" [field]="'stockAssigned'" ></co-simple-grid-column>
265
324
  <co-simple-grid-column [headerText]="'AVAILABLE_STOCK'" [field]="'perceptibleStorage'"></co-simple-grid-column>
266
325
  <co-simple-grid-column [headerText]="'PHYSICAL_STOCK'" [field]="'amountInStockOriginal'"></co-simple-grid-column>
267
326
  <co-simple-grid-column [headerText]="'VALUTA'" [field]="'currency'"></co-simple-grid-column>
@@ -294,7 +353,11 @@ StockInformationGridComponent.decorators = [
294
353
  class="simple-grid"
295
354
  [rowsPerPage]="20"
296
355
  >
297
- <co-simple-grid-column [headerText]="'MUTATION_DATE'" [field]="'mutationDate'"></co-simple-grid-column>
356
+ <co-simple-grid-column [headerText]="'MUTATION_DATE'">
357
+ <ng-template #template let-row="row">
358
+ <span [textContent]="row.mutationDate | date:'dd-MM-yyyy'"></span>
359
+ </ng-template>
360
+ </co-simple-grid-column>
298
361
  <co-simple-grid-column [headerText]="'MUTATION_TIME'" [field]="'mutationTime'"></co-simple-grid-column>
299
362
  <co-simple-grid-column [headerText]="'AMOUNT'" [field]="'amount'"></co-simple-grid-column>
300
363
  <co-simple-grid-column [headerText]="'WAREHOUSE'" [field]="'wareHouseNr'"></co-simple-grid-column>
@@ -320,7 +383,7 @@ StockInformationGridComponent.decorators = [
320
383
  <div class="stock-button-left-group">
321
384
  <co-button *ngIf="activeTab === tabs[0]" [label]="'HISTORY'" (click)="handleHistoryClick()"></co-button>
322
385
  </div>
323
- <div class="stock-button-middle-group">
386
+ <div class="stock-button-middle-group" *ngIf="activeTab !== tabs[0]">
324
387
  <div class="button-left">
325
388
  <co-button [textContent]="'Ok'" (click)="onOkClick()"></co-button>
326
389
  </div>
@@ -328,12 +391,20 @@ StockInformationGridComponent.decorators = [
328
391
  <co-button [textContent]="'Annuleren'" (click)="onCancelClick()"></co-button>
329
392
  </div>
330
393
  </div>
394
+
395
+ <div class="stock-button-middle-group" *ngIf="hideOrShowLocationTab">
396
+ <div class="button-left">
397
+ <co-button [textContent]="'Ok'" (click)="onOkClickSendLocations()"></co-button>
398
+ </div>
399
+ <div class="button-right">
400
+ <co-button [textContent]="'Annuleren'" (click)="onCancelClickSendLocations()"></co-button>
401
+ </div>
402
+ </div>
331
403
  </div>
332
- <ione-send-method-dialog
333
- *ngIf="showSendMethodDialog"
334
- [showDialog]="showSendMethodDialog"
335
- (printButtonClicked)="printStockStickers()"
336
- ></ione-send-method-dialog>
404
+ <co-send-method-dialog *ngIf="showSendMethodDialog"
405
+ (closeClick)="showSendMethodDialog = false"
406
+ (printButtonClicked)="printStockStickers()"
407
+ ></co-send-method-dialog>
337
408
  `,
338
409
  encapsulation: ViewEncapsulation.None
339
410
  },] }
@@ -347,7 +418,10 @@ StockInformationGridComponent.propDecorators = {
347
418
  articleStockInformation: [{ type: Input }],
348
419
  stockLocationData: [{ type: Input }],
349
420
  stockHistoryInformation: [{ type: Input }],
421
+ article: [{ type: Input }],
350
422
  transferIconClicked: [{ type: Output }],
351
- historyClicked: [{ type: Output }]
423
+ historyClicked: [{ type: Output }],
424
+ cancelButtonClicked: [{ type: Output }],
425
+ okButtonClicked: [{ type: Output }]
352
426
  };
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staW5mb3JtYXRpb24tZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi1ncmlkL3N0b2NrLWluZm9ybWF0aW9uLWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUlqRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQWlNM0YsTUFBTSxPQUFPLDZCQUE2QjtJQTJEeEMsWUFDUyxnQkFBa0MsRUFDakMsYUFBMkI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQTVEckIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFlMUIsd0JBQW1CLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdkUsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLDBCQUFx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Qyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RixDQUFDO0tBQUE7SUFFWSxZQUFZOztZQUN2QixNQUFNLFNBQVMsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQy9ELFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7S0FBQTtJQUVNLFNBQVM7SUFFaEIsQ0FBQzs7O1lBbFhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUxUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUExTU8sZ0JBQWdCO1lBRGhCLFlBQVk7OztvQkFnTmpCLFNBQVMsU0FBQyw2QkFBNkI7c0NBR3ZDLEtBQUs7Z0NBR0wsS0FBSztzQ0FHTCxLQUFLO2tDQUdMLE1BQU07NkJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEV2ZW50RW1pdHRlciwgSW5wdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2tcIjtcclxuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XHJcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1tYW5hZ2VtZW50LXdhcmVob3VzZXMuYm9cIjtcclxuaW1wb3J0IHtDb0Ryb3BEb3duTGlzdEZpZWxkc30gZnJvbSBcIi4uL3N0b2NrLXRyYW5zZmVyL2NvLWRyb3AtZG93bi1saXN0LWZpZWxkcy5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtBcnRpY2xlVHJhbnNhY3Rpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9uIGFzIEFydGljbGVUcmFuc2FjdGlvbkJvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbi5ib1wiO1xyXG5pbXBvcnQge1ByaW50UHJpY2VTdGlja2Vyc30gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXN0b2NrLWluZm9ybWF0aW9uLWdyaWRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRhYi1saW5rIHNob3dcIiAqbmdJZj1cImhpZGVPclNob3dUYWJzXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGFiLWxpbmstYnV0dG9uc1wiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVUYWJDbGljayh0YWIpXCJcclxuICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInRhYlwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwidGFiID09PSBhY3RpdmVUYWJcIlxyXG4gICAgICA+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWxpbmVcIj5cclxuICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwiYWN0aXZlVGFiVGV4dFwiPjwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCI+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1swXSAmJiBoaWRlT3JTaG93VGFic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJhcnRpY2xlU3RvY2tJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93QWRkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dUb29sYmFyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGFkZFJvdyk9XCJhZGROZXdSb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVob3VzZU5vJ1wiIFtvcmRlcl09XCIxMFwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVTQ1JJUFRJT04nXCIgW2ZpZWxkXT1cIid3YXJlaG91c2VOYW1lJ1wiIFtvcmRlcl09XCIxMVwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0snXCIgW2ZpZWxkXT1cIid0ZWNobmljYWxTdG9jaydcIiBbb3JkZXJdPVwiMTJcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FWQUlMQUJMRV9TVE9DSydcIiBbZmllbGRdPVwiJ2F2YWlsYWJsZVN0b2NrJ1wiIFtvcmRlcl09XCIxM1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInRUNPTk9NSUNBTF9TVE9DSydcIiBbZmllbGRdPVwiJ2Vjb25vbWljYWxTdG9jaydcIiBbb3JkZXJdPVwiMTRcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0xPQ0FUSU9OJ1wiIFtmaWVsZF09XCInbG9jYXRpb25ObydcIiBbb3JkZXJdPVwiMTVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidCZWtpamtlbidcIiAoY2xpY2spPVwib25Mb2NhdGlvbkNsaWNrKHJvdylcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuXHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1sxXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJpbk9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcm93c1BlclBhZ2VdPVwiMjBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInSU5fT1JERVIyJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25OcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidDVVNUT01FUidcIiBbZmllbGRdPVwiJ3VzZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREFURSdcIiBbZmllbGRdPVwiJ3RyYW5zYWN0aW9uRGF0ZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBTU9VTlQnXCIgW2ZpZWxkXT1cIidhbW91bnRJbk9yZGVyJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVIb3VzZU5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0RFU0NSSVBUSU9OJ1wiIFtmaWVsZF09XCInbG9jYXRpb25OcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSydcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2snXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVFJBTlNGRVInXCIgW2ZpZWxkXT1cIid0cmFuc2ZlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRGVsaXZlcnlUcnVjaylcIiAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKCRldmVudClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUSUNLRVInXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIiAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgIDwvY28tc2ltcGxlLWdyaWQ+XHJcblxyXG4gICAgICA8Y28tc2ltcGxlLWdyaWQgKm5nSWY9XCJhY3RpdmVUYWIgPT09IHRhYnNbMl1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwib3JkZXJJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9PUkRFUl9OUidcIiBbZmllbGRdPVwiJ3RyYW5zYWN0aW9uTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREFURSdcIiBbZmllbGRdPVwiJ3RyYW5zYWN0aW9uRGF0ZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBTU9VTlQnXCIgW2ZpZWxkXT1cIidhbW91bnRJbk9yZGVyJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1JFU0VSVkVEJ1wiIFtmaWVsZF09XCIncmVzZXJ2ZWQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInRlJFRV9TVE9DSydcIiBbZmllbGRdPVwiJ2ZyZWVTdG9jaydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidERUxJVkVSWV9EQVRFMSdcIiBbZmllbGRdPVwiJ2RlbGl2ZXJ5RGF0ZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidSRVNFUlZFJ1wiIFtmaWVsZF09XCIncmVzZXJ2YXRpb24nXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgIDwvY28tc2ltcGxlLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiICpuZ0lmPVwiaGlkZU9yU2hvd0xvY2F0aW9uVGFiXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1sb2NhdGlvbi1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1sb2NhdGlvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1iYWNrXCIgW3RleHRDb250ZW50XT1cIidCQUNLX1RPX1NUT0NLX0xJTkVTJ1wiIChjbGljayk9XCJoYW5kbGVCYWNrVG9TdG9ja0NsaWNrKClcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLXJpZ2h0LWdyb3VwXCI+XHJcbiAgICAgICAgICA8Y28tZHJvcC1kb3duLWxpc3QgIFsobW9kZWwpXT1cInNlbGVjdGVkV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZGF0YVdhcmVIb3VzZUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImRhdGFXYXJlSG91c2VGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25TZWxlY3RXYXJlaG91c2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgID48L2NvLWRyb3AtZG93bi1saXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjwhLS0gICAgICBUT0RPIG1vdmUgdG8gb3duIGNvbXBvbmVudCBzdG9jay1sb2NhdGlvbi0tPlxyXG4gICAgICA8Y28tc2ltcGxlLWdyaWQgW2RhdGFdPVwiYXJ0aWNsZURldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcm93c1BlclBhZ2VdPVwiMjBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWdyb3VwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic3RvY2stbGluZXMtYnV0dG9uXCIgW3RleHRDb250ZW50XT1cIidCQUNLX1RPX1NUT0NLX0xJTkVTJ1wiIChjbGljayk9XCJoYW5kbGVCYWNrVG9TdG9ja0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVob3VzZURlc2NyaXB0aW9uJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0JBVENIJ1wiIFtmaWVsZF09XCInYmF0Y2hObydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTRVJJQUxfTk8nXCIgW2ZpZWxkXT1cIidzZXJpYWxObydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSydcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2snXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXIgKGtleXVwLmVudGVyKT1cIm9wZW5EaWFsb2dDbGljayhyb3cpXCIgWyhtb2RlbCldPVwicm93WydhbW91bnRJblN0b2NrJ11cIj5cclxuXHJcbiAgICAgICAgICAgIDwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQUxMT0NBVEVEJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja0ZyZWUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJ1wiIFtmaWVsZF09XCIncGVyY2VwdGlibGVTdG9yYWdlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BIWVNJQ0FMX1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja09yaWdpbmFsJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1ZBTFVUQSdcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX1BSSUNFJ1wiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVVBQTElFUl9OVU1CRVInXCIgW2ZpZWxkXT1cIidzdXBwbGllck5vJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1RSQU5TRkVSJ1wiIFtmaWVsZF09XCIndHJhbnNmZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkRlbGl2ZXJ5VHJ1Y2spXCIgKGNsaWNrKT1cImhhbmRsZVN0b2NrVHJhbnNmZXJDbGljayhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJ1wiIFtmaWVsZF09XCInc3RpY2tlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUHJpbnQpXCIgKGNsaWNrKT1cIm9wZW5TZW5kTWV0aG9kRGlhbG9nKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNvLXN0b2NrLWNoYW5nZS1hbW91bnQgKm5nSWY9XCJzaG93Q2hhbmdlU3RvY2tEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZVN0b2NrQ2hhbmdlQW1vdW50KT1cInNob3dDaGFuZ2VTdG9ja0RldGFpbHMgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGFdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGFcIlxyXG4gICAgPlxyXG4gICAgPC9jby1zdG9jay1jaGFuZ2UtYW1vdW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCIgKm5nSWY9XCJzaG93U3RvY2tIaXN0b3J5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2stYnV0dG9uLWJhY2tcIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImJhY2tUb1N0b2NrSW5mb3JtYXRpb24oKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJzdG9ja0hpc3RvcnlJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidNVVRBVElPTl9EQVRFJ1wiIFtmaWVsZF09XCInbXV0YXRpb25EYXRlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ01VVEFUSU9OX1RJTUUnXCIgW2ZpZWxkXT1cIidtdXRhdGlvblRpbWUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQU1PVU5UJ1wiIFtmaWVsZF09XCInYW1vdW50J1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVIb3VzZU5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0xPQ0FUSU9OJ1wiIFtmaWVsZF09XCInbG9jYXRpb25OcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidUUkFOU0FDVElPTl9UWVBFJ1wiIFtmaWVsZF09XCIndHJhbnNUeXBlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0RPQ1VNRU5UX05VTUJFUidcIiBbZmllbGRdPVwiJ2RvY05yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0xJTkUnXCIgW2ZpZWxkXT1cIidwb3NMaW5lTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0tfU1RBVEUnXCIgW2ZpZWxkXT1cIidzdG9ja1N0YXRlSWQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0tfUkVNQVJLJ1wiIFtmaWVsZF09XCInc3RvY2tTdGF0ZVJlbWFya0lkJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1ZBTFVUQSdcIiBbZmllbGRdPVwiJ2N1cnJlbmN5Q29kZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidSRUxBVElPTl9JRCdcIiBbZmllbGRdPVwiJ3JlbGF0aW9uSWQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVVNFUidcIiBbZmllbGRdPVwiJ3VzZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTVVUQVRJT05fVFlQRSdcIiBbZmllbGRdPVwiJ211dGF0aW9uVHlwZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJ1wiIFtmaWVsZF09XCInc3RpY2tlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUHJpbnQpXCIgKGNsaWNrKT1cIm9wZW5TZW5kTWV0aG9kRGlhbG9nKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWJ1dHRvbi10b29sYmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJhY3RpdmVUYWIgPT09IHRhYnNbMF1cIiBbbGFiZWxdPVwiJ0hJU1RPUlknXCIgKGNsaWNrKT1cImhhbmRsZUhpc3RvcnlDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLW1pZGRsZS1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ09rJ1wiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHRcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidBbm51bGVyZW4nXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbmUtc2VuZC1tZXRob2QtZGlhbG9nXHJcbiAgICAgICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICBbc2hvd0RpYWxvZ109XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgIChwcmludEJ1dHRvbkNsaWNrZWQpPVwicHJpbnRTdG9ja1N0aWNrZXJzKClcIlxyXG4gICAgPjwvaW9uZS1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RvY2tJbmZvcm1hdGlvbkdyaWRDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKFN0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50KVxyXG4gIHB1YmxpYyBzdG9jazogU3RvY2tJbmZvcm1hdGlvbkdyaWRDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uRGF0YTogQXJ0aWNsZVN0b2NrQm9bXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tIaXN0b3J5SW5mb3JtYXRpb246IFN0b2NrSGlzdG9yeUJvW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgaGlzdG9yeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlT3JTaG93TG9jYXRpb25UYWI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1N0b2NrSGlzdG9yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2VuZE1ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaW5PcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdO1xyXG4gIHB1YmxpYyBvcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdXHJcbiAgcHVibGljIGhpZGVPclNob3dUYWJzOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgZGF0YVdhcmVIb3VzZUNvZGU6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXTtcclxuICBwdWJsaWMgZGF0YVdhcmVIb3VzZUZpZWxkczogQ29Ecm9wRG93bkxpc3RGaWVsZHMgPSB7IHRleHQ6IFwid2FyZWhvdXNlRGVzY3JpcHRpb25cIiwgdmFsdWU6IFwid2FyZWhvdXNlTm9cIiB9O1xyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogYW55O1xyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tTZWFyY2hJbmZvOiBBcnRpY2xlU3RvY2sgPSBuZXcgQXJ0aWNsZVN0b2NrKCk7XHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzOiBBcnRpY2xlRGV0YWlsc0JvW107XHJcbiAgcHVibGljIHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhOiBBcnRpY2xlRGV0YWlsc0JvO1xyXG4gIHB1YmxpYyBzaG93Q2hhbmdlU3RvY2tEZXRhaWxzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcblxyXG4gIHB1YmxpYyB0YWJzOiBzdHJpbmdbXSA9IFtcclxuICAgIFwiU1RPQ0tcIixcclxuICAgIFwiSU5fT1JERVIyXCIsXHJcbiAgICBcIk9SREVSUzFcIlxyXG4gIF07XHJcbiAgcHVibGljIGFjdGl2ZVRhYjogc3RyaW5nID0gdGhpcy50YWJzWzBdO1xyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYlRleHQoKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVUYWIpIHtcclxuICAgICAgY2FzZSB0aGlzLnRhYnNbMF06XHJcbiAgICAgICAgcmV0dXJuIFwiVm9vcnJhYWRyZWdlbHNcIjtcclxuICAgICAgY2FzZSB0aGlzLnRhYnNbMV06XHJcbiAgICAgICAgcmV0dXJuIFwiR2V2b25kZW4gaW4gb3JkZXIocylcIjtcclxuICAgICAgY2FzZSB0aGlzLnRhYnNbMl06XHJcbiAgICAgICAgcmV0dXJuIFwiR2V2b25kZW4gaW4gYmVzdGVsbGluZ2VuXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwiVm9vcnJhYWRsb2NhdGllIHJlZ2Vsc1wiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRhYkNsaWNrKHRhYkRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiRGF0YTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gXCJJTl9PUkRFUjJcIikge1xyXG4gICAgICB0aGlzLmdldEluT3JkZXJEYXRhKCk7XHJcbiAgICB9IGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gXCJPUkRFUlMxXCIpIHtcclxuICAgICAgdGhpcy5nZXRPcmRlckRhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxvY2F0aW9uQ2xpY2soZGF0YTogQXJ0aWNsZVN0b2NrQm8pOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZVN0b2NrU2VhcmNoSW5mby5nb29kSWQgPSBkYXRhLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5hcnRpY2xlU3RvY2tTZWFyY2hJbmZvLndhcmVIb3VzZU5vID0gZGF0YS53YXJlaG91c2VOby50b1N0cmluZygpO1xyXG4gICAgdGhpcy5hcnRpY2xlU3RvY2tTZWFyY2hJbmZvLnZpZXdLaW5kID0gXCJEXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gZGF0YS53YXJlaG91c2VObztcclxuICAgIGlmICghdGhpcy5kYXRhV2FyZUhvdXNlQ29kZSkge1xyXG4gICAgICB0aGlzLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoZGF0YSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFydGljbGVEZXRhaWxzKGRhdGEpO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93VGFicyA9IGZhbHNlO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93TG9jYXRpb25UYWIgPSB0cnVlO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmxvY2tBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUhpc3RvcnlDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlzdG9yeUNsaWNrZWQuZW1pdCgpXHJcbiAgICB0aGlzLmhpZGVPclNob3dMb2NhdGlvblRhYiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q2hhbmdlU3RvY2tEZXRhaWxzID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdG9ja0hpc3RvcnkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGJhY2tUb1N0b2NrSW5mb3JtYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTdG9ja0hpc3RvcnkgPSBmYWxzZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd1RhYnMgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrVHJhbnNmZXJDbGljayhldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2Zlckljb25DbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUJhY2tUb1N0b2NrQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHRoaXMudGFic1swXTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd1RhYnMgPSB0cnVlO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93TG9jYXRpb25UYWIgPSBmYWxzZTtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblNlbmRNZXRob2REaWFsb2coZGF0YSk6IHZvaWQge1xyXG4gICAgaWYgKCEodGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50TGF5b3V0UGFyYW1zIGluc3RhbmNlb2YgUHJpbnRQcmljZVN0aWNrZXJzKSkge1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UucHJpbnRMYXlvdXRQYXJhbXMuZ29vZElkID0gZGF0YS5nb29kSWQ7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5wcmludExheW91dFBhcmFtcy53YXJlaG91c2UgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9ISB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW50U3RvY2tTdGlja2VycygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRQcmludFN0b2NrU3RpY2tlcnModGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50TGF5b3V0UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5EaWFsb2dDbGljayhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhID0gZGF0YTtcclxuICAgIHRoaXMuc2hvd0NoYW5nZVN0b2NrRGV0YWlscyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXJ0aWNsZURldGFpbHMoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zdCBpbmZvID0gbmV3IEFydGljbGVTdG9ja01hbmFnZW1lbnQoKTtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSBkYXRhLmdvb2RJZDtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5saW5lSWQgPSBkYXRhLmxpbmVJZDtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVEZXRhaWxzKHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbikudGhlbigoZGV0YWlscykgPT4ge1xyXG4gICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoZGF0YTogQXJ0aWNsZVN0b2NrQm8pOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCkudGhlbigod2FyZWhvdXNlcykgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFXYXJlSG91c2VDb2RlID0gd2FyZWhvdXNlcztcclxuICAgICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0V2FyZWhvdXNlKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFdhcmVob3VzZSB8fCB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0SW5PcmRlckRhdGEoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBpbk9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgaW5PcmRlckRhdGEudHlwZSA9IFwiVlwiO1xyXG4gICAgaW5PcmRlckRhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlU3RvY2tJbmZvcm1hdGlvblswXS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuaW5PcmRlckluZm9ybWF0aW9uID0gYXdhaXQgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVUcmFuc2FjdGlvbihpbk9yZGVyRGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJEYXRhKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3Qgb3JkZXJEYXRhOiBBcnRpY2xlVHJhbnNhY3Rpb24gPSBuZXcgQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICBvcmRlckRhdGEudHlwZSA9IFwiVlwiO1xyXG4gICAgb3JkZXJEYXRhLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb25bMF0uZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLm9yZGVySW5mb3JtYXRpb24gPSBhd2FpdCB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZVRyYW5zYWN0aW9uKG9yZGVyRGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTmV3Um93KCk6IHZvaWQge1xyXG5cclxuICB9XHJcbn1cclxuIl19
427
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staW5mb3JtYXRpb24tZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi1ncmlkL3N0b2NrLWluZm9ybWF0aW9uLWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUdyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQWtQM0YsTUFBTSxPQUFPLDZCQUE2QjtJQXVFeEMsWUFDUyxnQkFBa0MsRUFDakMsYUFBMkI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQXhFckIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFrQjFCLHdCQUFtQixHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZFLG1CQUFjLEdBQXNCLElBQUksWUFBWSxF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NkJBR04sTUFBTTtrQ0FHTixNQUFNOzhCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBFdmVudEVtaXR0ZXIsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2Uvc3RvY2suc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrXCI7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Qm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2stbWFuYWdlbWVudFwiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7Q29Ecm9wRG93bkxpc3RGaWVsZHN9IGZyb20gXCIuLi9zdG9jay10cmFuc2Zlci9jby1kcm9wLWRvd24tbGlzdC1maWVsZHMuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvblwiO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbiBhcyBBcnRpY2xlVHJhbnNhY3Rpb25Cb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtdHJhbnNhY3Rpb24uYm9cIjtcclxuaW1wb3J0IHtQcmludFByaWNlU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3ByaW50LXByaWNlLXN0aWNrZXJzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2staW5mb3JtYXRpb24tZ3JpZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWxpbmsgc2hvd1wiICpuZ0lmPVwiaGlkZU9yU2hvd1RhYnNcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItbGluay1idXR0b25zXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRhYkNsaWNrKHRhYilcIlxyXG4gICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwidGFiXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJ0YWIgPT09IGFjdGl2ZVRhYlwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stbGluZVwiPlxyXG4gICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJhY3RpdmVUYWJUZXh0XCI+PC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkICpuZ0lmPVwiYWN0aXZlVGFiID09PSB0YWJzWzBdICYmIGhpZGVPclNob3dUYWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFydGljbGVTdG9ja0luZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZWhvdXNlTm8nXCIgW29yZGVyXT1cIjEwXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidERVNDUklQVElPTidcIiBbZmllbGRdPVwiJ3dhcmVob3VzZU5hbWUnXCIgW29yZGVyXT1cIjExXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSydcIiBbZmllbGRdPVwiJ3RlY2huaWNhbFN0b2NrJ1wiIFtvcmRlcl09XCIxMlwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJ1wiIFtmaWVsZF09XCInYXZhaWxhYmxlU3RvY2snXCIgW29yZGVyXT1cIjEzXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidFQ09OT01JQ0FMX1NUT0NLJ1wiIFtmaWVsZF09XCInZWNvbm9taWNhbFN0b2NrJ1wiIFtvcmRlcl09XCIxNFwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiIFtvcmRlcl09XCIxNVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0Jla2lqa2VuJ1wiIChjbGljayk9XCJvbkxvY2F0aW9uQ2xpY2socm93KVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkICpuZ0lmPVwiYWN0aXZlVGFiID09PSB0YWJzWzFdXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImluT3JkZXJJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidJTl9PUkRFUjInXCIgW2ZpZWxkXT1cIid0cmFuc2FjdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0NVU1RPTUVSJ1wiIFtmaWVsZF09XCIndXNlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidEQVRFJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJyb3cudHJhbnNhY3Rpb25EYXRlIHwgZGF0ZTonZGQtTU0teXl5eSdcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudEluT3JkZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZUhvdXNlTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVTQ1JJUFRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9jaydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidUUkFOU0ZFUidcIiBbZmllbGRdPVwiJ3RyYW5zZmVyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soJGV2ZW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUidcIiBbZmllbGRdPVwiJ3N0aWNrZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuXHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1syXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJvcmRlckluZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX09SREVSX05SJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25OcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidEQVRFJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJyb3cudHJhbnNhY3Rpb25EYXRlIHwgZGF0ZTonZGQtTU0teXl5eSdcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudEluT3JkZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUkVTRVJWRUQnXCIgW2ZpZWxkXT1cIidyZXNlcnZlZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidGUkVFX1NUT0NLJ1wiIFtmaWVsZF09XCInZnJlZVN0b2NrJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0RFTElWRVJZX0RBVEUxJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJyb3cuZGVsaXZlcnlEYXRlIHwgZGF0ZTonZGQtTU0teXl5eSdcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1JFU0VSVkUnXCIgW2ZpZWxkXT1cIidyZXNlcnZhdGlvbidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCIgKm5nSWY9XCJoaWRlT3JTaG93TG9jYXRpb25UYWJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWxlZnQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2stYnV0dG9uLWJhY2tcIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImhhbmRsZUJhY2tUb1N0b2NrQ2xpY2soKVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tcmlnaHQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxjby1kcm9wLWRvd24tbGlzdCAgWyhtb2RlbCldPVwic2VsZWN0ZWRXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkYXRhV2FyZUhvdXNlQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZGF0YVdhcmVIb3VzZUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInV0FSRUhPVVNFJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblNlbGVjdFdhcmVob3VzZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgPjwvY28tZHJvcC1kb3duLWxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuPCEtLSAgICAgIFRPRE8gbW92ZSB0byBvd24gY29tcG9uZW50IHN0b2NrLWxvY2F0aW9uLS0+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJhcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0FkZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbGJhcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93RGVsZXRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tZ3JvdXBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1sb2NhdGlvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzdG9jay1saW5lcy1idXR0b25cIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImhhbmRsZUJhY2tUb1N0b2NrQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28tZHJvcC1kb3duLWxpc3QgWyhtb2RlbCldPVwicm93LmxvY2F0aW9uTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJkYXRhTG9jYXRpb25GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidMT0NBVElPTidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TG9jYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2NvLWRyb3AtZG93bi1saXN0PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidCQVRDSCdcIiBbZmllbGRdPVwiJ2JhdGNoTm8nXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInJvdy5iYXRjaE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSCdcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTRVJJQUxfTk8nXCIgW2ZpZWxkXT1cIidzZXJpYWxObydcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwicm93LnNlcmlhbE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTk8nXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0snXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCAgWyhtb2RlbCldPVwicm93LmFtb3VudEluU3RvY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTVE9DSydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FMTE9DQVRFRCdcIiBbZmllbGRdPVwiJ3N0b2NrQXNzaWduZWQnXCIgPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FWQUlMQUJMRV9TVE9DSydcIiBbZmllbGRdPVwiJ3BlcmNlcHRpYmxlU3RvcmFnZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQSFlTSUNBTF9TVE9DSydcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2tPcmlnaW5hbCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnXCIgW2ZpZWxkXT1cIidjdXJyZW5jeSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9QUklDRSdcIiBbZmllbGRdPVwiJ3B1cmNoYXNlUHJpY2UnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1VQUExJRVJfTlVNQkVSJ1wiIFtmaWVsZF09XCInc3VwcGxpZXJObydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidUUkFOU0ZFUidcIiBbZmllbGRdPVwiJ3RyYW5zZmVyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2socm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUidcIiBbZmllbGRdPVwiJ3N0aWNrZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxjby1zdG9jay1jaGFuZ2UtYW1vdW50ICpuZ0lmPVwic2hvd0NoYW5nZVN0b2NrRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VTdG9ja0NoYW5nZUFtb3VudCk9XCJzaG93Q2hhbmdlU3RvY2tEZXRhaWxzID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXCJcclxuICAgID5cclxuICAgIDwvY28tc3RvY2stY2hhbmdlLWFtb3VudD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiICpuZ0lmPVwic2hvd1N0b2NrSGlzdG9yeVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLWxlZnQtZ3JvdXBcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1iYWNrXCIgW3RleHRDb250ZW50XT1cIidCQUNLX1RPX1NUT0NLX0xJTkVTJ1wiIChjbGljayk9XCJiYWNrVG9TdG9ja0luZm9ybWF0aW9uKClcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Y28tc2ltcGxlLWdyaWQgW2RhdGFdPVwic3RvY2tIaXN0b3J5SW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcm93c1BlclBhZ2VdPVwiMjBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTVVUQVRJT05fREFURSdcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93Lm11dGF0aW9uRGF0ZSB8IGRhdGU6J2RkLU1NLXl5eXknXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidNVVRBVElPTl9USU1FJ1wiIFtmaWVsZF09XCInbXV0YXRpb25UaW1lJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidXQVJFSE9VU0UnXCIgW2ZpZWxkXT1cIid3YXJlSG91c2VOcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidMT0NBVElPTidcIiBbZmllbGRdPVwiJ2xvY2F0aW9uTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVFJBTlNBQ1RJT05fVFlQRSdcIiBbZmllbGRdPVwiJ3RyYW5zVHlwZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidET0NVTUVOVF9OVU1CRVInXCIgW2ZpZWxkXT1cIidkb2NOcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidMSU5FJ1wiIFtmaWVsZF09XCIncG9zTGluZU5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLX1NUQVRFJ1wiIFtmaWVsZF09XCInc3RvY2tTdGF0ZUlkJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLX1JFTUFSSydcIiBbZmllbGRdPVwiJ3N0b2NrU3RhdGVSZW1hcmtJZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnXCIgW2ZpZWxkXT1cIidjdXJyZW5jeUNvZGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUkVMQVRJT05fSUQnXCIgW2ZpZWxkXT1cIidyZWxhdGlvbklkJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1VTRVInXCIgW2ZpZWxkXT1cIid1c2VyJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ01VVEFUSU9OX1RZUEUnXCIgW2ZpZWxkXT1cIidtdXRhdGlvblR5cGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUidcIiBbZmllbGRdPVwiJ3N0aWNrZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tdG9vbGJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLWxlZnQtZ3JvdXBcIj5cclxuICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiYWN0aXZlVGFiID09PSB0YWJzWzBdXCIgW2xhYmVsXT1cIidISVNUT1JZJ1wiIChjbGljayk9XCJoYW5kbGVIaXN0b3J5Q2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1taWRkbGUtZ3JvdXBcIiAqbmdJZj1cImFjdGl2ZVRhYiAhPT0gdGFic1swXVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ09rJ1wiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHRcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidBbm51bGVyZW4nXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tbWlkZGxlLWdyb3VwXCIgKm5nSWY9XCJoaWRlT3JTaG93TG9jYXRpb25UYWJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidPaydcIiAoY2xpY2spPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ0FubnVsZXJlbidcIiAoY2xpY2spPVwib25DYW5jZWxDbGlja1NlbmRMb2NhdGlvbnMoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGNvLXNlbmQtbWV0aG9kLWRpYWxvZyAqbmdJZj1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmludEJ1dHRvbkNsaWNrZWQpPVwicHJpbnRTdG9ja1N0aWNrZXJzKClcIlxyXG4gICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFN0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudClcclxuICBwdWJsaWMgc3RvY2s6IFN0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrQm9bXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tMb2NhdGlvbkRhdGE6IEFydGljbGVTdG9ja0JvW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBTdG9ja0hpc3RvcnlCb1tdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgaGlzdG9yeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgY2FuY2VsQnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBva0J1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlT3JTaG93TG9jYXRpb25UYWI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1N0b2NrSGlzdG9yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2VuZE1ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaW5PcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdO1xyXG4gIHB1YmxpYyBvcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdXHJcbiAgcHVibGljIGhpZGVPclNob3dUYWJzOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgZGF0YVdhcmVIb3VzZUNvZGU6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXTtcclxuICBwdWJsaWMgZGF0YVdhcmVIb3VzZUZpZWxkczogQ29Ecm9wRG93bkxpc3RGaWVsZHMgPSB7IHRleHQ6IFwid2FyZWhvdXNlRGVzY3JpcHRpb25cIiwgdmFsdWU6IFwid2FyZWhvdXNlTm9cIiB9O1xyXG4gIHB1YmxpYyBkYXRhTG9jYXRpb25GaWVsZHM6IENvRHJvcERvd25MaXN0RmllbGRzID0ge3RleHQ6IFwibG9jYXRpb25Ob1wiLCB2YWx1ZTogXCJsb2NhdGlvbk5vXCJ9O1xyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogYW55O1xyXG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBTdG9ja0xvY2F0aW9uO1xyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdO1xyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tTZWFyY2hJbmZvOiBBcnRpY2xlU3RvY2sgPSBuZXcgQXJ0aWNsZVN0b2NrKCk7XHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzOiBBcnRpY2xlRGV0YWlsc0JvW107XHJcbiAgcHVibGljIHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhOiBBcnRpY2xlRGV0YWlsc0JvID0gbmV3IEFydGljbGVEZXRhaWxzQm8oKTtcclxuICBwdWJsaWMgc2hvd0NoYW5nZVN0b2NrRGV0YWlsczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50ID0gbmV3IEFydGljbGVTdG9ja01hbmFnZW1lbnQoKVxyXG5cclxuICBwdWJsaWMgdGFiczogc3RyaW5nW10gPSBbXHJcbiAgICBcIlNUT0NLXCIsXHJcbiAgICBcIklOX09SREVSMlwiLFxyXG4gICAgXCJPUkRFUlMxXCJcclxuICBdO1xyXG4gIHB1YmxpYyBhY3RpdmVUYWI6IHN0cmluZyA9IHRoaXMudGFic1swXTtcclxuXHJcbiAgcHVibGljIGdldCBhY3RpdmVUYWJUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVGFiKSB7XHJcbiAgICAgIGNhc2UgdGhpcy50YWJzWzBdOlxyXG4gICAgICAgIHJldHVybiBcIlZvb3JyYWFkcmVnZWxzXCI7XHJcbiAgICAgIGNhc2UgdGhpcy50YWJzWzFdOlxyXG4gICAgICAgIHJldHVybiBcIkdldm9uZGVuIGluIG9yZGVyKHMpXCI7XHJcbiAgICAgIGNhc2UgdGhpcy50YWJzWzJdOlxyXG4gICAgICAgIHJldHVybiBcIkdldm9uZGVuIGluIGJlc3RlbGxpbmdlblwiO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIlZvb3JyYWFkbG9jYXRpZSByZWdlbHNcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdG9ja1NlcnZpY2U6IFN0b2NrU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUYWJDbGljayh0YWJEYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHRhYkRhdGE7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09IFwiSU5fT1JERVIyXCIpIHtcclxuICAgICAgdGhpcy5nZXRJbk9yZGVyRGF0YSgpO1xyXG4gICAgfSBpZiAodGhpcy5hY3RpdmVUYWIgPT09IFwiT1JERVJTMVwiKSB7XHJcbiAgICAgIHRoaXMuZ2V0T3JkZXJEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Mb2NhdGlvbkNsaWNrKGRhdGE6IEFydGljbGVTdG9ja0JvKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVTdG9ja1NlYXJjaEluZm8uZ29vZElkID0gZGF0YS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYXJ0aWNsZVN0b2NrU2VhcmNoSW5mby53YXJlSG91c2VObyA9IGRhdGEud2FyZWhvdXNlTm8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYXJ0aWNsZVN0b2NrU2VhcmNoSW5mby52aWV3S2luZCA9IFwiRFwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICBpZiAoIXRoaXMuZGF0YVdhcmVIb3VzZUNvZGUpIHtcclxuICAgICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBcnRpY2xlRGV0YWlscyhkYXRhKTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd1RhYnMgPSBmYWxzZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd0xvY2F0aW9uVGFiID0gdHJ1ZTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5sb2NrQXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVIaXN0b3J5Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpc3RvcnlDbGlja2VkLmVtaXQoKVxyXG4gICAgdGhpcy5oaWRlT3JTaG93TG9jYXRpb25UYWIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NoYW5nZVN0b2NrRGV0YWlscyA9IGZhbHNlO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93VGFicyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U3RvY2tIaXN0b3J5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBiYWNrVG9TdG9ja0luZm9ybWF0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U3RvY2tIaXN0b3J5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNmZXJJY29uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVCYWNrVG9TdG9ja0NsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnRhYnNbMF07XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gdHJ1ZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd0xvY2F0aW9uVGFiID0gZmFsc2U7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5TZW5kTWV0aG9kRGlhbG9nKGRhdGEpOiB2b2lkIHtcclxuICAgIGlmICghKHRoaXMuX3N0b2NrU2VydmljZS5wcmludExheW91dFBhcmFtcyBpbnN0YW5jZW9mIFByaW50UHJpY2VTdGlja2VycykpIHtcclxuICAgICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50TGF5b3V0UGFyYW1zLmdvb2RJZCA9IGRhdGEuZ29vZElkO1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UucHJpbnRMYXlvdXRQYXJhbXMud2FyZWhvdXNlID0gZGF0YS53YXJlaG91c2VObztcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW50U3RvY2tTdGlja2VycygpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuX3N0b2NrU2VydmljZS5nZXRQcmludFN0b2NrU3RpY2tlcnModGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50TGF5b3V0UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLm9rQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DYW5jZWxDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuY2VsQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbkRpYWxvZ0NsaWNrKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEgPSBkYXRhO1xyXG4gICAgdGhpcy5zaG93Q2hhbmdlU3RvY2tEZXRhaWxzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBcnRpY2xlRGV0YWlscyhkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IGluZm8gPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpO1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IGRhdGEuZ29vZElkO1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmxpbmVJZCA9IGRhdGEubGluZUlkO1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLndhcmVob3VzZU51bWJlciA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHMgPSBkZXRhaWxzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcyhkYXRhOiBBcnRpY2xlU3RvY2tCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKS50aGVuKCh3YXJlaG91c2VzKSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YVdhcmVIb3VzZUNvZGUgPSB3YXJlaG91c2VzO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gZGF0YS53YXJlaG91c2VObztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3RXYXJlaG91c2UoZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSBldmVudDtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlIHx8IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2UgPT09IDApIHtcclxuICAgICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVEZXRhaWxzKHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbikudGhlbigoZGV0YWlscykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHMgPSBkZXRhaWxzO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRJbk9yZGVyRGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGluT3JkZXJEYXRhOiBBcnRpY2xlVHJhbnNhY3Rpb24gPSBuZXcgQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICBpbk9yZGVyRGF0YS50eXBlID0gXCJWXCI7XHJcbiAgICBpbk9yZGVyRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVTdG9ja0luZm9ybWF0aW9uWzBdLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5pbk9yZGVySW5mb3JtYXRpb24gPSBhd2FpdCB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZVRyYW5zYWN0aW9uKGluT3JkZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckRhdGEoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBvcmRlckRhdGE6IEFydGljbGVUcmFuc2FjdGlvbiA9IG5ldyBBcnRpY2xlVHJhbnNhY3Rpb24oKTtcclxuICAgIG9yZGVyRGF0YS50eXBlID0gXCJWXCI7XHJcbiAgICBvcmRlckRhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlU3RvY2tJbmZvcm1hdGlvblswXS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMub3JkZXJJbmZvcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlVHJhbnNhY3Rpb24ob3JkZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdExvY2F0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlKS50aGVuKChsb2NhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Pa0NsaWNrU2VuZExvY2F0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuYXJ0aWNsZSlcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2U7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHModGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DYW5jZWxDbGlja1NlbmRMb2NhdGlvbnMoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFtb3VudEluU3RvY2tDaGFuZ2VkKGRhdGEsIHJvdyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICBjb25zb2xlLmxvZyhyb3cpO1xyXG5cclxuICB9XHJcbn1cclxuIl19
@@ -16,6 +16,8 @@ export class StockChangeAmountComponent {
16
16
  }
17
17
  handleOkClick(data) {
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
+ data.selected = true;
20
+ data.entryDate = new Date();
19
21
  yield this._stockService.updateArticleDetails(data);
20
22
  });
21
23
  }
@@ -65,4 +67,4 @@ StockChangeAmountComponent.propDecorators = {
65
67
  selectedArticleDetailsData: [{ type: Input }],
66
68
  closeStockChangeAmount: [{ type: Output }]
67
69
  };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stY2hhbmdlLWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay1jaGFuZ2UtYW1vdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBaUM1RCxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQ1UsYUFBMkI7UUFBM0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFOckIsMkJBQXNCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEUsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsNEJBQXVCLEdBQXlCLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUMsQ0FBQztJQUt6RyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRVksYUFBYSxDQUFDLElBQXNCOztZQUMvQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWhFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBaENPLFlBQVk7Ozt5Q0FtQ2pCLEtBQUs7cUNBR0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2Uvc3RvY2suc2VydmljZVwiO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7Q29Ecm9wRG93bkxpc3RGaWVsZHN9IGZyb20gXCIuL2NvLWRyb3AtZG93bi1saXN0LWZpZWxkcy5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay1jaGFuZ2UtYW1vdW50XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLXRyYW5zZmVyXCI+XHJcbiAgICAgICAgPGNvLWRpYWxvZy13aXphcmQgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiIChjbG9zZUNsaWNrKT1cImNsb3NlRGlhbG9nQ2xpY2soKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInU1RPQ0tfQ0hBTkdFX1JFQVNPTidcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1kcm9wLWRvd24tbGlzdCBbY29sbGVjdGlvbl09XCJzdG9ja1N0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwic3RvY2tTdGF0ZURyb3Bkb3duRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTVE9DS19TVEFURSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkXCJcclxuICAgICAgICAgICAgPjwvY28tZHJvcC1kb3duLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dGFyZWEgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZVJlbWFya1wiXHJcblxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0YXJlYT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9rLWNhbmNlbC1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ09rJ1wiIChjbGljayk9XCJoYW5kbGVPa0NsaWNrKHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidBbm51bGVyZW4nXCIgKGNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2NvLWRpYWxvZy13aXphcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvY2tDaGFuZ2VBbW91bnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm87XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjbG9zZVN0b2NrQ2hhbmdlQW1vdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHVibGljIHN0b2NrU3RhdGU6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuICBwdWJsaWMgc3RvY2tTdGF0ZURyb3Bkb3duRmllbGQ6IENvRHJvcERvd25MaXN0RmllbGRzID0ge3RleHQ6IFwic3RhdGVEZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJzdG9ja1N0YXRlSWRcIn07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0U3RvY2tTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRGlhbG9nQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlU3RvY2tDaGFuZ2VBbW91bnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZU9rQ2xpY2soZGF0YTogQXJ0aWNsZURldGFpbHNCbyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5fc3RvY2tTZXJ2aWNlLnVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbmNlbENsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVN0b2NrQ2hhbmdlQW1vdW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja1N0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrU3RhdGUoKS50aGVuKChzdGF0ZTogU3RvY2tTdGF0dXNbXSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrU3RhdGUgPSBzdGF0ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stY2hhbmdlLWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay1jaGFuZ2UtYW1vdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBaUM1RCxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQ1UsYUFBMkI7UUFBM0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFOckIsMkJBQXNCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEUsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsNEJBQXVCLEdBQXlCLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUMsQ0FBQztJQUt6RyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRVksYUFBYSxDQUFDLElBQXNCOztZQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQTtJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFsRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWhDTyxZQUFZOzs7eUNBbUNqQixLQUFLO3FDQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge0NvRHJvcERvd25MaXN0RmllbGRzfSBmcm9tIFwiLi9jby1kcm9wLWRvd24tbGlzdC1maWVsZHMuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2stY2hhbmdlLWFtb3VudFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2ZlclwiPlxyXG4gICAgICAgIDxjby1kaWFsb2ctd2l6YXJkIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIiAoY2xvc2VDbGljayk9XCJjbG9zZURpYWxvZ0NsaWNrKClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NUT0NLX0NIQU5HRV9SRUFTT04nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tZHJvcC1kb3duLWxpc3QgW2NvbGxlY3Rpb25dPVwic3RvY2tTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cInN0b2NrU3RhdGVEcm9wZG93bkZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU1RPQ0tfU1RBVEUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVJZFwiXHJcbiAgICAgICAgICAgID48L2NvLWRyb3AtZG93bi1saXN0PlxyXG5cclxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHRhcmVhIFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVSZW1hcmtcIlxyXG5cclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidPaydcIiAoY2xpY2spPVwiaGFuZGxlT2tDbGljayhzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSlcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFt0ZXh0Q29udGVudF09XCInQW5udWxlcmVuJ1wiIChjbGljayk9XCJoYW5kbGVDYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9jby1kaWFsb2ctd2l6YXJkPlxyXG4gICAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b2NrQ2hhbmdlQW1vdW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhOiBBcnRpY2xlRGV0YWlsc0JvO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VTdG9ja0NoYW5nZUFtb3VudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBzdG9ja1N0YXRlOiBTdG9ja1N0YXR1c1tdID0gW107XHJcbiAgcHVibGljIHN0b2NrU3RhdGVEcm9wZG93bkZpZWxkOiBDb0Ryb3BEb3duTGlzdEZpZWxkcyA9IHt0ZXh0OiBcInN0YXRlRGVzY3JpcHRpb25cIiwgdmFsdWU6IFwic3RvY2tTdGF0ZUlkXCJ9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdldFN0b2NrU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZURpYWxvZ0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVN0b2NrQ2hhbmdlQW1vdW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVPa0NsaWNrKGRhdGE6IEFydGljbGVEZXRhaWxzQm8pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgZGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5fc3RvY2tTZXJ2aWNlLnVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbmNlbENsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVN0b2NrQ2hhbmdlQW1vdW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja1N0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrU3RhdGUoKS50aGVuKChzdGF0ZTogU3RvY2tTdGF0dXNbXSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrU3RhdGUgPSBzdGF0ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19