@dytesdk/angular-ui-kit 2.2.3-staging.2 → 2.3.0-staging.1

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.
@@ -1,3613 +0,0 @@
1
- import { __decorate } from "tslib";
2
- /* tslint:disable */
3
- /* auto-generated angular directive proxies */
4
- import { ChangeDetectionStrategy, Component } from '@angular/core';
5
- import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
- import * as i0 from "@angular/core";
7
- let DyteAi = class DyteAi {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
13
- }
14
- };
15
- DyteAi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
16
- DyteAi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAi, selector: "dyte-ai", inputs: { config: "config", defaultSection: "defaultSection", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
- DyteAi = __decorate([
18
- ProxyCmp({
19
- defineCustomElementFn: undefined,
20
- inputs: ['config', 'defaultSection', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
21
- })
22
- ], DyteAi);
23
- export { DyteAi };
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAi, decorators: [{
25
- type: Component,
26
- args: [{
27
- selector: 'dyte-ai',
28
- changeDetection: ChangeDetectionStrategy.OnPush,
29
- template: '<ng-content></ng-content>',
30
- inputs: ['config', 'defaultSection', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
31
- }]
32
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
33
- let DyteAiChat = class DyteAiChat {
34
- constructor(c, r, z) {
35
- this.z = z;
36
- c.detach();
37
- this.el = r.nativeElement;
38
- }
39
- };
40
- DyteAiChat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiChat, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
41
- DyteAiChat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiChat, selector: "dyte-ai-chat", inputs: { t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
- DyteAiChat = __decorate([
43
- ProxyCmp({
44
- defineCustomElementFn: undefined,
45
- inputs: ['t']
46
- })
47
- ], DyteAiChat);
48
- export { DyteAiChat };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiChat, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'dyte-ai-chat',
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: '<ng-content></ng-content>',
55
- inputs: ['t']
56
- }]
57
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
58
- let DyteAiHome = class DyteAiHome {
59
- constructor(c, r, z) {
60
- this.z = z;
61
- c.detach();
62
- this.el = r.nativeElement;
63
- }
64
- };
65
- DyteAiHome.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiHome, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
66
- DyteAiHome.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiHome, selector: "dyte-ai-home", inputs: { initialMessages: "initialMessages", meeting: "meeting" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
- DyteAiHome = __decorate([
68
- ProxyCmp({
69
- defineCustomElementFn: undefined,
70
- inputs: ['initialMessages', 'meeting']
71
- })
72
- ], DyteAiHome);
73
- export { DyteAiHome };
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiHome, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'dyte-ai-home',
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- template: '<ng-content></ng-content>',
80
- inputs: ['initialMessages', 'meeting']
81
- }]
82
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
83
- let DyteAiToggle = class DyteAiToggle {
84
- constructor(c, r, z) {
85
- this.z = z;
86
- c.detach();
87
- this.el = r.nativeElement;
88
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
89
- }
90
- };
91
- DyteAiToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
92
- DyteAiToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiToggle, selector: "dyte-ai-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
93
- DyteAiToggle = __decorate([
94
- ProxyCmp({
95
- defineCustomElementFn: undefined,
96
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
97
- })
98
- ], DyteAiToggle);
99
- export { DyteAiToggle };
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiToggle, decorators: [{
101
- type: Component,
102
- args: [{
103
- selector: 'dyte-ai-toggle',
104
- changeDetection: ChangeDetectionStrategy.OnPush,
105
- template: '<ng-content></ng-content>',
106
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
107
- }]
108
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
109
- let DyteAiTranscriptions = class DyteAiTranscriptions {
110
- constructor(c, r, z) {
111
- this.z = z;
112
- c.detach();
113
- this.el = r.nativeElement;
114
- }
115
- };
116
- DyteAiTranscriptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiTranscriptions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
117
- DyteAiTranscriptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiTranscriptions, selector: "dyte-ai-transcriptions", inputs: { initialTranscriptions: "initialTranscriptions", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- DyteAiTranscriptions = __decorate([
119
- ProxyCmp({
120
- defineCustomElementFn: undefined,
121
- inputs: ['initialTranscriptions', 'meeting', 't']
122
- })
123
- ], DyteAiTranscriptions);
124
- export { DyteAiTranscriptions };
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiTranscriptions, decorators: [{
126
- type: Component,
127
- args: [{
128
- selector: 'dyte-ai-transcriptions',
129
- changeDetection: ChangeDetectionStrategy.OnPush,
130
- template: '<ng-content></ng-content>',
131
- inputs: ['initialTranscriptions', 'meeting', 't']
132
- }]
133
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
134
- let DyteAudioGrid = class DyteAudioGrid {
135
- constructor(c, r, z) {
136
- this.z = z;
137
- c.detach();
138
- this.el = r.nativeElement;
139
- }
140
- };
141
- DyteAudioGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
142
- DyteAudioGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioGrid, selector: "dyte-audio-grid", inputs: { config: "config", hideSelf: "hideSelf", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
- DyteAudioGrid = __decorate([
144
- ProxyCmp({
145
- defineCustomElementFn: undefined,
146
- inputs: ['config', 'hideSelf', 'iconPack', 'meeting', 'size', 'states', 't']
147
- })
148
- ], DyteAudioGrid);
149
- export { DyteAudioGrid };
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioGrid, decorators: [{
151
- type: Component,
152
- args: [{
153
- selector: 'dyte-audio-grid',
154
- changeDetection: ChangeDetectionStrategy.OnPush,
155
- template: '<ng-content></ng-content>',
156
- inputs: ['config', 'hideSelf', 'iconPack', 'meeting', 'size', 'states', 't']
157
- }]
158
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
159
- let DyteAudioTile = class DyteAudioTile {
160
- constructor(c, r, z) {
161
- this.z = z;
162
- c.detach();
163
- this.el = r.nativeElement;
164
- }
165
- };
166
- DyteAudioTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
167
- DyteAudioTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioTile, selector: "dyte-audio-tile", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", participant: "participant", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
168
- DyteAudioTile = __decorate([
169
- ProxyCmp({
170
- defineCustomElementFn: undefined,
171
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'size', 'states', 't']
172
- })
173
- ], DyteAudioTile);
174
- export { DyteAudioTile };
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioTile, decorators: [{
176
- type: Component,
177
- args: [{
178
- selector: 'dyte-audio-tile',
179
- changeDetection: ChangeDetectionStrategy.OnPush,
180
- template: '<ng-content></ng-content>',
181
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'size', 'states', 't']
182
- }]
183
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
184
- let DyteAudioVisualizer = class DyteAudioVisualizer {
185
- constructor(c, r, z) {
186
- this.z = z;
187
- c.detach();
188
- this.el = r.nativeElement;
189
- }
190
- };
191
- DyteAudioVisualizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioVisualizer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
192
- DyteAudioVisualizer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioVisualizer, selector: "dyte-audio-visualizer", inputs: { hideMuted: "hideMuted", iconPack: "iconPack", isScreenShare: "isScreenShare", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
193
- DyteAudioVisualizer = __decorate([
194
- ProxyCmp({
195
- defineCustomElementFn: undefined,
196
- inputs: ['hideMuted', 'iconPack', 'isScreenShare', 'participant', 'size', 't', 'variant']
197
- })
198
- ], DyteAudioVisualizer);
199
- export { DyteAudioVisualizer };
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioVisualizer, decorators: [{
201
- type: Component,
202
- args: [{
203
- selector: 'dyte-audio-visualizer',
204
- changeDetection: ChangeDetectionStrategy.OnPush,
205
- template: '<ng-content></ng-content>',
206
- inputs: ['hideMuted', 'iconPack', 'isScreenShare', 'participant', 'size', 't', 'variant']
207
- }]
208
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
209
- let DyteAvatar = class DyteAvatar {
210
- constructor(c, r, z) {
211
- this.z = z;
212
- c.detach();
213
- this.el = r.nativeElement;
214
- }
215
- };
216
- DyteAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
217
- DyteAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAvatar, selector: "dyte-avatar", inputs: { iconPack: "iconPack", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
- DyteAvatar = __decorate([
219
- ProxyCmp({
220
- defineCustomElementFn: undefined,
221
- inputs: ['iconPack', 'participant', 'size', 't', 'variant']
222
- })
223
- ], DyteAvatar);
224
- export { DyteAvatar };
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAvatar, decorators: [{
226
- type: Component,
227
- args: [{
228
- selector: 'dyte-avatar',
229
- changeDetection: ChangeDetectionStrategy.OnPush,
230
- template: '<ng-content></ng-content>',
231
- inputs: ['iconPack', 'participant', 'size', 't', 'variant']
232
- }]
233
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
234
- let DyteBreakoutRoomManager = class DyteBreakoutRoomManager {
235
- constructor(c, r, z) {
236
- this.z = z;
237
- c.detach();
238
- this.el = r.nativeElement;
239
- proxyOutputs(this, this.el, ['participantsAdd', 'participantDelete', 'roomJoin', 'delete', 'update']);
240
- }
241
- };
242
- DyteBreakoutRoomManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
243
- DyteBreakoutRoomManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomManager, selector: "dyte-breakout-room-manager", inputs: { allowDelete: "allowDelete", assigningParticipants: "assigningParticipants", defaultExpanded: "defaultExpanded", iconPack: "iconPack", isDragMode: "isDragMode", meeting: "meeting", mode: "mode", room: "room", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
244
- DyteBreakoutRoomManager = __decorate([
245
- ProxyCmp({
246
- defineCustomElementFn: undefined,
247
- inputs: ['allowDelete', 'assigningParticipants', 'defaultExpanded', 'iconPack', 'isDragMode', 'meeting', 'mode', 'room', 'states', 't']
248
- })
249
- ], DyteBreakoutRoomManager);
250
- export { DyteBreakoutRoomManager };
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomManager, decorators: [{
252
- type: Component,
253
- args: [{
254
- selector: 'dyte-breakout-room-manager',
255
- changeDetection: ChangeDetectionStrategy.OnPush,
256
- template: '<ng-content></ng-content>',
257
- inputs: ['allowDelete', 'assigningParticipants', 'defaultExpanded', 'iconPack', 'isDragMode', 'meeting', 'mode', 'room', 'states', 't']
258
- }]
259
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
260
- let DyteBreakoutRoomParticipants = class DyteBreakoutRoomParticipants {
261
- constructor(c, r, z) {
262
- this.z = z;
263
- c.detach();
264
- this.el = r.nativeElement;
265
- proxyOutputs(this, this.el, ['selectedParticipantsUpdate', 'allParticipantsToggleUpdate', 'participantsDragging']);
266
- }
267
- };
268
- DyteBreakoutRoomParticipants.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomParticipants, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
269
- DyteBreakoutRoomParticipants.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomParticipants, selector: "dyte-breakout-room-participants", inputs: { iconPack: "iconPack", meeting: "meeting", participantIds: "participantIds", selectedParticipantIds: "selectedParticipantIds", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
270
- DyteBreakoutRoomParticipants = __decorate([
271
- ProxyCmp({
272
- defineCustomElementFn: undefined,
273
- inputs: ['iconPack', 'meeting', 'participantIds', 'selectedParticipantIds', 't']
274
- })
275
- ], DyteBreakoutRoomParticipants);
276
- export { DyteBreakoutRoomParticipants };
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomParticipants, decorators: [{
278
- type: Component,
279
- args: [{
280
- selector: 'dyte-breakout-room-participants',
281
- changeDetection: ChangeDetectionStrategy.OnPush,
282
- template: '<ng-content></ng-content>',
283
- inputs: ['iconPack', 'meeting', 'participantIds', 'selectedParticipantIds', 't']
284
- }]
285
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
286
- let DyteBreakoutRoomsManager = class DyteBreakoutRoomsManager {
287
- constructor(c, r, z) {
288
- this.z = z;
289
- c.detach();
290
- this.el = r.nativeElement;
291
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
292
- }
293
- };
294
- DyteBreakoutRoomsManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
295
- DyteBreakoutRoomsManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomsManager, selector: "dyte-breakout-rooms-manager", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
296
- DyteBreakoutRoomsManager = __decorate([
297
- ProxyCmp({
298
- defineCustomElementFn: undefined,
299
- inputs: ['iconPack', 'meeting', 'states', 't']
300
- })
301
- ], DyteBreakoutRoomsManager);
302
- export { DyteBreakoutRoomsManager };
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsManager, decorators: [{
304
- type: Component,
305
- args: [{
306
- selector: 'dyte-breakout-rooms-manager',
307
- changeDetection: ChangeDetectionStrategy.OnPush,
308
- template: '<ng-content></ng-content>',
309
- inputs: ['iconPack', 'meeting', 'states', 't']
310
- }]
311
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
312
- let DyteBreakoutRoomsToggle = class DyteBreakoutRoomsToggle {
313
- constructor(c, r, z) {
314
- this.z = z;
315
- c.detach();
316
- this.el = r.nativeElement;
317
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
318
- }
319
- };
320
- DyteBreakoutRoomsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
321
- DyteBreakoutRoomsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomsToggle, selector: "dyte-breakout-rooms-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
322
- DyteBreakoutRoomsToggle = __decorate([
323
- ProxyCmp({
324
- defineCustomElementFn: undefined,
325
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
326
- })
327
- ], DyteBreakoutRoomsToggle);
328
- export { DyteBreakoutRoomsToggle };
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsToggle, decorators: [{
330
- type: Component,
331
- args: [{
332
- selector: 'dyte-breakout-rooms-toggle',
333
- changeDetection: ChangeDetectionStrategy.OnPush,
334
- template: '<ng-content></ng-content>',
335
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
336
- }]
337
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
338
- let DyteBroadcastMessageModal = class DyteBroadcastMessageModal {
339
- constructor(c, r, z) {
340
- this.z = z;
341
- c.detach();
342
- this.el = r.nativeElement;
343
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
344
- }
345
- };
346
- DyteBroadcastMessageModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBroadcastMessageModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
347
- DyteBroadcastMessageModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBroadcastMessageModal, selector: "dyte-broadcast-message-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
348
- DyteBroadcastMessageModal = __decorate([
349
- ProxyCmp({
350
- defineCustomElementFn: undefined,
351
- inputs: ['iconPack', 'meeting', 'states', 't']
352
- })
353
- ], DyteBroadcastMessageModal);
354
- export { DyteBroadcastMessageModal };
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBroadcastMessageModal, decorators: [{
356
- type: Component,
357
- args: [{
358
- selector: 'dyte-broadcast-message-modal',
359
- changeDetection: ChangeDetectionStrategy.OnPush,
360
- template: '<ng-content></ng-content>',
361
- inputs: ['iconPack', 'meeting', 'states', 't']
362
- }]
363
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
364
- let DyteButton = class DyteButton {
365
- constructor(c, r, z) {
366
- this.z = z;
367
- c.detach();
368
- this.el = r.nativeElement;
369
- }
370
- };
371
- DyteButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
372
- DyteButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteButton, selector: "dyte-button", inputs: { disabled: "disabled", iconPack: "iconPack", kind: "kind", reverse: "reverse", size: "size", t: "t", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
373
- DyteButton = __decorate([
374
- ProxyCmp({
375
- defineCustomElementFn: undefined,
376
- inputs: ['disabled', 'iconPack', 'kind', 'reverse', 'size', 't', 'type', 'variant']
377
- })
378
- ], DyteButton);
379
- export { DyteButton };
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteButton, decorators: [{
381
- type: Component,
382
- args: [{
383
- selector: 'dyte-button',
384
- changeDetection: ChangeDetectionStrategy.OnPush,
385
- template: '<ng-content></ng-content>',
386
- inputs: ['disabled', 'iconPack', 'kind', 'reverse', 'size', 't', 'type', 'variant']
387
- }]
388
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
389
- let DyteCameraSelector = class DyteCameraSelector {
390
- constructor(c, r, z) {
391
- this.z = z;
392
- c.detach();
393
- this.el = r.nativeElement;
394
- }
395
- };
396
- DyteCameraSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
397
- DyteCameraSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCameraSelector, selector: "dyte-camera-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
398
- DyteCameraSelector = __decorate([
399
- ProxyCmp({
400
- defineCustomElementFn: undefined,
401
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
402
- })
403
- ], DyteCameraSelector);
404
- export { DyteCameraSelector };
405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraSelector, decorators: [{
406
- type: Component,
407
- args: [{
408
- selector: 'dyte-camera-selector',
409
- changeDetection: ChangeDetectionStrategy.OnPush,
410
- template: '<ng-content></ng-content>',
411
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
412
- }]
413
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
414
- let DyteCameraToggle = class DyteCameraToggle {
415
- constructor(c, r, z) {
416
- this.z = z;
417
- c.detach();
418
- this.el = r.nativeElement;
419
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
420
- }
421
- };
422
- DyteCameraToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
423
- DyteCameraToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCameraToggle, selector: "dyte-camera-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
424
- DyteCameraToggle = __decorate([
425
- ProxyCmp({
426
- defineCustomElementFn: undefined,
427
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
428
- })
429
- ], DyteCameraToggle);
430
- export { DyteCameraToggle };
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraToggle, decorators: [{
432
- type: Component,
433
- args: [{
434
- selector: 'dyte-camera-toggle',
435
- changeDetection: ChangeDetectionStrategy.OnPush,
436
- template: '<ng-content></ng-content>',
437
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
438
- }]
439
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
440
- let DyteCaptionToggle = class DyteCaptionToggle {
441
- constructor(c, r, z) {
442
- this.z = z;
443
- c.detach();
444
- this.el = r.nativeElement;
445
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
446
- }
447
- };
448
- DyteCaptionToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCaptionToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
449
- DyteCaptionToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCaptionToggle, selector: "dyte-caption-toggle", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
450
- DyteCaptionToggle = __decorate([
451
- ProxyCmp({
452
- defineCustomElementFn: undefined,
453
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
454
- })
455
- ], DyteCaptionToggle);
456
- export { DyteCaptionToggle };
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCaptionToggle, decorators: [{
458
- type: Component,
459
- args: [{
460
- selector: 'dyte-caption-toggle',
461
- changeDetection: ChangeDetectionStrategy.OnPush,
462
- template: '<ng-content></ng-content>',
463
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
464
- }]
465
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
466
- let DyteChannelCreator = class DyteChannelCreator {
467
- constructor(c, r, z) {
468
- this.z = z;
469
- c.detach();
470
- this.el = r.nativeElement;
471
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'switchChannel']);
472
- }
473
- };
474
- DyteChannelCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelCreator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
475
- DyteChannelCreator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelCreator, selector: "dyte-channel-creator", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
476
- DyteChannelCreator = __decorate([
477
- ProxyCmp({
478
- defineCustomElementFn: undefined,
479
- inputs: ['iconPack', 'meeting', 't']
480
- })
481
- ], DyteChannelCreator);
482
- export { DyteChannelCreator };
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelCreator, decorators: [{
484
- type: Component,
485
- args: [{
486
- selector: 'dyte-channel-creator',
487
- changeDetection: ChangeDetectionStrategy.OnPush,
488
- template: '<ng-content></ng-content>',
489
- inputs: ['iconPack', 'meeting', 't']
490
- }]
491
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
492
- let DyteChannelDetails = class DyteChannelDetails {
493
- constructor(c, r, z) {
494
- this.z = z;
495
- c.detach();
496
- this.el = r.nativeElement;
497
- }
498
- };
499
- DyteChannelDetails.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
500
- DyteChannelDetails.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelDetails, selector: "dyte-channel-details", inputs: { channel: "channel", iconPack: "iconPack", members: "members", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
501
- DyteChannelDetails = __decorate([
502
- ProxyCmp({
503
- defineCustomElementFn: undefined,
504
- inputs: ['channel', 'iconPack', 'members', 't']
505
- })
506
- ], DyteChannelDetails);
507
- export { DyteChannelDetails };
508
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelDetails, decorators: [{
509
- type: Component,
510
- args: [{
511
- selector: 'dyte-channel-details',
512
- changeDetection: ChangeDetectionStrategy.OnPush,
513
- template: '<ng-content></ng-content>',
514
- inputs: ['channel', 'iconPack', 'members', 't']
515
- }]
516
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
517
- let DyteChannelHeader = class DyteChannelHeader {
518
- constructor(c, r, z) {
519
- this.z = z;
520
- c.detach();
521
- this.el = r.nativeElement;
522
- proxyOutputs(this, this.el, ['search', 'searchDismissed', 'back']);
523
- }
524
- };
525
- DyteChannelHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
526
- DyteChannelHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelHeader, selector: "dyte-channel-header", inputs: { channel: "channel", iconPack: "iconPack", meeting: "meeting", showBackButton: "showBackButton", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
527
- DyteChannelHeader = __decorate([
528
- ProxyCmp({
529
- defineCustomElementFn: undefined,
530
- inputs: ['channel', 'iconPack', 'meeting', 'showBackButton', 't']
531
- })
532
- ], DyteChannelHeader);
533
- export { DyteChannelHeader };
534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelHeader, decorators: [{
535
- type: Component,
536
- args: [{
537
- selector: 'dyte-channel-header',
538
- changeDetection: ChangeDetectionStrategy.OnPush,
539
- template: '<ng-content></ng-content>',
540
- inputs: ['channel', 'iconPack', 'meeting', 'showBackButton', 't']
541
- }]
542
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
543
- let DyteChannelSelectorUi = class DyteChannelSelectorUi {
544
- constructor(c, r, z) {
545
- this.z = z;
546
- c.detach();
547
- this.el = r.nativeElement;
548
- proxyOutputs(this, this.el, ['channelChanged']);
549
- }
550
- };
551
- DyteChannelSelectorUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
552
- DyteChannelSelectorUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelSelectorUi, selector: "dyte-channel-selector-ui", inputs: { channels: "channels", iconPack: "iconPack", selectedChannelId: "selectedChannelId", showRecentMessage: "showRecentMessage", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
553
- DyteChannelSelectorUi = __decorate([
554
- ProxyCmp({
555
- defineCustomElementFn: undefined,
556
- inputs: ['channels', 'iconPack', 'selectedChannelId', 'showRecentMessage', 't']
557
- })
558
- ], DyteChannelSelectorUi);
559
- export { DyteChannelSelectorUi };
560
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorUi, decorators: [{
561
- type: Component,
562
- args: [{
563
- selector: 'dyte-channel-selector-ui',
564
- changeDetection: ChangeDetectionStrategy.OnPush,
565
- template: '<ng-content></ng-content>',
566
- inputs: ['channels', 'iconPack', 'selectedChannelId', 'showRecentMessage', 't']
567
- }]
568
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
569
- let DyteChannelSelectorView = class DyteChannelSelectorView {
570
- constructor(c, r, z) {
571
- this.z = z;
572
- c.detach();
573
- this.el = r.nativeElement;
574
- proxyOutputs(this, this.el, ['channelChange']);
575
- }
576
- };
577
- DyteChannelSelectorView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
578
- DyteChannelSelectorView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelSelectorView, selector: "dyte-channel-selector-view", inputs: { channels: "channels", disableSearch: "disableSearch", hideAvatar: "hideAvatar", iconPack: "iconPack", selectedChannelId: "selectedChannelId", t: "t", viewAs: "viewAs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
579
- DyteChannelSelectorView = __decorate([
580
- ProxyCmp({
581
- defineCustomElementFn: undefined,
582
- inputs: ['channels', 'disableSearch', 'hideAvatar', 'iconPack', 'selectedChannelId', 't', 'viewAs']
583
- })
584
- ], DyteChannelSelectorView);
585
- export { DyteChannelSelectorView };
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorView, decorators: [{
587
- type: Component,
588
- args: [{
589
- selector: 'dyte-channel-selector-view',
590
- changeDetection: ChangeDetectionStrategy.OnPush,
591
- template: '<ng-content></ng-content>',
592
- inputs: ['channels', 'disableSearch', 'hideAvatar', 'iconPack', 'selectedChannelId', 't', 'viewAs']
593
- }]
594
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
595
- let DyteChat = class DyteChat {
596
- constructor(c, r, z) {
597
- this.z = z;
598
- c.detach();
599
- this.el = r.nativeElement;
600
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
601
- }
602
- };
603
- DyteChat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChat, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
604
- DyteChat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChat, selector: "dyte-chat", inputs: { config: "config", disablePrivateChat: "disablePrivateChat", displayFilter: "displayFilter", iconPack: "iconPack", meeting: "meeting", privatePresetFilter: "privatePresetFilter", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
605
- DyteChat = __decorate([
606
- ProxyCmp({
607
- defineCustomElementFn: undefined,
608
- inputs: ['config', 'disablePrivateChat', 'displayFilter', 'iconPack', 'meeting', 'privatePresetFilter', 'size', 't']
609
- })
610
- ], DyteChat);
611
- export { DyteChat };
612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChat, decorators: [{
613
- type: Component,
614
- args: [{
615
- selector: 'dyte-chat',
616
- changeDetection: ChangeDetectionStrategy.OnPush,
617
- template: '<ng-content></ng-content>',
618
- inputs: ['config', 'disablePrivateChat', 'displayFilter', 'iconPack', 'meeting', 'privatePresetFilter', 'size', 't']
619
- }]
620
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
621
- let DyteChatComposerUi = class DyteChatComposerUi {
622
- constructor(c, r, z) {
623
- this.z = z;
624
- c.detach();
625
- this.el = r.nativeElement;
626
- proxyOutputs(this, this.el, ['dyteNewMessage', 'dyteEditMessage', 'dyteEditCancelled']);
627
- }
628
- };
629
- DyteChatComposerUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
630
- DyteChatComposerUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatComposerUi, selector: "dyte-chat-composer-ui", inputs: { canSendFiles: "canSendFiles", canSendTextMessage: "canSendTextMessage", channelId: "channelId", disableEmojiPicker: "disableEmojiPicker", iconPack: "iconPack", members: "members", prefill: "prefill", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
631
- DyteChatComposerUi = __decorate([
632
- ProxyCmp({
633
- defineCustomElementFn: undefined,
634
- inputs: ['canSendFiles', 'canSendTextMessage', 'channelId', 'disableEmojiPicker', 'iconPack', 'members', 'prefill', 'size', 't']
635
- })
636
- ], DyteChatComposerUi);
637
- export { DyteChatComposerUi };
638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerUi, decorators: [{
639
- type: Component,
640
- args: [{
641
- selector: 'dyte-chat-composer-ui',
642
- changeDetection: ChangeDetectionStrategy.OnPush,
643
- template: '<ng-content></ng-content>',
644
- inputs: ['canSendFiles', 'canSendTextMessage', 'channelId', 'disableEmojiPicker', 'iconPack', 'members', 'prefill', 'size', 't']
645
- }]
646
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
647
- let DyteChatComposerView = class DyteChatComposerView {
648
- constructor(c, r, z) {
649
- this.z = z;
650
- c.detach();
651
- this.el = r.nativeElement;
652
- proxyOutputs(this, this.el, ['newMessage', 'editMessage', 'editCancel', 'quotedMessageDismiss']);
653
- }
654
- };
655
- DyteChatComposerView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
656
- DyteChatComposerView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatComposerView, selector: "dyte-chat-composer-view", inputs: { canSendFiles: "canSendFiles", canSendTextMessage: "canSendTextMessage", disableEmojiPicker: "disableEmojiPicker", iconPack: "iconPack", inputTextPlaceholder: "inputTextPlaceholder", isEditing: "isEditing", maxLength: "maxLength", message: "message", quotedMessage: "quotedMessage", rateLimits: "rateLimits", storageKey: "storageKey", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
657
- DyteChatComposerView = __decorate([
658
- ProxyCmp({
659
- defineCustomElementFn: undefined,
660
- inputs: ['canSendFiles', 'canSendTextMessage', 'disableEmojiPicker', 'iconPack', 'inputTextPlaceholder', 'isEditing', 'maxLength', 'message', 'quotedMessage', 'rateLimits', 'storageKey', 't']
661
- })
662
- ], DyteChatComposerView);
663
- export { DyteChatComposerView };
664
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerView, decorators: [{
665
- type: Component,
666
- args: [{
667
- selector: 'dyte-chat-composer-view',
668
- changeDetection: ChangeDetectionStrategy.OnPush,
669
- template: '<ng-content></ng-content>',
670
- inputs: ['canSendFiles', 'canSendTextMessage', 'disableEmojiPicker', 'iconPack', 'inputTextPlaceholder', 'isEditing', 'maxLength', 'message', 'quotedMessage', 'rateLimits', 'storageKey', 't']
671
- }]
672
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
673
- let DyteChatMessage = class DyteChatMessage {
674
- constructor(c, r, z) {
675
- this.z = z;
676
- c.detach();
677
- this.el = r.nativeElement;
678
- proxyOutputs(this, this.el, ['edit', 'reply', 'pin', 'delete']);
679
- }
680
- };
681
- DyteChatMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
682
- DyteChatMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessage, selector: "dyte-chat-message", inputs: { alignRight: "alignRight", canDelete: "canDelete", canEdit: "canEdit", canPin: "canPin", canReply: "canReply", child: "child", disableControls: "disableControls", hideAvatar: "hideAvatar", iconPack: "iconPack", isContinued: "isContinued", isSelf: "isSelf", isUnread: "isUnread", leftAlign: "leftAlign", message: "message", senderDisplayPicture: "senderDisplayPicture", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
683
- DyteChatMessage = __decorate([
684
- ProxyCmp({
685
- defineCustomElementFn: undefined,
686
- inputs: ['alignRight', 'canDelete', 'canEdit', 'canPin', 'canReply', 'child', 'disableControls', 'hideAvatar', 'iconPack', 'isContinued', 'isSelf', 'isUnread', 'leftAlign', 'message', 'senderDisplayPicture', 'size', 't']
687
- })
688
- ], DyteChatMessage);
689
- export { DyteChatMessage };
690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessage, decorators: [{
691
- type: Component,
692
- args: [{
693
- selector: 'dyte-chat-message',
694
- changeDetection: ChangeDetectionStrategy.OnPush,
695
- template: '<ng-content></ng-content>',
696
- inputs: ['alignRight', 'canDelete', 'canEdit', 'canPin', 'canReply', 'child', 'disableControls', 'hideAvatar', 'iconPack', 'isContinued', 'isSelf', 'isUnread', 'leftAlign', 'message', 'senderDisplayPicture', 'size', 't']
697
- }]
698
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
699
- let DyteChatMessagesUi = class DyteChatMessagesUi {
700
- constructor(c, r, z) {
701
- this.z = z;
702
- c.detach();
703
- this.el = r.nativeElement;
704
- proxyOutputs(this, this.el, ['pinMessage', 'dyteStateUpdate']);
705
- }
706
- };
707
- DyteChatMessagesUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
708
- DyteChatMessagesUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessagesUi, selector: "dyte-chat-messages-ui", inputs: { canPinMessages: "canPinMessages", iconPack: "iconPack", messages: "messages", selectedGroup: "selectedGroup", selfUserId: "selfUserId", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
709
- DyteChatMessagesUi = __decorate([
710
- ProxyCmp({
711
- defineCustomElementFn: undefined,
712
- inputs: ['canPinMessages', 'iconPack', 'messages', 'selectedGroup', 'selfUserId', 'size', 't']
713
- })
714
- ], DyteChatMessagesUi);
715
- export { DyteChatMessagesUi };
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUi, decorators: [{
717
- type: Component,
718
- args: [{
719
- selector: 'dyte-chat-messages-ui',
720
- changeDetection: ChangeDetectionStrategy.OnPush,
721
- template: '<ng-content></ng-content>',
722
- inputs: ['canPinMessages', 'iconPack', 'messages', 'selectedGroup', 'selfUserId', 'size', 't']
723
- }]
724
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
725
- let DyteChatMessagesUiPaginated = class DyteChatMessagesUiPaginated {
726
- constructor(c, r, z) {
727
- this.z = z;
728
- c.detach();
729
- this.el = r.nativeElement;
730
- proxyOutputs(this, this.el, ['editMessageInit', 'pinMessage', 'deleteMessage', 'dyteStateUpdate']);
731
- }
732
- };
733
- DyteChatMessagesUiPaginated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUiPaginated, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
734
- DyteChatMessagesUiPaginated.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessagesUiPaginated, selector: "dyte-chat-messages-ui-paginated", inputs: { iconPack: "iconPack", leftAlign: "leftAlign", meeting: "meeting", selectedChannel: "selectedChannel", selectedChannelId: "selectedChannelId", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
735
- DyteChatMessagesUiPaginated = __decorate([
736
- ProxyCmp({
737
- defineCustomElementFn: undefined,
738
- inputs: ['iconPack', 'leftAlign', 'meeting', 'selectedChannel', 'selectedChannelId', 'size', 't']
739
- })
740
- ], DyteChatMessagesUiPaginated);
741
- export { DyteChatMessagesUiPaginated };
742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUiPaginated, decorators: [{
743
- type: Component,
744
- args: [{
745
- selector: 'dyte-chat-messages-ui-paginated',
746
- changeDetection: ChangeDetectionStrategy.OnPush,
747
- template: '<ng-content></ng-content>',
748
- inputs: ['iconPack', 'leftAlign', 'meeting', 'selectedChannel', 'selectedChannelId', 'size', 't']
749
- }]
750
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
751
- let DyteChatSearchResults = class DyteChatSearchResults {
752
- constructor(c, r, z) {
753
- this.z = z;
754
- c.detach();
755
- this.el = r.nativeElement;
756
- }
757
- };
758
- DyteChatSearchResults.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSearchResults, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
759
- DyteChatSearchResults.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatSearchResults, selector: "dyte-chat-search-results", inputs: { channelId: "channelId", iconPack: "iconPack", meeting: "meeting", query: "query", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
760
- DyteChatSearchResults = __decorate([
761
- ProxyCmp({
762
- defineCustomElementFn: undefined,
763
- inputs: ['channelId', 'iconPack', 'meeting', 'query', 't']
764
- })
765
- ], DyteChatSearchResults);
766
- export { DyteChatSearchResults };
767
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSearchResults, decorators: [{
768
- type: Component,
769
- args: [{
770
- selector: 'dyte-chat-search-results',
771
- changeDetection: ChangeDetectionStrategy.OnPush,
772
- template: '<ng-content></ng-content>',
773
- inputs: ['channelId', 'iconPack', 'meeting', 'query', 't']
774
- }]
775
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
776
- let DyteChatSelectorUi = class DyteChatSelectorUi {
777
- constructor(c, r, z) {
778
- this.z = z;
779
- c.detach();
780
- this.el = r.nativeElement;
781
- proxyOutputs(this, this.el, ['dyteChatGroupChanged']);
782
- }
783
- };
784
- DyteChatSelectorUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSelectorUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
785
- DyteChatSelectorUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatSelectorUi, selector: "dyte-chat-selector-ui", inputs: { groups: "groups", iconPack: "iconPack", selectedGroupId: "selectedGroupId", selfUserId: "selfUserId", t: "t", unreadCounts: "unreadCounts" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
786
- DyteChatSelectorUi = __decorate([
787
- ProxyCmp({
788
- defineCustomElementFn: undefined,
789
- inputs: ['groups', 'iconPack', 'selectedGroupId', 'selfUserId', 't', 'unreadCounts']
790
- })
791
- ], DyteChatSelectorUi);
792
- export { DyteChatSelectorUi };
793
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSelectorUi, decorators: [{
794
- type: Component,
795
- args: [{
796
- selector: 'dyte-chat-selector-ui',
797
- changeDetection: ChangeDetectionStrategy.OnPush,
798
- template: '<ng-content></ng-content>',
799
- inputs: ['groups', 'iconPack', 'selectedGroupId', 'selfUserId', 't', 'unreadCounts']
800
- }]
801
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
802
- let DyteChatToggle = class DyteChatToggle {
803
- constructor(c, r, z) {
804
- this.z = z;
805
- c.detach();
806
- this.el = r.nativeElement;
807
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
808
- }
809
- };
810
- DyteChatToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
811
- DyteChatToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatToggle, selector: "dyte-chat-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
812
- DyteChatToggle = __decorate([
813
- ProxyCmp({
814
- defineCustomElementFn: undefined,
815
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
816
- })
817
- ], DyteChatToggle);
818
- export { DyteChatToggle };
819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatToggle, decorators: [{
820
- type: Component,
821
- args: [{
822
- selector: 'dyte-chat-toggle',
823
- changeDetection: ChangeDetectionStrategy.OnPush,
824
- template: '<ng-content></ng-content>',
825
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
826
- }]
827
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
828
- let DyteClock = class DyteClock {
829
- constructor(c, r, z) {
830
- this.z = z;
831
- c.detach();
832
- this.el = r.nativeElement;
833
- }
834
- };
835
- DyteClock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteClock, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
836
- DyteClock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteClock, selector: "dyte-clock", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
837
- DyteClock = __decorate([
838
- ProxyCmp({
839
- defineCustomElementFn: undefined,
840
- inputs: ['iconPack', 'meeting', 't']
841
- })
842
- ], DyteClock);
843
- export { DyteClock };
844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteClock, decorators: [{
845
- type: Component,
846
- args: [{
847
- selector: 'dyte-clock',
848
- changeDetection: ChangeDetectionStrategy.OnPush,
849
- template: '<ng-content></ng-content>',
850
- inputs: ['iconPack', 'meeting', 't']
851
- }]
852
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
853
- let DyteConfirmationModal = class DyteConfirmationModal {
854
- constructor(c, r, z) {
855
- this.z = z;
856
- c.detach();
857
- this.el = r.nativeElement;
858
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
859
- }
860
- };
861
- DyteConfirmationModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteConfirmationModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
862
- DyteConfirmationModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteConfirmationModal, selector: "dyte-confirmation-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
863
- DyteConfirmationModal = __decorate([
864
- ProxyCmp({
865
- defineCustomElementFn: undefined,
866
- inputs: ['iconPack', 'meeting', 'states', 't']
867
- })
868
- ], DyteConfirmationModal);
869
- export { DyteConfirmationModal };
870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteConfirmationModal, decorators: [{
871
- type: Component,
872
- args: [{
873
- selector: 'dyte-confirmation-modal',
874
- changeDetection: ChangeDetectionStrategy.OnPush,
875
- template: '<ng-content></ng-content>',
876
- inputs: ['iconPack', 'meeting', 'states', 't']
877
- }]
878
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
879
- let DyteControlbar = class DyteControlbar {
880
- constructor(c, r, z) {
881
- this.z = z;
882
- c.detach();
883
- this.el = r.nativeElement;
884
- }
885
- };
886
- DyteControlbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
887
- DyteControlbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteControlbar, selector: "dyte-controlbar", inputs: { config: "config", disableRender: "disableRender", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
888
- DyteControlbar = __decorate([
889
- ProxyCmp({
890
- defineCustomElementFn: undefined,
891
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
892
- })
893
- ], DyteControlbar);
894
- export { DyteControlbar };
895
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbar, decorators: [{
896
- type: Component,
897
- args: [{
898
- selector: 'dyte-controlbar',
899
- changeDetection: ChangeDetectionStrategy.OnPush,
900
- template: '<ng-content></ng-content>',
901
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
902
- }]
903
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
904
- let DyteControlbarButton = class DyteControlbarButton {
905
- constructor(c, r, z) {
906
- this.z = z;
907
- c.detach();
908
- this.el = r.nativeElement;
909
- }
910
- };
911
- DyteControlbarButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbarButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
912
- DyteControlbarButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteControlbarButton, selector: "dyte-controlbar-button", inputs: { brandIcon: "brandIcon", disabled: "disabled", icon: "icon", iconPack: "iconPack", isLoading: "isLoading", label: "label", showWarning: "showWarning", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
913
- DyteControlbarButton = __decorate([
914
- ProxyCmp({
915
- defineCustomElementFn: undefined,
916
- inputs: ['brandIcon', 'disabled', 'icon', 'iconPack', 'isLoading', 'label', 'showWarning', 'size', 't', 'variant']
917
- })
918
- ], DyteControlbarButton);
919
- export { DyteControlbarButton };
920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbarButton, decorators: [{
921
- type: Component,
922
- args: [{
923
- selector: 'dyte-controlbar-button',
924
- changeDetection: ChangeDetectionStrategy.OnPush,
925
- template: '<ng-content></ng-content>',
926
- inputs: ['brandIcon', 'disabled', 'icon', 'iconPack', 'isLoading', 'label', 'showWarning', 'size', 't', 'variant']
927
- }]
928
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
929
- let DyteCounter = class DyteCounter {
930
- constructor(c, r, z) {
931
- this.z = z;
932
- c.detach();
933
- this.el = r.nativeElement;
934
- proxyOutputs(this, this.el, ['valueChange']);
935
- }
936
- };
937
- DyteCounter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCounter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
938
- DyteCounter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCounter, selector: "dyte-counter", inputs: { iconPack: "iconPack", minValue: "minValue", size: "size", t: "t", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
939
- DyteCounter = __decorate([
940
- ProxyCmp({
941
- defineCustomElementFn: undefined,
942
- inputs: ['iconPack', 'minValue', 'size', 't', 'value']
943
- })
944
- ], DyteCounter);
945
- export { DyteCounter };
946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCounter, decorators: [{
947
- type: Component,
948
- args: [{
949
- selector: 'dyte-counter',
950
- changeDetection: ChangeDetectionStrategy.OnPush,
951
- template: '<ng-content></ng-content>',
952
- inputs: ['iconPack', 'minValue', 'size', 't', 'value']
953
- }]
954
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
955
- let DyteDebugger = class DyteDebugger {
956
- constructor(c, r, z) {
957
- this.z = z;
958
- c.detach();
959
- this.el = r.nativeElement;
960
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
961
- }
962
- };
963
- DyteDebugger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebugger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
964
- DyteDebugger.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebugger, selector: "dyte-debugger", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
965
- DyteDebugger = __decorate([
966
- ProxyCmp({
967
- defineCustomElementFn: undefined,
968
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
969
- })
970
- ], DyteDebugger);
971
- export { DyteDebugger };
972
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebugger, decorators: [{
973
- type: Component,
974
- args: [{
975
- selector: 'dyte-debugger',
976
- changeDetection: ChangeDetectionStrategy.OnPush,
977
- template: '<ng-content></ng-content>',
978
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
979
- }]
980
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
981
- let DyteDebuggerAudio = class DyteDebuggerAudio {
982
- constructor(c, r, z) {
983
- this.z = z;
984
- c.detach();
985
- this.el = r.nativeElement;
986
- }
987
- };
988
- DyteDebuggerAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
989
- DyteDebuggerAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerAudio, selector: "dyte-debugger-audio", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
990
- DyteDebuggerAudio = __decorate([
991
- ProxyCmp({
992
- defineCustomElementFn: undefined,
993
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
994
- })
995
- ], DyteDebuggerAudio);
996
- export { DyteDebuggerAudio };
997
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerAudio, decorators: [{
998
- type: Component,
999
- args: [{
1000
- selector: 'dyte-debugger-audio',
1001
- changeDetection: ChangeDetectionStrategy.OnPush,
1002
- template: '<ng-content></ng-content>',
1003
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1004
- }]
1005
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1006
- let DyteDebuggerScreenshare = class DyteDebuggerScreenshare {
1007
- constructor(c, r, z) {
1008
- this.z = z;
1009
- c.detach();
1010
- this.el = r.nativeElement;
1011
- }
1012
- };
1013
- DyteDebuggerScreenshare.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerScreenshare, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1014
- DyteDebuggerScreenshare.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerScreenshare, selector: "dyte-debugger-screenshare", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1015
- DyteDebuggerScreenshare = __decorate([
1016
- ProxyCmp({
1017
- defineCustomElementFn: undefined,
1018
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1019
- })
1020
- ], DyteDebuggerScreenshare);
1021
- export { DyteDebuggerScreenshare };
1022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerScreenshare, decorators: [{
1023
- type: Component,
1024
- args: [{
1025
- selector: 'dyte-debugger-screenshare',
1026
- changeDetection: ChangeDetectionStrategy.OnPush,
1027
- template: '<ng-content></ng-content>',
1028
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1029
- }]
1030
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1031
- let DyteDebuggerSystem = class DyteDebuggerSystem {
1032
- constructor(c, r, z) {
1033
- this.z = z;
1034
- c.detach();
1035
- this.el = r.nativeElement;
1036
- }
1037
- };
1038
- DyteDebuggerSystem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerSystem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1039
- DyteDebuggerSystem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerSystem, selector: "dyte-debugger-system", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1040
- DyteDebuggerSystem = __decorate([
1041
- ProxyCmp({
1042
- defineCustomElementFn: undefined,
1043
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1044
- })
1045
- ], DyteDebuggerSystem);
1046
- export { DyteDebuggerSystem };
1047
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerSystem, decorators: [{
1048
- type: Component,
1049
- args: [{
1050
- selector: 'dyte-debugger-system',
1051
- changeDetection: ChangeDetectionStrategy.OnPush,
1052
- template: '<ng-content></ng-content>',
1053
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1054
- }]
1055
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1056
- let DyteDebuggerToggle = class DyteDebuggerToggle {
1057
- constructor(c, r, z) {
1058
- this.z = z;
1059
- c.detach();
1060
- this.el = r.nativeElement;
1061
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1062
- }
1063
- };
1064
- DyteDebuggerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1065
- DyteDebuggerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerToggle, selector: "dyte-debugger-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1066
- DyteDebuggerToggle = __decorate([
1067
- ProxyCmp({
1068
- defineCustomElementFn: undefined,
1069
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1070
- })
1071
- ], DyteDebuggerToggle);
1072
- export { DyteDebuggerToggle };
1073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerToggle, decorators: [{
1074
- type: Component,
1075
- args: [{
1076
- selector: 'dyte-debugger-toggle',
1077
- changeDetection: ChangeDetectionStrategy.OnPush,
1078
- template: '<ng-content></ng-content>',
1079
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1080
- }]
1081
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1082
- let DyteDebuggerVideo = class DyteDebuggerVideo {
1083
- constructor(c, r, z) {
1084
- this.z = z;
1085
- c.detach();
1086
- this.el = r.nativeElement;
1087
- }
1088
- };
1089
- DyteDebuggerVideo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1090
- DyteDebuggerVideo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerVideo, selector: "dyte-debugger-video", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1091
- DyteDebuggerVideo = __decorate([
1092
- ProxyCmp({
1093
- defineCustomElementFn: undefined,
1094
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1095
- })
1096
- ], DyteDebuggerVideo);
1097
- export { DyteDebuggerVideo };
1098
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerVideo, decorators: [{
1099
- type: Component,
1100
- args: [{
1101
- selector: 'dyte-debugger-video',
1102
- changeDetection: ChangeDetectionStrategy.OnPush,
1103
- template: '<ng-content></ng-content>',
1104
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1105
- }]
1106
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1107
- let DyteDialog = class DyteDialog {
1108
- constructor(c, r, z) {
1109
- this.z = z;
1110
- c.detach();
1111
- this.el = r.nativeElement;
1112
- proxyOutputs(this, this.el, ['dyteDialogClose']);
1113
- }
1114
- };
1115
- DyteDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialog, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1116
- DyteDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDialog, selector: "dyte-dialog", inputs: { config: "config", disableEscapeKey: "disableEscapeKey", hideCloseButton: "hideCloseButton", iconPack: "iconPack", meeting: "meeting", open: "open", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1117
- DyteDialog = __decorate([
1118
- ProxyCmp({
1119
- defineCustomElementFn: undefined,
1120
- inputs: ['config', 'disableEscapeKey', 'hideCloseButton', 'iconPack', 'meeting', 'open', 'size', 'states', 't']
1121
- })
1122
- ], DyteDialog);
1123
- export { DyteDialog };
1124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialog, decorators: [{
1125
- type: Component,
1126
- args: [{
1127
- selector: 'dyte-dialog',
1128
- changeDetection: ChangeDetectionStrategy.OnPush,
1129
- template: '<ng-content></ng-content>',
1130
- inputs: ['config', 'disableEscapeKey', 'hideCloseButton', 'iconPack', 'meeting', 'open', 'size', 'states', 't']
1131
- }]
1132
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1133
- let DyteDialogManager = class DyteDialogManager {
1134
- constructor(c, r, z) {
1135
- this.z = z;
1136
- c.detach();
1137
- this.el = r.nativeElement;
1138
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1139
- }
1140
- };
1141
- DyteDialogManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialogManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1142
- DyteDialogManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDialogManager, selector: "dyte-dialog-manager", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1143
- DyteDialogManager = __decorate([
1144
- ProxyCmp({
1145
- defineCustomElementFn: undefined,
1146
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1147
- })
1148
- ], DyteDialogManager);
1149
- export { DyteDialogManager };
1150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialogManager, decorators: [{
1151
- type: Component,
1152
- args: [{
1153
- selector: 'dyte-dialog-manager',
1154
- changeDetection: ChangeDetectionStrategy.OnPush,
1155
- template: '<ng-content></ng-content>',
1156
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1157
- }]
1158
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1159
- let DyteDraftAttachmentView = class DyteDraftAttachmentView {
1160
- constructor(c, r, z) {
1161
- this.z = z;
1162
- c.detach();
1163
- this.el = r.nativeElement;
1164
- proxyOutputs(this, this.el, ['deleteAttachment']);
1165
- }
1166
- };
1167
- DyteDraftAttachmentView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDraftAttachmentView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1168
- DyteDraftAttachmentView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDraftAttachmentView, selector: "dyte-draft-attachment-view", inputs: { attachment: "attachment", iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1169
- DyteDraftAttachmentView = __decorate([
1170
- ProxyCmp({
1171
- defineCustomElementFn: undefined,
1172
- inputs: ['attachment', 'iconPack', 't']
1173
- })
1174
- ], DyteDraftAttachmentView);
1175
- export { DyteDraftAttachmentView };
1176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDraftAttachmentView, decorators: [{
1177
- type: Component,
1178
- args: [{
1179
- selector: 'dyte-draft-attachment-view',
1180
- changeDetection: ChangeDetectionStrategy.OnPush,
1181
- template: '<ng-content></ng-content>',
1182
- inputs: ['attachment', 'iconPack', 't']
1183
- }]
1184
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1185
- let DyteEmojiPicker = class DyteEmojiPicker {
1186
- constructor(c, r, z) {
1187
- this.z = z;
1188
- c.detach();
1189
- this.el = r.nativeElement;
1190
- proxyOutputs(this, this.el, ['pickerClose', 'dyteEmojiClicked']);
1191
- }
1192
- };
1193
- DyteEmojiPicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1194
- DyteEmojiPicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEmojiPicker, selector: "dyte-emoji-picker", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1195
- DyteEmojiPicker = __decorate([
1196
- ProxyCmp({
1197
- defineCustomElementFn: undefined,
1198
- inputs: ['iconPack', 't']
1199
- })
1200
- ], DyteEmojiPicker);
1201
- export { DyteEmojiPicker };
1202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPicker, decorators: [{
1203
- type: Component,
1204
- args: [{
1205
- selector: 'dyte-emoji-picker',
1206
- changeDetection: ChangeDetectionStrategy.OnPush,
1207
- template: '<ng-content></ng-content>',
1208
- inputs: ['iconPack', 't']
1209
- }]
1210
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1211
- let DyteEmojiPickerButton = class DyteEmojiPickerButton {
1212
- constructor(c, r, z) {
1213
- this.z = z;
1214
- c.detach();
1215
- this.el = r.nativeElement;
1216
- }
1217
- };
1218
- DyteEmojiPickerButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPickerButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1219
- DyteEmojiPickerButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEmojiPickerButton, selector: "dyte-emoji-picker-button", inputs: { iconPack: "iconPack", isActive: "isActive", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1220
- DyteEmojiPickerButton = __decorate([
1221
- ProxyCmp({
1222
- defineCustomElementFn: undefined,
1223
- inputs: ['iconPack', 'isActive', 't']
1224
- })
1225
- ], DyteEmojiPickerButton);
1226
- export { DyteEmojiPickerButton };
1227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPickerButton, decorators: [{
1228
- type: Component,
1229
- args: [{
1230
- selector: 'dyte-emoji-picker-button',
1231
- changeDetection: ChangeDetectionStrategy.OnPush,
1232
- template: '<ng-content></ng-content>',
1233
- inputs: ['iconPack', 'isActive', 't']
1234
- }]
1235
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1236
- let DyteEndedScreen = class DyteEndedScreen {
1237
- constructor(c, r, z) {
1238
- this.z = z;
1239
- c.detach();
1240
- this.el = r.nativeElement;
1241
- }
1242
- };
1243
- DyteEndedScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEndedScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1244
- DyteEndedScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEndedScreen, selector: "dyte-ended-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1245
- DyteEndedScreen = __decorate([
1246
- ProxyCmp({
1247
- defineCustomElementFn: undefined,
1248
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1249
- })
1250
- ], DyteEndedScreen);
1251
- export { DyteEndedScreen };
1252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEndedScreen, decorators: [{
1253
- type: Component,
1254
- args: [{
1255
- selector: 'dyte-ended-screen',
1256
- changeDetection: ChangeDetectionStrategy.OnPush,
1257
- template: '<ng-content></ng-content>',
1258
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1259
- }]
1260
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1261
- let DyteFileDropzone = class DyteFileDropzone {
1262
- constructor(c, r, z) {
1263
- this.z = z;
1264
- c.detach();
1265
- this.el = r.nativeElement;
1266
- proxyOutputs(this, this.el, ['dropCallback']);
1267
- }
1268
- };
1269
- DyteFileDropzone.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileDropzone, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1270
- DyteFileDropzone.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileDropzone, selector: "dyte-file-dropzone", inputs: { hostEl: "hostEl", iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1271
- DyteFileDropzone = __decorate([
1272
- ProxyCmp({
1273
- defineCustomElementFn: undefined,
1274
- inputs: ['hostEl', 'iconPack', 't']
1275
- })
1276
- ], DyteFileDropzone);
1277
- export { DyteFileDropzone };
1278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileDropzone, decorators: [{
1279
- type: Component,
1280
- args: [{
1281
- selector: 'dyte-file-dropzone',
1282
- changeDetection: ChangeDetectionStrategy.OnPush,
1283
- template: '<ng-content></ng-content>',
1284
- inputs: ['hostEl', 'iconPack', 't']
1285
- }]
1286
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1287
- let DyteFileMessage = class DyteFileMessage {
1288
- constructor(c, r, z) {
1289
- this.z = z;
1290
- c.detach();
1291
- this.el = r.nativeElement;
1292
- }
1293
- };
1294
- DyteFileMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1295
- DyteFileMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileMessage, selector: "dyte-file-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1296
- DyteFileMessage = __decorate([
1297
- ProxyCmp({
1298
- defineCustomElementFn: undefined,
1299
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1300
- })
1301
- ], DyteFileMessage);
1302
- export { DyteFileMessage };
1303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessage, decorators: [{
1304
- type: Component,
1305
- args: [{
1306
- selector: 'dyte-file-message',
1307
- changeDetection: ChangeDetectionStrategy.OnPush,
1308
- template: '<ng-content></ng-content>',
1309
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1310
- }]
1311
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1312
- let DyteFileMessageView = class DyteFileMessageView {
1313
- constructor(c, r, z) {
1314
- this.z = z;
1315
- c.detach();
1316
- this.el = r.nativeElement;
1317
- }
1318
- };
1319
- DyteFileMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1320
- DyteFileMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileMessageView, selector: "dyte-file-message-view", inputs: { iconPack: "iconPack", name: "name", size: "size", t: "t", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1321
- DyteFileMessageView = __decorate([
1322
- ProxyCmp({
1323
- defineCustomElementFn: undefined,
1324
- inputs: ['iconPack', 'name', 'size', 't', 'url']
1325
- })
1326
- ], DyteFileMessageView);
1327
- export { DyteFileMessageView };
1328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessageView, decorators: [{
1329
- type: Component,
1330
- args: [{
1331
- selector: 'dyte-file-message-view',
1332
- changeDetection: ChangeDetectionStrategy.OnPush,
1333
- template: '<ng-content></ng-content>',
1334
- inputs: ['iconPack', 'name', 'size', 't', 'url']
1335
- }]
1336
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1337
- let DyteFilePickerButton = class DyteFilePickerButton {
1338
- constructor(c, r, z) {
1339
- this.z = z;
1340
- c.detach();
1341
- this.el = r.nativeElement;
1342
- proxyOutputs(this, this.el, ['fileChange']);
1343
- }
1344
- };
1345
- DyteFilePickerButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFilePickerButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1346
- DyteFilePickerButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFilePickerButton, selector: "dyte-file-picker-button", inputs: { filter: "filter", icon: "icon", iconPack: "iconPack", label: "label", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1347
- DyteFilePickerButton = __decorate([
1348
- ProxyCmp({
1349
- defineCustomElementFn: undefined,
1350
- inputs: ['filter', 'icon', 'iconPack', 'label', 't']
1351
- })
1352
- ], DyteFilePickerButton);
1353
- export { DyteFilePickerButton };
1354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFilePickerButton, decorators: [{
1355
- type: Component,
1356
- args: [{
1357
- selector: 'dyte-file-picker-button',
1358
- changeDetection: ChangeDetectionStrategy.OnPush,
1359
- template: '<ng-content></ng-content>',
1360
- inputs: ['filter', 'icon', 'iconPack', 'label', 't']
1361
- }]
1362
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1363
- let DyteFullscreenToggle = class DyteFullscreenToggle {
1364
- constructor(c, r, z) {
1365
- this.z = z;
1366
- c.detach();
1367
- this.el = r.nativeElement;
1368
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1369
- }
1370
- };
1371
- DyteFullscreenToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFullscreenToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1372
- DyteFullscreenToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFullscreenToggle, selector: "dyte-fullscreen-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t", targetElement: "targetElement", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1373
- DyteFullscreenToggle = __decorate([
1374
- ProxyCmp({
1375
- defineCustomElementFn: undefined,
1376
- inputs: ['iconPack', 'size', 'states', 't', 'targetElement', 'variant']
1377
- })
1378
- ], DyteFullscreenToggle);
1379
- export { DyteFullscreenToggle };
1380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFullscreenToggle, decorators: [{
1381
- type: Component,
1382
- args: [{
1383
- selector: 'dyte-fullscreen-toggle',
1384
- changeDetection: ChangeDetectionStrategy.OnPush,
1385
- template: '<ng-content></ng-content>',
1386
- inputs: ['iconPack', 'size', 'states', 't', 'targetElement', 'variant']
1387
- }]
1388
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1389
- let DyteGrid = class DyteGrid {
1390
- constructor(c, r, z) {
1391
- this.z = z;
1392
- c.detach();
1393
- this.el = r.nativeElement;
1394
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1395
- }
1396
- };
1397
- DyteGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1398
- DyteGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteGrid, selector: "dyte-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", overrides: "overrides", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1399
- DyteGrid = __decorate([
1400
- ProxyCmp({
1401
- defineCustomElementFn: undefined,
1402
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'overrides', 'size', 'states', 't']
1403
- })
1404
- ], DyteGrid);
1405
- export { DyteGrid };
1406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGrid, decorators: [{
1407
- type: Component,
1408
- args: [{
1409
- selector: 'dyte-grid',
1410
- changeDetection: ChangeDetectionStrategy.OnPush,
1411
- template: '<ng-content></ng-content>',
1412
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'overrides', 'size', 'states', 't']
1413
- }]
1414
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1415
- let DyteGridPagination = class DyteGridPagination {
1416
- constructor(c, r, z) {
1417
- this.z = z;
1418
- c.detach();
1419
- this.el = r.nativeElement;
1420
- }
1421
- };
1422
- DyteGridPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGridPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1423
- DyteGridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteGridPagination, selector: "dyte-grid-pagination", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1424
- DyteGridPagination = __decorate([
1425
- ProxyCmp({
1426
- defineCustomElementFn: undefined,
1427
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1428
- })
1429
- ], DyteGridPagination);
1430
- export { DyteGridPagination };
1431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGridPagination, decorators: [{
1432
- type: Component,
1433
- args: [{
1434
- selector: 'dyte-grid-pagination',
1435
- changeDetection: ChangeDetectionStrategy.OnPush,
1436
- template: '<ng-content></ng-content>',
1437
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1438
- }]
1439
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1440
- let DyteHeader = class DyteHeader {
1441
- constructor(c, r, z) {
1442
- this.z = z;
1443
- c.detach();
1444
- this.el = r.nativeElement;
1445
- }
1446
- };
1447
- DyteHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1448
- DyteHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteHeader, selector: "dyte-header", inputs: { config: "config", disableRender: "disableRender", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1449
- DyteHeader = __decorate([
1450
- ProxyCmp({
1451
- defineCustomElementFn: undefined,
1452
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
1453
- })
1454
- ], DyteHeader);
1455
- export { DyteHeader };
1456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteHeader, decorators: [{
1457
- type: Component,
1458
- args: [{
1459
- selector: 'dyte-header',
1460
- changeDetection: ChangeDetectionStrategy.OnPush,
1461
- template: '<ng-content></ng-content>',
1462
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
1463
- }]
1464
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1465
- let DyteIcon = class DyteIcon {
1466
- constructor(c, r, z) {
1467
- this.z = z;
1468
- c.detach();
1469
- this.el = r.nativeElement;
1470
- }
1471
- };
1472
- DyteIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1473
- DyteIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteIcon, selector: "dyte-icon", inputs: { icon: "icon", iconPack: "iconPack", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1474
- DyteIcon = __decorate([
1475
- ProxyCmp({
1476
- defineCustomElementFn: undefined,
1477
- inputs: ['icon', 'iconPack', 'size', 't', 'variant']
1478
- })
1479
- ], DyteIcon);
1480
- export { DyteIcon };
1481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIcon, decorators: [{
1482
- type: Component,
1483
- args: [{
1484
- selector: 'dyte-icon',
1485
- changeDetection: ChangeDetectionStrategy.OnPush,
1486
- template: '<ng-content></ng-content>',
1487
- inputs: ['icon', 'iconPack', 'size', 't', 'variant']
1488
- }]
1489
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1490
- let DyteIdleScreen = class DyteIdleScreen {
1491
- constructor(c, r, z) {
1492
- this.z = z;
1493
- c.detach();
1494
- this.el = r.nativeElement;
1495
- }
1496
- };
1497
- DyteIdleScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIdleScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1498
- DyteIdleScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteIdleScreen, selector: "dyte-idle-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1499
- DyteIdleScreen = __decorate([
1500
- ProxyCmp({
1501
- defineCustomElementFn: undefined,
1502
- inputs: ['config', 'iconPack', 'meeting', 't']
1503
- })
1504
- ], DyteIdleScreen);
1505
- export { DyteIdleScreen };
1506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIdleScreen, decorators: [{
1507
- type: Component,
1508
- args: [{
1509
- selector: 'dyte-idle-screen',
1510
- changeDetection: ChangeDetectionStrategy.OnPush,
1511
- template: '<ng-content></ng-content>',
1512
- inputs: ['config', 'iconPack', 'meeting', 't']
1513
- }]
1514
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1515
- let DyteImageMessage = class DyteImageMessage {
1516
- constructor(c, r, z) {
1517
- this.z = z;
1518
- c.detach();
1519
- this.el = r.nativeElement;
1520
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1521
- }
1522
- };
1523
- DyteImageMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1524
- DyteImageMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageMessage, selector: "dyte-image-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1525
- DyteImageMessage = __decorate([
1526
- ProxyCmp({
1527
- defineCustomElementFn: undefined,
1528
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1529
- })
1530
- ], DyteImageMessage);
1531
- export { DyteImageMessage };
1532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessage, decorators: [{
1533
- type: Component,
1534
- args: [{
1535
- selector: 'dyte-image-message',
1536
- changeDetection: ChangeDetectionStrategy.OnPush,
1537
- template: '<ng-content></ng-content>',
1538
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1539
- }]
1540
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1541
- let DyteImageMessageView = class DyteImageMessageView {
1542
- constructor(c, r, z) {
1543
- this.z = z;
1544
- c.detach();
1545
- this.el = r.nativeElement;
1546
- proxyOutputs(this, this.el, ['preview']);
1547
- }
1548
- };
1549
- DyteImageMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1550
- DyteImageMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageMessageView, selector: "dyte-image-message-view", inputs: { iconPack: "iconPack", t: "t", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1551
- DyteImageMessageView = __decorate([
1552
- ProxyCmp({
1553
- defineCustomElementFn: undefined,
1554
- inputs: ['iconPack', 't', 'url']
1555
- })
1556
- ], DyteImageMessageView);
1557
- export { DyteImageMessageView };
1558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessageView, decorators: [{
1559
- type: Component,
1560
- args: [{
1561
- selector: 'dyte-image-message-view',
1562
- changeDetection: ChangeDetectionStrategy.OnPush,
1563
- template: '<ng-content></ng-content>',
1564
- inputs: ['iconPack', 't', 'url']
1565
- }]
1566
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1567
- let DyteImageViewer = class DyteImageViewer {
1568
- constructor(c, r, z) {
1569
- this.z = z;
1570
- c.detach();
1571
- this.el = r.nativeElement;
1572
- proxyOutputs(this, this.el, ['close']);
1573
- }
1574
- };
1575
- DyteImageViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageViewer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1576
- DyteImageViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageViewer, selector: "dyte-image-viewer", inputs: { iconPack: "iconPack", image: "image", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1577
- DyteImageViewer = __decorate([
1578
- ProxyCmp({
1579
- defineCustomElementFn: undefined,
1580
- inputs: ['iconPack', 'image', 'size', 't']
1581
- })
1582
- ], DyteImageViewer);
1583
- export { DyteImageViewer };
1584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageViewer, decorators: [{
1585
- type: Component,
1586
- args: [{
1587
- selector: 'dyte-image-viewer',
1588
- changeDetection: ChangeDetectionStrategy.OnPush,
1589
- template: '<ng-content></ng-content>',
1590
- inputs: ['iconPack', 'image', 'size', 't']
1591
- }]
1592
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1593
- let DyteInformationTooltip = class DyteInformationTooltip {
1594
- constructor(c, r, z) {
1595
- this.z = z;
1596
- c.detach();
1597
- this.el = r.nativeElement;
1598
- }
1599
- };
1600
- DyteInformationTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteInformationTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1601
- DyteInformationTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteInformationTooltip, selector: "dyte-information-tooltip", inputs: { iconPack: "iconPack" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1602
- DyteInformationTooltip = __decorate([
1603
- ProxyCmp({
1604
- defineCustomElementFn: undefined,
1605
- inputs: ['iconPack']
1606
- })
1607
- ], DyteInformationTooltip);
1608
- export { DyteInformationTooltip };
1609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteInformationTooltip, decorators: [{
1610
- type: Component,
1611
- args: [{
1612
- selector: 'dyte-information-tooltip',
1613
- changeDetection: ChangeDetectionStrategy.OnPush,
1614
- template: '<ng-content></ng-content>',
1615
- inputs: ['iconPack']
1616
- }]
1617
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1618
- let DyteJoinStage = class DyteJoinStage {
1619
- constructor(c, r, z) {
1620
- this.z = z;
1621
- c.detach();
1622
- this.el = r.nativeElement;
1623
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteJoinStage', 'dyteLeaveStage']);
1624
- }
1625
- };
1626
- DyteJoinStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteJoinStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1627
- DyteJoinStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteJoinStage, selector: "dyte-join-stage", inputs: { config: "config", dataConfig: "dataConfig", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1628
- DyteJoinStage = __decorate([
1629
- ProxyCmp({
1630
- defineCustomElementFn: undefined,
1631
- inputs: ['config', 'dataConfig', 'iconPack', 'meeting', 'size', 'states', 't']
1632
- })
1633
- ], DyteJoinStage);
1634
- export { DyteJoinStage };
1635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteJoinStage, decorators: [{
1636
- type: Component,
1637
- args: [{
1638
- selector: 'dyte-join-stage',
1639
- changeDetection: ChangeDetectionStrategy.OnPush,
1640
- template: '<ng-content></ng-content>',
1641
- inputs: ['config', 'dataConfig', 'iconPack', 'meeting', 'size', 'states', 't']
1642
- }]
1643
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1644
- let DyteLeaveButton = class DyteLeaveButton {
1645
- constructor(c, r, z) {
1646
- this.z = z;
1647
- c.detach();
1648
- this.el = r.nativeElement;
1649
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1650
- }
1651
- };
1652
- DyteLeaveButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1653
- DyteLeaveButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLeaveButton, selector: "dyte-leave-button", inputs: { iconPack: "iconPack", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1654
- DyteLeaveButton = __decorate([
1655
- ProxyCmp({
1656
- defineCustomElementFn: undefined,
1657
- inputs: ['iconPack', 'size', 't', 'variant']
1658
- })
1659
- ], DyteLeaveButton);
1660
- export { DyteLeaveButton };
1661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveButton, decorators: [{
1662
- type: Component,
1663
- args: [{
1664
- selector: 'dyte-leave-button',
1665
- changeDetection: ChangeDetectionStrategy.OnPush,
1666
- template: '<ng-content></ng-content>',
1667
- inputs: ['iconPack', 'size', 't', 'variant']
1668
- }]
1669
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1670
- let DyteLeaveMeeting = class DyteLeaveMeeting {
1671
- constructor(c, r, z) {
1672
- this.z = z;
1673
- c.detach();
1674
- this.el = r.nativeElement;
1675
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1676
- }
1677
- };
1678
- DyteLeaveMeeting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveMeeting, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1679
- DyteLeaveMeeting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLeaveMeeting, selector: "dyte-leave-meeting", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1680
- DyteLeaveMeeting = __decorate([
1681
- ProxyCmp({
1682
- defineCustomElementFn: undefined,
1683
- inputs: ['iconPack', 'meeting', 'states', 't']
1684
- })
1685
- ], DyteLeaveMeeting);
1686
- export { DyteLeaveMeeting };
1687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveMeeting, decorators: [{
1688
- type: Component,
1689
- args: [{
1690
- selector: 'dyte-leave-meeting',
1691
- changeDetection: ChangeDetectionStrategy.OnPush,
1692
- template: '<ng-content></ng-content>',
1693
- inputs: ['iconPack', 'meeting', 'states', 't']
1694
- }]
1695
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1696
- let DyteLivestreamIndicator = class DyteLivestreamIndicator {
1697
- constructor(c, r, z) {
1698
- this.z = z;
1699
- c.detach();
1700
- this.el = r.nativeElement;
1701
- }
1702
- };
1703
- DyteLivestreamIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1704
- DyteLivestreamIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamIndicator, selector: "dyte-livestream-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1705
- DyteLivestreamIndicator = __decorate([
1706
- ProxyCmp({
1707
- defineCustomElementFn: undefined,
1708
- inputs: ['iconPack', 'meeting', 'size', 't']
1709
- })
1710
- ], DyteLivestreamIndicator);
1711
- export { DyteLivestreamIndicator };
1712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamIndicator, decorators: [{
1713
- type: Component,
1714
- args: [{
1715
- selector: 'dyte-livestream-indicator',
1716
- changeDetection: ChangeDetectionStrategy.OnPush,
1717
- template: '<ng-content></ng-content>',
1718
- inputs: ['iconPack', 'meeting', 'size', 't']
1719
- }]
1720
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1721
- let DyteLivestreamPlayer = class DyteLivestreamPlayer {
1722
- constructor(c, r, z) {
1723
- this.z = z;
1724
- c.detach();
1725
- this.el = r.nativeElement;
1726
- proxyOutputs(this, this.el, ['dyteAPIError']);
1727
- }
1728
- };
1729
- DyteLivestreamPlayer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamPlayer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1730
- DyteLivestreamPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamPlayer, selector: "dyte-livestream-player", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1731
- DyteLivestreamPlayer = __decorate([
1732
- ProxyCmp({
1733
- defineCustomElementFn: undefined,
1734
- inputs: ['iconPack', 'meeting', 'size', 't']
1735
- })
1736
- ], DyteLivestreamPlayer);
1737
- export { DyteLivestreamPlayer };
1738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamPlayer, decorators: [{
1739
- type: Component,
1740
- args: [{
1741
- selector: 'dyte-livestream-player',
1742
- changeDetection: ChangeDetectionStrategy.OnPush,
1743
- template: '<ng-content></ng-content>',
1744
- inputs: ['iconPack', 'meeting', 'size', 't']
1745
- }]
1746
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1747
- let DyteLivestreamToggle = class DyteLivestreamToggle {
1748
- constructor(c, r, z) {
1749
- this.z = z;
1750
- c.detach();
1751
- this.el = r.nativeElement;
1752
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteAPIError']);
1753
- }
1754
- };
1755
- DyteLivestreamToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1756
- DyteLivestreamToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamToggle, selector: "dyte-livestream-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1757
- DyteLivestreamToggle = __decorate([
1758
- ProxyCmp({
1759
- defineCustomElementFn: undefined,
1760
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
1761
- })
1762
- ], DyteLivestreamToggle);
1763
- export { DyteLivestreamToggle };
1764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamToggle, decorators: [{
1765
- type: Component,
1766
- args: [{
1767
- selector: 'dyte-livestream-toggle',
1768
- changeDetection: ChangeDetectionStrategy.OnPush,
1769
- template: '<ng-content></ng-content>',
1770
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
1771
- }]
1772
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1773
- let DyteLogo = class DyteLogo {
1774
- constructor(c, r, z) {
1775
- this.z = z;
1776
- c.detach();
1777
- this.el = r.nativeElement;
1778
- }
1779
- };
1780
- DyteLogo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1781
- DyteLogo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLogo, selector: "dyte-logo", inputs: { config: "config", logoUrl: "logoUrl", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1782
- DyteLogo = __decorate([
1783
- ProxyCmp({
1784
- defineCustomElementFn: undefined,
1785
- inputs: ['config', 'logoUrl', 'meeting', 't']
1786
- })
1787
- ], DyteLogo);
1788
- export { DyteLogo };
1789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLogo, decorators: [{
1790
- type: Component,
1791
- args: [{
1792
- selector: 'dyte-logo',
1793
- changeDetection: ChangeDetectionStrategy.OnPush,
1794
- template: '<ng-content></ng-content>',
1795
- inputs: ['config', 'logoUrl', 'meeting', 't']
1796
- }]
1797
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1798
- let DyteMarkdownView = class DyteMarkdownView {
1799
- constructor(c, r, z) {
1800
- this.z = z;
1801
- c.detach();
1802
- this.el = r.nativeElement;
1803
- }
1804
- };
1805
- DyteMarkdownView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMarkdownView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1806
- DyteMarkdownView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMarkdownView, selector: "dyte-markdown-view", inputs: { maxLength: "maxLength", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1807
- DyteMarkdownView = __decorate([
1808
- ProxyCmp({
1809
- defineCustomElementFn: undefined,
1810
- inputs: ['maxLength', 'text']
1811
- })
1812
- ], DyteMarkdownView);
1813
- export { DyteMarkdownView };
1814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMarkdownView, decorators: [{
1815
- type: Component,
1816
- args: [{
1817
- selector: 'dyte-markdown-view',
1818
- changeDetection: ChangeDetectionStrategy.OnPush,
1819
- template: '<ng-content></ng-content>',
1820
- inputs: ['maxLength', 'text']
1821
- }]
1822
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1823
- let DyteMeeting = class DyteMeeting {
1824
- constructor(c, r, z) {
1825
- this.z = z;
1826
- c.detach();
1827
- this.el = r.nativeElement;
1828
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1829
- }
1830
- };
1831
- DyteMeeting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeeting, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1832
- DyteMeeting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMeeting, selector: "dyte-meeting", inputs: { applyDesignSystem: "applyDesignSystem", config: "config", gridLayout: "gridLayout", iconPackUrl: "iconPackUrl", leaveOnUnmount: "leaveOnUnmount", loadConfigFromPreset: "loadConfigFromPreset", meeting: "meeting", mode: "mode", showSetupScreen: "showSetupScreen", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1833
- DyteMeeting = __decorate([
1834
- ProxyCmp({
1835
- defineCustomElementFn: undefined,
1836
- inputs: ['applyDesignSystem', 'config', 'gridLayout', 'iconPackUrl', 'leaveOnUnmount', 'loadConfigFromPreset', 'meeting', 'mode', 'showSetupScreen', 'size', 't']
1837
- })
1838
- ], DyteMeeting);
1839
- export { DyteMeeting };
1840
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeeting, decorators: [{
1841
- type: Component,
1842
- args: [{
1843
- selector: 'dyte-meeting',
1844
- changeDetection: ChangeDetectionStrategy.OnPush,
1845
- template: '<ng-content></ng-content>',
1846
- inputs: ['applyDesignSystem', 'config', 'gridLayout', 'iconPackUrl', 'leaveOnUnmount', 'loadConfigFromPreset', 'meeting', 'mode', 'showSetupScreen', 'size', 't']
1847
- }]
1848
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1849
- let DyteMeetingTitle = class DyteMeetingTitle {
1850
- constructor(c, r, z) {
1851
- this.z = z;
1852
- c.detach();
1853
- this.el = r.nativeElement;
1854
- }
1855
- };
1856
- DyteMeetingTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeetingTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1857
- DyteMeetingTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMeetingTitle, selector: "dyte-meeting-title", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1858
- DyteMeetingTitle = __decorate([
1859
- ProxyCmp({
1860
- defineCustomElementFn: undefined,
1861
- inputs: ['iconPack', 'meeting', 't']
1862
- })
1863
- ], DyteMeetingTitle);
1864
- export { DyteMeetingTitle };
1865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeetingTitle, decorators: [{
1866
- type: Component,
1867
- args: [{
1868
- selector: 'dyte-meeting-title',
1869
- changeDetection: ChangeDetectionStrategy.OnPush,
1870
- template: '<ng-content></ng-content>',
1871
- inputs: ['iconPack', 'meeting', 't']
1872
- }]
1873
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1874
- let DyteMenu = class DyteMenu {
1875
- constructor(c, r, z) {
1876
- this.z = z;
1877
- c.detach();
1878
- this.el = r.nativeElement;
1879
- }
1880
- };
1881
- DyteMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1882
- DyteMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenu, selector: "dyte-menu", inputs: { iconPack: "iconPack", offset: "offset", placement: "placement", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1883
- DyteMenu = __decorate([
1884
- ProxyCmp({
1885
- defineCustomElementFn: undefined,
1886
- inputs: ['iconPack', 'offset', 'placement', 'size', 't']
1887
- })
1888
- ], DyteMenu);
1889
- export { DyteMenu };
1890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenu, decorators: [{
1891
- type: Component,
1892
- args: [{
1893
- selector: 'dyte-menu',
1894
- changeDetection: ChangeDetectionStrategy.OnPush,
1895
- template: '<ng-content></ng-content>',
1896
- inputs: ['iconPack', 'offset', 'placement', 'size', 't']
1897
- }]
1898
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1899
- let DyteMenuItem = class DyteMenuItem {
1900
- constructor(c, r, z) {
1901
- this.z = z;
1902
- c.detach();
1903
- this.el = r.nativeElement;
1904
- }
1905
- };
1906
- DyteMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1907
- DyteMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenuItem, selector: "dyte-menu-item", inputs: { iconPack: "iconPack", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1908
- DyteMenuItem = __decorate([
1909
- ProxyCmp({
1910
- defineCustomElementFn: undefined,
1911
- inputs: ['iconPack', 'size', 't']
1912
- })
1913
- ], DyteMenuItem);
1914
- export { DyteMenuItem };
1915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuItem, decorators: [{
1916
- type: Component,
1917
- args: [{
1918
- selector: 'dyte-menu-item',
1919
- changeDetection: ChangeDetectionStrategy.OnPush,
1920
- template: '<ng-content></ng-content>',
1921
- inputs: ['iconPack', 'size', 't']
1922
- }]
1923
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1924
- let DyteMenuList = class DyteMenuList {
1925
- constructor(c, r, z) {
1926
- this.z = z;
1927
- c.detach();
1928
- this.el = r.nativeElement;
1929
- }
1930
- };
1931
- DyteMenuList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1932
- DyteMenuList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenuList, selector: "dyte-menu-list", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1933
- DyteMenuList = __decorate([
1934
- ProxyCmp({
1935
- defineCustomElementFn: undefined,
1936
- inputs: ['iconPack', 't']
1937
- })
1938
- ], DyteMenuList);
1939
- export { DyteMenuList };
1940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuList, decorators: [{
1941
- type: Component,
1942
- args: [{
1943
- selector: 'dyte-menu-list',
1944
- changeDetection: ChangeDetectionStrategy.OnPush,
1945
- template: '<ng-content></ng-content>',
1946
- inputs: ['iconPack', 't']
1947
- }]
1948
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1949
- let DyteMessageListView = class DyteMessageListView {
1950
- constructor(c, r, z) {
1951
- this.z = z;
1952
- c.detach();
1953
- this.el = r.nativeElement;
1954
- }
1955
- };
1956
- DyteMessageListView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageListView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1957
- DyteMessageListView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMessageListView, selector: "dyte-message-list-view", inputs: { estimateItemSize: "estimateItemSize", iconPack: "iconPack", loadMore: "loadMore", messages: "messages", renderer: "renderer", visibleItemsCount: "visibleItemsCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1958
- DyteMessageListView = __decorate([
1959
- ProxyCmp({
1960
- defineCustomElementFn: undefined,
1961
- inputs: ['estimateItemSize', 'iconPack', 'loadMore', 'messages', 'renderer', 'visibleItemsCount']
1962
- })
1963
- ], DyteMessageListView);
1964
- export { DyteMessageListView };
1965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageListView, decorators: [{
1966
- type: Component,
1967
- args: [{
1968
- selector: 'dyte-message-list-view',
1969
- changeDetection: ChangeDetectionStrategy.OnPush,
1970
- template: '<ng-content></ng-content>',
1971
- inputs: ['estimateItemSize', 'iconPack', 'loadMore', 'messages', 'renderer', 'visibleItemsCount']
1972
- }]
1973
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1974
- let DyteMessageView = class DyteMessageView {
1975
- constructor(c, r, z) {
1976
- this.z = z;
1977
- c.detach();
1978
- this.el = r.nativeElement;
1979
- proxyOutputs(this, this.el, ['action']);
1980
- }
1981
- };
1982
- DyteMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1983
- DyteMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMessageView, selector: "dyte-message-view", inputs: { actions: "actions", authorName: "authorName", avatarUrl: "avatarUrl", hideAuthorName: "hideAuthorName", hideAvatar: "hideAvatar", hideMetadata: "hideMetadata", iconPack: "iconPack", time: "time", variant: "variant", viewType: "viewType" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1984
- DyteMessageView = __decorate([
1985
- ProxyCmp({
1986
- defineCustomElementFn: undefined,
1987
- inputs: ['actions', 'authorName', 'avatarUrl', 'hideAuthorName', 'hideAvatar', 'hideMetadata', 'iconPack', 'time', 'variant', 'viewType']
1988
- })
1989
- ], DyteMessageView);
1990
- export { DyteMessageView };
1991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageView, decorators: [{
1992
- type: Component,
1993
- args: [{
1994
- selector: 'dyte-message-view',
1995
- changeDetection: ChangeDetectionStrategy.OnPush,
1996
- template: '<ng-content></ng-content>',
1997
- inputs: ['actions', 'authorName', 'avatarUrl', 'hideAuthorName', 'hideAvatar', 'hideMetadata', 'iconPack', 'time', 'variant', 'viewType']
1998
- }]
1999
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2000
- let DyteMicToggle = class DyteMicToggle {
2001
- constructor(c, r, z) {
2002
- this.z = z;
2003
- c.detach();
2004
- this.el = r.nativeElement;
2005
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2006
- }
2007
- };
2008
- DyteMicToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2009
- DyteMicToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMicToggle, selector: "dyte-mic-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2010
- DyteMicToggle = __decorate([
2011
- ProxyCmp({
2012
- defineCustomElementFn: undefined,
2013
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2014
- })
2015
- ], DyteMicToggle);
2016
- export { DyteMicToggle };
2017
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicToggle, decorators: [{
2018
- type: Component,
2019
- args: [{
2020
- selector: 'dyte-mic-toggle',
2021
- changeDetection: ChangeDetectionStrategy.OnPush,
2022
- template: '<ng-content></ng-content>',
2023
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2024
- }]
2025
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2026
- let DyteMicrophoneSelector = class DyteMicrophoneSelector {
2027
- constructor(c, r, z) {
2028
- this.z = z;
2029
- c.detach();
2030
- this.el = r.nativeElement;
2031
- }
2032
- };
2033
- DyteMicrophoneSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicrophoneSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2034
- DyteMicrophoneSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMicrophoneSelector, selector: "dyte-microphone-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2035
- DyteMicrophoneSelector = __decorate([
2036
- ProxyCmp({
2037
- defineCustomElementFn: undefined,
2038
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2039
- })
2040
- ], DyteMicrophoneSelector);
2041
- export { DyteMicrophoneSelector };
2042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicrophoneSelector, decorators: [{
2043
- type: Component,
2044
- args: [{
2045
- selector: 'dyte-microphone-selector',
2046
- changeDetection: ChangeDetectionStrategy.OnPush,
2047
- template: '<ng-content></ng-content>',
2048
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2049
- }]
2050
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2051
- let DyteMixedGrid = class DyteMixedGrid {
2052
- constructor(c, r, z) {
2053
- this.z = z;
2054
- c.detach();
2055
- this.el = r.nativeElement;
2056
- }
2057
- };
2058
- DyteMixedGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMixedGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2059
- DyteMixedGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMixedGrid, selector: "dyte-mixed-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", participants: "participants", pinnedParticipants: "pinnedParticipants", plugins: "plugins", screenShareParticipants: "screenShareParticipants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2060
- DyteMixedGrid = __decorate([
2061
- ProxyCmp({
2062
- defineCustomElementFn: undefined,
2063
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'plugins', 'screenShareParticipants', 'size', 'states', 't']
2064
- })
2065
- ], DyteMixedGrid);
2066
- export { DyteMixedGrid };
2067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMixedGrid, decorators: [{
2068
- type: Component,
2069
- args: [{
2070
- selector: 'dyte-mixed-grid',
2071
- changeDetection: ChangeDetectionStrategy.OnPush,
2072
- template: '<ng-content></ng-content>',
2073
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'plugins', 'screenShareParticipants', 'size', 'states', 't']
2074
- }]
2075
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2076
- let DyteMoreToggle = class DyteMoreToggle {
2077
- constructor(c, r, z) {
2078
- this.z = z;
2079
- c.detach();
2080
- this.el = r.nativeElement;
2081
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2082
- }
2083
- };
2084
- DyteMoreToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMoreToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2085
- DyteMoreToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMoreToggle, selector: "dyte-more-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2086
- DyteMoreToggle = __decorate([
2087
- ProxyCmp({
2088
- defineCustomElementFn: undefined,
2089
- inputs: ['iconPack', 'size', 'states', 't']
2090
- })
2091
- ], DyteMoreToggle);
2092
- export { DyteMoreToggle };
2093
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMoreToggle, decorators: [{
2094
- type: Component,
2095
- args: [{
2096
- selector: 'dyte-more-toggle',
2097
- changeDetection: ChangeDetectionStrategy.OnPush,
2098
- template: '<ng-content></ng-content>',
2099
- inputs: ['iconPack', 'size', 'states', 't']
2100
- }]
2101
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2102
- let DyteMuteAllButton = class DyteMuteAllButton {
2103
- constructor(c, r, z) {
2104
- this.z = z;
2105
- c.detach();
2106
- this.el = r.nativeElement;
2107
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2108
- }
2109
- };
2110
- DyteMuteAllButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2111
- DyteMuteAllButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMuteAllButton, selector: "dyte-mute-all-button", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2112
- DyteMuteAllButton = __decorate([
2113
- ProxyCmp({
2114
- defineCustomElementFn: undefined,
2115
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2116
- })
2117
- ], DyteMuteAllButton);
2118
- export { DyteMuteAllButton };
2119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllButton, decorators: [{
2120
- type: Component,
2121
- args: [{
2122
- selector: 'dyte-mute-all-button',
2123
- changeDetection: ChangeDetectionStrategy.OnPush,
2124
- template: '<ng-content></ng-content>',
2125
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2126
- }]
2127
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2128
- let DyteMuteAllConfirmation = class DyteMuteAllConfirmation {
2129
- constructor(c, r, z) {
2130
- this.z = z;
2131
- c.detach();
2132
- this.el = r.nativeElement;
2133
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2134
- }
2135
- };
2136
- DyteMuteAllConfirmation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllConfirmation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2137
- DyteMuteAllConfirmation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMuteAllConfirmation, selector: "dyte-mute-all-confirmation", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2138
- DyteMuteAllConfirmation = __decorate([
2139
- ProxyCmp({
2140
- defineCustomElementFn: undefined,
2141
- inputs: ['iconPack', 'meeting', 'states', 't']
2142
- })
2143
- ], DyteMuteAllConfirmation);
2144
- export { DyteMuteAllConfirmation };
2145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllConfirmation, decorators: [{
2146
- type: Component,
2147
- args: [{
2148
- selector: 'dyte-mute-all-confirmation',
2149
- changeDetection: ChangeDetectionStrategy.OnPush,
2150
- template: '<ng-content></ng-content>',
2151
- inputs: ['iconPack', 'meeting', 'states', 't']
2152
- }]
2153
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2154
- let DyteNameTag = class DyteNameTag {
2155
- constructor(c, r, z) {
2156
- this.z = z;
2157
- c.detach();
2158
- this.el = r.nativeElement;
2159
- }
2160
- };
2161
- DyteNameTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNameTag, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2162
- DyteNameTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNameTag, selector: "dyte-name-tag", inputs: { iconPack: "iconPack", isScreenShare: "isScreenShare", meeting: "meeting", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2163
- DyteNameTag = __decorate([
2164
- ProxyCmp({
2165
- defineCustomElementFn: undefined,
2166
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 'size', 't', 'variant']
2167
- })
2168
- ], DyteNameTag);
2169
- export { DyteNameTag };
2170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNameTag, decorators: [{
2171
- type: Component,
2172
- args: [{
2173
- selector: 'dyte-name-tag',
2174
- changeDetection: ChangeDetectionStrategy.OnPush,
2175
- template: '<ng-content></ng-content>',
2176
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 'size', 't', 'variant']
2177
- }]
2178
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2179
- let DyteNetworkIndicator = class DyteNetworkIndicator {
2180
- constructor(c, r, z) {
2181
- this.z = z;
2182
- c.detach();
2183
- this.el = r.nativeElement;
2184
- }
2185
- };
2186
- DyteNetworkIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNetworkIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2187
- DyteNetworkIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNetworkIndicator, selector: "dyte-network-indicator", inputs: { iconPack: "iconPack", isScreenShare: "isScreenShare", meeting: "meeting", participant: "participant", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2188
- DyteNetworkIndicator = __decorate([
2189
- ProxyCmp({
2190
- defineCustomElementFn: undefined,
2191
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 't']
2192
- })
2193
- ], DyteNetworkIndicator);
2194
- export { DyteNetworkIndicator };
2195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNetworkIndicator, decorators: [{
2196
- type: Component,
2197
- args: [{
2198
- selector: 'dyte-network-indicator',
2199
- changeDetection: ChangeDetectionStrategy.OnPush,
2200
- template: '<ng-content></ng-content>',
2201
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 't']
2202
- }]
2203
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2204
- let DyteNotification = class DyteNotification {
2205
- constructor(c, r, z) {
2206
- this.z = z;
2207
- c.detach();
2208
- this.el = r.nativeElement;
2209
- proxyOutputs(this, this.el, ['dyteNotificationDismiss']);
2210
- }
2211
- };
2212
- DyteNotification.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2213
- DyteNotification.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNotification, selector: "dyte-notification", inputs: { iconPack: "iconPack", notification: "notification", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2214
- DyteNotification = __decorate([
2215
- ProxyCmp({
2216
- defineCustomElementFn: undefined,
2217
- inputs: ['iconPack', 'notification', 'size', 't']
2218
- })
2219
- ], DyteNotification);
2220
- export { DyteNotification };
2221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotification, decorators: [{
2222
- type: Component,
2223
- args: [{
2224
- selector: 'dyte-notification',
2225
- changeDetection: ChangeDetectionStrategy.OnPush,
2226
- template: '<ng-content></ng-content>',
2227
- inputs: ['iconPack', 'notification', 'size', 't']
2228
- }]
2229
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2230
- let DyteNotifications = class DyteNotifications {
2231
- constructor(c, r, z) {
2232
- this.z = z;
2233
- c.detach();
2234
- this.el = r.nativeElement;
2235
- }
2236
- };
2237
- DyteNotifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotifications, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2238
- DyteNotifications.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNotifications, selector: "dyte-notifications", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2239
- DyteNotifications = __decorate([
2240
- ProxyCmp({
2241
- defineCustomElementFn: undefined,
2242
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
2243
- })
2244
- ], DyteNotifications);
2245
- export { DyteNotifications };
2246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotifications, decorators: [{
2247
- type: Component,
2248
- args: [{
2249
- selector: 'dyte-notifications',
2250
- changeDetection: ChangeDetectionStrategy.OnPush,
2251
- template: '<ng-content></ng-content>',
2252
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
2253
- }]
2254
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2255
- let DyteOverlayModal = class DyteOverlayModal {
2256
- constructor(c, r, z) {
2257
- this.z = z;
2258
- c.detach();
2259
- this.el = r.nativeElement;
2260
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2261
- }
2262
- };
2263
- DyteOverlayModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteOverlayModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2264
- DyteOverlayModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteOverlayModal, selector: "dyte-overlay-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2265
- DyteOverlayModal = __decorate([
2266
- ProxyCmp({
2267
- defineCustomElementFn: undefined,
2268
- inputs: ['iconPack', 'meeting', 'states', 't']
2269
- })
2270
- ], DyteOverlayModal);
2271
- export { DyteOverlayModal };
2272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteOverlayModal, decorators: [{
2273
- type: Component,
2274
- args: [{
2275
- selector: 'dyte-overlay-modal',
2276
- changeDetection: ChangeDetectionStrategy.OnPush,
2277
- template: '<ng-content></ng-content>',
2278
- inputs: ['iconPack', 'meeting', 'states', 't']
2279
- }]
2280
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2281
- let DytePaginatedList = class DytePaginatedList {
2282
- constructor(c, r, z) {
2283
- this.z = z;
2284
- c.detach();
2285
- this.el = r.nativeElement;
2286
- }
2287
- };
2288
- DytePaginatedList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePaginatedList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2289
- DytePaginatedList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePaginatedList, selector: "dyte-paginated-list", inputs: { autoScroll: "autoScroll", createNodes: "createNodes", emptyListLabel: "emptyListLabel", fetchData: "fetchData", iconPack: "iconPack", pageSize: "pageSize", pagesAllowed: "pagesAllowed", selectedItemId: "selectedItemId", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2290
- DytePaginatedList = __decorate([
2291
- ProxyCmp({
2292
- defineCustomElementFn: undefined,
2293
- inputs: ['autoScroll', 'createNodes', 'emptyListLabel', 'fetchData', 'iconPack', 'pageSize', 'pagesAllowed', 'selectedItemId', 't'],
2294
- methods: ['onNewNode', 'onNodeDelete', 'onNodeUpdate']
2295
- })
2296
- ], DytePaginatedList);
2297
- export { DytePaginatedList };
2298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePaginatedList, decorators: [{
2299
- type: Component,
2300
- args: [{
2301
- selector: 'dyte-paginated-list',
2302
- changeDetection: ChangeDetectionStrategy.OnPush,
2303
- template: '<ng-content></ng-content>',
2304
- inputs: ['autoScroll', 'createNodes', 'emptyListLabel', 'fetchData', 'iconPack', 'pageSize', 'pagesAllowed', 'selectedItemId', 't']
2305
- }]
2306
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2307
- let DyteParticipant = class DyteParticipant {
2308
- constructor(c, r, z) {
2309
- this.z = z;
2310
- c.detach();
2311
- this.el = r.nativeElement;
2312
- proxyOutputs(this, this.el, ['dyteSendNotification']);
2313
- }
2314
- };
2315
- DyteParticipant.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipant, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2316
- DyteParticipant.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipant, selector: "dyte-participant", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", participant: "participant", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2317
- DyteParticipant = __decorate([
2318
- ProxyCmp({
2319
- defineCustomElementFn: undefined,
2320
- inputs: ['config', 'iconPack', 'meeting', 'participant', 't', 'view']
2321
- })
2322
- ], DyteParticipant);
2323
- export { DyteParticipant };
2324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipant, decorators: [{
2325
- type: Component,
2326
- args: [{
2327
- selector: 'dyte-participant',
2328
- changeDetection: ChangeDetectionStrategy.OnPush,
2329
- template: '<ng-content></ng-content>',
2330
- inputs: ['config', 'iconPack', 'meeting', 'participant', 't', 'view']
2331
- }]
2332
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2333
- let DyteParticipantCount = class DyteParticipantCount {
2334
- constructor(c, r, z) {
2335
- this.z = z;
2336
- c.detach();
2337
- this.el = r.nativeElement;
2338
- }
2339
- };
2340
- DyteParticipantCount.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantCount, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2341
- DyteParticipantCount.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantCount, selector: "dyte-participant-count", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2342
- DyteParticipantCount = __decorate([
2343
- ProxyCmp({
2344
- defineCustomElementFn: undefined,
2345
- inputs: ['iconPack', 'meeting', 'size', 't']
2346
- })
2347
- ], DyteParticipantCount);
2348
- export { DyteParticipantCount };
2349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantCount, decorators: [{
2350
- type: Component,
2351
- args: [{
2352
- selector: 'dyte-participant-count',
2353
- changeDetection: ChangeDetectionStrategy.OnPush,
2354
- template: '<ng-content></ng-content>',
2355
- inputs: ['iconPack', 'meeting', 'size', 't']
2356
- }]
2357
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2358
- let DyteParticipantSetup = class DyteParticipantSetup {
2359
- constructor(c, r, z) {
2360
- this.z = z;
2361
- c.detach();
2362
- this.el = r.nativeElement;
2363
- }
2364
- };
2365
- DyteParticipantSetup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantSetup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2366
- DyteParticipantSetup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantSetup, selector: "dyte-participant-setup", inputs: { config: "config", iconPack: "iconPack", isPreview: "isPreview", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2367
- DyteParticipantSetup = __decorate([
2368
- ProxyCmp({
2369
- defineCustomElementFn: undefined,
2370
- inputs: ['config', 'iconPack', 'isPreview', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2371
- })
2372
- ], DyteParticipantSetup);
2373
- export { DyteParticipantSetup };
2374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantSetup, decorators: [{
2375
- type: Component,
2376
- args: [{
2377
- selector: 'dyte-participant-setup',
2378
- changeDetection: ChangeDetectionStrategy.OnPush,
2379
- template: '<ng-content></ng-content>',
2380
- inputs: ['config', 'iconPack', 'isPreview', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2381
- }]
2382
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2383
- let DyteParticipantTile = class DyteParticipantTile {
2384
- constructor(c, r, z) {
2385
- this.z = z;
2386
- c.detach();
2387
- this.el = r.nativeElement;
2388
- proxyOutputs(this, this.el, ['tileLoad', 'tileUnload']);
2389
- }
2390
- };
2391
- DyteParticipantTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2392
- DyteParticipantTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantTile, selector: "dyte-participant-tile", inputs: { config: "config", iconPack: "iconPack", isPreview: "isPreview", meeting: "meeting", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2393
- DyteParticipantTile = __decorate([
2394
- ProxyCmp({
2395
- defineCustomElementFn: undefined,
2396
- inputs: ['config', 'iconPack', 'isPreview', 'meeting', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2397
- })
2398
- ], DyteParticipantTile);
2399
- export { DyteParticipantTile };
2400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantTile, decorators: [{
2401
- type: Component,
2402
- args: [{
2403
- selector: 'dyte-participant-tile',
2404
- changeDetection: ChangeDetectionStrategy.OnPush,
2405
- template: '<ng-content></ng-content>',
2406
- inputs: ['config', 'iconPack', 'isPreview', 'meeting', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2407
- }]
2408
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2409
- let DyteParticipants = class DyteParticipants {
2410
- constructor(c, r, z) {
2411
- this.z = z;
2412
- c.detach();
2413
- this.el = r.nativeElement;
2414
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2415
- }
2416
- };
2417
- DyteParticipants.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipants, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2418
- DyteParticipants.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipants, selector: "dyte-participants", inputs: { config: "config", defaultParticipantsTabId: "defaultParticipantsTabId", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2419
- DyteParticipants = __decorate([
2420
- ProxyCmp({
2421
- defineCustomElementFn: undefined,
2422
- inputs: ['config', 'defaultParticipantsTabId', 'iconPack', 'meeting', 'size', 'states', 't']
2423
- })
2424
- ], DyteParticipants);
2425
- export { DyteParticipants };
2426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipants, decorators: [{
2427
- type: Component,
2428
- args: [{
2429
- selector: 'dyte-participants',
2430
- changeDetection: ChangeDetectionStrategy.OnPush,
2431
- template: '<ng-content></ng-content>',
2432
- inputs: ['config', 'defaultParticipantsTabId', 'iconPack', 'meeting', 'size', 'states', 't']
2433
- }]
2434
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2435
- let DyteParticipantsAudio = class DyteParticipantsAudio {
2436
- constructor(c, r, z) {
2437
- this.z = z;
2438
- c.detach();
2439
- this.el = r.nativeElement;
2440
- proxyOutputs(this, this.el, ['dialogClose']);
2441
- }
2442
- };
2443
- DyteParticipantsAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2444
- DyteParticipantsAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsAudio, selector: "dyte-participants-audio", inputs: { iconPack: "iconPack", meeting: "meeting", preloadedAudioElem: "preloadedAudioElem", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2445
- DyteParticipantsAudio = __decorate([
2446
- ProxyCmp({
2447
- defineCustomElementFn: undefined,
2448
- inputs: ['iconPack', 'meeting', 'preloadedAudioElem', 't']
2449
- })
2450
- ], DyteParticipantsAudio);
2451
- export { DyteParticipantsAudio };
2452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsAudio, decorators: [{
2453
- type: Component,
2454
- args: [{
2455
- selector: 'dyte-participants-audio',
2456
- changeDetection: ChangeDetectionStrategy.OnPush,
2457
- template: '<ng-content></ng-content>',
2458
- inputs: ['iconPack', 'meeting', 'preloadedAudioElem', 't']
2459
- }]
2460
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2461
- let DyteParticipantsStageList = class DyteParticipantsStageList {
2462
- constructor(c, r, z) {
2463
- this.z = z;
2464
- c.detach();
2465
- this.el = r.nativeElement;
2466
- }
2467
- };
2468
- DyteParticipantsStageList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2469
- DyteParticipantsStageList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsStageList, selector: "dyte-participants-stage-list", inputs: { config: "config", hideHeader: "hideHeader", iconPack: "iconPack", meeting: "meeting", search: "search", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2470
- DyteParticipantsStageList = __decorate([
2471
- ProxyCmp({
2472
- defineCustomElementFn: undefined,
2473
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view']
2474
- })
2475
- ], DyteParticipantsStageList);
2476
- export { DyteParticipantsStageList };
2477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageList, decorators: [{
2478
- type: Component,
2479
- args: [{
2480
- selector: 'dyte-participants-stage-list',
2481
- changeDetection: ChangeDetectionStrategy.OnPush,
2482
- template: '<ng-content></ng-content>',
2483
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view']
2484
- }]
2485
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2486
- let DyteParticipantsStageQueue = class DyteParticipantsStageQueue {
2487
- constructor(c, r, z) {
2488
- this.z = z;
2489
- c.detach();
2490
- this.el = r.nativeElement;
2491
- }
2492
- };
2493
- DyteParticipantsStageQueue.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageQueue, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2494
- DyteParticipantsStageQueue.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsStageQueue, selector: "dyte-participants-stage-queue", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2495
- DyteParticipantsStageQueue = __decorate([
2496
- ProxyCmp({
2497
- defineCustomElementFn: undefined,
2498
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2499
- })
2500
- ], DyteParticipantsStageQueue);
2501
- export { DyteParticipantsStageQueue };
2502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageQueue, decorators: [{
2503
- type: Component,
2504
- args: [{
2505
- selector: 'dyte-participants-stage-queue',
2506
- changeDetection: ChangeDetectionStrategy.OnPush,
2507
- template: '<ng-content></ng-content>',
2508
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2509
- }]
2510
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2511
- let DyteParticipantsToggle = class DyteParticipantsToggle {
2512
- constructor(c, r, z) {
2513
- this.z = z;
2514
- c.detach();
2515
- this.el = r.nativeElement;
2516
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2517
- }
2518
- };
2519
- DyteParticipantsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2520
- DyteParticipantsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsToggle, selector: "dyte-participants-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2521
- DyteParticipantsToggle = __decorate([
2522
- ProxyCmp({
2523
- defineCustomElementFn: undefined,
2524
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2525
- })
2526
- ], DyteParticipantsToggle);
2527
- export { DyteParticipantsToggle };
2528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsToggle, decorators: [{
2529
- type: Component,
2530
- args: [{
2531
- selector: 'dyte-participants-toggle',
2532
- changeDetection: ChangeDetectionStrategy.OnPush,
2533
- template: '<ng-content></ng-content>',
2534
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2535
- }]
2536
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2537
- let DyteParticipantsViewerList = class DyteParticipantsViewerList {
2538
- constructor(c, r, z) {
2539
- this.z = z;
2540
- c.detach();
2541
- this.el = r.nativeElement;
2542
- }
2543
- };
2544
- DyteParticipantsViewerList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsViewerList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2545
- DyteParticipantsViewerList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsViewerList, selector: "dyte-participants-viewer-list", inputs: { config: "config", hideHeader: "hideHeader", iconPack: "iconPack", meeting: "meeting", search: "search", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2546
- DyteParticipantsViewerList = __decorate([
2547
- ProxyCmp({
2548
- defineCustomElementFn: undefined,
2549
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view']
2550
- })
2551
- ], DyteParticipantsViewerList);
2552
- export { DyteParticipantsViewerList };
2553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsViewerList, decorators: [{
2554
- type: Component,
2555
- args: [{
2556
- selector: 'dyte-participants-viewer-list',
2557
- changeDetection: ChangeDetectionStrategy.OnPush,
2558
- template: '<ng-content></ng-content>',
2559
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view']
2560
- }]
2561
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2562
- let DyteParticipantsWaitingList = class DyteParticipantsWaitingList {
2563
- constructor(c, r, z) {
2564
- this.z = z;
2565
- c.detach();
2566
- this.el = r.nativeElement;
2567
- }
2568
- };
2569
- DyteParticipantsWaitingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsWaitingList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2570
- DyteParticipantsWaitingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsWaitingList, selector: "dyte-participants-waiting-list", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2571
- DyteParticipantsWaitingList = __decorate([
2572
- ProxyCmp({
2573
- defineCustomElementFn: undefined,
2574
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2575
- })
2576
- ], DyteParticipantsWaitingList);
2577
- export { DyteParticipantsWaitingList };
2578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsWaitingList, decorators: [{
2579
- type: Component,
2580
- args: [{
2581
- selector: 'dyte-participants-waiting-list',
2582
- changeDetection: ChangeDetectionStrategy.OnPush,
2583
- template: '<ng-content></ng-content>',
2584
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2585
- }]
2586
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2587
- let DytePermissionsMessage = class DytePermissionsMessage {
2588
- constructor(c, r, z) {
2589
- this.z = z;
2590
- c.detach();
2591
- this.el = r.nativeElement;
2592
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2593
- }
2594
- };
2595
- DytePermissionsMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePermissionsMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2596
- DytePermissionsMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePermissionsMessage, selector: "dyte-permissions-message", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2597
- DytePermissionsMessage = __decorate([
2598
- ProxyCmp({
2599
- defineCustomElementFn: undefined,
2600
- inputs: ['iconPack', 'meeting', 'states', 't']
2601
- })
2602
- ], DytePermissionsMessage);
2603
- export { DytePermissionsMessage };
2604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePermissionsMessage, decorators: [{
2605
- type: Component,
2606
- args: [{
2607
- selector: 'dyte-permissions-message',
2608
- changeDetection: ChangeDetectionStrategy.OnPush,
2609
- template: '<ng-content></ng-content>',
2610
- inputs: ['iconPack', 'meeting', 'states', 't']
2611
- }]
2612
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2613
- let DytePipToggle = class DytePipToggle {
2614
- constructor(c, r, z) {
2615
- this.z = z;
2616
- c.detach();
2617
- this.el = r.nativeElement;
2618
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2619
- }
2620
- };
2621
- DytePipToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePipToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2622
- DytePipToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePipToggle, selector: "dyte-pip-toggle", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2623
- DytePipToggle = __decorate([
2624
- ProxyCmp({
2625
- defineCustomElementFn: undefined,
2626
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
2627
- })
2628
- ], DytePipToggle);
2629
- export { DytePipToggle };
2630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePipToggle, decorators: [{
2631
- type: Component,
2632
- args: [{
2633
- selector: 'dyte-pip-toggle',
2634
- changeDetection: ChangeDetectionStrategy.OnPush,
2635
- template: '<ng-content></ng-content>',
2636
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
2637
- }]
2638
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2639
- let DytePluginMain = class DytePluginMain {
2640
- constructor(c, r, z) {
2641
- this.z = z;
2642
- c.detach();
2643
- this.el = r.nativeElement;
2644
- }
2645
- };
2646
- DytePluginMain.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginMain, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2647
- DytePluginMain.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePluginMain, selector: "dyte-plugin-main", inputs: { iconPack: "iconPack", meeting: "meeting", plugin: "plugin", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2648
- DytePluginMain = __decorate([
2649
- ProxyCmp({
2650
- defineCustomElementFn: undefined,
2651
- inputs: ['iconPack', 'meeting', 'plugin', 't']
2652
- })
2653
- ], DytePluginMain);
2654
- export { DytePluginMain };
2655
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginMain, decorators: [{
2656
- type: Component,
2657
- args: [{
2658
- selector: 'dyte-plugin-main',
2659
- changeDetection: ChangeDetectionStrategy.OnPush,
2660
- template: '<ng-content></ng-content>',
2661
- inputs: ['iconPack', 'meeting', 'plugin', 't']
2662
- }]
2663
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2664
- let DytePlugins = class DytePlugins {
2665
- constructor(c, r, z) {
2666
- this.z = z;
2667
- c.detach();
2668
- this.el = r.nativeElement;
2669
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2670
- }
2671
- };
2672
- DytePlugins.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePlugins, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2673
- DytePlugins.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePlugins, selector: "dyte-plugins", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2674
- DytePlugins = __decorate([
2675
- ProxyCmp({
2676
- defineCustomElementFn: undefined,
2677
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2678
- })
2679
- ], DytePlugins);
2680
- export { DytePlugins };
2681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePlugins, decorators: [{
2682
- type: Component,
2683
- args: [{
2684
- selector: 'dyte-plugins',
2685
- changeDetection: ChangeDetectionStrategy.OnPush,
2686
- template: '<ng-content></ng-content>',
2687
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2688
- }]
2689
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2690
- let DytePluginsToggle = class DytePluginsToggle {
2691
- constructor(c, r, z) {
2692
- this.z = z;
2693
- c.detach();
2694
- this.el = r.nativeElement;
2695
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2696
- }
2697
- };
2698
- DytePluginsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2699
- DytePluginsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePluginsToggle, selector: "dyte-plugins-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2700
- DytePluginsToggle = __decorate([
2701
- ProxyCmp({
2702
- defineCustomElementFn: undefined,
2703
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2704
- })
2705
- ], DytePluginsToggle);
2706
- export { DytePluginsToggle };
2707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginsToggle, decorators: [{
2708
- type: Component,
2709
- args: [{
2710
- selector: 'dyte-plugins-toggle',
2711
- changeDetection: ChangeDetectionStrategy.OnPush,
2712
- template: '<ng-content></ng-content>',
2713
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2714
- }]
2715
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2716
- let DytePoll = class DytePoll {
2717
- constructor(c, r, z) {
2718
- this.z = z;
2719
- c.detach();
2720
- this.el = r.nativeElement;
2721
- proxyOutputs(this, this.el, ['dyteVotePoll']);
2722
- }
2723
- };
2724
- DytePoll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePoll, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2725
- DytePoll.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePoll, selector: "dyte-poll", inputs: { iconPack: "iconPack", permissions: "permissions", poll: "poll", self: "self", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2726
- DytePoll = __decorate([
2727
- ProxyCmp({
2728
- defineCustomElementFn: undefined,
2729
- inputs: ['iconPack', 'permissions', 'poll', 'self', 't']
2730
- })
2731
- ], DytePoll);
2732
- export { DytePoll };
2733
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePoll, decorators: [{
2734
- type: Component,
2735
- args: [{
2736
- selector: 'dyte-poll',
2737
- changeDetection: ChangeDetectionStrategy.OnPush,
2738
- template: '<ng-content></ng-content>',
2739
- inputs: ['iconPack', 'permissions', 'poll', 'self', 't']
2740
- }]
2741
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2742
- let DytePollForm = class DytePollForm {
2743
- constructor(c, r, z) {
2744
- this.z = z;
2745
- c.detach();
2746
- this.el = r.nativeElement;
2747
- proxyOutputs(this, this.el, ['dyteCreatePoll']);
2748
- }
2749
- };
2750
- DytePollForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2751
- DytePollForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePollForm, selector: "dyte-poll-form", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2752
- DytePollForm = __decorate([
2753
- ProxyCmp({
2754
- defineCustomElementFn: undefined,
2755
- inputs: ['iconPack', 't']
2756
- })
2757
- ], DytePollForm);
2758
- export { DytePollForm };
2759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollForm, decorators: [{
2760
- type: Component,
2761
- args: [{
2762
- selector: 'dyte-poll-form',
2763
- changeDetection: ChangeDetectionStrategy.OnPush,
2764
- template: '<ng-content></ng-content>',
2765
- inputs: ['iconPack', 't']
2766
- }]
2767
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2768
- let DytePolls = class DytePolls {
2769
- constructor(c, r, z) {
2770
- this.z = z;
2771
- c.detach();
2772
- this.el = r.nativeElement;
2773
- }
2774
- };
2775
- DytePolls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePolls, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2776
- DytePolls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePolls, selector: "dyte-polls", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2777
- DytePolls = __decorate([
2778
- ProxyCmp({
2779
- defineCustomElementFn: undefined,
2780
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2781
- })
2782
- ], DytePolls);
2783
- export { DytePolls };
2784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePolls, decorators: [{
2785
- type: Component,
2786
- args: [{
2787
- selector: 'dyte-polls',
2788
- changeDetection: ChangeDetectionStrategy.OnPush,
2789
- template: '<ng-content></ng-content>',
2790
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2791
- }]
2792
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2793
- let DytePollsToggle = class DytePollsToggle {
2794
- constructor(c, r, z) {
2795
- this.z = z;
2796
- c.detach();
2797
- this.el = r.nativeElement;
2798
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2799
- }
2800
- };
2801
- DytePollsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2802
- DytePollsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePollsToggle, selector: "dyte-polls-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2803
- DytePollsToggle = __decorate([
2804
- ProxyCmp({
2805
- defineCustomElementFn: undefined,
2806
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2807
- })
2808
- ], DytePollsToggle);
2809
- export { DytePollsToggle };
2810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollsToggle, decorators: [{
2811
- type: Component,
2812
- args: [{
2813
- selector: 'dyte-polls-toggle',
2814
- changeDetection: ChangeDetectionStrategy.OnPush,
2815
- template: '<ng-content></ng-content>',
2816
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2817
- }]
2818
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2819
- let DyteRecordingIndicator = class DyteRecordingIndicator {
2820
- constructor(c, r, z) {
2821
- this.z = z;
2822
- c.detach();
2823
- this.el = r.nativeElement;
2824
- }
2825
- };
2826
- DyteRecordingIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2827
- DyteRecordingIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteRecordingIndicator, selector: "dyte-recording-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2828
- DyteRecordingIndicator = __decorate([
2829
- ProxyCmp({
2830
- defineCustomElementFn: undefined,
2831
- inputs: ['iconPack', 'meeting', 'size', 't']
2832
- })
2833
- ], DyteRecordingIndicator);
2834
- export { DyteRecordingIndicator };
2835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingIndicator, decorators: [{
2836
- type: Component,
2837
- args: [{
2838
- selector: 'dyte-recording-indicator',
2839
- changeDetection: ChangeDetectionStrategy.OnPush,
2840
- template: '<ng-content></ng-content>',
2841
- inputs: ['iconPack', 'meeting', 'size', 't']
2842
- }]
2843
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2844
- let DyteRecordingToggle = class DyteRecordingToggle {
2845
- constructor(c, r, z) {
2846
- this.z = z;
2847
- c.detach();
2848
- this.el = r.nativeElement;
2849
- proxyOutputs(this, this.el, ['dyteAPIError']);
2850
- }
2851
- };
2852
- DyteRecordingToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2853
- DyteRecordingToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteRecordingToggle, selector: "dyte-recording-toggle", inputs: { disabled: "disabled", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2854
- DyteRecordingToggle = __decorate([
2855
- ProxyCmp({
2856
- defineCustomElementFn: undefined,
2857
- inputs: ['disabled', 'iconPack', 'meeting', 'size', 't', 'variant']
2858
- })
2859
- ], DyteRecordingToggle);
2860
- export { DyteRecordingToggle };
2861
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingToggle, decorators: [{
2862
- type: Component,
2863
- args: [{
2864
- selector: 'dyte-recording-toggle',
2865
- changeDetection: ChangeDetectionStrategy.OnPush,
2866
- template: '<ng-content></ng-content>',
2867
- inputs: ['disabled', 'iconPack', 'meeting', 'size', 't', 'variant']
2868
- }]
2869
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2870
- let DyteScreenShareToggle = class DyteScreenShareToggle {
2871
- constructor(c, r, z) {
2872
- this.z = z;
2873
- c.detach();
2874
- this.el = r.nativeElement;
2875
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteAPIError']);
2876
- }
2877
- };
2878
- DyteScreenShareToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenShareToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2879
- DyteScreenShareToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteScreenShareToggle, selector: "dyte-screen-share-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2880
- DyteScreenShareToggle = __decorate([
2881
- ProxyCmp({
2882
- defineCustomElementFn: undefined,
2883
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2884
- })
2885
- ], DyteScreenShareToggle);
2886
- export { DyteScreenShareToggle };
2887
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenShareToggle, decorators: [{
2888
- type: Component,
2889
- args: [{
2890
- selector: 'dyte-screen-share-toggle',
2891
- changeDetection: ChangeDetectionStrategy.OnPush,
2892
- template: '<ng-content></ng-content>',
2893
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2894
- }]
2895
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2896
- let DyteScreenshareView = class DyteScreenshareView {
2897
- constructor(c, r, z) {
2898
- this.z = z;
2899
- c.detach();
2900
- this.el = r.nativeElement;
2901
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'screensharePlay']);
2902
- }
2903
- };
2904
- DyteScreenshareView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenshareView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2905
- DyteScreenshareView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteScreenshareView, selector: "dyte-screenshare-view", inputs: { hideFullScreenButton: "hideFullScreenButton", iconPack: "iconPack", meeting: "meeting", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2906
- DyteScreenshareView = __decorate([
2907
- ProxyCmp({
2908
- defineCustomElementFn: undefined,
2909
- inputs: ['hideFullScreenButton', 'iconPack', 'meeting', 'nameTagPosition', 'participant', 'size', 't', 'variant']
2910
- })
2911
- ], DyteScreenshareView);
2912
- export { DyteScreenshareView };
2913
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenshareView, decorators: [{
2914
- type: Component,
2915
- args: [{
2916
- selector: 'dyte-screenshare-view',
2917
- changeDetection: ChangeDetectionStrategy.OnPush,
2918
- template: '<ng-content></ng-content>',
2919
- inputs: ['hideFullScreenButton', 'iconPack', 'meeting', 'nameTagPosition', 'participant', 'size', 't', 'variant']
2920
- }]
2921
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2922
- let DyteSettings = class DyteSettings {
2923
- constructor(c, r, z) {
2924
- this.z = z;
2925
- c.detach();
2926
- this.el = r.nativeElement;
2927
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2928
- }
2929
- };
2930
- DyteSettings.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettings, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2931
- DyteSettings.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettings, selector: "dyte-settings", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2932
- DyteSettings = __decorate([
2933
- ProxyCmp({
2934
- defineCustomElementFn: undefined,
2935
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2936
- })
2937
- ], DyteSettings);
2938
- export { DyteSettings };
2939
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettings, decorators: [{
2940
- type: Component,
2941
- args: [{
2942
- selector: 'dyte-settings',
2943
- changeDetection: ChangeDetectionStrategy.OnPush,
2944
- template: '<ng-content></ng-content>',
2945
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2946
- }]
2947
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2948
- let DyteSettingsAudio = class DyteSettingsAudio {
2949
- constructor(c, r, z) {
2950
- this.z = z;
2951
- c.detach();
2952
- this.el = r.nativeElement;
2953
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2954
- }
2955
- };
2956
- DyteSettingsAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2957
- DyteSettingsAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsAudio, selector: "dyte-settings-audio", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2958
- DyteSettingsAudio = __decorate([
2959
- ProxyCmp({
2960
- defineCustomElementFn: undefined,
2961
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2962
- })
2963
- ], DyteSettingsAudio);
2964
- export { DyteSettingsAudio };
2965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsAudio, decorators: [{
2966
- type: Component,
2967
- args: [{
2968
- selector: 'dyte-settings-audio',
2969
- changeDetection: ChangeDetectionStrategy.OnPush,
2970
- template: '<ng-content></ng-content>',
2971
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2972
- }]
2973
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2974
- let DyteSettingsToggle = class DyteSettingsToggle {
2975
- constructor(c, r, z) {
2976
- this.z = z;
2977
- c.detach();
2978
- this.el = r.nativeElement;
2979
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2980
- }
2981
- };
2982
- DyteSettingsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2983
- DyteSettingsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsToggle, selector: "dyte-settings-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2984
- DyteSettingsToggle = __decorate([
2985
- ProxyCmp({
2986
- defineCustomElementFn: undefined,
2987
- inputs: ['iconPack', 'size', 'states', 't', 'variant']
2988
- })
2989
- ], DyteSettingsToggle);
2990
- export { DyteSettingsToggle };
2991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsToggle, decorators: [{
2992
- type: Component,
2993
- args: [{
2994
- selector: 'dyte-settings-toggle',
2995
- changeDetection: ChangeDetectionStrategy.OnPush,
2996
- template: '<ng-content></ng-content>',
2997
- inputs: ['iconPack', 'size', 'states', 't', 'variant']
2998
- }]
2999
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3000
- let DyteSettingsVideo = class DyteSettingsVideo {
3001
- constructor(c, r, z) {
3002
- this.z = z;
3003
- c.detach();
3004
- this.el = r.nativeElement;
3005
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3006
- }
3007
- };
3008
- DyteSettingsVideo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3009
- DyteSettingsVideo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsVideo, selector: "dyte-settings-video", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3010
- DyteSettingsVideo = __decorate([
3011
- ProxyCmp({
3012
- defineCustomElementFn: undefined,
3013
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
3014
- })
3015
- ], DyteSettingsVideo);
3016
- export { DyteSettingsVideo };
3017
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsVideo, decorators: [{
3018
- type: Component,
3019
- args: [{
3020
- selector: 'dyte-settings-video',
3021
- changeDetection: ChangeDetectionStrategy.OnPush,
3022
- template: '<ng-content></ng-content>',
3023
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
3024
- }]
3025
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3026
- let DyteSetupScreen = class DyteSetupScreen {
3027
- constructor(c, r, z) {
3028
- this.z = z;
3029
- c.detach();
3030
- this.el = r.nativeElement;
3031
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3032
- }
3033
- };
3034
- DyteSetupScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSetupScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3035
- DyteSetupScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSetupScreen, selector: "dyte-setup-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3036
- DyteSetupScreen = __decorate([
3037
- ProxyCmp({
3038
- defineCustomElementFn: undefined,
3039
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
3040
- })
3041
- ], DyteSetupScreen);
3042
- export { DyteSetupScreen };
3043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSetupScreen, decorators: [{
3044
- type: Component,
3045
- args: [{
3046
- selector: 'dyte-setup-screen',
3047
- changeDetection: ChangeDetectionStrategy.OnPush,
3048
- template: '<ng-content></ng-content>',
3049
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
3050
- }]
3051
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3052
- let DyteSidebar = class DyteSidebar {
3053
- constructor(c, r, z) {
3054
- this.z = z;
3055
- c.detach();
3056
- this.el = r.nativeElement;
3057
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3058
- }
3059
- };
3060
- DyteSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3061
- DyteSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSidebar, selector: "dyte-sidebar", inputs: { config: "config", defaultSection: "defaultSection", enabledSections: "enabledSections", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3062
- DyteSidebar = __decorate([
3063
- ProxyCmp({
3064
- defineCustomElementFn: undefined,
3065
- inputs: ['config', 'defaultSection', 'enabledSections', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
3066
- })
3067
- ], DyteSidebar);
3068
- export { DyteSidebar };
3069
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebar, decorators: [{
3070
- type: Component,
3071
- args: [{
3072
- selector: 'dyte-sidebar',
3073
- changeDetection: ChangeDetectionStrategy.OnPush,
3074
- template: '<ng-content></ng-content>',
3075
- inputs: ['config', 'defaultSection', 'enabledSections', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
3076
- }]
3077
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3078
- let DyteSidebarUi = class DyteSidebarUi {
3079
- constructor(c, r, z) {
3080
- this.z = z;
3081
- c.detach();
3082
- this.el = r.nativeElement;
3083
- proxyOutputs(this, this.el, ['tabChange', 'sidebarClose']);
3084
- }
3085
- };
3086
- DyteSidebarUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebarUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3087
- DyteSidebarUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSidebarUi, selector: "dyte-sidebar-ui", inputs: { currentTab: "currentTab", hideCloseAction: "hideCloseAction", hideHeader: "hideHeader", iconPack: "iconPack", t: "t", tabs: "tabs", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3088
- DyteSidebarUi = __decorate([
3089
- ProxyCmp({
3090
- defineCustomElementFn: undefined,
3091
- inputs: ['currentTab', 'hideCloseAction', 'hideHeader', 'iconPack', 't', 'tabs', 'view']
3092
- })
3093
- ], DyteSidebarUi);
3094
- export { DyteSidebarUi };
3095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebarUi, decorators: [{
3096
- type: Component,
3097
- args: [{
3098
- selector: 'dyte-sidebar-ui',
3099
- changeDetection: ChangeDetectionStrategy.OnPush,
3100
- template: '<ng-content></ng-content>',
3101
- inputs: ['currentTab', 'hideCloseAction', 'hideHeader', 'iconPack', 't', 'tabs', 'view']
3102
- }]
3103
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3104
- let DyteSimpleGrid = class DyteSimpleGrid {
3105
- constructor(c, r, z) {
3106
- this.z = z;
3107
- c.detach();
3108
- this.el = r.nativeElement;
3109
- }
3110
- };
3111
- DyteSimpleGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSimpleGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3112
- DyteSimpleGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSimpleGrid, selector: "dyte-simple-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", iconPack: "iconPack", meeting: "meeting", participants: "participants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3113
- DyteSimpleGrid = __decorate([
3114
- ProxyCmp({
3115
- defineCustomElementFn: undefined,
3116
- inputs: ['aspectRatio', 'config', 'gap', 'iconPack', 'meeting', 'participants', 'size', 'states', 't']
3117
- })
3118
- ], DyteSimpleGrid);
3119
- export { DyteSimpleGrid };
3120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSimpleGrid, decorators: [{
3121
- type: Component,
3122
- args: [{
3123
- selector: 'dyte-simple-grid',
3124
- changeDetection: ChangeDetectionStrategy.OnPush,
3125
- template: '<ng-content></ng-content>',
3126
- inputs: ['aspectRatio', 'config', 'gap', 'iconPack', 'meeting', 'participants', 'size', 'states', 't']
3127
- }]
3128
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3129
- let DyteSpeakerSelector = class DyteSpeakerSelector {
3130
- constructor(c, r, z) {
3131
- this.z = z;
3132
- c.detach();
3133
- this.el = r.nativeElement;
3134
- }
3135
- };
3136
- DyteSpeakerSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpeakerSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3137
- DyteSpeakerSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpeakerSelector, selector: "dyte-speaker-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3138
- DyteSpeakerSelector = __decorate([
3139
- ProxyCmp({
3140
- defineCustomElementFn: undefined,
3141
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
3142
- })
3143
- ], DyteSpeakerSelector);
3144
- export { DyteSpeakerSelector };
3145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpeakerSelector, decorators: [{
3146
- type: Component,
3147
- args: [{
3148
- selector: 'dyte-speaker-selector',
3149
- changeDetection: ChangeDetectionStrategy.OnPush,
3150
- template: '<ng-content></ng-content>',
3151
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
3152
- }]
3153
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3154
- let DyteSpinner = class DyteSpinner {
3155
- constructor(c, r, z) {
3156
- this.z = z;
3157
- c.detach();
3158
- this.el = r.nativeElement;
3159
- }
3160
- };
3161
- DyteSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3162
- DyteSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpinner, selector: "dyte-spinner", inputs: { iconPack: "iconPack", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3163
- DyteSpinner = __decorate([
3164
- ProxyCmp({
3165
- defineCustomElementFn: undefined,
3166
- inputs: ['iconPack', 'size', 't']
3167
- })
3168
- ], DyteSpinner);
3169
- export { DyteSpinner };
3170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpinner, decorators: [{
3171
- type: Component,
3172
- args: [{
3173
- selector: 'dyte-spinner',
3174
- changeDetection: ChangeDetectionStrategy.OnPush,
3175
- template: '<ng-content></ng-content>',
3176
- inputs: ['iconPack', 'size', 't']
3177
- }]
3178
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3179
- let DyteSpotlightGrid = class DyteSpotlightGrid {
3180
- constructor(c, r, z) {
3181
- this.z = z;
3182
- c.detach();
3183
- this.el = r.nativeElement;
3184
- }
3185
- };
3186
- DyteSpotlightGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3187
- DyteSpotlightGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpotlightGrid, selector: "dyte-spotlight-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", participants: "participants", pinnedParticipants: "pinnedParticipants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3188
- DyteSpotlightGrid = __decorate([
3189
- ProxyCmp({
3190
- defineCustomElementFn: undefined,
3191
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'size', 'states', 't']
3192
- })
3193
- ], DyteSpotlightGrid);
3194
- export { DyteSpotlightGrid };
3195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightGrid, decorators: [{
3196
- type: Component,
3197
- args: [{
3198
- selector: 'dyte-spotlight-grid',
3199
- changeDetection: ChangeDetectionStrategy.OnPush,
3200
- template: '<ng-content></ng-content>',
3201
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'size', 'states', 't']
3202
- }]
3203
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3204
- let DyteSpotlightIndicator = class DyteSpotlightIndicator {
3205
- constructor(c, r, z) {
3206
- this.z = z;
3207
- c.detach();
3208
- this.el = r.nativeElement;
3209
- }
3210
- };
3211
- DyteSpotlightIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3212
- DyteSpotlightIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpotlightIndicator, selector: "dyte-spotlight-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3213
- DyteSpotlightIndicator = __decorate([
3214
- ProxyCmp({
3215
- defineCustomElementFn: undefined,
3216
- inputs: ['iconPack', 'meeting', 'size', 't']
3217
- })
3218
- ], DyteSpotlightIndicator);
3219
- export { DyteSpotlightIndicator };
3220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightIndicator, decorators: [{
3221
- type: Component,
3222
- args: [{
3223
- selector: 'dyte-spotlight-indicator',
3224
- changeDetection: ChangeDetectionStrategy.OnPush,
3225
- template: '<ng-content></ng-content>',
3226
- inputs: ['iconPack', 'meeting', 'size', 't']
3227
- }]
3228
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3229
- let DyteStage = class DyteStage {
3230
- constructor(c, r, z) {
3231
- this.z = z;
3232
- c.detach();
3233
- this.el = r.nativeElement;
3234
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3235
- }
3236
- };
3237
- DyteStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3238
- DyteStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteStage, selector: "dyte-stage", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3239
- DyteStage = __decorate([
3240
- ProxyCmp({
3241
- defineCustomElementFn: undefined,
3242
- inputs: ['iconPack', 't']
3243
- })
3244
- ], DyteStage);
3245
- export { DyteStage };
3246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStage, decorators: [{
3247
- type: Component,
3248
- args: [{
3249
- selector: 'dyte-stage',
3250
- changeDetection: ChangeDetectionStrategy.OnPush,
3251
- template: '<ng-content></ng-content>',
3252
- inputs: ['iconPack', 't']
3253
- }]
3254
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3255
- let DyteStageToggle = class DyteStageToggle {
3256
- constructor(c, r, z) {
3257
- this.z = z;
3258
- c.detach();
3259
- this.el = r.nativeElement;
3260
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3261
- }
3262
- };
3263
- DyteStageToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStageToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3264
- DyteStageToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteStageToggle, selector: "dyte-stage-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3265
- DyteStageToggle = __decorate([
3266
- ProxyCmp({
3267
- defineCustomElementFn: undefined,
3268
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
3269
- })
3270
- ], DyteStageToggle);
3271
- export { DyteStageToggle };
3272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStageToggle, decorators: [{
3273
- type: Component,
3274
- args: [{
3275
- selector: 'dyte-stage-toggle',
3276
- changeDetection: ChangeDetectionStrategy.OnPush,
3277
- template: '<ng-content></ng-content>',
3278
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
3279
- }]
3280
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3281
- let DyteSwitch = class DyteSwitch {
3282
- constructor(c, r, z) {
3283
- this.z = z;
3284
- c.detach();
3285
- this.el = r.nativeElement;
3286
- proxyOutputs(this, this.el, ['dyteChange']);
3287
- }
3288
- };
3289
- DyteSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3290
- DyteSwitch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSwitch, selector: "dyte-switch", inputs: { checked: "checked", disabled: "disabled", iconPack: "iconPack", readonly: "readonly", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3291
- DyteSwitch = __decorate([
3292
- ProxyCmp({
3293
- defineCustomElementFn: undefined,
3294
- inputs: ['checked', 'disabled', 'iconPack', 'readonly', 't']
3295
- })
3296
- ], DyteSwitch);
3297
- export { DyteSwitch };
3298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSwitch, decorators: [{
3299
- type: Component,
3300
- args: [{
3301
- selector: 'dyte-switch',
3302
- changeDetection: ChangeDetectionStrategy.OnPush,
3303
- template: '<ng-content></ng-content>',
3304
- inputs: ['checked', 'disabled', 'iconPack', 'readonly', 't']
3305
- }]
3306
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3307
- let DyteTabBar = class DyteTabBar {
3308
- constructor(c, r, z) {
3309
- this.z = z;
3310
- c.detach();
3311
- this.el = r.nativeElement;
3312
- proxyOutputs(this, this.el, ['tabChange']);
3313
- }
3314
- };
3315
- DyteTabBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTabBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3316
- DyteTabBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTabBar, selector: "dyte-tab-bar", inputs: { activeTab: "activeTab", config: "config", iconPack: "iconPack", layout: "layout", meeting: "meeting", size: "size", states: "states", t: "t", tabs: "tabs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3317
- DyteTabBar = __decorate([
3318
- ProxyCmp({
3319
- defineCustomElementFn: undefined,
3320
- inputs: ['activeTab', 'config', 'iconPack', 'layout', 'meeting', 'size', 'states', 't', 'tabs']
3321
- })
3322
- ], DyteTabBar);
3323
- export { DyteTabBar };
3324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTabBar, decorators: [{
3325
- type: Component,
3326
- args: [{
3327
- selector: 'dyte-tab-bar',
3328
- changeDetection: ChangeDetectionStrategy.OnPush,
3329
- template: '<ng-content></ng-content>',
3330
- inputs: ['activeTab', 'config', 'iconPack', 'layout', 'meeting', 'size', 'states', 't', 'tabs']
3331
- }]
3332
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3333
- let DyteTextComposerView = class DyteTextComposerView {
3334
- constructor(c, r, z) {
3335
- this.z = z;
3336
- c.detach();
3337
- this.el = r.nativeElement;
3338
- proxyOutputs(this, this.el, ['textChange']);
3339
- }
3340
- };
3341
- DyteTextComposerView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextComposerView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3342
- DyteTextComposerView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextComposerView, selector: "dyte-text-composer-view", inputs: { disabled: "disabled", iconPack: "iconPack", keyDownHandler: "keyDownHandler", maxLength: "maxLength", placeholder: "placeholder", rateLimitBreached: "rateLimitBreached", t: "t", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3343
- DyteTextComposerView = __decorate([
3344
- ProxyCmp({
3345
- defineCustomElementFn: undefined,
3346
- inputs: ['disabled', 'iconPack', 'keyDownHandler', 'maxLength', 'placeholder', 'rateLimitBreached', 't', 'value'],
3347
- methods: ['setText']
3348
- })
3349
- ], DyteTextComposerView);
3350
- export { DyteTextComposerView };
3351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextComposerView, decorators: [{
3352
- type: Component,
3353
- args: [{
3354
- selector: 'dyte-text-composer-view',
3355
- changeDetection: ChangeDetectionStrategy.OnPush,
3356
- template: '<ng-content></ng-content>',
3357
- inputs: ['disabled', 'iconPack', 'keyDownHandler', 'maxLength', 'placeholder', 'rateLimitBreached', 't', 'value']
3358
- }]
3359
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3360
- let DyteTextField = class DyteTextField {
3361
- constructor(c, r, z) {
3362
- this.z = z;
3363
- c.detach();
3364
- this.el = r.nativeElement;
3365
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3366
- }
3367
- };
3368
- DyteTextField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3369
- DyteTextField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextField, selector: "dyte-text-field", inputs: { disabled: "disabled", iconPack: "iconPack", placeholder: "placeholder", t: "t", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3370
- DyteTextField = __decorate([
3371
- ProxyCmp({
3372
- defineCustomElementFn: undefined,
3373
- inputs: ['disabled', 'iconPack', 'placeholder', 't', 'type']
3374
- })
3375
- ], DyteTextField);
3376
- export { DyteTextField };
3377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextField, decorators: [{
3378
- type: Component,
3379
- args: [{
3380
- selector: 'dyte-text-field',
3381
- changeDetection: ChangeDetectionStrategy.OnPush,
3382
- template: '<ng-content></ng-content>',
3383
- inputs: ['disabled', 'iconPack', 'placeholder', 't', 'type']
3384
- }]
3385
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3386
- let DyteTextMessage = class DyteTextMessage {
3387
- constructor(c, r, z) {
3388
- this.z = z;
3389
- c.detach();
3390
- this.el = r.nativeElement;
3391
- }
3392
- };
3393
- DyteTextMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3394
- DyteTextMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextMessage, selector: "dyte-text-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3395
- DyteTextMessage = __decorate([
3396
- ProxyCmp({
3397
- defineCustomElementFn: undefined,
3398
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
3399
- })
3400
- ], DyteTextMessage);
3401
- export { DyteTextMessage };
3402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessage, decorators: [{
3403
- type: Component,
3404
- args: [{
3405
- selector: 'dyte-text-message',
3406
- changeDetection: ChangeDetectionStrategy.OnPush,
3407
- template: '<ng-content></ng-content>',
3408
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
3409
- }]
3410
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3411
- let DyteTextMessageView = class DyteTextMessageView {
3412
- constructor(c, r, z) {
3413
- this.z = z;
3414
- c.detach();
3415
- this.el = r.nativeElement;
3416
- }
3417
- };
3418
- DyteTextMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3419
- DyteTextMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextMessageView, selector: "dyte-text-message-view", inputs: { isMarkdown: "isMarkdown", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3420
- DyteTextMessageView = __decorate([
3421
- ProxyCmp({
3422
- defineCustomElementFn: undefined,
3423
- inputs: ['isMarkdown', 'text']
3424
- })
3425
- ], DyteTextMessageView);
3426
- export { DyteTextMessageView };
3427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessageView, decorators: [{
3428
- type: Component,
3429
- args: [{
3430
- selector: 'dyte-text-message-view',
3431
- changeDetection: ChangeDetectionStrategy.OnPush,
3432
- template: '<ng-content></ng-content>',
3433
- inputs: ['isMarkdown', 'text']
3434
- }]
3435
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3436
- let DyteTooltip = class DyteTooltip {
3437
- constructor(c, r, z) {
3438
- this.z = z;
3439
- c.detach();
3440
- this.el = r.nativeElement;
3441
- proxyOutputs(this, this.el, ['dyteOpenChange']);
3442
- }
3443
- };
3444
- DyteTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3445
- DyteTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTooltip, selector: "dyte-tooltip", inputs: { delay: "delay", disabled: "disabled", iconPack: "iconPack", kind: "kind", label: "label", open: "open", placement: "placement", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3446
- DyteTooltip = __decorate([
3447
- ProxyCmp({
3448
- defineCustomElementFn: undefined,
3449
- inputs: ['delay', 'disabled', 'iconPack', 'kind', 'label', 'open', 'placement', 'size', 't', 'variant']
3450
- })
3451
- ], DyteTooltip);
3452
- export { DyteTooltip };
3453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTooltip, decorators: [{
3454
- type: Component,
3455
- args: [{
3456
- selector: 'dyte-tooltip',
3457
- changeDetection: ChangeDetectionStrategy.OnPush,
3458
- template: '<ng-content></ng-content>',
3459
- inputs: ['delay', 'disabled', 'iconPack', 'kind', 'label', 'open', 'placement', 'size', 't', 'variant']
3460
- }]
3461
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3462
- let DyteTranscript = class DyteTranscript {
3463
- constructor(c, r, z) {
3464
- this.z = z;
3465
- c.detach();
3466
- this.el = r.nativeElement;
3467
- proxyOutputs(this, this.el, ['dyteTranscriptDismiss']);
3468
- }
3469
- };
3470
- DyteTranscript.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscript, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3471
- DyteTranscript.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTranscript, selector: "dyte-transcript", inputs: { t: "t", transcript: "transcript" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3472
- DyteTranscript = __decorate([
3473
- ProxyCmp({
3474
- defineCustomElementFn: undefined,
3475
- inputs: ['t', 'transcript']
3476
- })
3477
- ], DyteTranscript);
3478
- export { DyteTranscript };
3479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscript, decorators: [{
3480
- type: Component,
3481
- args: [{
3482
- selector: 'dyte-transcript',
3483
- changeDetection: ChangeDetectionStrategy.OnPush,
3484
- template: '<ng-content></ng-content>',
3485
- inputs: ['t', 'transcript']
3486
- }]
3487
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3488
- let DyteTranscripts = class DyteTranscripts {
3489
- constructor(c, r, z) {
3490
- this.z = z;
3491
- c.detach();
3492
- this.el = r.nativeElement;
3493
- }
3494
- };
3495
- DyteTranscripts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscripts, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3496
- DyteTranscripts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTranscripts, selector: "dyte-transcripts", inputs: { config: "config", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3497
- DyteTranscripts = __decorate([
3498
- ProxyCmp({
3499
- defineCustomElementFn: undefined,
3500
- inputs: ['config', 'meeting', 'states', 't']
3501
- })
3502
- ], DyteTranscripts);
3503
- export { DyteTranscripts };
3504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscripts, decorators: [{
3505
- type: Component,
3506
- args: [{
3507
- selector: 'dyte-transcripts',
3508
- changeDetection: ChangeDetectionStrategy.OnPush,
3509
- template: '<ng-content></ng-content>',
3510
- inputs: ['config', 'meeting', 'states', 't']
3511
- }]
3512
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3513
- let DyteUiProvider = class DyteUiProvider {
3514
- constructor(c, r, z) {
3515
- this.z = z;
3516
- c.detach();
3517
- this.el = r.nativeElement;
3518
- }
3519
- };
3520
- DyteUiProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteUiProvider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3521
- DyteUiProvider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteUiProvider, selector: "dyte-ui-provider", inputs: { applyDesignSystem: "applyDesignSystem", config: "config", iconPackUrl: "iconPackUrl", joinRoom: "joinRoom", loadConfigFromPreset: "loadConfigFromPreset", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3522
- DyteUiProvider = __decorate([
3523
- ProxyCmp({
3524
- defineCustomElementFn: undefined,
3525
- inputs: ['applyDesignSystem', 'config', 'iconPackUrl', 'joinRoom', 'loadConfigFromPreset', 'meeting', 'size', 't']
3526
- })
3527
- ], DyteUiProvider);
3528
- export { DyteUiProvider };
3529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteUiProvider, decorators: [{
3530
- type: Component,
3531
- args: [{
3532
- selector: 'dyte-ui-provider',
3533
- changeDetection: ChangeDetectionStrategy.OnPush,
3534
- template: '<ng-content></ng-content>',
3535
- inputs: ['applyDesignSystem', 'config', 'iconPackUrl', 'joinRoom', 'loadConfigFromPreset', 'meeting', 'size', 't']
3536
- }]
3537
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3538
- let DyteViewerCount = class DyteViewerCount {
3539
- constructor(c, r, z) {
3540
- this.z = z;
3541
- c.detach();
3542
- this.el = r.nativeElement;
3543
- }
3544
- };
3545
- DyteViewerCount.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteViewerCount, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3546
- DyteViewerCount.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteViewerCount, selector: "dyte-viewer-count", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3547
- DyteViewerCount = __decorate([
3548
- ProxyCmp({
3549
- defineCustomElementFn: undefined,
3550
- inputs: ['iconPack', 'meeting', 't', 'variant']
3551
- })
3552
- ], DyteViewerCount);
3553
- export { DyteViewerCount };
3554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteViewerCount, decorators: [{
3555
- type: Component,
3556
- args: [{
3557
- selector: 'dyte-viewer-count',
3558
- changeDetection: ChangeDetectionStrategy.OnPush,
3559
- template: '<ng-content></ng-content>',
3560
- inputs: ['iconPack', 'meeting', 't', 'variant']
3561
- }]
3562
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3563
- let DyteVirtualizedParticipantList = class DyteVirtualizedParticipantList {
3564
- constructor(c, r, z) {
3565
- this.z = z;
3566
- c.detach();
3567
- this.el = r.nativeElement;
3568
- }
3569
- };
3570
- DyteVirtualizedParticipantList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteVirtualizedParticipantList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3571
- DyteVirtualizedParticipantList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteVirtualizedParticipantList, selector: "dyte-virtualized-participant-list", inputs: { bufferedItemsCount: "bufferedItemsCount", emptyListElement: "emptyListElement", itemHeight: "itemHeight", items: "items", renderItem: "renderItem" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3572
- DyteVirtualizedParticipantList = __decorate([
3573
- ProxyCmp({
3574
- defineCustomElementFn: undefined,
3575
- inputs: ['bufferedItemsCount', 'emptyListElement', 'itemHeight', 'items', 'renderItem']
3576
- })
3577
- ], DyteVirtualizedParticipantList);
3578
- export { DyteVirtualizedParticipantList };
3579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteVirtualizedParticipantList, decorators: [{
3580
- type: Component,
3581
- args: [{
3582
- selector: 'dyte-virtualized-participant-list',
3583
- changeDetection: ChangeDetectionStrategy.OnPush,
3584
- template: '<ng-content></ng-content>',
3585
- inputs: ['bufferedItemsCount', 'emptyListElement', 'itemHeight', 'items', 'renderItem']
3586
- }]
3587
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3588
- let DyteWaitingScreen = class DyteWaitingScreen {
3589
- constructor(c, r, z) {
3590
- this.z = z;
3591
- c.detach();
3592
- this.el = r.nativeElement;
3593
- }
3594
- };
3595
- DyteWaitingScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteWaitingScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3596
- DyteWaitingScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteWaitingScreen, selector: "dyte-waiting-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3597
- DyteWaitingScreen = __decorate([
3598
- ProxyCmp({
3599
- defineCustomElementFn: undefined,
3600
- inputs: ['config', 'iconPack', 'meeting', 't']
3601
- })
3602
- ], DyteWaitingScreen);
3603
- export { DyteWaitingScreen };
3604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteWaitingScreen, decorators: [{
3605
- type: Component,
3606
- args: [{
3607
- selector: 'dyte-waiting-screen',
3608
- changeDetection: ChangeDetectionStrategy.OnPush,
3609
- template: '<ng-content></ng-content>',
3610
- inputs: ['config', 'iconPack', 'meeting', 't']
3611
- }]
3612
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3613
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUF5QjFELE1BQU0sU0FBTixNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0YsQ0FBQTtvR0FQWSxNQUFNO3dGQUFOLE1BQU0sK01BSFAsMkJBQTJCO0FBRzFCLE1BQU07SUFWbEIsUUFBUSxDQUFDO1FBQ1IscUJBQXFCLEVBQUUsU0FBUztRQUNoQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUM7S0FDM0YsQ0FBQztHQU9XLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzRGQUFOLE1BQU07a0JBTmxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdC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MklBSGxCLDJCQUEyQjtBQUcxQixpQkFBaUI7SUFWN0IsUUFBUSxDQUFDO1FBQ1IscUJBQXFCLEVBQUUsU0FBUztRQUNoQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7S0FDL0MsQ0FBQztHQU9XLGlCQUFpQixDQU03QjtTQU5ZLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUFpU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQWkgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVBaSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUFpU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnZGVmYXVsdFNlY3Rpb24nLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYWknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkZWZhdWx0U2VjdGlvbicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmlldyddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVBaSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQWlDaGF0IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQWlDaGF0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1haS1jaGF0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWyd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUFpQ2hhdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBaUhvbWUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVBaUhvbWUge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpbml0aWFsTWVzc2FnZXMnLCAnbWVldGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1haS1ob21lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpbml0aWFsTWVzc2FnZXMnLCAnbWVldGluZyddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVBaUhvbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUFpVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQWlUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVBaVRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUFpVG9nZ2xlU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1haS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUFpVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBaVRyYW5zY3JpcHRpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQWlUcmFuc2NyaXB0aW9ucyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2luaXRpYWxUcmFuc2NyaXB0aW9ucycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYWktdHJhbnNjcmlwdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2luaXRpYWxUcmFuc2NyaXB0aW9ucycsICdtZWV0aW5nJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQWlUcmFuc2NyaXB0aW9ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBdWRpb0dyaWQgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVBdWRpb0dyaWQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnaGlkZVNlbGYnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWF1ZGlvLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdoaWRlU2VsZicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQXVkaW9HcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUF1ZGlvVGlsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUF1ZGlvVGlsZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYXVkaW8tdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVBdWRpb1RpbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQXVkaW9WaXN1YWxpemVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQXVkaW9WaXN1YWxpemVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaGlkZU11dGVkJywgJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYXVkaW8tdmlzdWFsaXplcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaGlkZU11dGVkJywgJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQXVkaW9WaXN1YWxpemVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUF2YXRhciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUJyZWFrb3V0Um9vbU1hbmFnZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVCcmVha291dFJvb21NYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciBhZGRpbmcgYSBwYXJ0aWNpcGFudCBcbiAgICovXG4gIHBhcnRpY2lwYW50c0FkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bGw+PjtcbiAgLyoqXG4gICAqIE9uIERlbGV0ZSBldmVudCBlbWl0dGVyIFxuICAgKi9cbiAgcGFydGljaXBhbnREZWxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGN1c3RvbVBhcnRpY2lwYW50SWQ6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgZm9yIGpvaW5pbmcgYSByb29tIFxuICAgKi9cbiAgcm9vbUpvaW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudWxsPj47XG4gIC8qKlxuICAgKiBFdmVudCBmb3IgZGVsZXRpbmcgcm9vbSBcbiAgICovXG4gIGRlbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgZm9yIHVwZGF0aW5nIHJvb20gZGV0YWlscyBcbiAgICovXG4gIHVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDsgaWQ6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxsb3dEZWxldGUnLCAnYXNzaWduaW5nUGFydGljaXBhbnRzJywgJ2RlZmF1bHRFeHBhbmRlZCcsICdpY29uUGFjaycsICdpc0RyYWdNb2RlJywgJ21lZXRpbmcnLCAnbW9kZScsICdyb29tJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWJyZWFrb3V0LXJvb20tbWFuYWdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxsb3dEZWxldGUnLCAnYXNzaWduaW5nUGFydGljaXBhbnRzJywgJ2RlZmF1bHRFeHBhbmRlZCcsICdpY29uUGFjaycsICdpc0RyYWdNb2RlJywgJ21lZXRpbmcnLCAnbW9kZScsICdyb29tJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUJyZWFrb3V0Um9vbU1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwYXJ0aWNpcGFudHNBZGQnLCAncGFydGljaXBhbnREZWxldGUnLCAncm9vbUpvaW4nLCAnZGVsZXRlJywgJ3VwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQnJlYWtvdXRSb29tUGFydGljaXBhbnRzIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQnJlYWtvdXRSb29tUGFydGljaXBhbnRzIHtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gc2VsZWN0ZWQgcGFydGljaXBhbnRzIGFyZSB1cGRhdGVkIFxuICAgKi9cbiAgc2VsZWN0ZWRQYXJ0aWNpcGFudHNVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiBhbGwgcGFydGljaXBhbnRzIGFyZSBzZWxlY3RlZCBvciBkZXNlbGVjdGVkIFxuICAgKi9cbiAgYWxsUGFydGljaXBhbnRzVG9nZ2xlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gcGFydGljaXBhbnRzIGFyZSBkcmFnZ2VkIFxuICAgKi9cbiAgcGFydGljaXBhbnRzRHJhZ2dpbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50SWRzJywgJ3NlbGVjdGVkUGFydGljaXBhbnRJZHMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1icmVha291dC1yb29tLXBhcnRpY2lwYW50cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdwYXJ0aWNpcGFudElkcycsICdzZWxlY3RlZFBhcnRpY2lwYW50SWRzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQnJlYWtvdXRSb29tUGFydGljaXBhbnRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2VsZWN0ZWRQYXJ0aWNpcGFudHNVcGRhdGUnLCAnYWxsUGFydGljaXBhbnRzVG9nZ2xlVXBkYXRlJywgJ3BhcnRpY2lwYW50c0RyYWdnaW5nJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQnJlYWtvdXRSb29tc01hbmFnZXJTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVCcmVha291dFJvb21zTWFuYWdlciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUJyZWFrb3V0Um9vbXNNYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PFBhcnRpYWw8SUR5dGVCcmVha291dFJvb21zTWFuYWdlclN0YXRlcz4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYnJlYWtvdXQtcm9vbXMtbWFuYWdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVCcmVha291dFJvb21zTWFuYWdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUJyZWFrb3V0Um9vbXNUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVCcmVha291dFJvb21zVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQnJlYWtvdXRSb29tc1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxQYXJ0aWFsPElEeXRlQnJlYWtvdXRSb29tc1RvZ2dsZVN0YXRlcz4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWJyZWFrb3V0LXJvb21zLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQnJlYWtvdXRSb29tc1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbFN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbCB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbFN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1icm9hZGNhc3QtbWVzc2FnZS1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVCcm9hZGNhc3RNZXNzYWdlTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUJ1dHRvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ2tpbmQnLCAncmV2ZXJzZScsICdzaXplJywgJ3QnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvblBhY2snLCAna2luZCcsICdyZXZlcnNlJywgJ3NpemUnLCAndCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNhbWVyYVNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2FtZXJhU2VsZWN0b3Ige31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNhbWVyYS1zZWxlY3RvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDYW1lcmFTZWxlY3RvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2FtZXJhVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2FtZXJhVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2FtZXJhVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2FtZXJhVG9nZ2xlU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNhbWVyYS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2FtZXJhVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2FwdGlvblRvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNhcHRpb25Ub2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDYXB0aW9uVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2FwdGlvblRvZ2dsZVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNhcHRpb24tdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2FwdGlvblRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUNoYW5uZWxDcmVhdG9yU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhbm5lbENyZWF0b3IgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGFubmVsQ3JlYXRvciB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYW5uZWxDcmVhdG9yU3RhdGVzPj47XG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB0byBzd2l0Y2ggY2hhbm5lbCBcbiAgICovXG4gIHN3aXRjaENoYW5uZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGFubmVsLWNyZWF0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDaGFubmVsQ3JlYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZScsICdzd2l0Y2hDaGFubmVsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGFubmVsRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYW5uZWxEZXRhaWxzIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2hhbm5lbCcsICdpY29uUGFjaycsICdtZW1iZXJzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhbm5lbC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGFubmVsJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDaGFubmVsRGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGFubmVsSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhbm5lbEhlYWRlciB7XG4gIC8qKlxuICAgKiBldmVudCB0cmlnZ2VyZWQgZm9yIHNlYXJjaCBcbiAgICovXG4gIHNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogZXZlbnQgdHJpZ2dlcmVkIGZvciBzZWFyY2ggXG4gICAqL1xuICBzZWFyY2hEaXNtaXNzZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkIFxuICAgKi9cbiAgYmFjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoYW5uZWwnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaG93QmFja0J1dHRvbicsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYW5uZWwtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGFubmVsJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2hvd0JhY2tCdXR0b24nLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDaGFubmVsSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2VhcmNoJywgJ3NlYXJjaERpc21pc3NlZCcsICdiYWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGFubmVsU2VsZWN0b3JVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYW5uZWxTZWxlY3RvclVpIHtcbiAgLyoqXG4gICAqIE9uIGNoYW5uZWwgY2hhbmdlZCBcbiAgICovXG4gIGNoYW5uZWxDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGFubmVscycsICdpY29uUGFjaycsICdzZWxlY3RlZENoYW5uZWxJZCcsICdzaG93UmVjZW50TWVzc2FnZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYW5uZWwtc2VsZWN0b3ItdWknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2ljb25QYWNrJywgJ3NlbGVjdGVkQ2hhbm5lbElkJywgJ3Nob3dSZWNlbnRNZXNzYWdlJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhbm5lbFNlbGVjdG9yVWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGFubmVsQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IEljb25QYWNrIGFzIElEeXRlQ2hhbm5lbFNlbGVjdG9yVmlld0ljb25QYWNrIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhbm5lbFNlbGVjdG9yVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYW5uZWxTZWxlY3RvclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHNlbGVjdGVkIGNoYW5uZWwgY2hhbmdlcyBcbiAgICovXG4gIGNoYW5uZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgYXZhdGFyVXJsPzogc3RyaW5nOyBpY29uPzoga2V5b2YgSUR5dGVDaGFubmVsU2VsZWN0b3JWaWV3SWNvblBhY2s7IGxhdGVzdE1lc3NhZ2U/OiBzdHJpbmc7IGxhdGVzdE1lc3NhZ2VUaW1lPzogRGF0ZTsgdW5yZWFkQ291bnQ/OiBudW1iZXI7IH0+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2Rpc2FibGVTZWFyY2gnLCAnaGlkZUF2YXRhcicsICdpY29uUGFjaycsICdzZWxlY3RlZENoYW5uZWxJZCcsICd0JywgJ3ZpZXdBcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGFubmVsLXNlbGVjdG9yLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2Rpc2FibGVTZWFyY2gnLCAnaGlkZUF2YXRhcicsICdpY29uUGFjaycsICdzZWxlY3RlZENoYW5uZWxJZCcsICd0JywgJ3ZpZXdBcyddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDaGFubmVsU2VsZWN0b3JWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hhbm5lbENoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUNoYXRTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdCB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlUHJpdmF0ZUNoYXQnLCAnZGlzcGxheUZpbHRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3ByaXZhdGVQcmVzZXRGaWx0ZXInLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlUHJpdmF0ZUNoYXQnLCAnZGlzcGxheUZpbHRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3ByaXZhdGVQcmVzZXRGaWx0ZXInLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBEeXRlTmV3TWVzc2FnZUV2ZW50IGFzIElEeXRlQ2hhdENvbXBvc2VyVWlEeXRlTmV3TWVzc2FnZUV2ZW50IH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdENvbXBvc2VyVWkgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGF0Q29tcG9zZXJVaSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gbmV3IG1lc3NhZ2UgaXMgc3VibWl0dGVkIFxuICAgKi9cbiAgZHl0ZU5ld01lc3NhZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRDb21wb3NlclVpRHl0ZU5ld01lc3NhZ2VFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG1lc3NhZ2UgaXMgZWRpdGVkIFxuICAgKi9cbiAgZHl0ZUVkaXRNZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNoYW5uZWxJZD86IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG1lc3NhZ2UgZWRpdGluZyBpcyBjYW5jZWxsZWQgXG4gICAqL1xuICBkeXRlRWRpdENhbmNlbGxlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FuU2VuZEZpbGVzJywgJ2NhblNlbmRUZXh0TWVzc2FnZScsICdjaGFubmVsSWQnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAncHJlZmlsbCcsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdC1jb21wb3Nlci11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuU2VuZEZpbGVzJywgJ2NhblNlbmRUZXh0TWVzc2FnZScsICdjaGFubmVsSWQnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAncHJlZmlsbCcsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdENvbXBvc2VyVWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlTmV3TWVzc2FnZScsICdkeXRlRWRpdE1lc3NhZ2UnLCAnZHl0ZUVkaXRDYW5jZWxsZWQnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBOZXdNZXNzYWdlRXZlbnQgYXMgSUR5dGVDaGF0Q29tcG9zZXJWaWV3TmV3TWVzc2FnZUV2ZW50IH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdENvbXBvc2VyVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRDb21wb3NlclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG5ldyBtZXNzYWdlIGlzIHN1Ym1pdHRlZCBcbiAgICovXG4gIG5ld01lc3NhZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRDb21wb3NlclZpZXdOZXdNZXNzYWdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBtZXNzYWdlIGlzIGVkaXRlZCBcbiAgICovXG4gIGVkaXRNZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gbWVzc2FnZSBlZGl0aW5nIGlzIGNhbmNlbGxlZCBcbiAgICovXG4gIGVkaXRDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gcXVvdGVkIG1lc3NhZ2UgaXMgZGlzbWlzc2VkIFxuICAgKi9cbiAgcXVvdGVkTWVzc2FnZURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5TZW5kRmlsZXMnLCAnY2FuU2VuZFRleHRNZXNzYWdlJywgJ2Rpc2FibGVFbW9qaVBpY2tlcicsICdpY29uUGFjaycsICdpbnB1dFRleHRQbGFjZWhvbGRlcicsICdpc0VkaXRpbmcnLCAnbWF4TGVuZ3RoJywgJ21lc3NhZ2UnLCAncXVvdGVkTWVzc2FnZScsICdyYXRlTGltaXRzJywgJ3N0b3JhZ2VLZXknLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGF0LWNvbXBvc2VyLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NhblNlbmRGaWxlcycsICdjYW5TZW5kVGV4dE1lc3NhZ2UnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ2lucHV0VGV4dFBsYWNlaG9sZGVyJywgJ2lzRWRpdGluZycsICdtYXhMZW5ndGgnLCAnbWVzc2FnZScsICdxdW90ZWRNZXNzYWdlJywgJ3JhdGVMaW1pdHMnLCAnc3RvcmFnZUtleScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRDb21wb3NlclZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyduZXdNZXNzYWdlJywgJ2VkaXRNZXNzYWdlJywgJ2VkaXRDYW5jZWwnLCAncXVvdGVkTWVzc2FnZURpc21pc3MnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIGFzIElEeXRlQ2hhdE1lc3NhZ2VNZXNzYWdlIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdE1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGF0TWVzc2FnZSB7XG4gIC8qKlxuICAgKiBFdmVudCBmb3Igd2hlbiBlZGl0IGlzIGNsaWNrZWQgb24gYSBtZXNzYWdlIFxuICAgKi9cbiAgZWRpdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdE1lc3NhZ2VNZXNzYWdlPj47XG4gIC8qKlxuICAgKiBFdmVudCBmb3Igd2hlbiByZXBseSBpcyBjbGlja2VkIG9uIGEgbWVzc2FnZSBcbiAgICovXG4gIHJlcGx5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZU1lc3NhZ2U+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciB3aGVuIHBpbiBpcyBjbGlja2VkIG9uIGEgbWVzc2FnZSBcbiAgICovXG4gIHBpbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdE1lc3NhZ2VNZXNzYWdlPj47XG4gIC8qKlxuICAgKiBFdmVudCBmb3Igd2hlbiBlZGl0IGlzIGNsaWNrZWQgb24gYSBtZXNzYWdlIFxuICAgKi9cbiAgZGVsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZU1lc3NhZ2U+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWduUmlnaHQnLCAnY2FuRGVsZXRlJywgJ2NhbkVkaXQnLCAnY2FuUGluJywgJ2NhblJlcGx5JywgJ2NoaWxkJywgJ2Rpc2FibGVDb250cm9scycsICdoaWRlQXZhdGFyJywgJ2ljb25QYWNrJywgJ2lzQ29udGludWVkJywgJ2lzU2VsZicsICdpc1VucmVhZCcsICdsZWZ0QWxpZ24nLCAnbWVzc2FnZScsICdzZW5kZXJEaXNwbGF5UGljdHVyZScsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnblJpZ2h0JywgJ2NhbkRlbGV0ZScsICdjYW5FZGl0JywgJ2NhblBpbicsICdjYW5SZXBseScsICdjaGlsZCcsICdkaXNhYmxlQ29udHJvbHMnLCAnaGlkZUF2YXRhcicsICdpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdpc1NlbGYnLCAnaXNVbnJlYWQnLCAnbGVmdEFsaWduJywgJ21lc3NhZ2UnLCAnc2VuZGVyRGlzcGxheVBpY3R1cmUnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZWRpdCcsICdyZXBseScsICdwaW4nLCAnZGVsZXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgTWVzc2FnZSBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpTWVzc2FnZSB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdE1lc3NhZ2VzVWkgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGF0TWVzc2FnZXNVaSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBtZXNzYWdlIGlzIHBpbm5lZCBvciB1bnBpbm5lZCBcbiAgICovXG4gIHBpbk1lc3NhZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRNZXNzYWdlc1VpTWVzc2FnZT4+O1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZXNVaVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FuUGluTWVzc2FnZXMnLCAnaWNvblBhY2snLCAnbWVzc2FnZXMnLCAnc2VsZWN0ZWRHcm91cCcsICdzZWxmVXNlcklkJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGF0LW1lc3NhZ2VzLXVpJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjYW5QaW5NZXNzYWdlcycsICdpY29uUGFjaycsICdtZXNzYWdlcycsICdzZWxlY3RlZEdyb3VwJywgJ3NlbGZVc2VySWQnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRNZXNzYWdlc1VpIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGluTWVzc2FnZScsICdkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBUZXh0TWVzc2FnZSBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkVGV4dE1lc3NhZ2UgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIGFzIElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRNZXNzYWdlIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkIHtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciBlZGl0aW5nIGEgbWVzc2FnZSBcbiAgICovXG4gIGVkaXRNZXNzYWdlSW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcGF5bG9hZDogSUR5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZFRleHRNZXNzYWdlOyBmbGFnczogeyBpc1JlcGx5PzogYm9vbGVhbjsgaXNFZGl0PzogYm9vbGVhbiB9OyB9Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBtZXNzYWdlIGlzIHBpbm5lZCBvciB1bnBpbm5lZCBcbiAgICovXG4gIHBpbk1lc3NhZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkTWVzc2FnZT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgbWVzc2FnZSBpcyBkZWxldGVkIFxuICAgKi9cbiAgZGVsZXRlTWVzc2FnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRNZXNzYWdlPj47XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdsZWZ0QWxpZ24nLCAnbWVldGluZycsICdzZWxlY3RlZENoYW5uZWwnLCAnc2VsZWN0ZWRDaGFubmVsSWQnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtbWVzc2FnZXMtdWktcGFnaW5hdGVkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdsZWZ0QWxpZ24nLCAnbWVldGluZycsICdzZWxlY3RlZENoYW5uZWwnLCAnc2VsZWN0ZWRDaGFubmVsSWQnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZWRpdE1lc3NhZ2VJbml0JywgJ3Bpbk1lc3NhZ2UnLCAnZGVsZXRlTWVzc2FnZScsICdkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNoYXRTZWFyY2hSZXN1bHRzIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdFNlYXJjaFJlc3VsdHMge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGFubmVsSWQnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdxdWVyeScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtc2VhcmNoLXJlc3VsdHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoYW5uZWxJZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3F1ZXJ5JywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdFNlYXJjaFJlc3VsdHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IENoYXRHcm91cENoYW5nZWRUeXBlIGFzIElEeXRlQ2hhdFNlbGVjdG9yVWlDaGF0R3JvdXBDaGFuZ2VkVHlwZSB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNoYXRTZWxlY3RvclVpIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdFNlbGVjdG9yVWkge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGNoYXQgc2NvcGUgaXMgY2hhbmdlZCBcbiAgICovXG4gIGR5dGVDaGF0R3JvdXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0U2VsZWN0b3JVaUNoYXRHcm91cENoYW5nZWRUeXBlPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydncm91cHMnLCAnaWNvblBhY2snLCAnc2VsZWN0ZWRHcm91cElkJywgJ3NlbGZVc2VySWQnLCAndCcsICd1bnJlYWRDb3VudHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdC1zZWxlY3Rvci11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZ3JvdXBzJywgJ2ljb25QYWNrJywgJ3NlbGVjdGVkR3JvdXBJZCcsICdzZWxmVXNlcklkJywgJ3QnLCAndW5yZWFkQ291bnRzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRTZWxlY3RvclVpIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZUNoYXRHcm91cENoYW5nZWQnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVDaGF0VG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0VG9nZ2xlU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGF0LXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2xvY2sgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDbG9jayB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jbG9jaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNsb2NrIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVDb25maXJtYXRpb25Nb2RhbFN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNvbmZpcm1hdGlvbk1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ29uZmlybWF0aW9uTW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDb25maXJtYXRpb25Nb2RhbFN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jb25maXJtYXRpb24tbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ29uZmlybWF0aW9uTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNvbnRyb2xiYXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDb250cm9sYmFyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVSZW5kZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY29udHJvbGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVSZW5kZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ29udHJvbGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDb250cm9sYmFyQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ29udHJvbGJhckJ1dHRvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JyYW5kSWNvbicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25QYWNrJywgJ2lzTG9hZGluZycsICdsYWJlbCcsICdzaG93V2FybmluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jb250cm9sYmFyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYnJhbmRJY29uJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBhY2snLCAnaXNMb2FkaW5nJywgJ2xhYmVsJywgJ3Nob3dXYXJuaW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNvbnRyb2xiYXJCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ291bnRlciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNvdW50ZXIge1xuICAvKipcbiAgICogT24gY2hhbmdlIGV2ZW50IGVtaXR0ZXIgXG4gICAqL1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWluVmFsdWUnLCAnc2l6ZScsICd0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNvdW50ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21pblZhbHVlJywgJ3NpemUnLCAndCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDb3VudGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVEZWJ1Z2dlclN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURlYnVnZ2VyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRGVidWdnZXIge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVEZWJ1Z2dlclN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURlYnVnZ2VyQXVkaW8gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlckF1ZGlvIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyLWF1ZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXJBdWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVEZWJ1Z2dlclNjcmVlbnNoYXJlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRGVidWdnZXJTY3JlZW5zaGFyZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kZWJ1Z2dlci1zY3JlZW5zaGFyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZURlYnVnZ2VyU2NyZWVuc2hhcmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRGVidWdnZXJTeXN0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlclN5c3RlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kZWJ1Z2dlci1zeXN0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEZWJ1Z2dlclN5c3RlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlRGVidWdnZXJUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVEZWJ1Z2dlclRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZURlYnVnZ2VyVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlRGVidWdnZXJUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXJUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURlYnVnZ2VyVmlkZW8gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlclZpZGVvIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyLXZpZGVvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXJWaWRlbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEaWFsb2cge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGRpYWxvZyBpcyBjbG9zZWQgXG4gICAqL1xuICBkeXRlRGlhbG9nQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlRXNjYXBlS2V5JywgJ2hpZGVDbG9zZUJ1dHRvbicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ29wZW4nLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlRXNjYXBlS2V5JywgJ2hpZGVDbG9zZUJ1dHRvbicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ29wZW4nLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlRGlhbG9nQ2xvc2UnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVEaWFsb2dNYW5hZ2VyU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRGlhbG9nTWFuYWdlciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZURpYWxvZ01hbmFnZXIge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVEaWFsb2dNYW5hZ2VyU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRpYWxvZy1tYW5hZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZURpYWxvZ01hbmFnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURyYWZ0QXR0YWNobWVudFZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEcmFmdEF0dGFjaG1lbnRWaWV3IHtcbiAgLyoqXG4gICAqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBhdHRhY2htZW50IGlzIGRlbGV0ZWQgXG4gICAqL1xuICBkZWxldGVBdHRhY2htZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdHRhY2htZW50JywgJ2ljb25QYWNrJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZHJhZnQtYXR0YWNobWVudC12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdHRhY2htZW50JywgJ2ljb25QYWNrJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRHJhZnRBdHRhY2htZW50VmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RlbGV0ZUF0dGFjaG1lbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUVtb2ppUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRW1vamlQaWNrZXIge1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnQgXG4gICAqL1xuICBwaWNrZXJDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBhbiBFbW9qaSBpcyBjbGlja2VkIFxuICAgKi9cbiAgZHl0ZUVtb2ppQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1lbW9qaS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRW1vamlQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwaWNrZXJDbG9zZScsICdkeXRlRW1vamlDbGlja2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVFbW9qaVBpY2tlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUVtb2ppUGlja2VyQnV0dG9uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNBY3RpdmUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1lbW9qaS1waWNrZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0FjdGl2ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUVtb2ppUGlja2VyQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUVuZGVkU2NyZWVuIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRW5kZWRTY3JlZW4ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWVuZGVkLXNjcmVlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVFbmRlZFNjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVGaWxlRHJvcHpvbmUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVGaWxlRHJvcHpvbmUge1xuICAvKipcbiAgICogZHJvcCBldmVudCBjYWxsYmFjayBcbiAgICovXG4gIGRyb3BDYWxsYmFjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PERyYWdFdmVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaG9zdEVsJywgJ2ljb25QYWNrJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZmlsZS1kcm9wem9uZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaG9zdEVsJywgJ2ljb25QYWNrJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRmlsZURyb3B6b25lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHJvcENhbGxiYWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVGaWxlTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUZpbGVNZXNzYWdlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNDb250aW51ZWQnLCAnbWVzc2FnZScsICdub3cnLCAnc2hvd0J1YmJsZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWZpbGUtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNDb250aW51ZWQnLCAnbWVzc2FnZScsICdub3cnLCAnc2hvd0J1YmJsZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUZpbGVNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUZpbGVNZXNzYWdlVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUZpbGVNZXNzYWdlVmlldyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ25hbWUnLCAnc2l6ZScsICd0JywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1maWxlLW1lc3NhZ2UtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbmFtZScsICdzaXplJywgJ3QnLCAndXJsJ11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUZpbGVNZXNzYWdlVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVGaWxlUGlja2VyQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRmlsZVBpY2tlckJ1dHRvbiB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIGEgZmlsZSBpcyBzZWxlY3RlZCBmb3IgdXBsb2FkIFxuICAgKi9cbiAgZmlsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZpbGU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ZpbHRlcicsICdpY29uJywgJ2ljb25QYWNrJywgJ2xhYmVsJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZmlsZS1waWNrZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydmaWx0ZXInLCAnaWNvbicsICdpY29uUGFjaycsICdsYWJlbCcsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUZpbGVQaWNrZXJCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmaWxlQ2hhbmdlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlRnVsbHNjcmVlblRvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUZ1bGxzY3JlZW5Ub2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVGdWxsc2NyZWVuVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlRnVsbHNjcmVlblRvZ2dsZVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd0YXJnZXRFbGVtZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZnVsbHNjcmVlbi10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndGFyZ2V0RWxlbWVudCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUZ1bGxzY3JlZW5Ub2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVHcmlkU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlR3JpZCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUdyaWQge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVHcmlkU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdjb25maWcnLCAnZ2FwJywgJ2dyaWRTaXplJywgJ2ljb25QYWNrJywgJ2xheW91dCcsICdtZWV0aW5nJywgJ292ZXJyaWRlcycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2NvbmZpZycsICdnYXAnLCAnZ3JpZFNpemUnLCAnaWNvblBhY2snLCAnbGF5b3V0JywgJ21lZXRpbmcnLCAnb3ZlcnJpZGVzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlR3JpZFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVHcmlkUGFnaW5hdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWdyaWQtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlR3JpZFBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSGVhZGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVSZW5kZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnZGlzYWJsZVJlbmRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSWNvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUljb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2ljb25QYWNrJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnaWNvblBhY2snLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVJZGxlU2NyZWVuIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSWRsZVNjcmVlbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaWRsZS1zY3JlZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSWRsZVNjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlSW1hZ2VNZXNzYWdlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW1hZ2VNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW1hZ2VNZXNzYWdlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlSW1hZ2VNZXNzYWdlU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW1hZ2UtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNDb250aW51ZWQnLCAnbWVzc2FnZScsICdub3cnLCAnc2hvd0J1YmJsZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUltYWdlTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW1hZ2VNZXNzYWdlVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUltYWdlTWVzc2FnZVZpZXcge1xuICAvKipcbiAgICogcHJldmlldyBldmVudCBcbiAgICovXG4gIHByZXZpZXc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWltYWdlLW1lc3NhZ2UtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAndCcsICd1cmwnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSW1hZ2VNZXNzYWdlVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ByZXZpZXcnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUltYWdlVmlld2VyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW1hZ2VWaWV3ZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHZpZXdlciBzaG91bGQgYmUgY2xvc2VkIFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpbWFnZScsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW1hZ2Utdmlld2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpbWFnZScsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSW1hZ2VWaWV3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW5mb3JtYXRpb25Ub29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW5mb3JtYXRpb25Ub29sdGlwIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW5mb3JtYXRpb24tdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSW5mb3JtYXRpb25Ub29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVKb2luU3RhZ2VTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVKb2luU3RhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVKb2luU3RhZ2Uge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVKb2luU3RhZ2VTdGF0ZXM+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiB1c2VyIGNvbmZpcm1zIGpvaW5pbmcgc3RhZ2UgXG4gICAqL1xuICBkeXRlSm9pblN0YWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHVzZXIgY2FuY2VsIGpvaW5pbmcgc3RhZ2UgXG4gICAqL1xuICBkeXRlTGVhdmVTdGFnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkYXRhQ29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1qb2luLXN0YWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnZGF0YUNvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSm9pblN0YWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJywgJ2R5dGVKb2luU3RhZ2UnLCAnZHl0ZUxlYXZlU3RhZ2UnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVMZWF2ZUJ1dHRvblN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUxlYXZlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTGVhdmVCdXR0b24ge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVMZWF2ZUJ1dHRvblN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbGVhdmUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVMZWF2ZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUxlYXZlTWVldGluZ1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUxlYXZlTWVldGluZyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxlYXZlTWVldGluZyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUxlYXZlTWVldGluZ1N0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1sZWF2ZS1tZWV0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUxlYXZlTWVldGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTGl2ZXN0cmVhbUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxpdmVzdHJlYW1JbmRpY2F0b3Ige31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1saXZlc3RyZWFtLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTGl2ZXN0cmVhbUluZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVMaXZlc3RyZWFtUGxheWVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTGl2ZXN0cmVhbVBsYXllciB7XG4gIC8qKlxuICAgKiBFbWl0IEFQSSBlcnJvciBldmVudHMgXG4gICAqL1xuICBkeXRlQVBJRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbGl2ZXN0cmVhbS1wbGF5ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUxpdmVzdHJlYW1QbGF5ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQVBJRXJyb3InXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVMaXZlc3RyZWFtVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTGl2ZXN0cmVhbVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxpdmVzdHJlYW1Ub2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVMaXZlc3RyZWFtVG9nZ2xlU3RhdGVzPj47XG4gIC8qKlxuICAgKiBFbWl0IEFQSSBlcnJvciBldmVudHMgXG4gICAqL1xuICBkeXRlQVBJRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1saXZlc3RyZWFtLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVMaXZlc3RyZWFtVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJywgJ2R5dGVBUElFcnJvciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTG9nbyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxvZ28ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnbG9nb1VybCcsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbG9nbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2xvZ29VcmwnLCAnbWVldGluZycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUxvZ28ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWFya2Rvd25WaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWFya2Rvd25WaWV3IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnbWF4TGVuZ3RoJywgJ3RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWFya2Rvd24tdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbWF4TGVuZ3RoJywgJ3RleHQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWFya2Rvd25WaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVNZWV0aW5nU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVldGluZyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lZXRpbmcge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8UGFydGlhbDxJRHl0ZU1lZXRpbmdTdGF0ZXM+Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhcHBseURlc2lnblN5c3RlbScsICdjb25maWcnLCAnZ3JpZExheW91dCcsICdpY29uUGFja1VybCcsICdsZWF2ZU9uVW5tb3VudCcsICdsb2FkQ29uZmlnRnJvbVByZXNldCcsICdtZWV0aW5nJywgJ21vZGUnLCAnc2hvd1NldHVwU2NyZWVuJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZWV0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhcHBseURlc2lnblN5c3RlbScsICdjb25maWcnLCAnZ3JpZExheW91dCcsICdpY29uUGFja1VybCcsICdsZWF2ZU9uVW5tb3VudCcsICdsb2FkQ29uZmlnRnJvbVByZXNldCcsICdtZWV0aW5nJywgJ21vZGUnLCAnc2hvd1NldHVwU2NyZWVuJywgJ3NpemUnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZWV0aW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZWV0aW5nVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNZWV0aW5nVGl0bGUge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWVldGluZy10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1lZXRpbmdUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWVudSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNZW51SXRlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZW51TGlzdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lbnVMaXN0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZW51LWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWVudUxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVzc2FnZUxpc3RWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWVzc2FnZUxpc3RWaWV3IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZXN0aW1hdGVJdGVtU2l6ZScsICdpY29uUGFjaycsICdsb2FkTW9yZScsICdtZXNzYWdlcycsICdyZW5kZXJlcicsICd2aXNpYmxlSXRlbXNDb3VudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZXNzYWdlLWxpc3QtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZXN0aW1hdGVJdGVtU2l6ZScsICdpY29uUGFjaycsICdsb2FkTW9yZScsICdtZXNzYWdlcycsICdyZW5kZXJlcicsICd2aXNpYmxlSXRlbXNDb3VudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZXNzYWdlTGlzdFZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVzc2FnZVZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNZXNzYWdlVmlldyB7XG4gIC8qKlxuICAgKiBhY3Rpb24gZXZlbnQgXG4gICAqL1xuICBhY3Rpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYXV0aG9yTmFtZScsICdhdmF0YXJVcmwnLCAnaGlkZUF1dGhvck5hbWUnLCAnaGlkZUF2YXRhcicsICdoaWRlTWV0YWRhdGEnLCAnaWNvblBhY2snLCAndGltZScsICd2YXJpYW50JywgJ3ZpZXdUeXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1lc3NhZ2UtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhdXRob3JOYW1lJywgJ2F2YXRhclVybCcsICdoaWRlQXV0aG9yTmFtZScsICdoaWRlQXZhdGFyJywgJ2hpZGVNZXRhZGF0YScsICdpY29uUGFjaycsICd0aW1lJywgJ3ZhcmlhbnQnLCAndmlld1R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWVzc2FnZVZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhY3Rpb24nXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVNaWNUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNaWNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNaWNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVNaWNUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWljLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNaWNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU1pY3JvcGhvbmVTZWxlY3RvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1pY3JvcGhvbmVTZWxlY3RvciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWljcm9waG9uZS1zZWxlY3RvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNaWNyb3Bob25lU2VsZWN0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWl4ZWRHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWl4ZWRHcmlkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdncmlkU2l6ZScsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudHMnLCAncGlubmVkUGFydGljaXBhbnRzJywgJ3BsdWdpbnMnLCAnc2NyZWVuU2hhcmVQYXJ0aWNpcGFudHMnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1taXhlZC1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdjb25maWcnLCAnZ2FwJywgJ2dyaWRTaXplJywgJ2ljb25QYWNrJywgJ2xheW91dCcsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50cycsICdwaW5uZWRQYXJ0aWNpcGFudHMnLCAncGx1Z2lucycsICdzY3JlZW5TaGFyZVBhcnRpY2lwYW50cycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1peGVkR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlTW9yZVRvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU1vcmVUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNb3JlVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlTW9yZVRvZ2dsZVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tb3JlLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNb3JlVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlTXV0ZUFsbEJ1dHRvblN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU11dGVBbGxCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNdXRlQWxsQnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlTXV0ZUFsbEJ1dHRvblN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tdXRlLWFsbC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTXV0ZUFsbEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZU11dGVBbGxDb25maXJtYXRpb25TdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNdXRlQWxsQ29uZmlybWF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTXV0ZUFsbENvbmZpcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZU11dGVBbGxDb25maXJtYXRpb25TdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbXV0ZS1hbGwtY29uZmlybWF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU11dGVBbGxDb25maXJtYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU5hbWVUYWcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVOYW1lVGFnIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNTY3JlZW5TaGFyZScsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW5hbWUtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc1NjcmVlblNoYXJlJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTmFtZVRhZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVOZXR3b3JrSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTmV0d29ya0luZGljYXRvciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW5ldHdvcmstaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc1NjcmVlblNoYXJlJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVOZXR3b3JrSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU5vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBEaXNtaXNzIGV2ZW50IFxuICAgKi9cbiAgZHl0ZU5vdGlmaWNhdGlvbkRpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ25vdGlmaWNhdGlvbicsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdub3RpZmljYXRpb24nLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVOb3RpZmljYXRpb25EaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVOb3RpZmljYXRpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTm90aWZpY2F0aW9ucyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbm90aWZpY2F0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVOb3RpZmljYXRpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVPdmVybGF5TW9kYWxTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVPdmVybGF5TW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVPdmVybGF5TW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVPdmVybGF5TW9kYWxTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtb3ZlcmxheS1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVPdmVybGF5TW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhZ2luYXRlZExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYWdpbmF0ZWRMaXN0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1Njcm9sbCcsICdjcmVhdGVOb2RlcycsICdlbXB0eUxpc3RMYWJlbCcsICdmZXRjaERhdGEnLCAnaWNvblBhY2snLCAncGFnZVNpemUnLCAncGFnZXNBbGxvd2VkJywgJ3NlbGVjdGVkSXRlbUlkJywgJ3QnXSxcbiAgbWV0aG9kczogWydvbk5ld05vZGUnLCAnb25Ob2RlRGVsZXRlJywgJ29uTm9kZVVwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYWdpbmF0ZWQtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1Njcm9sbCcsICdjcmVhdGVOb2RlcycsICdlbXB0eUxpc3RMYWJlbCcsICdmZXRjaERhdGEnLCAnaWNvblBhY2snLCAncGFnZVNpemUnLCAncGFnZXNBbGxvd2VkJywgJ3NlbGVjdGVkSXRlbUlkJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFnaW5hdGVkTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50IHtcbiAgLyoqXG4gICAqIEVtaXQgZHl0ZSBub3RpZmljYXRpb25zIFxuICAgKi9cbiAgZHl0ZVNlbmROb3RpZmljYXRpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAndCcsICd2aWV3J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICd0JywgJ3ZpZXcnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU2VuZE5vdGlmaWNhdGlvbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRDb3VudCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50Q291bnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudC1jb3VudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRDb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudFNldHVwIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFydGljaXBhbnRTZXR1cCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdpc1ByZXZpZXcnLCAnbmFtZVRhZ1Bvc2l0aW9uJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudC1zZXR1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICduYW1lVGFnUG9zaXRpb24nLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50U2V0dXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFBlZXIgYXMgSUR5dGVQYXJ0aWNpcGFudFRpbGVQZWVyIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFydGljaXBhbnRUaWxlIHtcbiAgLyoqXG4gICAqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRpbGUgaXMgbG9hZGVkIFxuICAgKi9cbiAgdGlsZUxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhcnRpY2lwYW50OiBJRHl0ZVBhcnRpY2lwYW50VGlsZVBlZXI7IHZpZGVvRWxlbWVudDogSFRNTFZpZGVvRWxlbWVudCB9Pj47XG4gIC8qKlxuICAgKiBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aWxlIGlzIHVubG9hZGVkIFxuICAgKi9cbiAgdGlsZVVubG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlUGFydGljaXBhbnRUaWxlUGVlcj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnQtdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRUaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGlsZUxvYWQnLCAndGlsZVVubG9hZCddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVBhcnRpY2lwYW50c1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50cyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50cyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBhcnRpY2lwYW50c1N0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2RlZmF1bHRQYXJ0aWNpcGFudHNUYWJJZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnZGVmYXVsdFBhcnRpY2lwYW50c1RhYklkJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50c0F1ZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFydGljaXBhbnRzQXVkaW8ge1xuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkIFxuICAgKi9cbiAgZGlhbG9nQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3ByZWxvYWRlZEF1ZGlvRWxlbScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy1hdWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdwcmVsb2FkZWRBdWRpb0VsZW0nLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudHNBdWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RpYWxvZ0Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudHNTdGFnZUxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNTdGFnZUxpc3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnaGlkZUhlYWRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NlYXJjaCcsICdzaXplJywgJ3QnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudHMtc3RhZ2UtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2hpZGVIZWFkZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzZWFyY2gnLCAnc2l6ZScsICd0JywgJ3ZpZXcnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzU3RhZ2VMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50c1N0YWdlUXVldWUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNTdGFnZVF1ZXVlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnRzLXN0YWdlLXF1ZXVlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmlldyddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudHNTdGFnZVF1ZXVlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQYXJ0aWNpcGFudHNUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudHNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQYXJ0aWNpcGFudHNUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50c1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRzVmlld2VyTGlzdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50c1ZpZXdlckxpc3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb25maWcnLCAnaGlkZUhlYWRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NlYXJjaCcsICdzaXplJywgJ3QnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudHMtdmlld2VyLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdoaWRlSGVhZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2VhcmNoJywgJ3NpemUnLCAndCcsICd2aWV3J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50c1ZpZXdlckxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRzV2FpdGluZ0xpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNXYWl0aW5nTGlzdCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2aWV3J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy13YWl0aW5nLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2aWV3J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50c1dhaXRpbmdMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQZXJtaXNzaW9uc01lc3NhZ2VTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQZXJtaXNzaW9uc01lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQZXJtaXNzaW9uc01lc3NhZ2Uge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQZXJtaXNzaW9uc01lc3NhZ2VTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGVybWlzc2lvbnMtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQZXJtaXNzaW9uc01lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQaXBUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQaXBUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQaXBUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQaXBUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1waXAtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGlwVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQbHVnaW5NYWluIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGx1Z2luTWFpbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGx1Z2luJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGx1Z2luLW1haW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGx1Z2luJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGx1Z2luTWFpbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUGx1Z2luc1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBsdWdpbnMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQbHVnaW5zIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlUGx1Z2luc1N0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBsdWdpbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQbHVnaW5zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUGx1Z2luc1RvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBsdWdpbnNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQbHVnaW5zVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlUGx1Z2luc1RvZ2dsZVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGx1Z2lucy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBsdWdpbnNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBvbGwgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQb2xsIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBhIHBvbGwgaXMgdm90ZWQgb24gXG4gICAqL1xuICBkeXRlVm90ZVBvbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGlkOiBzdHJpbmc7IGluZGV4OiBudW1iZXI7IH0+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3Blcm1pc3Npb25zJywgJ3BvbGwnLCAnc2VsZicsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBvbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3Blcm1pc3Npb25zJywgJ3BvbGwnLCAnc2VsZicsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBvbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlVm90ZVBvbGwnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBQb2xsT2JqZWN0IGFzIElEeXRlUG9sbFBvbGxPYmplY3QgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQb2xsRm9ybSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBvbGxGb3JtIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBhIHBvbGwgaXMgY3JlYXRlZCBcbiAgICovXG4gIGR5dGVDcmVhdGVQb2xsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQb2xsUG9sbE9iamVjdD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wb2xsLWZvcm0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUG9sbEZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQ3JlYXRlUG9sbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUG9sbHMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQb2xscyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wb2xscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBvbGxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQb2xsc1RvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBvbGxzVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUG9sbHNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQb2xsc1RvZ2dsZVN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcG9sbHMtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQb2xsc1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUmVjb3JkaW5nSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUmVjb3JkaW5nSW5kaWNhdG9yIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcmVjb3JkaW5nLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUmVjb3JkaW5nSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVJlY29yZGluZ1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVJlY29yZGluZ1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0IGFwaSBlcnJvciBldmVudHMgXG4gICAqL1xuICBkeXRlQVBJRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1yZWNvcmRpbmctdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVJlY29yZGluZ1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVBUElFcnJvciddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNjcmVlblNoYXJlVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU2NyZWVuU2hhcmVUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTY3JlZW5TaGFyZVRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVNjcmVlblNoYXJlVG9nZ2xlU3RhdGVzPj47XG4gIC8qKlxuICAgKiBFbWl0IGFwaSBlcnJvciBldmVudHMgXG4gICAqL1xuICBkeXRlQVBJRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2NyZWVuLXNoYXJlLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2NyZWVuU2hhcmVUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnLCAnZHl0ZUFQSUVycm9yJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU2NyZWVuc2hhcmVWaWV3U3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmltcG9ydCB0eXBlIHsgUGVlciBhcyBJRHl0ZVNjcmVlbnNoYXJlVmlld1BlZXIgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTY3JlZW5zaGFyZVZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTY3JlZW5zaGFyZVZpZXcge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTY3JlZW5zaGFyZVZpZXdTdGF0ZXM+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdmlkZW8gcGxheWJhY2sgaGFwcGVucyBzdWNjZXNzZnVsbHkgXG4gICAqL1xuICBzY3JlZW5zaGFyZVBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhcnRpY2lwYW50OiBJRHl0ZVNjcmVlbnNoYXJlVmlld1BlZXI7IHNjcmVlbnNoYXJlUGFydGljaXBhbnQ6IElEeXRlU2NyZWVuc2hhcmVWaWV3UGVlcjsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaGlkZUZ1bGxTY3JlZW5CdXR0b24nLCAnaWNvblBhY2snLCAnbWVldGluZycsICduYW1lVGFnUG9zaXRpb24nLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2NyZWVuc2hhcmUtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaGlkZUZ1bGxTY3JlZW5CdXR0b24nLCAnaWNvblBhY2snLCAnbWVldGluZycsICduYW1lVGFnUG9zaXRpb24nLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2NyZWVuc2hhcmVWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJywgJ3NjcmVlbnNoYXJlUGxheSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNldHRpbmdzU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU2V0dGluZ3MgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVNldHRpbmdzU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2V0dGluZ3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTZXR0aW5ncyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNldHRpbmdzQXVkaW9TdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR0aW5nc0F1ZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlU2V0dGluZ3NBdWRpbyB7XG4gIC8qKlxuICAgKiBFdmVudCB1cGRhdGVkIHN0YXRlIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTZXR0aW5nc0F1ZGlvU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2V0dGluZ3MtYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTZXR0aW5nc0F1ZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU2V0dGluZ3NUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR0aW5nc1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNldHRpbmdzVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU2V0dGluZ3NUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zZXR0aW5ncy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTZXR0aW5nc1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNldHRpbmdzVmlkZW9TdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR0aW5nc1ZpZGVvIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlU2V0dGluZ3NWaWRlbyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIFxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTZXR0aW5nc1ZpZGVvU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2V0dGluZ3MtdmlkZW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTZXR0aW5nc1ZpZGVvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU2V0dXBTY3JlZW5TdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR1cFNjcmVlbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNldHVwU2NyZWVuIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU2V0dXBTY3JlZW5TdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2V0dXAtc2NyZWVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNldHVwU2NyZWVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU2lkZWJhclN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVNpZGViYXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTaWRlYmFyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU2lkZWJhclN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2RlZmF1bHRTZWN0aW9uJywgJ2VuYWJsZWRTZWN0aW9ucycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zaWRlYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb25maWcnLCAnZGVmYXVsdFNlY3Rpb24nLCAnZW5hYmxlZFNlY3Rpb25zJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2aWV3J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNpZGViYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVNpZGViYXJVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNpZGViYXJVaSB7XG4gIC8qKlxuICAgKiBUYWIgY2hhbmdlIGV2ZW50IFxuICAgKi9cbiAgdGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBUYWIgY2hhbmdlIGV2ZW50IFxuICAgKi9cbiAgc2lkZWJhckNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY3VycmVudFRhYicsICdoaWRlQ2xvc2VBY3Rpb24nLCAnaGlkZUhlYWRlcicsICdpY29uUGFjaycsICd0JywgJ3RhYnMnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zaWRlYmFyLXVpJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjdXJyZW50VGFiJywgJ2hpZGVDbG9zZUFjdGlvbicsICdoaWRlSGVhZGVyJywgJ2ljb25QYWNrJywgJ3QnLCAndGFicycsICd2aWV3J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNpZGViYXJVaSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYkNoYW5nZScsICdzaWRlYmFyQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVNpbXBsZUdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTaW1wbGVHcmlkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50cycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXNpbXBsZS1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdjb25maWcnLCAnZ2FwJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnRzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2ltcGxlR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTcGVha2VyU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTcGVha2VyU2VsZWN0b3Ige31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zcGVha2VyLXNlbGVjdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTcGVha2VyU2VsZWN0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNwaW5uZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3BvdGxpZ2h0R3JpZCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNwb3RsaWdodEdyaWQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdjb25maWcnLCAnZ2FwJywgJ2dyaWRTaXplJywgJ2ljb25QYWNrJywgJ2xheW91dCcsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50cycsICdwaW5uZWRQYXJ0aWNpcGFudHMnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zcG90bGlnaHQtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdncmlkU2l6ZScsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudHMnLCAncGlubmVkUGFydGljaXBhbnRzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU3BvdGxpZ2h0R3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTcG90bGlnaHRJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTcG90bGlnaHRJbmRpY2F0b3Ige31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zcG90bGlnaHQtaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTcG90bGlnaHRJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVN0YWdlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3RhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTdGFnZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVN0YWdlU3RhdGVzPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXN0YWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVN0YWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU3RhZ2VUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTdGFnZVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVN0YWdlVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YSBcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU3RhZ2VUb2dnbGVTdGF0ZXM+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3RhZ2UtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVN0YWdlVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTd2l0Y2gge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBzd2l0Y2ggdmFsdWUgaXMgY2hhbmdlZCBcbiAgICovXG4gIGR5dGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ3JlYWRvbmx5JywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ3JlYWRvbmx5JywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZUNoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFRhYiBhcyBJRHl0ZVRhYkJhclRhYiB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRhYkJhciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRhYkJhciB7XG4gIC8qKlxuICAgKiBTZXQgYWN0aXZlIHRhYiBcbiAgICovXG4gIHRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlVGFiQmFyVGFiPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3RpdmVUYWInLCAnY29uZmlnJywgJ2ljb25QYWNrJywgJ2xheW91dCcsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndGFicyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS10YWItYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3RpdmVUYWInLCAnY29uZmlnJywgJ2ljb25QYWNrJywgJ2xheW91dCcsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndGFicyddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUYWJCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0YWJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRleHRDb21wb3NlclZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVUZXh0Q29tcG9zZXJWaWV3IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0ZXh0IGNoYW5nZXMgXG4gICAqL1xuICB0ZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdrZXlEb3duSGFuZGxlcicsICdtYXhMZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmF0ZUxpbWl0QnJlYWNoZWQnLCAndCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldFRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdGV4dC1jb21wb3Nlci12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdrZXlEb3duSGFuZGxlcicsICdtYXhMZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmF0ZUxpbWl0QnJlYWNoZWQnLCAndCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUZXh0Q29tcG9zZXJWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGV4dENoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVRleHRGaWVsZFN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRleHRGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRleHRGaWVsZCB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGEgXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVRleHRGaWVsZFN0YXRlcz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvblBhY2snLCAncGxhY2Vob2xkZXInLCAndCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXRleHQtZmllbGQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ3BsYWNlaG9sZGVyJywgJ3QnLCAndHlwZSddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUZXh0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRleHRNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVGV4dE1lc3NhZ2Uge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdGV4dC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlVGV4dE1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVGV4dE1lc3NhZ2VWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVGV4dE1lc3NhZ2VWaWV3IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNNYXJrZG93bicsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXRleHQtbWVzc2FnZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc01hcmtkb3duJywgJ3RleHQnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlVGV4dE1lc3NhZ2VWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVUb29sdGlwIHtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIG9wZW4gc3RhdGUgb2YgdGhlIHRvb2x0aXAgY2hhbmdlcy4gXG4gICAqL1xuICBkeXRlT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RlbGF5JywgJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ2tpbmQnLCAnbGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGVsYXknLCAnZGlzYWJsZWQnLCAnaWNvblBhY2snLCAna2luZCcsICdsYWJlbCcsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZU9wZW5DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRyYW5zY3JpcHQgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVUcmFuc2NyaXB0IHtcbiAgLyoqXG4gICAqIERpc21pc3MgZXZlbnQgXG4gICAqL1xuICBkeXRlVHJhbnNjcmlwdERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGlkOiBzdHJpbmc7IHJlbmRlcmVkSWQ6IHN0cmluZzsgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsndCcsICd0cmFuc2NyaXB0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXRyYW5zY3JpcHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3QnLCAndHJhbnNjcmlwdCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUcmFuc2NyaXB0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVRyYW5zY3JpcHREaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVUcmFuc2NyaXB0cyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRyYW5zY3JpcHRzIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29uZmlnJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdHJhbnNjcmlwdHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVRyYW5zY3JpcHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVVpUHJvdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVVaVByb3ZpZGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXBwbHlEZXNpZ25TeXN0ZW0nLCAnY29uZmlnJywgJ2ljb25QYWNrVXJsJywgJ2pvaW5Sb29tJywgJ2xvYWRDb25maWdGcm9tUHJlc2V0JywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXVpLXByb3ZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhcHBseURlc2lnblN5c3RlbScsICdjb25maWcnLCAnaWNvblBhY2tVcmwnLCAnam9pblJvb20nLCAnbG9hZENvbmZpZ0Zyb21QcmVzZXQnLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlVWlQcm92aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVWaWV3ZXJDb3VudCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVZpZXdlckNvdW50IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdmlld2VyLWNvdW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVWaWV3ZXJDb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVWaXJ0dWFsaXplZFBhcnRpY2lwYW50TGlzdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVZpcnR1YWxpemVkUGFydGljaXBhbnRMaXN0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYnVmZmVyZWRJdGVtc0NvdW50JywgJ2VtcHR5TGlzdEVsZW1lbnQnLCAnaXRlbUhlaWdodCcsICdpdGVtcycsICdyZW5kZXJJdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXZpcnR1YWxpemVkLXBhcnRpY2lwYW50LWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2J1ZmZlcmVkSXRlbXNDb3VudCcsICdlbXB0eUxpc3RFbGVtZW50JywgJ2l0ZW1IZWlnaHQnLCAnaXRlbXMnLCAncmVuZGVySXRlbSddXG59KVxuZXhwb3J0IGNsYXNzIER5dGVWaXJ0dWFsaXplZFBhcnRpY2lwYW50TGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVXYWl0aW5nU2NyZWVuIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlV2FpdGluZ1NjcmVlbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtd2FpdGluZy1zY3JlZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbmV4cG9ydCBjbGFzcyBEeXRlV2FpdGluZ1NjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG4iXX0=