speechrecorderng 3.0.0 → 3.3.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 (142) hide show
  1. package/esm2020/lib/action/action.mjs +2 -1
  2. package/esm2020/lib/audio/array_audio_buffer.mjs +65 -2
  3. package/esm2020/lib/audio/array_audio_buffer_input_stream.mjs +2 -2
  4. package/esm2020/lib/audio/array_audio_buffer_random_access_stream.mjs +16 -0
  5. package/esm2020/lib/audio/audio_data_holder.mjs +203 -48
  6. package/esm2020/lib/audio/audio_display.mjs +10 -34
  7. package/esm2020/lib/audio/audio_player.mjs +18 -45
  8. package/esm2020/lib/audio/capture/capture.mjs +293 -69
  9. package/esm2020/lib/audio/dsp/level_measure.mjs +211 -88
  10. package/esm2020/lib/audio/impl/wavformat.mjs +1 -1
  11. package/esm2020/lib/audio/impl/wavreader.mjs +134 -0
  12. package/esm2020/lib/audio/impl/wavwriter.mjs +10 -9
  13. package/esm2020/lib/audio/inddb_audio_buffer.mjs +508 -0
  14. package/esm2020/lib/audio/net_audio_buffer.mjs +297 -0
  15. package/esm2020/lib/audio/persistor.mjs +8 -2
  16. package/esm2020/lib/audio/playback/array_audio_buffer_source_node.mjs +15 -154
  17. package/esm2020/lib/audio/playback/audio_source_node.mjs +18 -0
  18. package/esm2020/lib/audio/playback/audio_source_worklet_module_loader.mjs +167 -0
  19. package/esm2020/lib/audio/playback/inddb_audio_buffer_source_node.mjs +167 -0
  20. package/esm2020/lib/audio/playback/net_audio_buffer_source_node.mjs +218 -0
  21. package/esm2020/lib/audio/playback/player.mjs +190 -171
  22. package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +35 -76
  23. package/esm2020/lib/audio/ui/audio_display_control.mjs +12 -24
  24. package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +14 -45
  25. package/esm2020/lib/audio/ui/audiosignal.mjs +333 -267
  26. package/esm2020/lib/audio/ui/container.mjs +40 -57
  27. package/esm2020/lib/audio/ui/livelevel.mjs +53 -52
  28. package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +5 -19
  29. package/esm2020/lib/audio/ui/sonagram.mjs +386 -339
  30. package/esm2020/lib/db/inddb.mjs +120 -0
  31. package/esm2020/lib/io/BinaryReader.mjs +85 -0
  32. package/esm2020/lib/io/stream.mjs +101 -1
  33. package/esm2020/lib/net/uploader.mjs +111 -5
  34. package/esm2020/lib/recorder_component.mjs +59 -1
  35. package/esm2020/lib/speechrecorder/project/project.mjs +10 -1
  36. package/esm2020/lib/speechrecorder/project/project.service.mjs +3 -3
  37. package/esm2020/lib/speechrecorder/recording.mjs +30 -6
  38. package/esm2020/lib/speechrecorder/recordings/basic_recording.service.mjs +213 -0
  39. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +732 -65
  40. package/esm2020/lib/speechrecorder/script/script.service.mjs +3 -3
  41. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +358 -184
  42. package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +181 -28
  43. package/esm2020/lib/speechrecorder/session/controlpanel.mjs +47 -129
  44. package/esm2020/lib/speechrecorder/session/item.mjs +13 -1
  45. package/esm2020/lib/speechrecorder/session/progress.mjs +26 -55
  46. package/esm2020/lib/speechrecorder/session/prompting.mjs +33 -176
  47. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +6 -6
  48. package/esm2020/lib/speechrecorder/session/recording_file_cache.mjs +28 -15
  49. package/esm2020/lib/speechrecorder/session/recording_list.mjs +92 -55
  50. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +9 -13
  51. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +9 -18
  52. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +10 -36
  53. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +10 -37
  54. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +80 -56
  55. package/esm2020/lib/speechrecorder/session/session.service.mjs +3 -3
  56. package/esm2020/lib/speechrecorder/session/session_finished_dialog.mjs +4 -4
  57. package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +409 -165
  58. package/esm2020/lib/speechrecorder/session/warning_bar.mjs +6 -29
  59. package/esm2020/lib/speechrecorder/spruploader.mjs +3 -3
  60. package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +6 -41
  61. package/esm2020/lib/speechrecorderng.component.mjs +42 -31
  62. package/esm2020/lib/speechrecorderng.module.mjs +5 -5
  63. package/esm2020/lib/spr.config.mjs +3 -3
  64. package/esm2020/lib/spr.module.version.mjs +2 -2
  65. package/esm2020/lib/ui/canvas_layer_comp.mjs +3 -3
  66. package/esm2020/lib/ui/message_dialog.mjs +7 -7
  67. package/esm2020/lib/ui/recordingitem_display.mjs +26 -59
  68. package/esm2020/lib/utils/scrollIntoViewToBottom.mjs +3 -3
  69. package/esm2020/lib/utils/ua-parser.mjs +28 -4
  70. package/esm2020/lib/utils/utils.mjs +29 -1
  71. package/fesm2015/speechrecorderng.mjs +12755 -9195
  72. package/fesm2015/speechrecorderng.mjs.map +1 -1
  73. package/fesm2020/speechrecorderng.mjs +12652 -9101
  74. package/fesm2020/speechrecorderng.mjs.map +1 -1
  75. package/{speechrecorderng.d.ts → index.d.ts} +0 -0
  76. package/lib/audio/array_audio_buffer.d.ts +17 -1
  77. package/lib/audio/array_audio_buffer_random_access_stream.d.ts +9 -0
  78. package/lib/audio/audio_data_holder.d.ts +69 -14
  79. package/lib/audio/audio_display.d.ts +1 -1
  80. package/lib/audio/audio_player.d.ts +3 -7
  81. package/lib/audio/capture/capture.d.ts +24 -4
  82. package/lib/audio/dsp/level_measure.d.ts +2 -23
  83. package/lib/audio/impl/wavformat.d.ts +3 -3
  84. package/lib/audio/impl/wavreader.d.ts +16 -0
  85. package/lib/audio/impl/wavwriter.d.ts +1 -4
  86. package/lib/audio/inddb_audio_buffer.d.ts +68 -0
  87. package/lib/audio/net_audio_buffer.d.ts +59 -0
  88. package/lib/audio/persistor.d.ts +3 -9
  89. package/lib/audio/playback/array_audio_buffer_source_node.d.ts +2 -8
  90. package/lib/audio/playback/audio_source_node.d.ts +10 -0
  91. package/lib/audio/playback/audio_source_worklet_module_loader.d.ts +4 -0
  92. package/lib/audio/playback/inddb_audio_buffer_source_node.d.ts +21 -0
  93. package/lib/audio/playback/net_audio_buffer_source_node.d.ts +27 -0
  94. package/lib/audio/playback/player.d.ts +19 -16
  95. package/lib/audio/ui/audio_canvas_layer_comp.d.ts +3 -3
  96. package/lib/audio/ui/audio_display_control.d.ts +3 -6
  97. package/lib/audio/ui/audio_display_scroll_pane.d.ts +1 -1
  98. package/lib/audio/ui/audiosignal.d.ts +4 -3
  99. package/lib/audio/ui/container.d.ts +1 -1
  100. package/lib/audio/ui/livelevel.d.ts +11 -4
  101. package/lib/audio/ui/scroll_pane_horizontal.d.ts +1 -1
  102. package/lib/audio/ui/sonagram.d.ts +4 -3
  103. package/lib/db/inddb.d.ts +21 -0
  104. package/lib/io/BinaryReader.d.ts +18 -0
  105. package/lib/io/stream.d.ts +18 -0
  106. package/lib/net/uploader.d.ts +20 -2
  107. package/lib/recorder_component.d.ts +5 -0
  108. package/lib/speechrecorder/project/project.d.ts +9 -0
  109. package/lib/speechrecorder/recording.d.ts +8 -2
  110. package/lib/speechrecorder/recordings/basic_recording.service.d.ts +27 -0
  111. package/lib/speechrecorder/recordings/recordings.service.d.ts +21 -6
  112. package/lib/speechrecorder/session/audiorecorder.d.ts +7 -18
  113. package/lib/speechrecorder/session/basicrecorder.d.ts +28 -4
  114. package/lib/speechrecorder/session/controlpanel.d.ts +7 -7
  115. package/lib/speechrecorder/session/item.d.ts +1 -0
  116. package/lib/speechrecorder/session/progress.d.ts +2 -1
  117. package/lib/speechrecorder/session/prompting.d.ts +5 -5
  118. package/lib/speechrecorder/session/recorder_combi_pane.d.ts +1 -1
  119. package/lib/speechrecorder/session/recording_file_cache.d.ts +7 -4
  120. package/lib/speechrecorder/session/recording_list.d.ts +2 -1
  121. package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +1 -1
  122. package/lib/speechrecorder/session/recordingfile/recording-file-navi.component.d.ts +1 -1
  123. package/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.d.ts +1 -1
  124. package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +1 -1
  125. package/lib/speechrecorder/session/recordingfile/recordingfile-service.d.ts +4 -5
  126. package/lib/speechrecorder/session/session_finished_dialog.d.ts +1 -1
  127. package/lib/speechrecorder/session/sessionmanager.d.ts +10 -10
  128. package/lib/speechrecorder/session/warning_bar.d.ts +1 -1
  129. package/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.d.ts +1 -1
  130. package/lib/speechrecorderng.component.d.ts +2 -1
  131. package/lib/spr.module.version.d.ts +1 -1
  132. package/lib/ui/canvas_layer_comp.d.ts +1 -1
  133. package/lib/ui/message_dialog.d.ts +1 -1
  134. package/lib/ui/recordingitem_display.d.ts +3 -2
  135. package/lib/utils/scrollIntoViewToBottom.d.ts +1 -1
  136. package/lib/utils/ua-parser.d.ts +4 -1
  137. package/lib/utils/utils.d.ts +6 -0
  138. package/package.json +5 -4
  139. package/esm2020/lib/math/utils.mjs +0 -14
  140. package/esm2020/lib/utils/css_utils.mjs +0 -7
  141. package/lib/math/utils.d.ts +0 -3
  142. package/lib/utils/css_utils.d.ts +0 -3
@@ -1,12 +1,12 @@
1
1
  import { Action } from '../../action/action';
2
2
  import { Component, ViewChild, Input } from "@angular/core";
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/progress-spinner";
4
+ import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/material/icon";
6
- import * as i3 from "@angular/material/tooltip";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "@angular/material/button";
9
- import * as i6 from "@angular/flex-layout/extended";
6
+ import * as i3 from "@angular/material/progress-spinner";
7
+ import * as i4 from "@angular/material/tooltip";
8
+ import * as i5 from "@angular/flex-layout/extended";
9
+ import * as i6 from "@angular/material/button";
10
10
  import * as i7 from "@angular/material/dialog";
11
11
  import * as i8 from "@angular/flex-layout/flex";
12
12
  export class StatusDisplay {
@@ -16,44 +16,21 @@ export class StatusDisplay {
16
16
  this.statusWaiting = false;
17
17
  }
18
18
  }
19
- StatusDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: StatusDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- StatusDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: { statusAlertType: "statusAlertType", statusMsg: "statusMsg", statusWaiting: "statusWaiting" }, ngImport: i0, template: `
19
+ StatusDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StatusDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ StatusDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: { statusAlertType: "statusAlertType", statusMsg: "statusMsg", statusWaiting: "statusWaiting" }, ngImport: i0, template: `
21
21
  <p matTooltip="Status">
22
22
  <mat-progress-spinner *ngIf="statusWaiting" color="black" mode="indeterminate" [diameter]="30" [strokeWidth]="5"></mat-progress-spinner><mat-icon *ngIf="statusAlertType==='error'" style="color:red">report_problem</mat-icon>
23
23
  {{statusMsg}}
24
24
  </p>
25
- `, isInline: true, styles: [":host{display:inline;text-align:left;font-size:smaller}\n", "p{padding:4px;white-space:nowrap;display:inline-block}\n", "mat-progress-spinner{color:#000;display:inline-block}\n", "span{color:red}\n"], components: [{ type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: StatusDisplay, decorators: [{
25
+ `, isInline: true, styles: [":host{display:inline;text-align:left;font-size:smaller}\n", "p{padding:4px;white-space:nowrap;display:inline-block}\n", "mat-progress-spinner{color:#000;display:inline-block}\n", "span{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StatusDisplay, decorators: [{
27
27
  type: Component,
28
- args: [{
29
- selector: 'app-sprstatusdisplay',
30
- template: `
28
+ args: [{ selector: 'app-sprstatusdisplay', template: `
31
29
  <p matTooltip="Status">
32
30
  <mat-progress-spinner *ngIf="statusWaiting" color="black" mode="indeterminate" [diameter]="30" [strokeWidth]="5"></mat-progress-spinner><mat-icon *ngIf="statusAlertType==='error'" style="color:red">report_problem</mat-icon>
33
31
  {{statusMsg}}
34
32
  </p>
35
- `,
36
- styles: [`:host {
37
- display: inline;
38
- text-align: left;
39
- font-size: smaller;
40
- }`, `
41
- p {
42
- padding: 4px;
43
- white-space:nowrap;
44
- display: inline-block;
45
- }
46
- `, `
47
- mat-progress-spinner {
48
- color: black;
49
- display: inline-block;
50
- }
51
- `, `
52
- span {
53
- color: red;
54
- }
55
- `]
56
- }]
33
+ `, styles: [":host{display:inline;text-align:left;font-size:smaller}\n", "p{padding:4px;white-space:nowrap;display:inline-block}\n", "mat-progress-spinner{color:#000;display:inline-block}\n", "span{color:red}\n"] }]
57
34
  }], propDecorators: { statusAlertType: [{
58
35
  type: Input
59
36
  }], statusMsg: [{
@@ -108,26 +85,15 @@ export class UploadStatus {
108
85
  return this._status;
109
86
  }
110
87
  }
111
- UploadStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadStatus, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- UploadStatus.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: UploadStatus, selector: "app-uploadstatus", inputs: { value: "value", awaitNewUpload: "awaitNewUpload", status: "status" }, ngImport: i0, template: `
88
+ UploadStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UploadStatus, deps: [], target: i0.ɵɵFactoryTarget.Component });
89
+ UploadStatus.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: UploadStatus, selector: "app-uploadstatus", inputs: { value: "value", awaitNewUpload: "awaitNewUpload", status: "status" }, ngImport: i0, template: `
113
90
  <mat-progress-spinner [mode]="spinnerMode" [color]="status" [diameter]="30" [strokeWidth]="5" [value]="_value" [matTooltip]="toolTipText"></mat-progress-spinner>
114
- `, isInline: true, styles: [":host{flex:1;text-align:left}\n", "mat-progress-spinner{display:inline-block}\n"], components: [{ type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadStatus, decorators: [{
91
+ `, isInline: true, styles: [":host{flex:1;text-align:left}\n", "mat-progress-spinner{display:inline-block}\n"], dependencies: [{ kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UploadStatus, decorators: [{
116
93
  type: Component,
117
- args: [{
118
- selector: 'app-uploadstatus',
119
- template: `
94
+ args: [{ selector: 'app-uploadstatus', template: `
120
95
  <mat-progress-spinner [mode]="spinnerMode" [color]="status" [diameter]="30" [strokeWidth]="5" [value]="_value" [matTooltip]="toolTipText"></mat-progress-spinner>
121
- `,
122
- styles: [`:host {
123
- flex: 1;
124
- /* align-self: flex-start; */
125
- /*display: inline; */
126
- text-align: left;
127
- }`, `mat-progress-spinner{
128
- display: inline-block;
129
- }`]
130
- }]
96
+ `, styles: [":host{flex:1;text-align:left}\n", "mat-progress-spinner{display:inline-block}\n"] }]
131
97
  }], propDecorators: { value: [{
132
98
  type: Input
133
99
  }], awaitNewUpload: [{
@@ -140,25 +106,15 @@ export class ProgressDisplay {
140
106
  this.progressMsg = '[itemcode]';
141
107
  }
142
108
  }
143
- ProgressDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProgressDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
144
- ProgressDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProgressDisplay, selector: "app-sprprogressdisplay", ngImport: i0, template: `
109
+ ProgressDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProgressDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
+ ProgressDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ProgressDisplay, selector: "app-sprprogressdisplay", ngImport: i0, template: `
145
111
  <p>{{progressMsg}}</p>
146
112
  `, isInline: true, styles: [":host{flex:1;width:100%;text-align:left}\n"] });
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProgressDisplay, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProgressDisplay, decorators: [{
148
114
  type: Component,
149
- args: [{
150
- selector: 'app-sprprogressdisplay',
151
- template: `
115
+ args: [{ selector: 'app-sprprogressdisplay', template: `
152
116
  <p>{{progressMsg}}</p>
153
- `,
154
- styles: [`:host {
155
- flex: 1;
156
- /* align-self: flex-start; */
157
- /*display: inline; */
158
- width: 100%;
159
- text-align: left;
160
- }`]
161
- }]
117
+ `, styles: [":host{flex:1;width:100%;text-align:left}\n"] }]
162
118
  }] });
163
119
  export class TransportActions {
164
120
  constructor() {
@@ -244,8 +200,8 @@ export class TransportPanel {
244
200
  }
245
201
  }
246
202
  }
247
- TransportPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TransportPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
- TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TransportPanel, selector: "app-sprtransport", inputs: { readonly: "readonly", actions: "actions", navigationEnabled: "navigationEnabled", pausingEnabled: "pausingEnabled" }, ngImport: i0, template: `
203
+ TransportPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TransportPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
204
+ TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TransportPanel, selector: "app-sprtransport", inputs: { readonly: "readonly", actions: "actions", navigationEnabled: "navigationEnabled", pausingEnabled: "pausingEnabled" }, ngImport: i0, template: `
249
205
  <button id="bwdBtn" *ngIf="navigationEnabled" (click)="actions.bwdAction.perform()" [disabled]="bwdDisabled()"
250
206
  mat-raised-button>
251
207
  <mat-icon>chevron_left</mat-icon>
@@ -265,12 +221,10 @@ TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
265
221
  <mat-icon>chevron_right</mat-icon>
266
222
  </button>
267
223
 
268
- `, isInline: true, styles: [":host{flex:20;align-self:center;width:100%;text-align:center;align-content:center;margin:0}\n", "div{display:inline;flex:0}\n", "button{touch-action:manipulation}\n"], components: [{ type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TransportPanel, decorators: [{
224
+ `, isInline: true, styles: [":host{flex:20;align-self:center;width:100%;text-align:center;align-content:center;margin:0}\n", "div{display:inline;flex:0}\n", "button{touch-action:manipulation}\n"], dependencies: [{ kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TransportPanel, decorators: [{
270
226
  type: Component,
271
- args: [{
272
- selector: 'app-sprtransport',
273
- template: `
227
+ args: [{ selector: 'app-sprtransport', template: `
274
228
  <button id="bwdBtn" *ngIf="navigationEnabled" (click)="actions.bwdAction.perform()" [disabled]="bwdDisabled()"
275
229
  mat-raised-button>
276
230
  <mat-icon>chevron_left</mat-icon>
@@ -290,25 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
290
244
  <mat-icon>chevron_right</mat-icon>
291
245
  </button>
292
246
 
293
- `,
294
- styles: [`:host {
295
- flex: 20;
296
- align-self: center;
297
- width: 100%;
298
- text-align: center;
299
- align-content: center;
300
- margin: 0;
301
-
302
- }`, `
303
- div {
304
- display: inline;
305
- flex: 0;
306
- }`, `
307
- button {
308
- touch-action: manipulation;
309
- }`
310
- ]
311
- }]
247
+ `, styles: [":host{flex:20;align-self:center;width:100%;text-align:center;align-content:center;margin:0}\n", "div{display:inline;flex:0}\n", "button{touch-action:manipulation}\n"] }]
312
248
  }], propDecorators: { readonly: [{
313
249
  type: Input
314
250
  }], actions: [{
@@ -326,19 +262,15 @@ export class WakeLockIndicator {
326
262
  this._screenLocked = screenLock;
327
263
  }
328
264
  }
329
- WakeLockIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WakeLockIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
330
- WakeLockIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: WakeLockIndicator, selector: "app-wakelockindicator", inputs: { screenLocked: "screenLocked" }, ngImport: i0, template: `
265
+ WakeLockIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WakeLockIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
266
+ WakeLockIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: WakeLockIndicator, selector: "app-wakelockindicator", inputs: { screenLocked: "screenLocked" }, ngImport: i0, template: `
331
267
  <mat-icon *ngIf="_screenLocked">screen_lock_portrait</mat-icon>
332
- `, isInline: true, components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WakeLockIndicator, decorators: [{
268
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WakeLockIndicator, decorators: [{
334
270
  type: Component,
335
- args: [{
336
- selector: 'app-wakelockindicator',
337
- template: `
271
+ args: [{ selector: 'app-wakelockindicator', template: `
338
272
  <mat-icon *ngIf="_screenLocked">screen_lock_portrait</mat-icon>
339
- `,
340
- styles: []
341
- }]
273
+ ` }]
342
274
  }], ctorParameters: function () { return []; }, propDecorators: { screenLocked: [{
343
275
  type: Input
344
276
  }] } });
@@ -357,19 +289,15 @@ export class ReadyStateIndicator {
357
289
  return this._ready;
358
290
  }
359
291
  }
360
- ReadyStateIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ReadyStateIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
- ReadyStateIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: { ready: "ready" }, ngImport: i0, template: `
292
+ ReadyStateIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadyStateIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
293
+ ReadyStateIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: { ready: "ready" }, ngImport: i0, template: `
362
294
  <mat-icon [matTooltip]="readyStateToolTip">{{hourGlassIconName}}</mat-icon>
363
- `, isInline: true, components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ReadyStateIndicator, decorators: [{
295
+ `, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadyStateIndicator, decorators: [{
365
297
  type: Component,
366
- args: [{
367
- selector: 'app-readystateindicator',
368
- template: `
298
+ args: [{ selector: 'app-readystateindicator', template: `
369
299
  <mat-icon [matTooltip]="readyStateToolTip">{{hourGlassIconName}}</mat-icon>
370
- `,
371
- styles: []
372
- }]
300
+ ` }]
373
301
  }], ctorParameters: function () { return []; }, propDecorators: { ready: [{
374
302
  type: Input
375
303
  }] } });
@@ -387,8 +315,8 @@ export class ControlPanel {
387
315
  return this._ready;
388
316
  }
389
317
  }
390
- ControlPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ControlPanel, deps: [{ token: i7.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
391
- ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ControlPanel, selector: "app-sprcontrolpanel", inputs: { readonly: "readonly", transportActions: "transportActions", processing: "processing", statusMsg: "statusMsg", statusAlertType: "statusAlertType", statusWaiting: "statusWaiting", uploadStatus: "uploadStatus", uploadProgress: "uploadProgress", currentRecording: "currentRecording", enableUploadRecordings: "enableUploadRecordings", navigationEnabled: "navigationEnabled", ready: "ready" }, viewQueries: [{ propertyName: "statusDisplay", first: true, predicate: StatusDisplay, descendants: true, static: true }, { propertyName: "transportPanel", first: true, predicate: TransportPanel, descendants: true, static: true }], ngImport: i0, template: `
318
+ ControlPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlPanel, deps: [{ token: i7.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
319
+ ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ControlPanel, selector: "app-sprcontrolpanel", inputs: { readonly: "readonly", transportActions: "transportActions", processing: "processing", statusMsg: "statusMsg", statusAlertType: "statusAlertType", statusWaiting: "statusWaiting", uploadStatus: "uploadStatus", uploadProgress: "uploadProgress", currentRecording: "currentRecording", enableUploadRecordings: "enableUploadRecordings", navigationEnabled: "navigationEnabled", ready: "ready" }, viewQueries: [{ propertyName: "statusDisplay", first: true, predicate: StatusDisplay, descendants: true, static: true }, { propertyName: "transportPanel", first: true, predicate: TransportPanel, descendants: true, static: true }], ngImport: i0, template: `
392
320
  <div fxHide.xs fxLayout="row" >
393
321
  <app-sprstatusdisplay fxFlex="0 0 0" [statusMsg]="statusMsg" [statusAlertType]="statusAlertType" [statusWaiting]="statusWaiting"
394
322
  class="hidden-xs"></app-sprstatusdisplay>
@@ -408,12 +336,10 @@ ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
408
336
  <app-sprtransport [readonly]="readonly" [actions]="transportActions" [navigationEnabled]="navigationEnabled"></app-sprtransport>
409
337
 
410
338
  </div>
411
- `, isInline: true, styles: ["div{align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n"], components: [{ type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions", "navigationEnabled", "pausingEnabled"] }, { type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }], directives: [{ type: i6.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { type: i8.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }] });
412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ControlPanel, decorators: [{
339
+ `, isInline: true, styles: ["div{align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n"], dependencies: [{ kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i8.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { kind: "component", type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { kind: "component", type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions", "navigationEnabled", "pausingEnabled"] }, { kind: "component", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }] });
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlPanel, decorators: [{
413
341
  type: Component,
414
- args: [{
415
- selector: 'app-sprcontrolpanel',
416
- template: `
342
+ args: [{ selector: 'app-sprcontrolpanel', template: `
417
343
  <div fxHide.xs fxLayout="row" >
418
344
  <app-sprstatusdisplay fxFlex="0 0 0" [statusMsg]="statusMsg" [statusAlertType]="statusAlertType" [statusWaiting]="statusWaiting"
419
345
  class="hidden-xs"></app-sprstatusdisplay>
@@ -433,15 +359,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
433
359
  <app-sprtransport [readonly]="readonly" [actions]="transportActions" [navigationEnabled]="navigationEnabled"></app-sprtransport>
434
360
 
435
361
  </div>
436
- `,
437
- styles: [`div {
438
- align-content: center;
439
- align-items: center;
440
- margin: 0;
441
- padding: 20px;
442
- min-height: min-content; /* important */
443
- }`]
444
- }]
362
+ `, styles: ["div{align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n"] }]
445
363
  }], ctorParameters: function () { return [{ type: i7.MatDialog }]; }, propDecorators: { statusDisplay: [{
446
364
  type: ViewChild,
447
365
  args: [StatusDisplay, { static: true }]
@@ -473,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
473
391
  }], ready: [{
474
392
  type: Input
475
393
  }] } });
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vY29udHJvbHBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUMxQyxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQzVCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBdUN2QixNQUFNLE9BQU8sYUFBYTtJQWpDMUI7UUFrQ1csb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsY0FBUyxHQUFHLGVBQWUsQ0FBQztRQUM1QixrQkFBYSxHQUFFLEtBQUssQ0FBQztLQUMvQjs7MkdBSlksYUFBYTsrRkFBYixhQUFhLG9LQTdCZDs7Ozs7R0FLVDs0RkF3QlUsYUFBYTtrQkFqQ3pCLFNBQVM7bUJBQUM7b0JBRVQsUUFBUSxFQUFFLHNCQUFzQjtvQkFFaEMsUUFBUSxFQUFFOzs7OztHQUtUO29CQUNELE1BQU0sRUFBRSxDQUFDOzs7O0lBSVAsRUFBRTs7Ozs7O0dBTUgsRUFBRTs7Ozs7R0FLRixFQUFFOzs7O0dBSUYsQ0FBQztpQkFFSDs4QkFHVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSzs7QUFrQlIsTUFBTSxPQUFPLFlBQVk7SUFkekI7UUFlVSxvQkFBZSxHQUFDLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUF1QixhQUFhLENBQUM7UUFFaEQsV0FBTSxHQUFHLEdBQUcsQ0FBQTtRQUNaLGlCQUFZLEdBQWEsSUFBSSxDQUFBO1FBQzdCLGdCQUFXLEdBQVEsRUFBRSxDQUFBO0tBNEN0QjtJQTFDUyxjQUFjO1FBRXBCLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxJQUFJLENBQUMs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCxnSkFuVFUsYUFBYSx5R0ErSmIsY0FBYyxrSEExSWQsWUFBWSx5RkFvUFosbUJBQW1COzRGQW1EbkIsWUFBWTtrQkFqQ3hCLFNBQVM7bUJBQUM7b0JBRVQsUUFBUSxFQUFFLHFCQUFxQjtvQkFFL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7O0lBTVAsQ0FBQztpQkFDSjtnR0FFNkMsYUFBYTtzQkFBeEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNHLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFbEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBUU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aW9ufSBmcm9tICcuLi8uLi9hY3Rpb24vYWN0aW9uJ1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCwgVmlld0NoaWxkLCBJbnB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtQcm9ncmVzc1NwaW5uZXJNb2RlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJzdGF0dXNkaXNwbGF5JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxwIG1hdFRvb2x0aXA9XCJTdGF0dXNcIj5cclxuICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwic3RhdHVzV2FpdGluZ1wiIGNvbG9yPVwiYmxhY2tcIiAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMzBcIiBbc3Ryb2tlV2lkdGhdPVwiNVwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+PG1hdC1pY29uICpuZ0lmPVwic3RhdHVzQWxlcnRUeXBlPT09J2Vycm9yJ1wiIHN0eWxlPVwiY29sb3I6cmVkXCI+cmVwb3J0X3Byb2JsZW08L21hdC1pY29uPlxyXG4gICAgICB7e3N0YXR1c01zZ319XHJcbiAgICA8L3A+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICB9YCwgYFxyXG4gICAgcCB7XHJcbiAgICAgIHBhZGRpbmc6IDRweDtcclxuICAgICAgd2hpdGUtc3BhY2U6bm93cmFwO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbiAgYCwgYFxyXG4gICAgbWF0LXByb2dyZXNzLXNwaW5uZXIge1xyXG4gICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6IHJlZDtcclxuICAgIH1cclxuICBgXVxyXG5cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGF0dXNEaXNwbGF5IHtcclxuICBASW5wdXQoKSBzdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgQElucHV0KCkgc3RhdHVzTXNnID0gJ0luaXRpYWxpemUuLi4nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c1dhaXRpbmcgPWZhbHNlO1xyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdXBsb2Fkc3RhdHVzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIFttb2RlXT1cInNwaW5uZXJNb2RlXCIgW2NvbG9yXT1cInN0YXR1c1wiIFtkaWFtZXRlcl09XCIzMFwiIFtzdHJva2VXaWR0aF09XCI1XCIgW3ZhbHVlXT1cIl92YWx1ZVwiIFttYXRUb29sdGlwXT1cInRvb2xUaXBUZXh0XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gIC8qIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7ICovXHJcbiAgICAvKmRpc3BsYXk6IGlubGluZTsgKi9cclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfWAsYG1hdC1wcm9ncmVzcy1zcGlubmVye1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRTdGF0dXMge1xyXG4gIHByaXZhdGUgX2F3YWl0TmV3VXBsb2FkPWZhbHNlO1xyXG4gIHNwaW5uZXJNb2RlOlByb2dyZXNzU3Bpbm5lck1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xyXG4gIF9zdGF0dXMhOnN0cmluZ1xyXG4gIF92YWx1ZSA9IDEwMFxyXG4gIGRpc3BsYXlWYWx1ZTpzdHJpbmd8bnVsbD1udWxsXHJcbiAgdG9vbFRpcFRleHQ6c3RyaW5nPScnXHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVNwaW5uZXIoKXtcclxuXHJcbiAgICBsZXQgdXBsTXNnO1xyXG4gICAgaWYgKHRoaXMuX2F3YWl0TmV3VXBsb2FkIHx8IHRoaXMuX3ZhbHVlID09PSAwKSB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lck1vZGUgPSAnaW5kZXRlcm1pbmF0ZSdcclxuICAgICAgdGhpcy5kaXNwbGF5VmFsdWU9JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOydcclxuICAgICAgdXBsTXNnPSdQcmVwYXJpbmcgdXBsb2FkLidcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lck1vZGUgPSAnZGV0ZXJtaW5hdGUnXHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlPXRoaXMuX3ZhbHVlKyclJ1xyXG4gICAgICBpZih0aGlzLl92YWx1ZT09PTEwMCl7XHJcbiAgICAgICAgdXBsTXNnID0gJ1VwbG9hZCBjb21wbGV0ZSdcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHVwbE1zZyA9ICdVcGxvYWQgcHJvZ3Jlc3M6ICcgKyB0aGlzLmRpc3BsYXlWYWx1ZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLnN0YXR1cz09PSd3YXJuJyl7XHJcbiAgICAgIHVwbE1zZz0nVXBsb2FkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24uICcrdXBsTXNnXHJcbiAgICB9XHJcbiAgICB0aGlzLnRvb2xUaXBUZXh0PXVwbE1zZ1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZVNwaW5uZXIoKVxyXG4gIH07XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhd2FpdE5ld1VwbG9hZChhd2FpdE5ld1VwbG9hZDpib29sZWFuKXtcclxuICAgIHRoaXMuX2F3YWl0TmV3VXBsb2FkPWF3YWl0TmV3VXBsb2FkXHJcbiAgICB0aGlzLl91cGRhdGVTcGlubmVyKClcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOnN0cmluZyl7XHJcbiAgICB0aGlzLl9zdGF0dXM9c3RhdHVzXHJcbiAgICB0aGlzLl91cGRhdGVTcGlubmVyKClcclxuICB9XHJcblxyXG4gIGdldCBzdGF0dXMoKTpzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb2dyZXNzZGlzcGxheScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxwPnt7cHJvZ3Jlc3NNc2d9fTwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gIC8qIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7ICovXHJcbiAgICAvKmRpc3BsYXk6IGlubGluZTsgKi9cclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NEaXNwbGF5IHtcclxuICBwcm9ncmVzc01zZyA9ICdbaXRlbWNvZGVdJztcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zcG9ydEFjdGlvbnMge1xyXG4gIHN0YXJ0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgc3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIG5leHRBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBmd2ROZXh0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgcGF1c2VBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBmd2RBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBid2RBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnN0YXJ0QWN0aW9uID0gbmV3IEFjdGlvbignU3RhcnQnKTtcclxuICAgIHRoaXMuc3RvcEFjdGlvbiA9IG5ldyBBY3Rpb24oJ1N0b3AnKTtcclxuICAgIHRoaXMubmV4dEFjdGlvbiA9IG5ldyBBY3Rpb24oJ05leHQnKTtcclxuICAgIHRoaXMucGF1c2VBY3Rpb24gPSBuZXcgQWN0aW9uKCdQYXVzZScpO1xyXG4gICAgdGhpcy5md2ROZXh0QWN0aW9uID0gbmV3IEFjdGlvbignTmV4dCByZWNvcmRpbmcnKTtcclxuICAgIHRoaXMuZndkQWN0aW9uID0gbmV3IEFjdGlvbignRm9yd2FyZCcpO1xyXG4gICAgdGhpcy5id2RBY3Rpb24gPSBuZXcgQWN0aW9uKCdCYWNrd2FyZCcpO1xyXG5cclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJ0cmFuc3BvcnQnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGJ1dHRvbiBpZD1cImJ3ZEJ0blwiICpuZ0lmPVwibmF2aWdhdGlvbkVuYWJsZWRcIiAgKGNsaWNrKT1cImFjdGlvbnMuYndkQWN0aW9uLnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJid2REaXNhYmxlZCgpXCJcclxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIChjbGljayk9XCJzdGFydFN0b3BOZXh0UGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cInN0YXJ0RGlzYWJsZWQoKSAmJiBzdG9wRGlzYWJsZWQoKSAmJiBuZXh0RGlzYWJsZWQoKVwiICBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJzdGFydFN0b3BOZXh0SWNvbkNvbG9yKClcIj57e3N0YXJ0U3RvcE5leHRJY29uTmFtZSgpfX08L21hdC1pY29uPjxtYXQtaWNvbiAqbmdJZj1cIiFuZXh0RGlzYWJsZWQoKVwiIFtzdHlsZS5jb2xvcl09XCJuZXh0RGlzYWJsZWQoKSA/ICdncmV5JyA6ICdibGFjaydcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gZnhTaG93LnhzPVwiZmFsc2VcIj57e3N0YXJ0U3RvcE5leHROYW1lKCl9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cInBhdXNpbmdFbmFibGVkXCIgKGNsaWNrKT1cImFjdGlvbnMucGF1c2VBY3Rpb24ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cInBhdXNlRGlzYWJsZWQoKVwiIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICA8bWF0LWljb24+cGF1c2U8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBmeFNob3cueHM9XCJmYWxzZVwiPlBhdXNlPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGlkPVwiZndkTmV4dEJ0blwiICpuZ0lmPVwibmF2aWdhdGlvbkVuYWJsZWRcIiBmeEhpZGUueHMgKGNsaWNrKT1cImFjdGlvbnMuZndkTmV4dEFjdGlvbi5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiZndkTmV4dERpc2FibGVkKClcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgPG1hdC1pY29uPnJlZG88L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGlkPVwiZndkQnRuXCIgKm5nSWY9XCJuYXZpZ2F0aW9uRW5hYmxlZFwiICAoY2xpY2spPVwiYWN0aW9ucy5md2RBY3Rpb24ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cImZ3ZERpc2FibGVkKClcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgIGZsZXg6IDIwO1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gIH1gLCBgXHJcbiAgICBkaXYge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgIGZsZXg6IDA7XHJcbiAgICB9YCxgXHJcbiAgICAgYnV0dG9uIHtcclxuICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgIH1gXHJcbiAgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zcG9ydFBhbmVsIHtcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHkhOmJvb2xlYW47XHJcbiAgQElucHV0KCkgYWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgbmF2aWdhdGlvbkVuYWJsZWQ9dHJ1ZTtcclxuICBASW5wdXQoKSBwYXVzaW5nRW5hYmxlZD10cnVlO1xyXG5cclxuICBzdGFydFN0b3BOZXh0QnV0dG9uTmFtZSE6c3RyaW5nO1xyXG4gIHN0YXJ0U3RvcE5leHRCdXR0b25JY29uTmFtZSE6c3RyaW5nO1xyXG5cclxuICBzdGFydERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbnMgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLmFjdGlvbnMuc3RhcnRBY3Rpb24uZGlzYWJsZWRcclxuICB9XHJcblxyXG4gIHN0b3BEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAhdGhpcy5hY3Rpb25zIHx8IHRoaXMuYWN0aW9ucy5zdG9wQWN0aW9uLmRpc2FibGVkXHJcbiAgfVxyXG5cclxuICBuZXh0RGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCB8fCAhdGhpcy5uYXZpZ2F0aW9uRW5hYmxlZDtcclxuICB9XHJcblxyXG4gIHBhdXNlRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnMucGF1c2VBY3Rpb24uZGlzYWJsZWQgfHwgIXRoaXMucGF1c2luZ0VuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBmd2REaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAhdGhpcy5hY3Rpb25zIHx8IHRoaXMuYWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgfHwgIXRoaXMubmF2aWdhdGlvbkVuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBmd2ROZXh0RGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnMuZndkTmV4dEFjdGlvbi5kaXNhYmxlZCB8fCAhdGhpcy5uYXZpZ2F0aW9uRW5hYmxlZDtcclxuICB9XHJcblxyXG4gIGJ3ZERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbnMgfHwgdGhpcy5hY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCB8fCAhdGhpcy5uYXZpZ2F0aW9uRW5hYmxlZDtcclxuICB9XHJcblxyXG4gICAgc3RhcnRTdG9wTmV4dE5hbWUoKTpzdHJpbmd7XHJcbiAgICAgICAgaWYoIXRoaXMubmV4dERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0U3RvcE5leHRCdXR0b25OYW1lPSBcIk5leHRcIlxyXG4gICAgICAgIH1lbHNlIGlmKCF0aGlzLnN0YXJ0RGlzYWJsZWQoKSl7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbk5hbWU9XCJTdGFydFwiXHJcbiAgICAgICAgfWVsc2UgaWYoIXRoaXMuc3RvcERpc2FibGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uTmFtZSA9IFwiU3RvcFwiXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0U3RvcE5leHRCdXR0b25OYW1lO1xyXG4gICAgfVxyXG4gIHN0YXJ0U3RvcE5leHRJY29uTmFtZSgpOnN0cmluZ3tcclxuICAgICAgaWYoIXRoaXMuc3RhcnREaXNhYmxlZCgpKXtcclxuICAgICAgICAgdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uSWNvbk5hbWU9XCJmaWJlcl9tYW51YWxfcmVjb3JkXCJcclxuICAgICAgfWVsc2UgaWYoIXRoaXMuc3RvcERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uSWNvbk5hbWU9XCJzdG9wXCJcclxuICAgICAgfWVsc2UgaWYoIXRoaXMubmV4dERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uSWNvbk5hbWU9XCJzdG9wXCJcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uSWNvbk5hbWVcclxuICB9XHJcbiAgICBzdGFydFN0b3BOZXh0SWNvbkNvbG9yKCk6c3RyaW5ne1xyXG4gICAgICAgIGlmKCF0aGlzLnN0YXJ0RGlzYWJsZWQoKSl7XHJcbiAgICAgICAgICAgIHJldHVybiBcInJlZFwiXHJcbiAgICAgICAgfWVsc2UgaWYoIXRoaXMuc3RvcERpc2FibGVkKCkgfHwgIXRoaXMubmV4dERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgICByZXR1cm4gXCJ5ZWxsb3dcIlxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICByZXR1cm4gXCJncmV5XCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBzdGFydFN0b3BOZXh0UGVyZm9ybSgpe1xyXG4gICAgaWYoIXRoaXMuc3RhcnREaXNhYmxlZCgpKXtcclxuICAgICAgdGhpcy5hY3Rpb25zLnN0YXJ0QWN0aW9uLnBlcmZvcm0oKTtcclxuICAgIH1lbHNlIGlmKCF0aGlzLnN0b3BEaXNhYmxlZCgpKXtcclxuICAgICAgdGhpcy5hY3Rpb25zLnN0b3BBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgfWVsc2UgaWYoIXRoaXMubmV4dERpc2FibGVkKCkpe1xyXG4gICAgICB0aGlzLmFjdGlvbnMubmV4dEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2FrZWxvY2tpbmRpY2F0b3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJfc2NyZWVuTG9ja2VkXCI+c2NyZWVuX2xvY2tfcG9ydHJhaXQ8L21hdC1pY29uPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2FrZUxvY2tJbmRpY2F0b3Ige1xyXG4gIF9zY3JlZW5Mb2NrZWQ9ZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgQElucHV0KCkgc2V0IHNjcmVlbkxvY2tlZChzY3JlZW5Mb2NrOmJvb2xlYW4pe1xyXG4gICAgdGhpcy5fc2NyZWVuTG9ja2VkPXNjcmVlbkxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVhZHlzdGF0ZWluZGljYXRvcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWljb24gW21hdFRvb2x0aXBdPVwicmVhZHlTdGF0ZVRvb2xUaXBcIj57e2hvdXJHbGFzc0ljb25OYW1lfX08L21hdC1pY29uPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVhZHlTdGF0ZUluZGljYXRvciB7XHJcbiAgX3JlYWR5PXRydWU7XHJcbiAgaG91ckdsYXNzSWNvbk5hbWU9J2hvdXJnbGFzc19lbXB0eSdcclxuICByZWFkeVN0YXRlVG9vbFRpcDpzdHJpbmc9JydcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmVhZHkocmVhZHk6Ym9vbGVhbil7XHJcbiAgICB0aGlzLl9yZWFkeT1yZWFkeVxyXG4gICAgdGhpcy5ob3VyR2xhc3NJY29uTmFtZT10aGlzLl9yZWFkeT8naG91cmdsYXNzX2VtcHR5JzonaG91cmdsYXNzX2Z1bGwnXHJcbiAgICB0aGlzLnJlYWR5U3RhdGVUb29sVGlwPXRoaXMuX3JlYWR5PydBdWRpbyBwcm9jZXNzaW5nIGFuZCB1cGxvYWQgZG9uZS4gWW91IGNhbiBsZWF2ZSB0aGUgcGFnZSB3aXRob3V0IGRhdGEgbG9zcy4nOidQbGVhc2Ugd2FpdCB1bnRpbCBhdWRpbyBwcm9jZXNzaW5nIGFuZCB1cGxvYWQgaGF2ZSBmaW5pc2hlZC4gUGxlYXNlIGRvIG5vdCBsZWF2ZSB0aGUgcGFnZS4nXHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZHkoKTpib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3ByY29udHJvbHBhbmVsJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgZnhIaWRlLnhzICBmeExheW91dD1cInJvd1wiID5cclxuICAgICA8YXBwLXNwcnN0YXR1c2Rpc3BsYXkgZnhGbGV4PVwiMCAwIDBcIiBbc3RhdHVzTXNnXT1cInN0YXR1c01zZ1wiIFtzdGF0dXNBbGVydFR5cGVdPVwic3RhdHVzQWxlcnRUeXBlXCIgW3N0YXR1c1dhaXRpbmddPVwic3RhdHVzV2FpdGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW4teHNcIj48L2FwcC1zcHJzdGF0dXNkaXNwbGF5PlxyXG4gICAgICA8YXBwLXNwcnRyYW5zcG9ydCBmeEZsZXg9XCIxMCAwIDBcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbYWN0aW9uc109XCJ0cmFuc3BvcnRBY3Rpb25zXCIgW25hdmlnYXRpb25FbmFibGVkXT1cIm5hdmlnYXRpb25FbmFibGVkXCI+PC9hcHAtc3BydHJhbnNwb3J0PlxyXG4gICAgICA8YXBwLXVwbG9hZHN0YXR1cyBmeEZsZXg9XCIwIDAgMFwiICpuZ0lmPVwiZW5hYmxlVXBsb2FkUmVjb3JkaW5nc1wiIFt2YWx1ZV09XCJ1cGxvYWRQcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInVwbG9hZFN0YXR1c1wiIFthd2FpdE5ld1VwbG9hZF09XCJwcm9jZXNzaW5nXCI+PC9hcHAtdXBsb2Fkc3RhdHVzPlxyXG4gICAgICA8YXBwLXJlYWR5c3RhdGVpbmRpY2F0b3IgW3JlYWR5XT1cIl9yZWFkeVwiPjwvYXBwLXJlYWR5c3RhdGVpbmRpY2F0b3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhTaG93LnhzIGZ4SGlkZSBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhGbGV4RmlsbD5cclxuICAgICAgIDxhcHAtc3Byc3RhdHVzZGlzcGxheSBmeEZsZXg9XCIxMCAwIDBcIiBmeEZsZXhBbGlnbj1cImxlZnRcIiBbc3RhdHVzTXNnXT1cInN0YXR1c01zZ1wiIFtzdGF0dXNBbGVydFR5cGVdPVwic3RhdHVzQWxlcnRUeXBlXCIgW3N0YXR1c1dhaXRpbmddPVwic3RhdHVzV2FpdGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhpZGRlbi14c1wiPjwvYXBwLXNwcnN0YXR1c2Rpc3BsYXk+XHJcbiAgICAgICA8YXBwLXVwbG9hZHN0YXR1cyBmeEZsZXg9XCIwIDAgMFwiICpuZ0lmPVwiZW5hYmxlVXBsb2FkUmVjb3JkaW5nc1wiIFt2YWx1ZV09XCJ1cGxvYWRQcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwidXBsb2FkU3RhdHVzXCIgW2F3YWl0TmV3VXBsb2FkXT1cInByb2Nlc3NpbmdcIj48L2FwcC11cGxvYWRzdGF0dXM+XHJcbiAgICAgICAgPGFwcC1yZWFkeXN0YXRlaW5kaWNhdG9yIFtyZWFkeV09XCJfcmVhZHlcIj48L2FwcC1yZWFkeXN0YXRlaW5kaWNhdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1zcHJ0cmFuc3BvcnQgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2FjdGlvbnNdPVwidHJhbnNwb3J0QWN0aW9uc1wiIFtuYXZpZ2F0aW9uRW5hYmxlZF09XCJuYXZpZ2F0aW9uRW5hYmxlZFwiPjwvYXBwLXNwcnRyYW5zcG9ydD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2BkaXYge1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICBtaW4taGVpZ2h0OiBtaW4tY29udGVudDsgLyogaW1wb3J0YW50ICovXHJcbiAgfWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sUGFuZWwge1xyXG4gIEBWaWV3Q2hpbGQoU3RhdHVzRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgc3RhdHVzRGlzcGxheSE6IFN0YXR1c0Rpc3BsYXk7XHJcbiAgQFZpZXdDaGlsZChUcmFuc3BvcnRQYW5lbCwgeyBzdGF0aWM6IHRydWUgfSkgdHJhbnNwb3J0UGFuZWwhOiBUcmFuc3BvcnRQYW5lbDtcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHkhOmJvb2xlYW5cclxuICBASW5wdXQoKSB0cmFuc3BvcnRBY3Rpb25zITogVHJhbnNwb3J0QWN0aW9uc1xyXG4gIEBJbnB1dCgpIHByb2Nlc3Npbmc9ZmFsc2VcclxuICBASW5wdXQoKSBzdGF0dXNNc2chOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RhdHVzQWxlcnRUeXBlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c1dhaXRpbmchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHVwbG9hZFN0YXR1cyE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGxvYWRQcm9ncmVzcyE6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXJyZW50UmVjb3JkaW5nOiBBdWRpb0J1ZmZlcnwgbnVsbHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVVwbG9hZFJlY29yZGluZ3MhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG5hdmlnYXRpb25FbmFibGVkPXRydWU7XHJcblxyXG4gIF9yZWFkeT10cnVlXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCByZWFkeShyZWFkeTpib29sZWFuKXtcclxuICAgIHRoaXMuX3JlYWR5PXJlYWR5XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZHkoKTpib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vY29udHJvbHBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUMxQyxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQzVCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBdUN2QixNQUFNLE9BQU8sYUFBYTtJQWpDMUI7UUFrQ1csb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsY0FBUyxHQUFHLGVBQWUsQ0FBQztRQUM1QixrQkFBYSxHQUFFLEtBQUssQ0FBQztLQUMvQjs7MkdBSlksYUFBYTsrRkFBYixhQUFhLG9LQTdCZDs7Ozs7R0FLVDs0RkF3QlUsYUFBYTtrQkFqQ3pCLFNBQVM7K0JBRUUsc0JBQXNCLFlBRXRCOzs7OztHQUtUOzhCQXlCUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSzs7QUFrQlIsTUFBTSxPQUFPLFlBQVk7SUFkekI7UUFlVSxvQkFBZSxHQUFDLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUF1QixhQUFhLENBQUM7UUFFaEQsV0FBTSxHQUFHLEdBQUcsQ0FBQTtRQUNaLGlCQUFZLEdBQWEsSUFBSSxDQUFBO1FBQzdCLGdCQUFXLEdBQVEsRUFBRSxDQUFBO0tBNEN0QjtJQTFDUyxjQUFjO1FBRXBCLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFBO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUMsMEJBQTBC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QUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGlvbn0gZnJvbSAnLi4vLi4vYWN0aW9uL2FjdGlvbidcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5wdXRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgTWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7UHJvZ3Jlc3NTcGlubmVyTW9kZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXJcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3Byc3RhdHVzZGlzcGxheScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cCBtYXRUb29sdGlwPVwiU3RhdHVzXCI+XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cInN0YXR1c1dhaXRpbmdcIiBjb2xvcj1cImJsYWNrXCIgIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjMwXCIgW3N0cm9rZVdpZHRoXT1cIjVcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPjxtYXQtaWNvbiAqbmdJZj1cInN0YXR1c0FsZXJ0VHlwZT09PSdlcnJvcidcIiBzdHlsZT1cImNvbG9yOnJlZFwiPnJlcG9ydF9wcm9ibGVtPC9tYXQtaWNvbj5cclxuICAgICAge3tzdGF0dXNNc2d9fVxyXG4gICAgPC9wPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfWAsIGBcclxuICAgIHAge1xyXG4gICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgIHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIG1hdC1wcm9ncmVzcy1zcGlubmVyIHtcclxuICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbiAgYCwgYFxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGNvbG9yOiByZWQ7XHJcbiAgICB9XHJcbiAgYF1cclxuXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RhdHVzRGlzcGxheSB7XHJcbiAgQElucHV0KCkgc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c01zZyA9ICdJbml0aWFsaXplLi4uJztcclxuICBASW5wdXQoKSBzdGF0dXNXYWl0aW5nID1mYWxzZTtcclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXVwbG9hZHN0YXR1cycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBbbW9kZV09XCJzcGlubmVyTW9kZVwiIFtjb2xvcl09XCJzdGF0dXNcIiBbZGlhbWV0ZXJdPVwiMzBcIiBbc3Ryb2tlV2lkdGhdPVwiNVwiIFt2YWx1ZV09XCJfdmFsdWVcIiBbbWF0VG9vbHRpcF09XCJ0b29sVGlwVGV4dFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgZmxleDogMTtcclxuICAvKiBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyAqL1xyXG4gICAgLypkaXNwbGF5OiBpbmxpbmU7ICovXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1gLGBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lcntcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkU3RhdHVzIHtcclxuICBwcml2YXRlIF9hd2FpdE5ld1VwbG9hZD1mYWxzZTtcclxuICBzcGlubmVyTW9kZTpQcm9ncmVzc1NwaW5uZXJNb2RlID0gJ2RldGVybWluYXRlJztcclxuICBfc3RhdHVzITpzdHJpbmdcclxuICBfdmFsdWUgPSAxMDBcclxuICBkaXNwbGF5VmFsdWU6c3RyaW5nfG51bGw9bnVsbFxyXG4gIHRvb2xUaXBUZXh0OnN0cmluZz0nJ1xyXG5cclxuICBwcml2YXRlIF91cGRhdGVTcGlubmVyKCl7XHJcblxyXG4gICAgbGV0IHVwbE1zZztcclxuICAgIGlmICh0aGlzLl9hd2FpdE5ld1VwbG9hZCB8fCB0aGlzLl92YWx1ZSA9PT0gMCkge1xyXG4gICAgICB0aGlzLnNwaW5uZXJNb2RlID0gJ2luZGV0ZXJtaW5hdGUnXHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsnXHJcbiAgICAgIHVwbE1zZz0nUHJlcGFyaW5nIHVwbG9hZC4nXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNwaW5uZXJNb2RlID0gJ2RldGVybWluYXRlJ1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZT10aGlzLl92YWx1ZSsnJSdcclxuICAgICAgaWYodGhpcy5fdmFsdWU9PT0xMDApe1xyXG4gICAgICAgIHVwbE1zZyA9ICdVcGxvYWQgY29tcGxldGUnXHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB1cGxNc2cgPSAnVXBsb2FkIHByb2dyZXNzOiAnICsgdGhpcy5kaXNwbGF5VmFsdWVcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5zdGF0dXM9PT0nd2Fybicpe1xyXG4gICAgICB1cGxNc2c9J1VwbG9hZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aW9uLiAnK3VwbE1zZ1xyXG4gICAgfVxyXG4gICAgdGhpcy50b29sVGlwVGV4dD11cGxNc2dcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl91cGRhdGVTcGlubmVyKClcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBzZXQgYXdhaXROZXdVcGxvYWQoYXdhaXROZXdVcGxvYWQ6Ym9vbGVhbil7XHJcbiAgICB0aGlzLl9hd2FpdE5ld1VwbG9hZD1hd2FpdE5ld1VwbG9hZFxyXG4gICAgdGhpcy5fdXBkYXRlU3Bpbm5lcigpXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgc3RhdHVzKHN0YXR1czpzdHJpbmcpe1xyXG4gICAgdGhpcy5fc3RhdHVzPXN0YXR1c1xyXG4gICAgdGhpcy5fdXBkYXRlU3Bpbm5lcigpXHJcbiAgfVxyXG5cclxuICBnZXQgc3RhdHVzKCk6c3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1c1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9ncmVzc2Rpc3BsYXknLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cD57e3Byb2dyZXNzTXNnfX08L3A+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgZmxleDogMTtcclxuICAvKiBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyAqL1xyXG4gICAgLypkaXNwbGF5OiBpbmxpbmU7ICovXHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2dyZXNzRGlzcGxheSB7XHJcbiAgcHJvZ3Jlc3NNc2cgPSAnW2l0ZW1jb2RlXSc7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmFuc3BvcnRBY3Rpb25zIHtcclxuICBzdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHN0b3BBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBuZXh0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgZndkTmV4dEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHBhdXNlQWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgZndkQWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgYndkQWN0aW9uOiBBY3Rpb248dm9pZD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5zdGFydEFjdGlvbiA9IG5ldyBBY3Rpb24oJ1N0YXJ0Jyk7XHJcbiAgICB0aGlzLnN0b3BBY3Rpb24gPSBuZXcgQWN0aW9uKCdTdG9wJyk7XHJcbiAgICB0aGlzLm5leHRBY3Rpb24gPSBuZXcgQWN0aW9uKCdOZXh0Jyk7XHJcbiAgICB0aGlzLnBhdXNlQWN0aW9uID0gbmV3IEFjdGlvbignUGF1c2UnKTtcclxuICAgIHRoaXMuZndkTmV4dEFjdGlvbiA9IG5ldyBBY3Rpb24oJ05leHQgcmVjb3JkaW5nJyk7XHJcbiAgICB0aGlzLmZ3ZEFjdGlvbiA9IG5ldyBBY3Rpb24oJ0ZvcndhcmQnKTtcclxuICAgIHRoaXMuYndkQWN0aW9uID0gbmV3IEFjdGlvbignQmFja3dhcmQnKTtcclxuXHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BydHJhbnNwb3J0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxidXR0b24gaWQ9XCJid2RCdG5cIiAqbmdJZj1cIm5hdmlnYXRpb25FbmFibGVkXCIgIChjbGljayk9XCJhY3Rpb25zLmJ3ZEFjdGlvbi5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiYndkRGlzYWJsZWQoKVwiXHJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic3RhcnRTdG9wTmV4dFBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJzdGFydERpc2FibGVkKCkgJiYgc3RvcERpc2FibGVkKCkgJiYgbmV4dERpc2FibGVkKClcIiAgbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwic3RhcnRTdG9wTmV4dEljb25Db2xvcigpXCI+e3tzdGFydFN0b3BOZXh0SWNvbk5hbWUoKX19PC9tYXQtaWNvbj48bWF0LWljb24gKm5nSWY9XCIhbmV4dERpc2FibGVkKClcIiBbc3R5bGUuY29sb3JdPVwibmV4dERpc2FibGVkKCkgPyAnZ3JleScgOiAnYmxhY2snXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuIGZ4U2hvdy54cz1cImZhbHNlXCI+e3tzdGFydFN0b3BOZXh0TmFtZSgpfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJwYXVzaW5nRW5hYmxlZFwiIChjbGljayk9XCJhY3Rpb25zLnBhdXNlQWN0aW9uLnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJwYXVzZURpc2FibGVkKClcIiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgPG1hdC1pY29uPnBhdXNlPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gZnhTaG93LnhzPVwiZmFsc2VcIj5QYXVzZTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBpZD1cImZ3ZE5leHRCdG5cIiAqbmdJZj1cIm5hdmlnYXRpb25FbmFibGVkXCIgZnhIaWRlLnhzIChjbGljayk9XCJhY3Rpb25zLmZ3ZE5leHRBY3Rpb24ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cImZ3ZE5leHREaXNhYmxlZCgpXCIgbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgIDxtYXQtaWNvbj5yZWRvPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBpZD1cImZ3ZEJ0blwiICpuZ0lmPVwibmF2aWdhdGlvbkVuYWJsZWRcIiAgKGNsaWNrKT1cImFjdGlvbnMuZndkQWN0aW9uLnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJmd2REaXNhYmxlZCgpXCIgbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBmbGV4OiAyMDtcclxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICB9YCwgYFxyXG4gICAgZGl2IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBmbGV4OiAwO1xyXG4gICAgfWAsYFxyXG4gICAgIGJ1dHRvbiB7XHJcbiAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICAgICB9YFxyXG4gIF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc3BvcnRQYW5lbCB7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ITpib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnMhOiBUcmFuc3BvcnRBY3Rpb25zO1xyXG4gIEBJbnB1dCgpIG5hdmlnYXRpb25FbmFibGVkPXRydWU7XHJcbiAgQElucHV0KCkgcGF1c2luZ0VuYWJsZWQ9dHJ1ZTtcclxuXHJcbiAgc3RhcnRTdG9wTmV4dEJ1dHRvbk5hbWUhOnN0cmluZztcclxuICBzdGFydFN0b3BOZXh0QnV0dG9uSWNvbk5hbWUhOnN0cmluZztcclxuXHJcbiAgc3RhcnREaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAhdGhpcy5hY3Rpb25zIHx8IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5hY3Rpb25zLnN0YXJ0QWN0aW9uLmRpc2FibGVkXHJcbiAgfVxyXG5cclxuICBzdG9wRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnMuc3RvcEFjdGlvbi5kaXNhYmxlZFxyXG4gIH1cclxuXHJcbiAgbmV4dERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbnMgfHwgdGhpcy5hY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQgfHwgIXRoaXMubmF2aWdhdGlvbkVuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwYXVzZURpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbnMgfHwgdGhpcy5hY3Rpb25zLnBhdXNlQWN0aW9uLmRpc2FibGVkIHx8ICF0aGlzLnBhdXNpbmdFbmFibGVkO1xyXG4gIH1cclxuXHJcbiAgZndkRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkIHx8ICF0aGlzLm5hdmlnYXRpb25FbmFibGVkO1xyXG4gIH1cclxuXHJcbiAgZndkTmV4dERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbnMgfHwgdGhpcy5hY3Rpb25zLmZ3ZE5leHRBY3Rpb24uZGlzYWJsZWQgfHwgIXRoaXMubmF2aWdhdGlvbkVuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBid2REaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAhdGhpcy5hY3Rpb25zIHx8IHRoaXMuYWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgfHwgIXRoaXMubmF2aWdhdGlvbkVuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICAgIHN0YXJ0U3RvcE5leHROYW1lKCk6c3RyaW5ne1xyXG4gICAgICAgIGlmKCF0aGlzLm5leHREaXNhYmxlZCgpKXtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uTmFtZT0gXCJOZXh0XCJcclxuICAgICAgICB9ZWxzZSBpZighdGhpcy5zdGFydERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0U3RvcE5leHRCdXR0b25OYW1lPVwiU3RhcnRcIlxyXG4gICAgICAgIH1lbHNlIGlmKCF0aGlzLnN0b3BEaXNhYmxlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbk5hbWUgPSBcIlN0b3BcIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFN0b3BOZXh0QnV0dG9uTmFtZTtcclxuICAgIH1cclxuICBzdGFydFN0b3BOZXh0SWNvbk5hbWUoKTpzdHJpbmd7XHJcbiAgICAgIGlmKCF0aGlzLnN0YXJ0RGlzYWJsZWQoKSl7XHJcbiAgICAgICAgIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbkljb25OYW1lPVwiZmliZXJfbWFudWFsX3JlY29yZFwiXHJcbiAgICAgIH1lbHNlIGlmKCF0aGlzLnN0b3BEaXNhYmxlZCgpKXtcclxuICAgICAgICAgIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbkljb25OYW1lPVwic3RvcFwiXHJcbiAgICAgIH1lbHNlIGlmKCF0aGlzLm5leHREaXNhYmxlZCgpKXtcclxuICAgICAgICAgIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbkljb25OYW1lPVwic3RvcFwiXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuc3RhcnRTdG9wTmV4dEJ1dHRvbkljb25OYW1lXHJcbiAgfVxyXG4gICAgc3RhcnRTdG9wTmV4dEljb25Db2xvcigpOnN0cmluZ3tcclxuICAgICAgICBpZighdGhpcy5zdGFydERpc2FibGVkKCkpe1xyXG4gICAgICAgICAgICByZXR1cm4gXCJyZWRcIlxyXG4gICAgICAgIH1lbHNlIGlmKCF0aGlzLnN0b3BEaXNhYmxlZCgpIHx8ICF0aGlzLm5leHREaXNhYmxlZCgpKXtcclxuICAgICAgICAgICAgcmV0dXJuIFwieWVsbG93XCJcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgcmV0dXJuIFwiZ3JleVwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgc3RhcnRTdG9wTmV4dFBlcmZvcm0oKXtcclxuICAgIGlmKCF0aGlzLnN0YXJ0RGlzYWJsZWQoKSl7XHJcbiAgICAgIHRoaXMuYWN0aW9ucy5zdGFydEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICB9ZWxzZSBpZighdGhpcy5zdG9wRGlzYWJsZWQoKSl7XHJcbiAgICAgIHRoaXMuYWN0aW9ucy5zdG9wQWN0aW9uLnBlcmZvcm0oKTtcclxuICAgIH1lbHNlIGlmKCF0aGlzLm5leHREaXNhYmxlZCgpKXtcclxuICAgICAgdGhpcy5hY3Rpb25zLm5leHRBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdha2Vsb2NraW5kaWNhdG9yJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiX3NjcmVlbkxvY2tlZFwiPnNjcmVlbl9sb2NrX3BvcnRyYWl0PC9tYXQtaWNvbj5cclxuICBgLFxyXG4gIHN0eWxlczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdha2VMb2NrSW5kaWNhdG9yIHtcclxuICBfc2NyZWVuTG9ja2VkPWZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzY3JlZW5Mb2NrZWQoc2NyZWVuTG9jazpib29sZWFuKXtcclxuICAgIHRoaXMuX3NjcmVlbkxvY2tlZD1zY3JlZW5Mb2NrO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXJlYWR5c3RhdGVpbmRpY2F0b3InLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1pY29uIFttYXRUb29sdGlwXT1cInJlYWR5U3RhdGVUb29sVGlwXCI+e3tob3VyR2xhc3NJY29uTmFtZX19PC9tYXQtaWNvbj5cclxuICBgLFxyXG4gIHN0eWxlczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlYWR5U3RhdGVJbmRpY2F0b3Ige1xyXG4gIF9yZWFkeT10cnVlO1xyXG4gIGhvdXJHbGFzc0ljb25OYW1lPSdob3VyZ2xhc3NfZW1wdHknXHJcbiAgcmVhZHlTdGF0ZVRvb2xUaXA6c3RyaW5nPScnXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgQElucHV0KCkgc2V0IHJlYWR5KHJlYWR5OmJvb2xlYW4pe1xyXG4gICAgdGhpcy5fcmVhZHk9cmVhZHlcclxuICAgIHRoaXMuaG91ckdsYXNzSWNvbk5hbWU9dGhpcy5fcmVhZHk/J2hvdXJnbGFzc19lbXB0eSc6J2hvdXJnbGFzc19mdWxsJ1xyXG4gICAgdGhpcy5yZWFkeVN0YXRlVG9vbFRpcD10aGlzLl9yZWFkeT8nQXVkaW8gcHJvY2Vzc2luZyBhbmQgdXBsb2FkIGRvbmUuIFlvdSBjYW4gbGVhdmUgdGhlIHBhZ2Ugd2l0aG91dCBkYXRhIGxvc3MuJzonUGxlYXNlIHdhaXQgdW50aWwgYXVkaW8gcHJvY2Vzc2luZyBhbmQgdXBsb2FkIGhhdmUgZmluaXNoZWQuIFBsZWFzZSBkbyBub3QgbGVhdmUgdGhlIHBhZ2UuJ1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYWR5KCk6Ym9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLl9yZWFkeVxyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcmNvbnRyb2xwYW5lbCcsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGZ4SGlkZS54cyAgZnhMYXlvdXQ9XCJyb3dcIiA+XHJcbiAgICAgPGFwcC1zcHJzdGF0dXNkaXNwbGF5IGZ4RmxleD1cIjAgMCAwXCIgW3N0YXR1c01zZ109XCJzdGF0dXNNc2dcIiBbc3RhdHVzQWxlcnRUeXBlXT1cInN0YXR1c0FsZXJ0VHlwZVwiIFtzdGF0dXNXYWl0aW5nXT1cInN0YXR1c1dhaXRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGlkZGVuLXhzXCI+PC9hcHAtc3Byc3RhdHVzZGlzcGxheT5cclxuICAgICAgPGFwcC1zcHJ0cmFuc3BvcnQgZnhGbGV4PVwiMTAgMCAwXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2FjdGlvbnNdPVwidHJhbnNwb3J0QWN0aW9uc1wiIFtuYXZpZ2F0aW9uRW5hYmxlZF09XCJuYXZpZ2F0aW9uRW5hYmxlZFwiPjwvYXBwLXNwcnRyYW5zcG9ydD5cclxuICAgICAgPGFwcC11cGxvYWRzdGF0dXMgZnhGbGV4PVwiMCAwIDBcIiAqbmdJZj1cImVuYWJsZVVwbG9hZFJlY29yZGluZ3NcIiBbdmFsdWVdPVwidXBsb2FkUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJ1cGxvYWRTdGF0dXNcIiBbYXdhaXROZXdVcGxvYWRdPVwicHJvY2Vzc2luZ1wiPjwvYXBwLXVwbG9hZHN0YXR1cz5cclxuICAgICAgPGFwcC1yZWFkeXN0YXRlaW5kaWNhdG9yIFtyZWFkeV09XCJfcmVhZHlcIj48L2FwcC1yZWFkeXN0YXRlaW5kaWNhdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4U2hvdy54cyBmeEhpZGUgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmxleEZpbGw+XHJcbiAgICAgICA8YXBwLXNwcnN0YXR1c2Rpc3BsYXkgZnhGbGV4PVwiMTAgMCAwXCIgZnhGbGV4QWxpZ249XCJsZWZ0XCIgW3N0YXR1c01zZ109XCJzdGF0dXNNc2dcIiBbc3RhdHVzQWxlcnRUeXBlXT1cInN0YXR1c0FsZXJ0VHlwZVwiIFtzdGF0dXNXYWl0aW5nXT1cInN0YXR1c1dhaXRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW4teHNcIj48L2FwcC1zcHJzdGF0dXNkaXNwbGF5PlxyXG4gICAgICAgPGFwcC11cGxvYWRzdGF0dXMgZnhGbGV4PVwiMCAwIDBcIiAqbmdJZj1cImVuYWJsZVVwbG9hZFJlY29yZGluZ3NcIiBbdmFsdWVdPVwidXBsb2FkUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInVwbG9hZFN0YXR1c1wiIFthd2FpdE5ld1VwbG9hZF09XCJwcm9jZXNzaW5nXCI+PC9hcHAtdXBsb2Fkc3RhdHVzPlxyXG4gICAgICAgIDxhcHAtcmVhZHlzdGF0ZWluZGljYXRvciBbcmVhZHldPVwiX3JlYWR5XCI+PC9hcHAtcmVhZHlzdGF0ZWluZGljYXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtc3BydHJhbnNwb3J0IFtyZWFkb25seV09XCJyZWFkb25seVwiIFthY3Rpb25zXT1cInRyYW5zcG9ydEFjdGlvbnNcIiBbbmF2aWdhdGlvbkVuYWJsZWRdPVwibmF2aWdhdGlvbkVuYWJsZWRcIj48L2FwcC1zcHJ0cmFuc3BvcnQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgZGl2IHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgbWluLWhlaWdodDogbWluLWNvbnRlbnQ7IC8qIGltcG9ydGFudCAqL1xyXG4gIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFBhbmVsIHtcclxuICBAVmlld0NoaWxkKFN0YXR1c0Rpc3BsYXksIHsgc3RhdGljOiB0cnVlIH0pIHN0YXR1c0Rpc3BsYXkhOiBTdGF0dXNEaXNwbGF5O1xyXG4gIEBWaWV3Q2hpbGQoVHJhbnNwb3J0UGFuZWwsIHsgc3RhdGljOiB0cnVlIH0pIHRyYW5zcG9ydFBhbmVsITogVHJhbnNwb3J0UGFuZWw7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ITpib29sZWFuXHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnNcclxuICBASW5wdXQoKSBwcm9jZXNzaW5nPWZhbHNlXHJcbiAgQElucHV0KCkgc3RhdHVzTXNnITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c0FsZXJ0VHlwZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGF0dXNXYWl0aW5nITogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1cGxvYWRTdGF0dXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXBsb2FkUHJvZ3Jlc3MhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgY3VycmVudFJlY29yZGluZzogQXVkaW9CdWZmZXJ8IG51bGx8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBlbmFibGVVcGxvYWRSZWNvcmRpbmdzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYXZpZ2F0aW9uRW5hYmxlZD10cnVlO1xyXG5cclxuICBfcmVhZHk9dHJ1ZVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmVhZHkocmVhZHk6Ym9vbGVhbil7XHJcbiAgICB0aGlzLl9yZWFkeT1yZWFkeVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYWR5KCk6Ym9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLl9yZWFkeVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -5,6 +5,18 @@ export class Item {
5
5
  this._recording = _recording;
6
6
  this.recs = null;
7
7
  }
8
+ itemDone() {
9
+ let done = false;
10
+ if (this.recs) {
11
+ for (let rf of this.recs) {
12
+ if (rf.recordingFileDone()) {
13
+ done = true;
14
+ break;
15
+ }
16
+ }
17
+ }
18
+ return done;
19
+ }
8
20
  get promptAsString() {
9
21
  return this._promptAsString;
10
22
  }
@@ -15,4 +27,4 @@ export class Item {
15
27
  return this._recording;
16
28
  }
17
29
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL2l0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLElBQUk7SUFHYixZQUFvQixlQUF1QixFQUFVLFNBQWtCLEVBQVMsVUFBa0I7UUFBOUUsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUM5RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NwclJlY29yZGluZ0ZpbGV9IGZyb20gXCIuLi9yZWNvcmRpbmdcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBJdGVtIHtcclxuICAgIHJlY3M6IEFycmF5PFNwclJlY29yZGluZ0ZpbGU+IHwgbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wcm9tcHRBc1N0cmluZzogc3RyaW5nLCBwcml2YXRlIF90cmFpbmluZzogYm9vbGVhbixwcml2YXRlIF9yZWNvcmRpbmc6Ym9vbGVhbikge1xyXG4gICAgICAgIHRoaXMucmVjcyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHByb21wdEFzU3RyaW5nKCk6c3RyaW5ne1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9tcHRBc1N0cmluZztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdHJhaW5pbmcoKTpib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFpbmluZztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVjb3JkaW5nKCk6Ym9vbGVhbntcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkaW5nO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL2l0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLElBQUk7SUFHYixZQUFvQixlQUF1QixFQUFVLFNBQWtCLEVBQVMsVUFBa0I7UUFBOUUsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUM5RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxHQUFDLEtBQUssQ0FBQztRQUNmLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQztZQUNYLEtBQUksSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBQztnQkFDdEIsSUFBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBQztvQkFDeEIsSUFBSSxHQUFDLElBQUksQ0FBQztvQkFDVixNQUFNO2lCQUNQO2FBQ0Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vcmVjb3JkaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSXRlbSB7XHJcbiAgICByZWNzOiBBcnJheTxTcHJSZWNvcmRpbmdGaWxlPiB8IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcHJvbXB0QXNTdHJpbmc6IHN0cmluZywgcHJpdmF0ZSBfdHJhaW5pbmc6IGJvb2xlYW4scHJpdmF0ZSBfcmVjb3JkaW5nOmJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLnJlY3MgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1Eb25lKCl7XHJcbiAgICAgIGxldCBkb25lPWZhbHNlO1xyXG4gICAgICBpZih0aGlzLnJlY3Mpe1xyXG4gICAgICAgIGZvcihsZXQgcmYgb2YgdGhpcy5yZWNzKXtcclxuICAgICAgICAgIGlmKHJmLnJlY29yZGluZ0ZpbGVEb25lKCkpe1xyXG4gICAgICAgICAgICBkb25lPXRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZG9uZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcHJvbXB0QXNTdHJpbmcoKTpzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb21wdEFzU3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0cmFpbmluZygpOmJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYWluaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWNvcmRpbmcoKTpib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmRpbmc7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==