@microsoft/windows-admin-center-sdk 2.186.0 → 2.294.0

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 (236) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/it-IT/strings.json +1 -1
  7. package/angular/assets/strings/ja-JP/strings.json +1 -1
  8. package/angular/assets/strings/ko-KR/strings.json +1 -1
  9. package/angular/assets/strings/nl-NL/strings.json +1 -1
  10. package/angular/assets/strings/pl-PL/strings.json +1 -1
  11. package/angular/assets/strings/pt-BR/strings.json +1 -1
  12. package/angular/assets/strings/pt-PT/strings.json +1 -1
  13. package/angular/assets/strings/ru-RU/strings.json +1 -1
  14. package/angular/assets/strings/strings.json +1 -1
  15. package/angular/assets/strings/sv-SE/strings.json +1 -1
  16. package/angular/assets/strings/tr-TR/strings.json +1 -1
  17. package/angular/assets/strings/zh-CN/strings.json +1 -1
  18. package/angular/assets/strings/zh-TW/strings.json +1 -1
  19. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +1103 -1209
  20. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
  21. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +2 -2
  22. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
  23. package/angular/esm2015/src/controls/actions/actions.module.js +2 -2
  24. package/angular/esm2015/src/controls/actions/containers/action-bar/action-bar.component.js +2 -2
  25. package/angular/esm2015/src/controls/actions/items/action-button/action-button-renderer.component.js +5 -5
  26. package/angular/esm2015/src/controls/actions/items/action-dropdown/action-dropdown.component.js +31 -13
  27. package/angular/esm2015/src/controls/actions/items/action-item.component.js +7 -3
  28. package/angular/esm2015/src/controls/badge/badge-base.component.js +2 -13
  29. package/angular/esm2015/src/controls/badge/bugfixes-feature-badge.component.js +42 -70
  30. package/angular/esm2015/src/controls/badge/coming-soon-badge.component.js +42 -70
  31. package/angular/esm2015/src/controls/badge/credssp-enabled-badge.component.js +42 -70
  32. package/angular/esm2015/src/controls/badge/critical-badge.component.js +42 -70
  33. package/angular/esm2015/src/controls/badge/custom-badge.component.js +42 -70
  34. package/angular/esm2015/src/controls/badge/feedback-badge.component.js +42 -70
  35. package/angular/esm2015/src/controls/badge/improvement-feature-badge.component.js +42 -70
  36. package/angular/esm2015/src/controls/badge/new-badge.component.js +42 -70
  37. package/angular/esm2015/src/controls/badge/new-feature-badge.component.js +42 -70
  38. package/angular/esm2015/src/controls/badge/preview-badge.component.js +42 -70
  39. package/angular/esm2015/src/controls/badge/warning-badge.component.js +42 -70
  40. package/angular/esm2015/src/controls/breadcrumb/breadcrumb.component.js +6 -6
  41. package/angular/esm2015/src/controls/breadcrumb-header/breadcrumb-header.component.js +2 -2
  42. package/angular/esm2015/src/controls/data-table/data-table-column.component.js +5 -3
  43. package/angular/esm2015/src/controls/data-table/data-table.component.js +20 -26
  44. package/angular/esm2015/src/controls/data-table/extensions/data-table-column-picker-extension.js +2 -1
  45. package/angular/esm2015/src/controls/details/details.component.js +2 -2
  46. package/angular/esm2015/src/controls/dialog/base-dialog.component.js +1 -1
  47. package/angular/esm2015/src/controls/dialog/confirmation-dialog/confirmation-dialog.component.js +20 -30
  48. package/angular/esm2015/src/controls/dialog/dialog.service.js +7 -3
  49. package/angular/esm2015/src/controls/dropdown/dropdown.component.js +2 -2
  50. package/angular/esm2015/src/controls/form/form-field/array/array-form-field.component.js +50 -40
  51. package/angular/esm2015/src/controls/form/form-field/checklist/checklist-form-field.component.js +3 -3
  52. package/angular/esm2015/src/controls/form/form-field/combobox/combobox-form-field.component.js +14 -13
  53. package/angular/esm2015/src/controls/form/form-field/datetime/datetime-form-field.component.js +2 -2
  54. package/angular/esm2015/src/controls/form/form-field/form-field.component.js +16 -4
  55. package/angular/esm2015/src/controls/form/form-field/options-form-field/form-field-option.component.js +5 -3
  56. package/angular/esm2015/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.js +25 -21
  57. package/angular/esm2015/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.js +5 -5
  58. package/angular/esm2015/src/controls/form/form-field/search/search-form-field.component.js +2 -2
  59. package/angular/esm2015/src/controls/form/form-field/tags/tags-form-field.component.js +2 -2
  60. package/angular/esm2015/src/controls/form/validation-alert/validation-alert.component.js +4 -10
  61. package/angular/esm2015/src/controls/form/validation-alert/validation-alert.js +1 -1
  62. package/angular/esm2015/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.js +17 -1
  63. package/angular/esm2015/src/controls/icon/layered-icon/layered-icon.component.js +12 -1
  64. package/angular/esm2015/src/controls/icon/layered-icon/status/status-icon.component.js +53 -9
  65. package/angular/esm2015/src/controls/loading-wheel/loading-wheel.component.js +17 -1
  66. package/angular/esm2015/src/controls/master-view/master-view.component.js +34 -30
  67. package/angular/esm2015/src/controls/pivot/pivot-tab.component.js +1 -1
  68. package/angular/esm2015/src/controls/pivot/pivot.component.js +21 -9
  69. package/angular/esm2015/src/controls/property-grid/property-grid.component.js +13 -29
  70. package/angular/esm2015/src/controls/schema-form/schema-form-content.component.js +7 -4
  71. package/angular/esm2015/src/controls/settings/common-settings/common-settings.component.js +23 -35
  72. package/angular/esm2015/src/controls/settings/settings.component.js +28 -1
  73. package/angular/esm2015/src/controls/settings/settings.module.js +8 -3
  74. package/angular/esm2015/src/controls/tooltip/tooltip-host.component.js +16 -5
  75. package/angular/esm2015/src/controls/wizard/wizard.component.js +38 -6
  76. package/angular/esm2015/src/directives/clamp/clamp.directive.js +26 -7
  77. package/angular/esm2015/src/directives/discard/discard.directive.js +2 -2
  78. package/angular/esm2015/src/directives/markdown/markdown.directive.js +5 -18
  79. package/angular/esm2015/src/generated/strings.js +1 -1
  80. package/angular/esm2015/src/guards/experiment.guard.service.js +14 -1
  81. package/angular/esm2015/src/pipes/boolean-converter-pipe.js +11 -1
  82. package/angular/esm2015/src/pipes/byte-unit-converter-pipe.js +11 -1
  83. package/angular/esm2015/src/pipes/enum-converter-pipe.js +16 -1
  84. package/angular/esm2015/src/pipes/format-pipe.js +11 -1
  85. package/angular/esm2015/src/pipes/highlight-pipe.js +11 -1
  86. package/angular/esm2015/src/pipes/yesno-converter-pipe.js +11 -1
  87. package/angular/esm2015/src/service/gateway.service.js +8 -5
  88. package/angular/esm2015/src/service/notification.service.js +23 -1
  89. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +1042 -1069
  90. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
  91. package/angular/package.json +0 -1
  92. package/angular/src/controls/actions/items/action-dropdown/action-dropdown.component.d.ts +2 -0
  93. package/angular/src/controls/actions/items/action-item.component.d.ts +11 -1
  94. package/angular/src/controls/badge/badge-base.component.d.ts +0 -4
  95. package/angular/src/controls/data-table/data-table-column.component.d.ts +2 -1
  96. package/angular/src/controls/data-table/data-table.component.d.ts +4 -0
  97. package/angular/src/controls/dialog/base-dialog.component.d.ts +1 -1
  98. package/angular/src/controls/form/form-field/form-field.component.d.ts +10 -1
  99. package/angular/src/controls/form/form-field/options-form-field/form-field-option.component.d.ts +5 -1
  100. package/angular/src/controls/form/validation-alert/validation-alert.component.d.ts +0 -4
  101. package/angular/src/controls/form/validation-alert/validation-alert.d.ts +0 -1
  102. package/angular/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.d.ts +16 -0
  103. package/angular/src/controls/icon/layered-icon/layered-icon.component.d.ts +11 -0
  104. package/angular/src/controls/icon/layered-icon/status/status-icon.component.d.ts +13 -2
  105. package/angular/src/controls/loading-wheel/loading-wheel.component.d.ts +16 -0
  106. package/angular/src/controls/master-view/master-view.component.d.ts +1 -0
  107. package/angular/src/controls/pivot/pivot-tab.component.d.ts +0 -1
  108. package/angular/src/controls/pivot/pivot.component.d.ts +4 -0
  109. package/angular/src/controls/settings/common-settings/common-settings.component.d.ts +6 -5
  110. package/angular/src/controls/settings/settings.component.d.ts +27 -0
  111. package/angular/src/controls/settings/settings.module.d.ts +7 -6
  112. package/angular/src/controls/tooltip/tooltip-host.component.d.ts +1 -1
  113. package/angular/src/controls/wizard/wizard.component.d.ts +23 -0
  114. package/angular/src/directives/clamp/clamp.directive.d.ts +5 -0
  115. package/angular/src/directives/markdown/markdown.directive.d.ts +2 -3
  116. package/angular/src/generated/strings.d.ts +9 -0
  117. package/angular/src/guards/experiment.guard.service.d.ts +13 -0
  118. package/angular/src/pipes/boolean-converter-pipe.d.ts +10 -0
  119. package/angular/src/pipes/byte-unit-converter-pipe.d.ts +10 -0
  120. package/angular/src/pipes/enum-converter-pipe.d.ts +15 -0
  121. package/angular/src/pipes/format-pipe.d.ts +10 -0
  122. package/angular/src/pipes/highlight-pipe.d.ts +10 -0
  123. package/angular/src/pipes/yesno-converter-pipe.d.ts +10 -0
  124. package/angular/src/service/gateway.service.d.ts +3 -1
  125. package/angular/src/service/notification.service.d.ts +22 -0
  126. package/core/base/environment.d.ts +7 -0
  127. package/core/base/environment.js.map +1 -1
  128. package/core/base/versioned-object.js +2 -2
  129. package/core/base/versioned-object.js.map +1 -1
  130. package/core/data/cim-stream.js +8 -1
  131. package/core/data/cim-stream.js.map +1 -1
  132. package/core/data/core-environment.d.ts +4 -0
  133. package/core/data/core-environment.js +1 -0
  134. package/core/data/core-environment.js.map +1 -1
  135. package/core/data/crypto.js +10 -9
  136. package/core/data/crypto.js.map +1 -1
  137. package/core/data/file-transfer.js +5 -1
  138. package/core/data/file-transfer.js.map +1 -1
  139. package/core/data/gateway-connection.d.ts +11 -1
  140. package/core/data/gateway-connection.js +51 -9
  141. package/core/data/gateway-connection.js.map +1 -1
  142. package/core/data/http-constants.d.ts +5 -1
  143. package/core/data/http-constants.js +5 -1
  144. package/core/data/http-constants.js.map +1 -1
  145. package/core/data/net.d.ts +15 -11
  146. package/core/data/net.js +44 -41
  147. package/core/data/net.js.map +1 -1
  148. package/core/data/node-connection.d.ts +2 -2
  149. package/core/data/node-connection.js.map +1 -1
  150. package/core/data/powershell-stream.js +11 -3
  151. package/core/data/powershell-stream.js.map +1 -1
  152. package/core/data/powershell.d.ts +17 -1
  153. package/core/data/powershell.js +35 -9
  154. package/core/data/powershell.js.map +1 -1
  155. package/core/data/settings-manager.d.ts +9 -0
  156. package/core/data/settings-manager.js +18 -1
  157. package/core/data/settings-manager.js.map +1 -1
  158. package/core/generated/powershell-scripts.d.ts +5 -4
  159. package/core/generated/powershell-scripts.js +5 -4
  160. package/core/generated/powershell-scripts.js.map +1 -1
  161. package/core/host/host-core-manager.d.ts +36 -0
  162. package/core/host/host-core-manager.js +134 -0
  163. package/core/host/host-core-manager.js.map +1 -0
  164. package/core/host/host-core-message-type.d.ts +12 -0
  165. package/core/host/host-core-message-type.js +17 -0
  166. package/core/host/host-core-message-type.js.map +1 -0
  167. package/core/host/host-core-messages.d.ts +14 -0
  168. package/core/host/host-core-messages.js +3 -0
  169. package/core/host/host-core-messages.js.map +1 -0
  170. package/core/manifest/manifest-loader.d.ts +2 -1
  171. package/core/manifest/manifest-loader.js +27 -18
  172. package/core/manifest/manifest-loader.js.map +1 -1
  173. package/core/notification/notification.js +4 -0
  174. package/core/notification/notification.js.map +1 -1
  175. package/core/security/authorization-manager.d.ts +44 -0
  176. package/core/security/authorization-manager.js +111 -5
  177. package/core/security/authorization-manager.js.map +1 -1
  178. package/core/security/sign-on-manager.d.ts +109 -0
  179. package/core/security/sign-on-manager.js +119 -0
  180. package/core/security/sign-on-manager.js.map +1 -0
  181. package/core/security/tag-manager.js.map +1 -1
  182. package/core/shared/cluster-inventory/cluster-inventory-cache.js +3 -2
  183. package/core/shared/cluster-inventory/cluster-inventory-cache.js.map +1 -1
  184. package/core/shared/gateway-inventory/gateway-inventory-cache.d.ts +1 -1
  185. package/core/shared/gateway-inventory/gateway-inventory-cache.js +1 -1
  186. package/core/shared/gateway-inventory/gateway-inventory-cache.js.map +1 -1
  187. package/core/shared/server-inventory/server-inventory-cache.js +2 -1
  188. package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
  189. package/core/shared/tool-inventory/tool-inventory-cache.js +1 -1
  190. package/core/shared/tool-inventory/tool-inventory-cache.js.map +1 -1
  191. package/e2e/assets/strings/cs-CZ/strings.json +1 -1
  192. package/e2e/assets/strings/de-DE/strings.json +1 -1
  193. package/e2e/assets/strings/es-ES/strings.json +1 -1
  194. package/e2e/assets/strings/fr-FR/strings.json +1 -1
  195. package/e2e/assets/strings/hu-HU/strings.json +1 -1
  196. package/e2e/assets/strings/it-IT/strings.json +1 -1
  197. package/e2e/assets/strings/ja-JP/strings.json +1 -1
  198. package/e2e/assets/strings/ko-KR/strings.json +1 -1
  199. package/e2e/assets/strings/nl-NL/strings.json +1 -1
  200. package/e2e/assets/strings/pl-PL/strings.json +1 -1
  201. package/e2e/assets/strings/pt-BR/strings.json +1 -1
  202. package/e2e/assets/strings/pt-PT/strings.json +1 -1
  203. package/e2e/assets/strings/ru-RU/strings.json +1 -1
  204. package/e2e/assets/strings/strings.json +1 -1
  205. package/e2e/assets/strings/sv-SE/strings.json +1 -1
  206. package/e2e/assets/strings/tr-TR/strings.json +1 -1
  207. package/e2e/assets/strings/zh-CN/strings.json +1 -1
  208. package/e2e/assets/strings/zh-TW/strings.json +1 -1
  209. package/package.json +5 -5
  210. package/styles/css/fonts.css +2 -2
  211. package/styles/css/main.css +1 -1
  212. package/styles/fonts/ServMDL2/ServMDL2-4.62.woff +0 -0
  213. package/styles/fonts/ServMDL2/ServMDL2.json +238 -2039
  214. package/styles/fonts/ServMDL2/ServMDL2.scss +238 -2039
  215. package/tools/gulp-manifest-resource/index.js +3 -1
  216. package/tools/gulp-manifest-resource/index.js.map +1 -1
  217. package/tools/gulp-ps-cim/index.js +1 -1
  218. package/tools/gulp-ps-cim/index.js.map +1 -1
  219. package/tools/gulp-ps-cim/powershell-cim-config-schema.json +1 -1
  220. package/tools/gulp-ps-code/index.js +36 -2
  221. package/tools/gulp-ps-code/index.js.map +1 -1
  222. package/tools/gulp-ps-code/ps-code-convert.js +4 -8
  223. package/tools/gulp-ps-code/ps-code-convert.js.map +1 -1
  224. package/tools/gulp-ps-resjson/index.js +79 -74
  225. package/tools/gulp-ps-resjson/index.js.map +1 -1
  226. package/tools/module-template/build/pipelines/codeinspector.yml +27 -0
  227. package/tools/module-template/gulpfile.ts/common/lint.ts +3 -3
  228. package/tools/module-template/gulpfile.ts/common/pack.ts +14 -14
  229. package/tools/module-template/gulpfile.ts/common/ui-test-automation.ts +40 -0
  230. package/tools/module-template/gulpfile.ts/common/utilities.ts +10 -10
  231. package/tools/module-template/gulpfile.ts/common/validate.ts +14 -4
  232. package/tools/module-template/gulpfile.ts/index.ts +20 -8
  233. package/tools/wac-cli/src/upgrade/file-updater.d.ts +1 -0
  234. package/tools/wac-cli/src/upgrade/file-updater.js +7 -1
  235. package/tools/wac-cli/src/upgrade/file-updater.js.map +1 -1
  236. package/styles/fonts/ServMDL2/ServMDL2-4.33.woff +0 -0
@@ -1,4 +1,4 @@
1
- import { Directive, EventEmitter, Injector, Input, Output } from '@angular/core';
1
+ import { Directive, EventEmitter, HostListener, Injector, Input, Output } from '@angular/core';
2
2
  import { CoreBaseComponent } from '../../controls/common/base.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export var Unicode;
@@ -77,6 +77,16 @@ export class ClampDirective extends CoreBaseComponent {
77
77
  get breakWords() {
78
78
  return this.hostElement.nativeElement.classList.contains(breakAllClass);
79
79
  }
80
+ /**
81
+ * Host listener for page resize event.
82
+ */
83
+ onResize() {
84
+ // reset initial content state
85
+ this.resetClampContent();
86
+ if (this.needsClamping) {
87
+ this.clamp(this.hostElement.nativeElement);
88
+ }
89
+ }
80
90
  /**
81
91
  * Implementation of angular OnChanges interface
82
92
  * On every input change, we recalculate the clamp.
@@ -85,10 +95,7 @@ export class ClampDirective extends CoreBaseComponent {
85
95
  super.ngOnChanges(changes);
86
96
  if (changes.smeClamp) {
87
97
  // reset initial content state
88
- this.removeBreakWords();
89
- this.hostElement.nativeElement.innerHTML = this.smeClamp || '';
90
- // whenever this changes, we need to measure and output whether the content will be clamped.
91
- this.clamped.emit({ clamped: this.needsClamping });
98
+ this.resetClampContent();
92
99
  }
93
100
  // if the input changes require clamping again, then re-clamp
94
101
  if (this.needsClamping) {
@@ -107,6 +114,13 @@ export class ClampDirective extends CoreBaseComponent {
107
114
  element.classList.remove(breakAllClass);
108
115
  }
109
116
  }
117
+ resetClampContent() {
118
+ // reset initial content state
119
+ this.removeBreakWords();
120
+ this.hostElement.nativeElement.innerHTML = this.smeClamp || '';
121
+ // whenever this changes, we need to measure and output whether the content will be clamped.
122
+ this.clamped.emit({ clamped: this.needsClamping });
123
+ }
110
124
  /**
111
125
  * Gets the initial host classes to be applied to this element
112
126
  */
@@ -197,7 +211,9 @@ export class ClampDirective extends CoreBaseComponent {
197
211
  }
198
212
  }
199
213
  /** @nocollapse */ ClampDirective.ɵfac = function ClampDirective_Factory(t) { return new (t || ClampDirective)(i0.ɵɵdirectiveInject(i0.Injector)); };
200
- /** @nocollapse */ ClampDirective.ɵdir = i0.ɵɵdefineDirective({ type: ClampDirective, selectors: [["", "smeClamp", ""]], inputs: { smeClamp: "smeClamp", smeClampLines: "smeClampLines" }, outputs: { clamped: "clamped" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });
214
+ /** @nocollapse */ ClampDirective.ɵdir = i0.ɵɵdefineDirective({ type: ClampDirective, selectors: [["", "smeClamp", ""]], hostBindings: function ClampDirective_HostBindings(rf, ctx) { if (rf & 1) {
215
+ i0.ɵɵlistener("resize", function ClampDirective_resize_HostBindingHandler() { return ctx.onResize(); }, false, i0.ɵɵresolveWindow);
216
+ } }, inputs: { smeClamp: "smeClamp", smeClampLines: "smeClampLines" }, outputs: { clamped: "clamped" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });
201
217
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ClampDirective, [{
202
218
  type: Directive,
203
219
  args: [{
@@ -209,5 +225,8 @@ export class ClampDirective extends CoreBaseComponent {
209
225
  type: Input
210
226
  }], clamped: [{
211
227
  type: Output
228
+ }], onResize: [{
229
+ type: HostListener,
230
+ args: ['window:resize']
212
231
  }] }); })();
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9jbGFtcC9jbGFtcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUV6RSxNQUFNLENBQU4sSUFBWSxPQUVYO0FBRkQsV0FBWSxPQUFPO0lBQ2Ysd0NBQTZCLENBQUE7QUFDakMsQ0FBQyxFQUZXLE9BQU8sS0FBUCxPQUFPLFFBRWxCO0FBU0QsTUFBTSxhQUFhLEdBQUcsNEJBQTRCLENBQUM7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBaUI7SUFxRWpEOzs7T0FHRztJQUNILFlBQVksUUFBa0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBeERwQjs7V0FFRztRQUVJLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQXFEbEQsQ0FBQztJQXpFRDs7T0FFRztJQUNILElBQWMsYUFBYTtRQUN2QixPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFpQkQ7O09BRUc7SUFDSCxJQUFZLFNBQVM7UUFDakIsb0JBQW9CO1FBQ3BCLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbkYsZ0NBQWdDO1FBQ2hDLElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRTtZQUN0QixTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFh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eyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgZW51bSBVbmljb2RlIHtcclxuICAgIEhvcml6b250YWxFbGxpcHNpcyA9ICdcXHUyMDI2J1xyXG59XHJcblxyXG4vKipcclxuICogRGVzY3JpYmVzIHRoZSBjbGFtcGVkIGV2ZW50IG9mIHRoZSBDbGFtcERpcmVjdGl2ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDbGFtcGVkRXZlbnQge1xyXG4gICAgY2xhbXBlZDogYm9vbGVhbjtcclxufVxyXG5cclxuY29uc3QgYnJlYWtBbGxDbGFzcyA9ICdzbWUtYXJyYW5nZS13b3JkLWJyZWFrLWFsbCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIENsYW1wIEBpZCBzbWUtY2xhbXAtZGlyZWN0aXZlfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL2NsYW1wLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9iYXNpYy11c2FnZS5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFzaWMtdXNhZ2UuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIENsYW1wIHdpdGggYXV0byBsaW5lcyBAaWQgYXV0by1saW5lc31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9hdXRvLWxpbmVzLWNsYW1wLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hdXRvLWxpbmVzLWNsYW1wLmNvbXBvbmVudC50c31cclxuICpcclxuICovXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3NtZUNsYW1wXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsYW1wRGlyZWN0aXZlIGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdDbGFtcERpcmVjdGl2ZSc7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjb250ZW50IHRvIGNsYW1wLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc21lQ2xhbXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGxpbmVzIHRvIGNsYW1wLCBvciBhdXRvIHRvIGNsYW1wIHdoYXRldmVyIHdpbGwgZml0IGluIHRoZSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzbWVDbGFtcExpbmVzOiBudW1iZXIgfCAnYXV0byc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB0aGF0IG91dHB1dHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvbnRlbnQgaXMgY2xhbXBlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xhbXBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2xhbXBlZEV2ZW50PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBsaW5lcyB0byBjbGFtcCB0b1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldCBsaW5lQ291bnQoKTogbnVtYmVyIHtcclxuICAgICAgICAvLyBnZXQgdGhlIGxpbmVDb3VudFxyXG4gICAgICAgIGxldCBsaW5lQ291bnQgPSBNc2Z0U21lLmlzTnVtYmVyKHRoaXMuc21lQ2xhbXBMaW5lcykgPyB0aGlzLnNtZUNsYW1wTGluZXMgOiAnYXV0byc7XHJcblxyXG4gICAgICAgIC8vIGNhbGMgbGluZSBjb3VudCBpZiBpdCBpcyBhdXRvXHJcbiAgICAgICAgaWYgKGxpbmVDb3VudCA9PT0gJ2F1dG8nKSB7XHJcbiAgICAgICAgICAgIGxpbmVDb3VudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLyB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBtYWtlIHN1cmUgbGluZSBjb3VudCBpcyBhdCBsZWFzdCAxIGxpbmVcclxuICAgICAgICByZXR1cm4gTWF0aC5tYXgobGluZUNvdW50LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBoZWlnaHQgdGhhdCB0aGUgY2xhbXAgc2hvdWxkIGJlIGNvbnRhaW5lZCB3aXRoaW5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXQgY2xhbXBIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saW5lQ291bnQgKiB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbGluZSBoZWlnaHQgb2YgdGhpcyBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0IGxpbmVIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KS5saW5lSGVpZ2h0LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCBjb250ZW50IG92ZXJmbG93cyB0aGUgZGVzaXJlZCBoZWlnaHQgb2YgdGhlIGNsYW1wXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0IG5lZWRzQ2xhbXBpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgPiB0aGlzLmNsYW1wSGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHJlbmRlcmVkTGluZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLyB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYnJlYWtXb3JkcygpIHtcclxuICAgICAgICByZXR1cm4gKDxIVE1MRWxlbWVudD50aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucyhicmVha0FsbENsYXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIENsYW1wRGlyZWN0aXZlXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGluamVjdG9yIGZvciB0aGUgc21lIGJhc2UgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIGFuZ3VsYXIgT25DaGFuZ2VzIGludGVyZmFjZVxyXG4gICAgICogT24gZXZlcnkgaW5wdXQgY2hhbmdlLCB3ZSByZWNhbGN1bGF0ZSB0aGUgY2xhbXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuc21lQ2xhbXApIHtcclxuICAgICAgICAgICAgLy8gcmVzZXQgaW5pdGlhbCBjb250ZW50IHN0YXRlXHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtXb3JkcygpO1xyXG4gICAgICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zbWVDbGFtcCB8fCAnJztcclxuXHJcbiAgICAgICAgICAgIC8vIHdoZW5ldmVyIHRoaXMgY2hhbmdlcywgd2UgbmVlZCB0byBtZWFzdXJlIGFuZCBvdXRwdXQgd2hldGhlciB0aGUgY29udGVudCB3aWxsIGJlIGNsYW1wZWQuXHJcbiAgICAgICAgICAgIHRoaXMuY2xhbXBlZC5lbWl0KHsgY2xhbXBlZDogdGhpcy5uZWVkc0NsYW1waW5nIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gaWYgdGhlIGlucHV0IGNoYW5nZXMgcmVxdWlyZSBjbGFtcGluZyBhZ2FpbiwgdGhlbiByZS1jbGFtcFxyXG4gICAgICAgIGlmICh0aGlzLm5lZWRzQ2xhbXBpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGFtcCh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEJyZWFrV29yZHMoKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICg8SFRNTEVsZW1lbnQ+dGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICBpZiAoIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGJyZWFrQWxsQ2xhc3MpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChicmVha0FsbENsYXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVCcmVha1dvcmRzKCkge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSAoPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGJyZWFrQWxsQ2xhc3MpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShicmVha0FsbENsYXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBpbml0aWFsIGhvc3QgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRJbml0aWFsSG9zdENsYXNzZXMoKS5jb25jYXQoW1xyXG4gICAgICAgICAgICAnc21lLWFycmFuZ2UtbGluZS1jbGFtcCdcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsYW1wcyB0aGUgdGV4dCBvZiBhIG5vZGUgYnkgZG9pbmcgYSBsYXN0IGNoaWxkIGZpcnN0IHByb2Nlc3Mgb2ZcclxuICAgICAqIGVsaW1pbmF0aW5nIHRleHQgdW50aWwgdGhlIGhvc3QgZWxlbWVudCBmaXRzIGluIHRoZSBjbGFtcCBoZWlnaHQuXHJcbiAgICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBzaG91bGQgc3VwcG9ydCBIVE1MIGNvbnRlbnQsIG91ciBpbnB1dCB0byB0aGlzIGRpcmVjdGl2ZSBpcyBhIHN0cmluZyBmb3Igbm93LlxyXG4gICAgICogQHBhcmFtIG5vZGUgVGhlIG5vZGUgdG8gY2xhbXBcclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUgd2FzIHN1Y2Nlc3NmdWxseSBjbGFtcGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2xhbXAobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIFByb2Nlc3MgdGhlIGNoaWxkcmVuIG9mIHRoZSBub2RlIHdlIHdhbnQgdG8gY2xhbXAsIHN0YXJ0aW5nIHdpdGggdGhlIGxhc3Qgbm9kZVxyXG4gICAgICAgIGZvciAobGV0IGkgPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoIC0gMTsgaSA+IC0xOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLmNoaWxkTm9kZXNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgdGV4dCBhbmQgZWxlbWVudCBub2Rlcy5cclxuICAgICAgICAgICAgbGV0IGlzQ2xhbXBlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBkaXZlIGludG8gZWxlbWVudCBub2RlcyByZWN1cnNpdmVseVxyXG4gICAgICAgICAgICAgICAgaXNDbGFtcGVkID0gdGhpcy5jbGFtcChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgV2hlbiB3ZSBmaW5kIGEgdGV4dCBub2RlLCB0cnkgY2xhbXBpbmcgaXQuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFRleHQgPSB0ZXh0O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGZpcnN0IHRyaW0gd29yZHMgdW50aWwgdGhlIGNvbnRlbnQgZml0c1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHRleHQubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbGFzdCB3b3JkIGZyb20gdGhlIHRleHRcclxuICAgICAgICAgICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gdGhpcy50cmltTGFzdFdvcmQodGV4dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVkTGluZXMgPCB0aGlzLmxpbmVDb3VudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3ZW50IHRvbyBmYXIgdGhlcmUgbXVzdCBiZSBhIGJpZyB3b3JkIGhlcmUsIGFkZCBiYWNrIHRoZSBsYXN0IHdvcmQgYW5kIGJyZWFrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYnJlYWtXb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVha1dvcmRzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gb3JpZ2luYWxUZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTdG9wIGlmIHdlIGFyZSBkb3duIHRvIG9uZSB3b3JkICh0cmltIGRpZG4ndCBjaGFuZ2UgdGV4dCkgb3Igd2UgYXJlIHNob3J0IGVub3VnaCB0byBub3QgbmVlZCBjbGFtcGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLnRleHRDb250ZW50ID09PSB0ZXh0IHx8ICF0aGlzLm5lZWRzQ2xhbXBpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRleHQgYW5kIG5vZGUgY29udGVudCBhcmUgdGhlIHNhbWUgKGluIHRoZSBjYXNlIGNsYW1waW5nIGlzIG5vIGxvbmdlciBuZWVkZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBub2RlLnRleHRDb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIHN0aWxsIGhhdmUgbW9yZSB3b3JkcyB0byB0cmltXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gbm93IHRoYXQgd2UgYXJlIHRyaW1tZWQgZG93biBvbiB3b3JkcywgcmVtb3ZlIGNoYXJhY3RlcnMgdW50aWwgdGhlIHRleHQgZml0cyB3aXRoIHRoZSBlbGxpcHNpc1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHRleHQubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyaW0gb2ZmIG9uZSB0cmFpbGluZyBjaGFyYWN0ZXIgYW5kIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlLlxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSA8c3RyaW5nPig8YW55PnRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gMSkpLnRyaW1SaWdodCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5vZGUgY29udGVudCB0byBvdXIgdGV4dCwgcGx1cyBhIHVuaWNvZGUgZWxsaXBzZXNcclxuICAgICAgICAgICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gYCR7dGV4dH0ke1VuaWNvZGUuSG9yaXpvbnRhbEVsbGlwc2lzfWA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN0b3AgaWYgbm8gbW9yZSBjbGFtcGluZyBpcyBuZWVkZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5lZWRzQ2xhbXBpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc3VjY2Vzc2Z1bGx5IGNsYW1wZWQgdGhlIHRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNDbGFtcGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBXZSBhcmUgZG9uZSBpZiB0aGUgY2xhbXAgaXMgc2F0aXNmaWVkXHJcbiAgICAgICAgICAgIGlmIChpc0NsYW1wZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgbm9kZSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjbGFtcCwgcmVtb3ZlIGl0IGFzIGl0IGlzIHRvIGJpZyB0byBmaXQuXHJcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmltcyB0aGUgbGFzdCB3b3JkIGZyb20gdGhlIHN0cmluZywgb3IgcmV0dXJucyB0aGUgb3JpaW5hbCBzdHJpbmcgaWYgdGhlcmUgaXMgb25seSBvbmUgd29yZFxyXG4gICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gdHJpbVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHRyaW1MYXN0V29yZCh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBsYXN0U3BhY2UgPSB0ZXh0Lmxhc3RJbmRleE9mKCcgJyk7XHJcbiAgICAgICAgaWYgKGxhc3RTcGFjZSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZygwLCBsYXN0U3BhY2UpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9jbGFtcC9jbGFtcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFekUsTUFBTSxDQUFOLElBQVksT0FFWDtBQUZELFdBQVksT0FBTztJQUNmLHdDQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFGVyxPQUFPLEtBQVAsT0FBTyxRQUVsQjtBQVNELE1BQU0sYUFBYSxHQUFHLDRCQUE0QixDQUFDO0FBRW5EOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUtILE1BQU0sT0FBTyxjQUFlLFNBQVEsaUJBQWlCO0lBcUVqRDs7O09BR0c7SUFDSCxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQXhEcEI7O1dBRUc7UUFFSSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFxRGxELENBQUM7SUF6RUQ7O09BRUc7SUFDSCxJQUFjLGFBQWE7UUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBaUJEOztPQUVHO0lBQ0gsSUFBWSxTQUFTO1FBQ2pCLG9CQUFvQjtRQUNwQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRW5GLGdDQUFnQztRQUNoQyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7WUFDdEIsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFX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SUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OytGQWhPUSxjQUFjO3NFQUFkLGNBQWM7NkZBQWQsY0FBVTs7dUZBQVYsY0FBYztjQUgxQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7YUFDekI7MkRBWW1CLFFBQVE7a0JBQXZCLEtBQUs7WUFLVSxhQUFhO2tCQUE1QixLQUFLO1lBTUMsT0FBTztrQkFEYixNQUFNO1lBNERBLFFBQVE7a0JBRGQsWUFBWTttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgZW51bSBVbmljb2RlIHtcclxuICAgIEhvcml6b250YWxFbGxpcHNpcyA9ICdcXHUyMDI2J1xyXG59XHJcblxyXG4vKipcclxuICogRGVzY3JpYmVzIHRoZSBjbGFtcGVkIGV2ZW50IG9mIHRoZSBDbGFtcERpcmVjdGl2ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDbGFtcGVkRXZlbnQge1xyXG4gICAgY2xhbXBlZDogYm9vbGVhbjtcclxufVxyXG5cclxuY29uc3QgYnJlYWtBbGxDbGFzcyA9ICdzbWUtYXJyYW5nZS13b3JkLWJyZWFrLWFsbCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIENsYW1wIEBpZCBzbWUtY2xhbXAtZGlyZWN0aXZlfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL2NsYW1wLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9iYXNpYy11c2FnZS5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFzaWMtdXNhZ2UuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIENsYW1wIHdpdGggYXV0byBsaW5lcyBAaWQgYXV0by1saW5lc31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9hdXRvLWxpbmVzLWNsYW1wLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hdXRvLWxpbmVzLWNsYW1wLmNvbXBvbmVudC50c31cclxuICpcclxuICovXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3NtZUNsYW1wXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsYW1wRGlyZWN0aXZlIGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdDbGFtcERpcmVjdGl2ZSc7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjb250ZW50IHRvIGNsYW1wLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc21lQ2xhbXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGxpbmVzIHRvIGNsYW1wLCBvciBhdXRvIHRvIGNsYW1wIHdoYXRldmVyIHdpbGwgZml0IGluIHRoZSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzbWVDbGFtcExpbmVzOiBudW1iZXIgfCAnYXV0byc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB0aGF0IG91dHB1dHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvbnRlbnQgaXMgY2xhbXBlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xhbXBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2xhbXBlZEV2ZW50PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBsaW5lcyB0byBjbGFtcCB0b1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldCBsaW5lQ291bnQoKTogbnVtYmVyIHtcclxuICAgICAgICAvLyBnZXQgdGhlIGxpbmVDb3VudFxyXG4gICAgICAgIGxldCBsaW5lQ291bnQgPSBNc2Z0U21lLmlzTnVtYmVyKHRoaXMuc21lQ2xhbXBMaW5lcykgPyB0aGlzLnNtZUNsYW1wTGluZXMgOiAnYXV0byc7XHJcblxyXG4gICAgICAgIC8vIGNhbGMgbGluZSBjb3VudCBpZiBpdCBpcyBhdXRvXHJcbiAgICAgICAgaWYgKGxpbmVDb3VudCA9PT0gJ2F1dG8nKSB7XHJcbiAgICAgICAgICAgIGxpbmVDb3VudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLyB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBtYWtlIHN1cmUgbGluZSBjb3VudCBpcyBhdCBsZWFzdCAxIGxpbmVcclxuICAgICAgICByZXR1cm4gTWF0aC5tYXgobGluZUNvdW50LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBoZWlnaHQgdGhhdCB0aGUgY2xhbXAgc2hvdWxkIGJlIGNvbnRhaW5lZCB3aXRoaW5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXQgY2xhbXBIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saW5lQ291bnQgKiB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbGluZSBoZWlnaHQgb2YgdGhpcyBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0IGxpbmVIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KS5saW5lSGVpZ2h0LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCBjb250ZW50IG92ZXJmbG93cyB0aGUgZGVzaXJlZCBoZWlnaHQgb2YgdGhlIGNsYW1wXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0IG5lZWRzQ2xhbXBpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgPiB0aGlzLmNsYW1wSGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHJlbmRlcmVkTGluZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLyB0aGlzLmxpbmVIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYnJlYWtXb3JkcygpIHtcclxuICAgICAgICByZXR1cm4gKDxIVE1MRWxlbWVudD50aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucyhicmVha0FsbENsYXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIENsYW1wRGlyZWN0aXZlXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGluamVjdG9yIGZvciB0aGUgc21lIGJhc2UgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhvc3QgbGlzdGVuZXIgZm9yIHBhZ2UgcmVzaXplIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICAgIHB1YmxpYyBvblJlc2l6ZSgpIHtcclxuICAgICAgICAvLyByZXNldCBpbml0aWFsIGNvbnRlbnQgc3RhdGVcclxuICAgICAgICB0aGlzLnJlc2V0Q2xhbXBDb250ZW50KCk7XHJcbiAgICAgICAgaWYgKHRoaXMubmVlZHNDbGFtcGluZykge1xyXG4gICAgICAgICAgICB0aGlzLmNsYW1wKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgYW5ndWxhciBPbkNoYW5nZXMgaW50ZXJmYWNlXHJcbiAgICAgKiBPbiBldmVyeSBpbnB1dCBjaGFuZ2UsIHdlIHJlY2FsY3VsYXRlIHRoZSBjbGFtcC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBpZiAoY2hhbmdlcy5zbWVDbGFtcCkge1xyXG4gICAgICAgICAgICAvLyByZXNldCBpbml0aWFsIGNvbnRlbnQgc3RhdGVcclxuICAgICAgICAgICAgdGhpcy5yZXNldENsYW1wQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gaWYgdGhlIGlucHV0IGNoYW5nZXMgcmVxdWlyZSBjbGFtcGluZyBhZ2FpbiwgdGhlbiByZS1jbGFtcFxyXG4gICAgICAgIGlmICh0aGlzLm5lZWRzQ2xhbXBpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGFtcCh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEJyZWFrV29yZHMoKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICg8SFRNTEVsZW1lbnQ+dGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICBpZiAoIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGJyZWFrQWxsQ2xhc3MpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChicmVha0FsbENsYXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVCcmVha1dvcmRzKCkge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSAoPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGJyZWFrQWxsQ2xhc3MpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShicmVha0FsbENsYXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldENsYW1wQ29udGVudCgpIHtcclxuICAgICAgICAvLyByZXNldCBpbml0aWFsIGNvbnRlbnQgc3RhdGVcclxuICAgICAgICB0aGlzLnJlbW92ZUJyZWFrV29yZHMoKTtcclxuICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zbWVDbGFtcCB8fCAnJztcclxuICAgICAgICAvLyB3aGVuZXZlciB0aGlzIGNoYW5nZXMsIHdlIG5lZWQgdG8gbWVhc3VyZSBhbmQgb3V0cHV0IHdoZXRoZXIgdGhlIGNvbnRlbnQgd2lsbCBiZSBjbGFtcGVkLlxyXG4gICAgICAgIHRoaXMuY2xhbXBlZC5lbWl0KHsgY2xhbXBlZDogdGhpcy5uZWVkc0NsYW1waW5nIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgaW5pdGlhbCBob3N0IGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldEluaXRpYWxIb3N0Q2xhc3NlcygpIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkuY29uY2F0KFtcclxuICAgICAgICAgICAgJ3NtZS1hcnJhbmdlLWxpbmUtY2xhbXAnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGFtcHMgdGhlIHRleHQgb2YgYSBub2RlIGJ5IGRvaW5nIGEgbGFzdCBjaGlsZCBmaXJzdCBwcm9jZXNzIG9mXHJcbiAgICAgKiBlbGltaW5hdGluZyB0ZXh0IHVudGlsIHRoZSBob3N0IGVsZW1lbnQgZml0cyBpbiB0aGUgY2xhbXAgaGVpZ2h0LlxyXG4gICAgICogd2hpbGUgdGhpcyBtZXRob2Qgc2hvdWxkIHN1cHBvcnQgSFRNTCBjb250ZW50LCBvdXIgaW5wdXQgdG8gdGhpcyBkaXJlY3RpdmUgaXMgYSBzdHJpbmcgZm9yIG5vdy5cclxuICAgICAqIEBwYXJhbSBub2RlIFRoZSBub2RlIHRvIGNsYW1wXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBub2RlIHdhcyBzdWNjZXNzZnVsbHkgY2xhbXBlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNsYW1wKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBQcm9jZXNzIHRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZSB3ZSB3YW50IHRvIGNsYW1wLCBzdGFydGluZyB3aXRoIHRoZSBsYXN0IG5vZGVcclxuICAgICAgICBmb3IgKGxldCBpID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZE5vZGVzW2ldO1xyXG5cclxuICAgICAgICAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHRleHQgYW5kIGVsZW1lbnQgbm9kZXMuXHJcbiAgICAgICAgICAgIGxldCBpc0NsYW1wZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xyXG4gICAgICAgICAgICAgICAgLy8gZGl2ZSBpbnRvIGVsZW1lbnQgbm9kZXMgcmVjdXJzaXZlbHlcclxuICAgICAgICAgICAgICAgIGlzQ2xhbXBlZCA9IHRoaXMuY2xhbXAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xyXG4gICAgICAgICAgICAgICAgLy8gIFdoZW4gd2UgZmluZCBhIHRleHQgbm9kZSwgdHJ5IGNsYW1waW5nIGl0LlxyXG4gICAgICAgICAgICAgICAgbGV0IHRleHQgPSBub2RlLnRleHRDb250ZW50O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmaXJzdCB0cmltIHdvcmRzIHVudGlsIHRoZSBjb250ZW50IGZpdHNcclxuICAgICAgICAgICAgICAgIHdoaWxlICh0ZXh0Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGxhc3Qgd29yZCBmcm9tIHRoZSB0ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IHRoaXMudHJpbUxhc3RXb3JkKHRleHQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJlZExpbmVzIDwgdGhpcy5saW5lQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2VudCB0b28gZmFyIHRoZXJlIG11c3QgYmUgYSBiaWcgd29yZCBoZXJlLCBhZGQgYmFjayB0aGUgbGFzdCB3b3JkIGFuZCBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gdGV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmJyZWFrV29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0QnJlYWtXb3JkcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IG9yaWdpbmFsVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU3RvcCBpZiB3ZSBhcmUgZG93biB0byBvbmUgd29yZCAodHJpbSBkaWRuJ3QgY2hhbmdlIHRleHQpIG9yIHdlIGFyZSBzaG9ydCBlbm91Z2ggdG8gbm90IG5lZWQgY2xhbXBpbmdcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS50ZXh0Q29udGVudCA9PT0gdGV4dCB8fCAhdGhpcy5uZWVkc0NsYW1waW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0ZXh0IGFuZCBub2RlIGNvbnRlbnQgYXJlIHRoZSBzYW1lIChpbiB0aGUgY2FzZSBjbGFtcGluZyBpcyBubyBsb25nZXIgbmVlZGVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gbm9kZS50ZXh0Q29udGVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzdGlsbCBoYXZlIG1vcmUgd29yZHMgdG8gdHJpbVxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSBub2RlLnRleHRDb250ZW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIG5vdyB0aGF0IHdlIGFyZSB0cmltbWVkIGRvd24gb24gd29yZHMsIHJlbW92ZSBjaGFyYWN0ZXJzIHVudGlsIHRoZSB0ZXh0IGZpdHMgd2l0aCB0aGUgZWxsaXBzaXNcclxuICAgICAgICAgICAgICAgIHdoaWxlICh0ZXh0Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUcmltIG9mZiBvbmUgdHJhaWxpbmcgY2hhcmFjdGVyIGFuZCBhbnkgdHJhaWxpbmcgd2hpdGVzcGFjZS5cclxuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gPHN0cmluZz4oPGFueT50ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpKS50cmltUmlnaHQoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBub2RlIGNvbnRlbnQgdG8gb3VyIHRleHQsIHBsdXMgYSB1bmljb2RlIGVsbGlwc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IGAke3RleHR9JHtVbmljb2RlLkhvcml6b250YWxFbGxpcHNpc31gO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTdG9wIGlmIG5vIG1vcmUgY2xhbXBpbmcgaXMgbmVlZGVkLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5uZWVkc0NsYW1waW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHN1Y2Nlc3NmdWxseSBjbGFtcGVkIHRoZSB0ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2xhbXBlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gV2UgYXJlIGRvbmUgaWYgdGhlIGNsYW1wIGlzIHNhdGlzZmllZFxyXG4gICAgICAgICAgICBpZiAoaXNDbGFtcGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IG5vZGUgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY2xhbXAsIHJlbW92ZSBpdCBhcyBpdCBpcyB0byBiaWcgdG8gZml0LlxyXG4gICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJpbXMgdGhlIGxhc3Qgd29yZCBmcm9tIHRoZSBzdHJpbmcsIG9yIHJldHVybnMgdGhlIG9yaWluYWwgc3RyaW5nIGlmIHRoZXJlIGlzIG9ubHkgb25lIHdvcmRcclxuICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIHRyaW1cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB0cmltTGFzdFdvcmQodGV4dDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgbGFzdFNwYWNlID0gdGV4dC5sYXN0SW5kZXhPZignICcpO1xyXG4gICAgICAgIGlmIChsYXN0U3BhY2UgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgbGFzdFNwYWNlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -6,7 +6,7 @@ export class DiscardDirective {
6
6
  this.strings = MsftSme.getStrings();
7
7
  this.smeDiscardId = `sme-discard-id-${MsftSme.newGuid()}`;
8
8
  this.isAlerting = false;
9
- this.alertElement = this.createAlertElement(this.strings.MsftSmeShell.Angular.Common.discard);
9
+ this.alertElement = this.createAlertElement(this.strings.MsftSmeShell.Angular.Common.discarded);
10
10
  }
11
11
  ngOnInit() {
12
12
  if (this.host && this.host.nativeElement) {
@@ -67,4 +67,4 @@ export class DiscardDirective {
67
67
  selector: '[smeDiscard]'
68
68
  }]
69
69
  }], function () { return [{ type: i0.ElementRef }]; }, null); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL2Rpc2NhcmQvZGlzY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFONUIsWUFBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQVcsQ0FBQztRQUV4QyxpQkFBWSxHQUFHLGtCQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUVyRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN6QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLEVBQUU7d0JBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUM5QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzt5QkFDN0I7NkJBQU07NEJBQ0g7Ozs7OEJBSUU7NEJBQ0YsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dDQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7NkJBQ3pCOzRCQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3lCQUMxQjtxQkFDSjtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBRSxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNwQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLE9BQU8sRUFBRTtZQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7bUdBL0RRLGdCQUFnQjt3RUFBaEIsZ0JBQWdCO3VGQUFoQixnQkFBZ0I7Y0FINUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzbWVEaXNjYXJkXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc2NhcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKTtcclxuICAgIHByaXZhdGUgYWxlcnRFbGVtZW50OiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcclxuICAgIHByaXZhdGUgc21lRGlzY2FyZElkID0gYHNtZS1kaXNjYXJkLWlkLSR7TXNmdFNtZS5uZXdHdWlkKCl9YDtcclxuICAgIHByaXZhdGUgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgICBwcml2YXRlIGlzQWxlcnRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0RWxlbWVudCA9IHRoaXMuY3JlYXRlQWxlcnRFbGVtZW50KHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uZGlzY2FyZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhvc3QgJiYgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uLnRhcmdldCAmJiBtdXRhdGlvbi50YXJnZXRbJ2Rpc2FibGVkJ10gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW11dGF0aW9uLnRhcmdldFsnZGlzYWJsZWQnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVBbGVydEVsZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW5pdGlhbGx5IHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUgaXMgdHJpZ2dlcmVkIHdoZW4gY29tcG9uZW50IGluaXRpYWxpemVzLCBza2lwIGFsZXJ0aW5nIHRoZSB1c2VyIHVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgbmV4dCB0aW1lIHRoZSB1c2VyIHByZXNzZXMgdGhlIGJ1dHRvbi4gR29pbmcgZm9yd2FyZCwgVGhlIGRpc2FibGVkIGF0dHJpYnV0ZSB3aWxsIG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJlIHRyaWdnZXJlZCBpZiB0aGUgYnV0dG9uIHN0YXRlIGNoYW5nZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBbGVydGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnREaXNjYXJkZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNBbGVydGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHsgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJ10sIGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5vYnNlcnZlcikge1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhbGVydERpc2NhcmRlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hbGVydEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmFsZXJ0RWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQWxlcnRFbGVtZW50KHZhbHVlOiBzdHJpbmcpOiBIVE1MUGFyYWdyYXBoRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgYWxlcnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgICAgIGFsZXJ0RWxlbWVudC5pZCA9IHRoaXMuc21lRGlzY2FyZElkO1xyXG4gICAgICAgIGFsZXJ0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnYWxlcnQnKTtcclxuICAgICAgICBhbGVydEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc21lLXNjcmVlbi1yZWFkZXInKTtcclxuICAgICAgICBhbGVydEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRUZXh0KCdhZnRlcmJlZ2luJywgdmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBhbGVydEVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVBbGVydEVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc21lRGlzY2FyZElkKTtcclxuICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL2Rpc2NhcmQvZGlzY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFONUIsWUFBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQVcsQ0FBQztRQUV4QyxpQkFBWSxHQUFHLGtCQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUVyRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN6QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLEVBQUU7d0JBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUM5QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzt5QkFDN0I7NkJBQU07NEJBQ0g7Ozs7OEJBSUU7NEJBQ0YsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dDQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7NkJBQ3pCOzRCQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3lCQUMxQjtxQkFDSjtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBRSxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNwQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLE9BQU8sRUFBRTtZQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7bUdBL0RRLGdCQUFnQjt3RUFBaEIsZ0JBQWdCO3VGQUFoQixnQkFBZ0I7Y0FINUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzbWVEaXNjYXJkXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc2NhcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKTtcclxuICAgIHByaXZhdGUgYWxlcnRFbGVtZW50OiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcclxuICAgIHByaXZhdGUgc21lRGlzY2FyZElkID0gYHNtZS1kaXNjYXJkLWlkLSR7TXNmdFNtZS5uZXdHdWlkKCl9YDtcclxuICAgIHByaXZhdGUgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgICBwcml2YXRlIGlzQWxlcnRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0RWxlbWVudCA9IHRoaXMuY3JlYXRlQWxlcnRFbGVtZW50KHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uZGlzY2FyZGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaG9zdCAmJiB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcclxuICAgICAgICAgICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKG11dGF0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobXV0YXRpb24udGFyZ2V0ICYmIG11dGF0aW9uLnRhcmdldFsnZGlzYWJsZWQnXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbXV0YXRpb24udGFyZ2V0WydkaXNhYmxlZCddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUFsZXJ0RWxlbWVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpbml0aWFsbHkgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBpcyB0cmlnZ2VyZWQgd2hlbiBjb21wb25lbnQgaW5pdGlhbGl6ZXMsIHNraXAgYWxlcnRpbmcgdGhlIHVzZXIgdW50aWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBuZXh0IHRpbWUgdGhlIHVzZXIgcHJlc3NlcyB0aGUgYnV0dG9uLiBHb2luZyBmb3J3YXJkLCBUaGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpbGwgb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYmUgdHJpZ2dlcmVkIGlmIHRoZSBidXR0b24gc3RhdGUgY2hhbmdlcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FsZXJ0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydERpc2NhcmRlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0FsZXJ0aW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0geyBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGlzYWJsZWQnXSwgY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlIH07XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgY29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFsZXJ0RGlzY2FyZGVkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFsZXJ0RWxlbWVudCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuYWxlcnRFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVBbGVydEVsZW1lbnQodmFsdWU6IHN0cmluZyk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50IHtcclxuICAgICAgICBjb25zdCBhbGVydEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICAgICAgYWxlcnRFbGVtZW50LmlkID0gdGhpcy5zbWVEaXNjYXJkSWQ7XHJcbiAgICAgICAgYWxlcnRFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdhbGVydCcpO1xyXG4gICAgICAgIGFsZXJ0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzbWUtc2NyZWVuLXJlYWRlcicpO1xyXG4gICAgICAgIGFsZXJ0RWxlbWVudC5pbnNlcnRBZGphY2VudFRleHQoJ2FmdGVyYmVnaW4nLCB2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGFsZXJ0RWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZUFsZXJ0RWxlbWVudCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zbWVEaXNjYXJkSWQpO1xyXG4gICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,10 +1,6 @@
1
1
  import { Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';
2
- /**
3
- * **HACK** @see https://github.com/jvandemo/generator-angular2-library/issues/221
4
- */
5
- import * as marked_ from 'marked';
2
+ import { marked } from 'marked';
6
3
  import * as i0 from "@angular/core";
7
- const marked = marked_;
8
4
  /**
9
5
  *
10
6
  * @smeDoc {@label Markdown @id sme-markdown-directive}
@@ -21,7 +17,6 @@ export class MarkdownDirective {
21
17
  constructor(host, renderer) {
22
18
  this.host = host;
23
19
  this.renderer = renderer;
24
- this.smeMarkdownUseInlineLexer = false;
25
20
  }
26
21
  get content() {
27
22
  return this.renderedContent;
@@ -35,22 +30,16 @@ export class MarkdownDirective {
35
30
  }
36
31
  }
37
32
  render() {
38
- let content = '';
33
+ this.renderedContent = '';
39
34
  if (marked && !MsftSme.isNullOrWhiteSpace(this.smeMarkdown)) {
40
- if (this.smeMarkdownUseInlineLexer) {
41
- content = marked.inlineLexer(this.smeMarkdown, []);
42
- }
43
- else {
44
- content = marked(this.smeMarkdown);
45
- }
35
+ this.renderedContent = marked.parse(this.smeMarkdown);
46
36
  }
47
- this.renderedContent = content;
48
37
  }
49
38
  }
50
39
  /** @nocollapse */ MarkdownDirective.ɵfac = function MarkdownDirective_Factory(t) { return new (t || MarkdownDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
51
40
  /** @nocollapse */ MarkdownDirective.ɵdir = i0.ɵɵdefineDirective({ type: MarkdownDirective, selectors: [["", "smeMarkdown", ""]], hostVars: 1, hostBindings: function MarkdownDirective_HostBindings(rf, ctx) { if (rf & 2) {
52
41
  i0.ɵɵhostProperty("innerHtml", ctx.content, i0.ɵɵsanitizeHtml);
53
- } }, inputs: { smeMarkdown: "smeMarkdown", smeMarkdownUseInlineLexer: "smeMarkdownUseInlineLexer" }, features: [i0.ɵɵNgOnChangesFeature] });
42
+ } }, inputs: { smeMarkdown: "smeMarkdown" }, features: [i0.ɵɵNgOnChangesFeature] });
54
43
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MarkdownDirective, [{
55
44
  type: Directive,
56
45
  args: [{
@@ -59,10 +48,8 @@ export class MarkdownDirective {
59
48
  }]
60
49
  }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { smeMarkdown: [{
61
50
  type: Input
62
- }], smeMarkdownUseInlineLexer: [{
63
- type: Input
64
51
  }], content: [{
65
52
  type: HostBinding,
66
53
  args: ['innerHtml']
67
54
  }] }); })();
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9tYXJrZG93bi9tYXJrZG93bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUV2SDs7R0FFRztBQUNILE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDOztBQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFFdkI7Ozs7Ozs7Ozs7O0dBV0c7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBYzFCLFlBQW9CLElBQWdCLEVBQVUsUUFBbUI7UUFBN0MsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFUMUQsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBVXpDLENBQUM7SUFSRCxJQUNXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQU9NLFFBQVE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjtJQUNMLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6RCxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtnQkFDaEMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUN0RDtpQkFBTTtnQkFDSCxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztTQUVKO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQzs7cUdBdENRLGlCQUFpQjt5RUFBakIsaUJBQWlCOzs7dUZBQWpCLGlCQUFpQjtjQUo3QixTQUFTO2VBQUM7Z0JBQ1AsMEZBQTBGO2dCQUMxRixRQUFRLEVBQUUsZUFBZTthQUM1QjtxRkFHVSxXQUFXO2tCQURqQixLQUFLO1lBSUMseUJBQXlCO2tCQUQvQixLQUFLO1lBSUssT0FBTztrQkFEakIsV0FBVzttQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiAqKkhBQ0sqKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qdmFuZGVtby9nZW5lcmF0b3ItYW5ndWxhcjItbGlicmFyeS9pc3N1ZXMvMjIxXHJcbiAqL1xyXG5pbXBvcnQgKiBhcyBtYXJrZWRfIGZyb20gJ21hcmtlZCc7XHJcbmNvbnN0IG1hcmtlZCA9IG1hcmtlZF87XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIE1hcmtkb3duIEBpZCBzbWUtbWFya2Rvd24tZGlyZWN0aXZlfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL21hcmtkb3duLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9iYXNpYy11c2FnZS5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFzaWMtdXNhZ2UuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKi9cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciA+IFJlYXNvbjogdGhpcyBpcyBmb3IgYWxsIGRpc2FibGVkIGVsZW1lbnRzXHJcbiAgICBzZWxlY3RvcjogJ1tzbWVNYXJrZG93bl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXJrZG93bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc21lTWFya2Rvd246IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNtZU1hcmtkb3duVXNlSW5saW5lTGV4ZXIgPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2lubmVySHRtbCcpXHJcbiAgICBwdWJsaWMgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlZENvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW5kZXJlZENvbnRlbnQ6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAnc21lLWRvY3VtZW50YXRpb24nKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLnNtZU1hcmtkb3duKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW5kZXIoKTogYW55IHtcclxuICAgICAgICBsZXQgY29udGVudCA9ICcnO1xyXG4gICAgICAgIGlmIChtYXJrZWQgJiYgIU1zZnRTbWUuaXNOdWxsT3JXaGl0ZVNwYWNlKHRoaXMuc21lTWFya2Rvd24pKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNtZU1hcmtkb3duVXNlSW5saW5lTGV4ZXIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBtYXJrZWQuaW5saW5lTGV4ZXIodGhpcy5zbWVNYXJrZG93biwgW10pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29udGVudCA9IG1hcmtlZCh0aGlzLnNtZU1hcmtkb3duKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlZENvbnRlbnQgPSBjb250ZW50O1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9tYXJrZG93bi9tYXJrZG93bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUVoQzs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFXMUIsWUFBb0IsSUFBZ0IsRUFBVSxRQUFtQjtRQUE3QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNqRSxDQUFDO0lBUkQsSUFDVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFPTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQzs7cUdBN0JRLGlCQUFpQjt5RUFBakIsaUJBQWlCOzs7dUZBQWpCLGlCQUFpQjtjQUo3QixTQUFTO2VBQUM7Z0JBQ1AsMEZBQTBGO2dCQUMxRixRQUFRLEVBQUUsZUFBZTthQUM1QjtxRkFHVSxXQUFXO2tCQURqQixLQUFLO1lBSUssT0FBTztrQkFEakIsV0FBVzttQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VkIH0gZnJvbSAnbWFya2VkJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgTWFya2Rvd24gQGlkIHNtZS1tYXJrZG93bi1kaXJlY3RpdmV9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvbWFya2Rvd24tb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2Jhc2ljLXVzYWdlLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9iYXNpYy11c2FnZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqL1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yID4gUmVhc29uOiB0aGlzIGlzIGZvciBhbGwgZGlzYWJsZWQgZWxlbWVudHNcclxuICAgIHNlbGVjdG9yOiAnW3NtZU1hcmtkb3duXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcmtkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzbWVNYXJrZG93bjogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnaW5uZXJIdG1sJylcclxuICAgIHB1YmxpYyBnZXQgY29udGVudCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVkQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlcmVkQ29udGVudDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaG9zdDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdzbWUtZG9jdW1lbnRhdGlvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuc21lTWFya2Rvd24pIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbmRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVkQ29udGVudCA9ICcnO1xyXG4gICAgICAgIGlmIChtYXJrZWQgJiYgIU1zZnRTbWUuaXNOdWxsT3JXaGl0ZVNwYWNlKHRoaXMuc21lTWFya2Rvd24pKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRDb250ZW50ID0gbWFya2VkLnBhcnNlKHRoaXMuc21lTWFya2Rvd24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=