imm-element-ui 1.4.4 → 1.4.6

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.
@@ -23,9 +23,12 @@ export class ImageComponent {
23
23
  this.deleteHooks = [];
24
24
  this.loading = false;
25
25
  this.counter = 0;
26
+ this.imageWidth = 0;
27
+ this.imageHeight = 0;
26
28
  effect(() => {
27
29
  if (this.field()) {
28
30
  this.props = this.field().imageProps;
31
+ this.initImageSize();
29
32
  this.handleDisabled();
30
33
  this.handleHookChange();
31
34
  this.afterSubmit();
@@ -53,6 +56,16 @@ export class ImageComponent {
53
56
  }
54
57
  callback();
55
58
  }
59
+ initImageSize() {
60
+ if (this.props.size !== 'small') {
61
+ this.imageWidth = 75;
62
+ this.imageHeight = 100;
63
+ }
64
+ else {
65
+ this.imageWidth = 35;
66
+ this.imageHeight = 35;
67
+ }
68
+ }
56
69
  uploadImage(file) {
57
70
  const formData = new FormData();
58
71
  formData.append('file', file);
@@ -135,7 +148,8 @@ export class ImageComponent {
135
148
  reader.readAsDataURL(imageFile);
136
149
  });
137
150
  }
138
- deleteHandler(image, index) {
151
+ deleteHandler(event, image, index) {
152
+ event.stopPropagation();
139
153
  this.deleteHooks.push(this.delImage(image));
140
154
  this.imageList = this.imageList?.filter((value, i) => index != i);
141
155
  this.field()?.fieldControl?.setValue(this.imageList);
@@ -183,7 +197,6 @@ export class ImageComponent {
183
197
  }
184
198
  updateLoading(fu) {
185
199
  this.counter--;
186
- console.log('----counter', this.counter);
187
200
  if (this.counter === 0) {
188
201
  this.loading = false;
189
202
  fu.clear();
@@ -252,39 +265,37 @@ export class ImageComponent {
252
265
  icon="pi pi-times"
253
266
  severity="danger"
254
267
  size="small"
255
- (onClick)="deleteHandler(image, index)"
268
+ (onClick)="deleteHandler($event, image, index)"
256
269
  [text]="true" />
257
270
  }
258
271
  </div>
259
272
  }
260
273
  } @else {
261
- <div class="flex gap-2 mt-2">
274
+ <div class="flex gap-2 mt-1 flex-wrap">
262
275
  @for (image of imageList; track image; let index = $index) {
263
- <div class="border">
264
- @if (!field()?.fieldControl?.disabled) {
265
- <div class="flex flex-row-reverse">
266
- <p-button
267
- icon="pi pi-times"
268
- severity="danger"
269
- size="small"
270
- (onClick)="deleteHandler(image, index)"
271
- [text]="true" />
272
- </div>
273
- }
276
+ <div [class]="'border h-[' + (imageHeight + 15) + 'px]'">
274
277
  <p-image
275
278
  [src]="'https://hrimage.myfoodiepet.com//' + image"
276
279
  [preview]="true"
277
280
  (onShow)="ajustedImage($event)"
278
281
  alt="Image">
279
282
  <ng-template #indicator>
280
- <i class="pi pi-search"></i>
283
+ @if (!field()?.fieldControl?.disabled) {
284
+ <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
285
+ <div
286
+ style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
287
+ (click)="deleteHandler($event, image, index)">
288
+ <i class="pi pi-times text-[12px]"></i>
289
+ </div>
290
+ </div>
291
+ }
281
292
  </ng-template>
282
293
  <ng-template #image>
283
294
  <div class="p-2">
284
295
  <img
285
296
  [src]="'https://hrimage.myfoodiepet.com//' + image"
286
297
  alt="image"
287
- style="width: 85px; height: 100px; object-fit: cover" />
298
+ [style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
288
299
  </div>
289
300
  </ng-template>
290
301
  </p-image>
@@ -361,39 +372,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
361
372
  icon="pi pi-times"
362
373
  severity="danger"
363
374
  size="small"
364
- (onClick)="deleteHandler(image, index)"
375
+ (onClick)="deleteHandler($event, image, index)"
365
376
  [text]="true" />
366
377
  }
367
378
  </div>
368
379
  }
369
380
  } @else {
370
- <div class="flex gap-2 mt-2">
381
+ <div class="flex gap-2 mt-1 flex-wrap">
371
382
  @for (image of imageList; track image; let index = $index) {
372
- <div class="border">
373
- @if (!field()?.fieldControl?.disabled) {
374
- <div class="flex flex-row-reverse">
375
- <p-button
376
- icon="pi pi-times"
377
- severity="danger"
378
- size="small"
379
- (onClick)="deleteHandler(image, index)"
380
- [text]="true" />
381
- </div>
382
- }
383
+ <div [class]="'border h-[' + (imageHeight + 15) + 'px]'">
383
384
  <p-image
384
385
  [src]="'https://hrimage.myfoodiepet.com//' + image"
385
386
  [preview]="true"
386
387
  (onShow)="ajustedImage($event)"
387
388
  alt="Image">
388
389
  <ng-template #indicator>
389
- <i class="pi pi-search"></i>
390
+ @if (!field()?.fieldControl?.disabled) {
391
+ <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
392
+ <div
393
+ style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
394
+ (click)="deleteHandler($event, image, index)">
395
+ <i class="pi pi-times text-[12px]"></i>
396
+ </div>
397
+ </div>
398
+ }
390
399
  </ng-template>
391
400
  <ng-template #image>
392
401
  <div class="p-2">
393
402
  <img
394
403
  [src]="'https://hrimage.myfoodiepet.com//' + image"
395
404
  alt="image"
396
- style="width: 85px; height: 100px; object-fit: cover" />
405
+ [style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
397
406
  </div>
398
407
  </ng-template>
399
408
  </p-image>
@@ -409,4 +418,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
409
418
  type: ViewChild,
410
419
  args: ['imageComp', { read: ElementRef, static: false }]
411
420
  }] } });
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF3THBELE1BQU0sT0FBTyxjQUFjO0lBUzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVgzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBeUdNLHcwTUExR04sVUFBVSxnNUJBQUUsWUFBWSxrYkFBRSxLQUFLLHFXQUFFLG1CQUFtQiwwQkFBRSxhQUFhOzs0RkE2R2pFLGNBQWM7a0JBeEoxQixTQUFTOytCQUNDLFlBQVksY0FDVixJQUFJLFdBeUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBeUdNOzBKQUk2QyxZQUFZO3NCQUF4RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xuXHR1cmw/OiBzdHJpbmc7XG5cdG1ldGhvZD86ICdwb3N0JyB8ICdwdXQnO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblx0YWRqdXN0YWJsZT86IGJvb2xlYW47XG5cdGltYWdlTW9kZT86IGJvb2xlYW47XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0d2F0ZXJtYXJrPzogYm9vbGVhbjtcblxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1pbWFnZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHN0eWxlczogYFxuXHRcdC5maWxlLWl0ZW0ge1xuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICNmZmY7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bi51cGxvYWQtZGlzYWJsZTpob3ZlciB7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpOmhvdmVyIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKS5uZy1ob3ZlcmVkIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHQuZmlsZS1uYW1lIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdDpob3N0IDo6bmctZGVlcCB7XG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xuXHRcdFx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHRcdFx0XHRjb2xvcjogIzMzNDE1NTtcblx0XHRcdH1cblx0XHRcdHAtaW1hZ2Uge1xuXHRcdFx0XHQucC1pbWFnZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIEltYWdlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXG5cdFx0I2Z1XG5cdFx0YXV0b1xuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxuXHRcdFt1cmxdPVwicHJvcHMudXJsXCJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxuXHRcdGFjY2VwdD1cImltYWdlLypcIlxuXHRcdFt3aXRoQ3JlZGVudGlhbHNdPVwicHJvcHMud2l0aENyZWRlbnRpYWxzXCJcblx0XHRbbWF4RmlsZVNpemVdPVwicHJvcHMubWF4RmlsZVNpemVcIlxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxuXHRcdFtwcmV2aWV3V2lkdGhdPVwicHJvcHMucHJldmlld1dpZHRoID8/IDUwXCJcblx0XHRbbW9kZV09XCJwcm9wcy5tb2RlID8/ICdhZHZhbmNlZCdcIlxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxuXHRcdFtmaWxlTGltaXRdPVwicHJvcHMuZmlsZUxpbWl0XCJcblx0XHRbY3VzdG9tVXBsb2FkXT1cInByb3BzLmN1c3RvbVVwbG9hZCA/PyB0cnVlXCJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGUgPz8gZmFsc2VcIlxuXHRcdChvbkJlZm9yZVVwbG9hZCk9XCJwcm9wcy5vbkJlZm9yZVVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uRXJyb3IpPVwicHJvcHMub25FcnJvcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxuXHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0I2hlYWRlclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0I2ltYWdlQ29tcFxuXHRcdFx0XHRbY2xhc3NdPVwiJ2ZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIHVwbG9hZC1idG4nICsgKGZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQgPyAnIHVwbG9hZC1kaXNhYmxlJyA6ICcnKVwiXG5cdFx0XHRcdChjbGljayk9XCJjaG9vc2UoJGV2ZW50LCBjaG9vc2VDYWxsYmFjaylcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHQ+PHNwYW5cblx0XHRcdFx0XHRcdHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tcmlnaHQ6IDIuNXB4XCJcblx0XHRcdFx0XHRcdFtjbGFzc109XCIncGknICsgKGxvYWRpbmcgPyAnIHBpLXNwaW4gcGktc3Bpbm5lcicgOiAnIHBpLXVwbG9hZCcpXCI+PC9zcGFuXG5cdFx0XHRcdFx0Pnt7IChsb2FkaW5nID8gJ21vZGFsLnVwbG9hZGluZycgOiAnbW9kYWwuc2VsZWN0RmlsZScpIHwgdHJhbnNsYXRlIH19PC9zcGFuXG5cdFx0XHRcdD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNjb250ZW50PlxuXHRcdFx0QGlmIChpbWFnZUxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRAaWYgKCFwcm9wcy5pbWFnZU1vZGUpIHtcblx0XHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZmlsZS1pdGVtXCI+XG5cdFx0XHRcdFx0XHRcdDxwLWltYWdlXG5cdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcblx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpbWFnZSB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdDwvcC1pbWFnZT5cblx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xuXHRcdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbj1cInBpIHBpLXRpbWVzXCJcblx0XHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcblx0XHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJkZWxldGVIYW5kbGVyKGltYWdlLCBpbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgbXQtMlwiPlxuXHRcdFx0XHRcdFx0QGZvciAoaW1hZ2Ugb2YgaW1hZ2VMaXN0OyB0cmFjayBpbWFnZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJib3JkZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdy1yZXZlcnNlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihpbWFnZSwgaW5kZXgpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHQ8cC1pbWFnZVxuXHRcdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtwcmV2aWV3XT1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uU2hvdyk9XCJhanVzdGVkSW1hZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1nXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiaW1hZ2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJ3aWR0aDogODVweDsgaGVpZ2h0OiAxMDBweDsgb2JqZWN0LWZpdDogY292ZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdFx0PC9wLWltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNmaWxlPiA8L25nLXRlbXBsYXRlPlxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnaW1hZ2VDb21wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGltYWdlQ29tcFJlZiE6IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xuXHRpbWFnZUxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGRlbGV0ZUhvb2tzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xuXHRsb2FkaW5nID0gZmFsc2U7XG5cdGNvdW50ZXIgPSAwO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmltYWdlUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y2FsbGJhY2soKTtcblx0fVxuXG5cdHVwbG9hZEltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cFxuXHRcdFx0LnJlcXVlc3QoXG5cdFx0XHRcdG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsICdpbWFnZVVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XG5cdH1cblxuXHRkZWxJbWFnZShpbWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2ltYWdlRGVsZXRlJywgeyBmaWQ6IGltYWdlIH0pO1xuXHR9XG5cblx0dXBsb2FkSGFuZGxlcihmaWVsZDogYW55LCBldmVudDogYW55LCBmdTogYW55KSB7XG5cdFx0dGhpcy5pbml0TG9hZGluZyhldmVudC5maWxlcy5sZW5ndGgpO1xuXHRcdGV2ZW50LmZpbGVzLmZvckVhY2goYXN5bmMgKHY6IGFueSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMucHJvcHMud2F0ZXJtYXJrKSB7XG5cdFx0XHRcdGxldCBibG9iID0gYXdhaXQgdGhpcy5hZGRXYXRlcm1hcmsodik7XG5cdFx0XHRcdGNvbnN0IG5ld0ZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIHYubmFtZSwgeyB0eXBlOiB2LnR5cGUgfSk7XG5cdFx0XHRcdHRoaXMudXBsb2FkSW1hZ2UobmV3RmlsZSkuc3Vic2NyaWJlKHtcblx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2UpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlTG9hZGluZyhmdSk7XG5cdFx0XHRcdFx0XHR0aGlzLmltYWdlTGlzdD8ucHVzaChyZXNwb25zZS5ib2R5LmZpZCk7XG5cdFx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5pbml0TG9hZGluZygwKTtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy51cGxvYWRJbWFnZSh2KS5zdWJzY3JpYmUoe1xuXHRcdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcblx0XHRcdFx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcblx0XHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmltYWdlTGlzdCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmluaXRMb2FkaW5nKDApO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0YWRkV2F0ZXJtYXJrKGltYWdlRmlsZTogRmlsZSk6IFByb21pc2U8QmxvYj4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG5cdFx0XHRyZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuXHRcdFx0XHRpbWcub25sb2FkID0gKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcblxuXHRcdFx0XHRcdC8vIOiuvue9rueUu+W4g+Wkp+Wwj+S4uuWbvueJh+Wkp+Wwj1xuXHRcdFx0XHRcdGNhbnZhcy53aWR0aCA9IE51bWJlcihpbWcud2lkdGgpO1xuXHRcdFx0XHRcdGNhbnZhcy5oZWlnaHQgPSBOdW1iZXIoaW1nLmhlaWdodCk7XG5cblx0XHRcdFx0XHQvLyDnu5jliLbljp/lp4vlm77niYdcblx0XHRcdFx0XHRjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XG5cblx0XHRcdFx0XHQvLyDmt7vliqDmsLTljbBcblx0XHRcdFx0XHRjdHguZm9udCA9IGBpdGFsaWMgYm9sZCAzMHB4IENvdXJpZXJgO1xuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSAncmVkJztcblx0XHRcdFx0XHRjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUaW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSB8fCAnJztcblx0XHRcdFx0XHRjdHguZmlsbFRleHQoY3VycmVudFRpbWUsIGNhbnZhcy53aWR0aCAvIDIsIGNhbnZhcy5oZWlnaHQgLSA1MCk7XG5cblx0XHRcdFx0XHQvLyDovazmjaLkuLpCbG9iXG5cdFx0XHRcdFx0Y2FudmFzLnRvQmxvYihcblx0XHRcdFx0XHRcdChibG9iKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChibG9iKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShibG9iKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdDYW52YXMgdG8gQmxvYiBjb252ZXJzaW9uIGZhaWxlZCcpKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdCdpbWFnZS9qcGVnJyxcblx0XHRcdFx0XHRcdDAuOCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGltZy5zcmMgPSBldmVudC50YXJnZXQ/LnJlc3VsdCBhcyBzdHJpbmc7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcblx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XG5cdFx0fSk7XG5cdH1cblx0ZGVsZXRlSGFuZGxlcihpbWFnZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG5cdFx0dGhpcy5kZWxldGVIb29rcy5wdXNoKHRoaXMuZGVsSW1hZ2UoaW1hZ2UpKTtcblx0XHR0aGlzLmltYWdlTGlzdCA9IHRoaXMuaW1hZ2VMaXN0Py5maWx0ZXIoKHZhbHVlLCBpKSA9PiBpbmRleCAhPSBpKTtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xuXHR9XG5cblx0YWZ0ZXJTdWJtaXQoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoQm9vbGVhbih2YWx1ZSkpIHtcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGhhbmRsZUhvb2tDaGFuZ2UoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09IG51bGwpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5pbWFnZUxpc3QgPSBbLi4udmFsdWVdO1xuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0fVxuXHR9XG5cblx0YWp1c3RlZEltYWdlKGV2ZW50OiBhbnkpIHtcblx0XHRpZiAodGhpcy5wcm9wcz8uYWRqdXN0YWJsZSkge1xuXHRcdFx0Ly8g6Kej5Yaz5Zu+54mH5p+l55yL5pe255qE5pON5L2c5oyJ6ZKu77yI5peL6L2s44CB5pS+5aSn44CB57yp5bCP44CB5YWz6Zet77yJ5LiN5Zyo5bGP5bmV5Y+z5LiK6KeS5pi+56S655qE6Zeu6aKYXG5cdFx0XHRsZXQgY2hpbGREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwLWltYWdlLXRvb2xiYXInKVswXTtcblx0XHRcdGxldCBwYXJlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHBhcmVudERpdi5zdHlsZS53aWR0aCA9ICcxMDB2dyc7XG5cdFx0XHRwYXJlbnREaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcblx0XHRcdHBhcmVudERpdi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHRjaGlsZERpdj8ucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKHBhcmVudERpdiwgY2hpbGREaXYpO1xuXHRcdFx0cGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTtcblx0XHR9XG5cdH1cblxuXHRpbml0TG9hZGluZyhjb3VudGVyOiBudW1iZXIpIHtcblx0XHR0aGlzLmNvdW50ZXIgPSBjb3VudGVyO1xuXHRcdGlmIChjb3VudGVyID09IDApIHtcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXHR9XG5cblx0dXBkYXRlTG9hZGluZyhmdTphbnkpIHtcblx0XHR0aGlzLmNvdW50ZXItLTtcblx0XHRjb25zb2xlLmxvZygnLS0tLWNvdW50ZXInLCB0aGlzLmNvdW50ZXIpXG5cdFx0aWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRmdS5jbGVhcigpXG5cdFx0fVxuXHR9XG59XG4iXX0=
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF1THBELE1BQU0sT0FBTyxjQUFjO0lBVzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWIzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Q0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0YsQ0FBQzsrR0F0TlcsY0FBYzttR0FBZCxjQUFjLGdTQUNNLFVBQVUsNkJBM0doQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkF1R00sdzBNQXhHTixVQUFVLGc1QkFBRSxZQUFZLGtiQUFFLEtBQUsscVdBQUUsbUJBQW1CLDBCQUFFLGFBQWE7OzRGQTJHakUsY0FBYztrQkF0SjFCLFNBQVM7K0JBQ0MsWUFBWSxjQUNWLElBQUksV0F5Q1AsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsWUFDcEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBdUdNOzBKQUk2QyxZQUFZO3NCQUF4RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xuXHR1cmw/OiBzdHJpbmc7XG5cdG1ldGhvZD86ICdwb3N0JyB8ICdwdXQnO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblx0YWRqdXN0YWJsZT86IGJvb2xlYW47XG5cdGltYWdlTW9kZT86IGJvb2xlYW47XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0d2F0ZXJtYXJrPzogYm9vbGVhbjtcblx0c2l6ZT86ICdzbWFsbCcgfCAnbGFyZ2UnIHwgdW5kZWZpbmVkO1xuXG5cdG9uQmVmb3JlVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VuZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkVycm9yPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xlYXI/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25SZW1vdmU/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25TZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25Qcm9ncmVzcz86IEF0dHJpYnV0ZUV2ZW50O1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdmb3JtLWltYWdlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c3R5bGVzOiBgXG5cdFx0LmZpbGUtaXRlbSB7XG5cdFx0XHRib3JkZXItdG9wOiBzb2xpZCAxcHggI2ZmZjtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG4ge1xuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuLnVwbG9hZC1kaXNhYmxlOmhvdmVyIHtcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSk6aG92ZXIge1xuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpLm5nLWhvdmVyZWQge1xuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0fVxuXHRcdC5maWxlLW5hbWUge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIHtcblx0XHRcdC5wLWltYWdlLXByZXZpZXctbWFzayB7XG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdFx0XHRcdGNvbG9yOiAjMzM0MTU1O1xuXHRcdFx0fVxuXHRcdFx0cC1pbWFnZSB7XG5cdFx0XHRcdC5wLWltYWdlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0YCxcblx0aW1wb3J0czogW0ZpbGVVcGxvYWQsIEJ1dHRvbk1vZHVsZSwgSW1hZ2UsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuXHR0ZW1wbGF0ZTogYDxwLWZpbGVVcGxvYWRcblx0XHQjZnVcblx0XHRhdXRvXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXG5cdFx0W3VybF09XCJwcm9wcy51cmxcIlxuXHRcdFttZXRob2RdPVwicHJvcHMubWV0aG9kID8/ICdwb3N0J1wiXG5cdFx0YWNjZXB0PVwiaW1hZ2UvKlwiXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxuXHRcdFttYXhGaWxlU2l6ZV09XCJwcm9wcy5tYXhGaWxlU2l6ZVwiXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxuXHRcdFttb2RlXT1cInByb3BzLm1vZGUgPz8gJ2FkdmFuY2VkJ1wiXG5cdFx0W2hlYWRlcnNdPVwicHJvcHMuaGVhZGVyc1wiXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxuXHRcdFtjdXN0b21VcGxvYWRdPVwicHJvcHMuY3VzdG9tVXBsb2FkID8/IHRydWVcIlxuXHRcdFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyBmYWxzZVwiXG5cdFx0KG9uQmVmb3JlVXBsb2FkKT1cInByb3BzLm9uQmVmb3JlVXBsb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblNlbmQpPVwicHJvcHMub25TZW5kPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblVwbG9hZCk9XCJwcm9wcy5vblVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25FcnJvcik9XCJwcm9wcy5vbkVycm9yPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsZWFyKT1cInByb3BzLm9uQ2xlYXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUmVtb3ZlKT1cInByb3BzLm9uUmVtb3ZlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Qcm9ncmVzcyk9XCJwcm9wcy5vblByb2dyZXNzPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdCh1cGxvYWRIYW5kbGVyKT1cInVwbG9hZEhhbmRsZXIoZmllbGQoKSEsICRldmVudCwgZnUpXCI+XG5cdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHQjaGVhZGVyXG5cdFx0XHRsZXQtY2hvb3NlQ2FsbGJhY2s9XCJjaG9vc2VDYWxsYmFja1wiPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHQjaW1hZ2VDb21wXG5cdFx0XHRcdFtjbGFzc109XCInZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgdXBsb2FkLWJ0bicgKyAoZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCA/ICcgdXBsb2FkLWRpc2FibGUnIDogJycpXCJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdD48c3BhblxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxuXHRcdFx0XHRcdFx0W2NsYXNzXT1cIidwaScgKyAobG9hZGluZyA/ICcgcGktc3BpbiBwaS1zcGlubmVyJyA6ICcgcGktdXBsb2FkJylcIj48L3NwYW5cblx0XHRcdFx0XHQ+e3sgKGxvYWRpbmcgPyAnbW9kYWwudXBsb2FkaW5nJyA6ICdtb2RhbC5zZWxlY3RGaWxlJykgfCB0cmFuc2xhdGUgfX08L3NwYW5cblx0XHRcdFx0PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG5cdFx0XHRAaWYgKGltYWdlTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdEBpZiAoIXByb3BzLmltYWdlTW9kZSkge1xuXHRcdFx0XHRcdEBmb3IgKGltYWdlIG9mIGltYWdlTGlzdDsgdHJhY2sgaW1hZ2U7IGxldCBpbmRleCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBmaWxlLWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0PHAtaW1hZ2Vcblx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxuXHRcdFx0XHRcdFx0XHRcdFtwcmV2aWV3XT1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdChvblNob3cpPVwiYWp1c3RlZEltYWdlKCRldmVudClcIlxuXHRcdFx0XHRcdFx0XHRcdGFsdD1cIkltYWdlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbWFnZT5cblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgaW1hZ2UgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0PC9wLWltYWdlPlxuXHRcdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uPVwicGkgcGktdGltZXNcIlxuXHRcdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFx0XHRcdChvbkNsaWNrKT1cImRlbGV0ZUhhbmRsZXIoJGV2ZW50LCBpbWFnZSwgaW5kZXgpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIiAvPlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIG10LTEgZmxleC13cmFwXCI+XG5cdFx0XHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0PGRpdiBbY2xhc3NdPVwiJ2JvcmRlciBoLVsnICsgKGltYWdlSGVpZ2h0ICsgMTUpICsgJ3B4XSdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8cC1pbWFnZVxuXHRcdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtwcmV2aWV3XT1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uU2hvdyk9XCJhanVzdGVkSW1hZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IFtzdHlsZV09XCJ7IHBvc2l0aW9uOiAncmVsYXRpdmUnLCB3aWR0aDogaW1hZ2VXaWR0aCArIDEwICsgJ3B4JywgaGVpZ2h0OiBpbWFnZUhlaWdodCArIDEwICsgJ3B4JyB9XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiA5OTk5OyBiYWNrZ3JvdW5kOiByZWQ7IHBhZGRpbmc6IDFweDtcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiZGVsZXRlSGFuZGxlcigkZXZlbnQsIGltYWdlLCBpbmRleClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS10aW1lcyB0ZXh0LVsxMnB4XVwiPjwvaT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbWFnZT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInAtMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWdcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzcmNdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBpbWFnZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJpbWFnZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyB3aWR0aDogaW1hZ2VXaWR0aCArICdweCcsIGhlaWdodDogaW1hZ2VIZWlnaHQgKyAncHgnLCBvYmplY3RGaXQ6ICdjb3ZlcicgfVwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgI2ZpbGU+IDwvbmctdGVtcGxhdGU+XG5cdDwvcC1maWxlVXBsb2FkPmAsXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCdpbWFnZUNvbXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW1hZ2VDb21wUmVmITogRWxlbWVudFJlZjtcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XG5cdHByb3BzOiBJbWFnZVByb3BzID0ge307XG5cdGltYWdlTGlzdDogc3RyaW5nW10gPSBbXTtcblx0ZGVsZXRlSG9va3M6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cdGxvYWRpbmcgPSBmYWxzZTtcblx0Y291bnRlciA9IDA7XG5cdGltYWdlV2lkdGggPSAwO1xuXHRpbWFnZUhlaWdodCA9IDA7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcblx0KSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEuaW1hZ2VQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaW5pdEltYWdlU2l6ZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRJbWFnZVNpemUoKSB7XG5cdFx0aWYgKHRoaXMucHJvcHMuc2l6ZSAhPT0gJ3NtYWxsJykge1xuXHRcdFx0dGhpcy5pbWFnZVdpZHRoID0gNzU7XG5cdFx0XHR0aGlzLmltYWdlSGVpZ2h0ID0gMTAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmltYWdlV2lkdGggPSAzNTtcblx0XHRcdHRoaXMuaW1hZ2VIZWlnaHQgPSAzNTtcblx0XHR9XG5cdH1cblxuXHR1cGxvYWRJbWFnZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXHRcdGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXHRcdHJldHVybiB0aGlzLmh0dHBcblx0XHRcdC5yZXF1ZXN0KFxuXHRcdFx0XHRuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCAnaW1hZ2VVcGxvYWQnLCBmb3JtRGF0YSwge1xuXHRcdFx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuXHRcdFx0XHRcdHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KVxuXHRcdFx0LnBpcGUoZmlsdGVyKChyZXNwb25zZTogSHR0cEV2ZW50PGFueT4pID0+IHJlc3BvbnNlLnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkpO1xuXHR9XG5cblx0ZGVsSW1hZ2UoaW1hZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdpbWFnZURlbGV0ZScsIHsgZmlkOiBpbWFnZSB9KTtcblx0fVxuXG5cdHVwbG9hZEhhbmRsZXIoZmllbGQ6IGFueSwgZXZlbnQ6IGFueSwgZnU6IGFueSkge1xuXHRcdHRoaXMuaW5pdExvYWRpbmcoZXZlbnQuZmlsZXMubGVuZ3RoKTtcblx0XHRldmVudC5maWxlcy5mb3JFYWNoKGFzeW5jICh2OiBhbnkpID0+IHtcblx0XHRcdGlmICh0aGlzLnByb3BzLndhdGVybWFyaykge1xuXHRcdFx0XHRsZXQgYmxvYiA9IGF3YWl0IHRoaXMuYWRkV2F0ZXJtYXJrKHYpO1xuXHRcdFx0XHRjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCB2Lm5hbWUsIHsgdHlwZTogdi50eXBlIH0pO1xuXHRcdFx0XHR0aGlzLnVwbG9hZEltYWdlKG5ld0ZpbGUpLnN1YnNjcmliZSh7XG5cdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUxvYWRpbmcoZnUpO1xuXHRcdFx0XHRcdFx0dGhpcy5pbWFnZUxpc3Q/LnB1c2gocmVzcG9uc2UuYm9keS5maWQpO1xuXHRcdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuaW5pdExvYWRpbmcoMCk7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMudXBsb2FkSW1hZ2Uodikuc3Vic2NyaWJlKHtcblx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2UpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlTG9hZGluZyhmdSk7XG5cdFx0XHRcdFx0XHR0aGlzLmltYWdlTGlzdD8ucHVzaChyZXNwb25zZS5ib2R5LmZpZCk7XG5cdFx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5pbml0TG9hZGluZygwKTtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0YWRkV2F0ZXJtYXJrKGltYWdlRmlsZTogRmlsZSk6IFByb21pc2U8QmxvYj4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG5cdFx0XHRyZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuXHRcdFx0XHRpbWcub25sb2FkID0gKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcblxuXHRcdFx0XHRcdC8vIOiuvue9rueUu+W4g+Wkp+Wwj+S4uuWbvueJh+Wkp+Wwj1xuXHRcdFx0XHRcdGNhbnZhcy53aWR0aCA9IE51bWJlcihpbWcud2lkdGgpO1xuXHRcdFx0XHRcdGNhbnZhcy5oZWlnaHQgPSBOdW1iZXIoaW1nLmhlaWdodCk7XG5cblx0XHRcdFx0XHQvLyDnu5jliLbljp/lp4vlm77niYdcblx0XHRcdFx0XHRjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XG5cblx0XHRcdFx0XHQvLyDmt7vliqDmsLTljbBcblx0XHRcdFx0XHRjdHguZm9udCA9IGBpdGFsaWMgYm9sZCAzMHB4IENvdXJpZXJgO1xuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSAncmVkJztcblx0XHRcdFx0XHRjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUaW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSB8fCAnJztcblx0XHRcdFx0XHRjdHguZmlsbFRleHQoY3VycmVudFRpbWUsIGNhbnZhcy53aWR0aCAvIDIsIGNhbnZhcy5oZWlnaHQgLSA1MCk7XG5cblx0XHRcdFx0XHQvLyDovazmjaLkuLpCbG9iXG5cdFx0XHRcdFx0Y2FudmFzLnRvQmxvYihcblx0XHRcdFx0XHRcdChibG9iKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChibG9iKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShibG9iKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdDYW52YXMgdG8gQmxvYiBjb252ZXJzaW9uIGZhaWxlZCcpKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdCdpbWFnZS9qcGVnJyxcblx0XHRcdFx0XHRcdDAuOCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGltZy5zcmMgPSBldmVudC50YXJnZXQ/LnJlc3VsdCBhcyBzdHJpbmc7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcblx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRkZWxldGVIYW5kbGVyKGV2ZW50OiBhbnksIGltYWdlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR0aGlzLmRlbGV0ZUhvb2tzLnB1c2godGhpcy5kZWxJbWFnZShpbWFnZSkpO1xuXHRcdHRoaXMuaW1hZ2VMaXN0ID0gdGhpcy5pbWFnZUxpc3Q/LmZpbHRlcigodmFsdWUsIGkpID0+IGluZGV4ICE9IGkpO1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmltYWdlTGlzdCk7XG5cdH1cblxuXHRhZnRlclN1Ym1pdCgpIHtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc3VibWl0Q2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmIChCb29sZWFuKHZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLmRlbGV0ZUhvb2tzLmZvckVhY2goKGhvb2spID0+IGhvb2suc3Vic2NyaWJlKCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlSG9va0NoYW5nZSgpIHtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uaG9va0NoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XG5cdFx0XHR0aGlzLmltYWdlTGlzdCA9IFsuLi52YWx1ZV07XG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVEaXNhYmxlZCgpIHtcblx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcblx0XHRcdHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHR9XG5cdH1cblxuXHRhanVzdGVkSW1hZ2UoZXZlbnQ6IGFueSkge1xuXHRcdGlmICh0aGlzLnByb3BzPy5hZGp1c3RhYmxlKSB7XG5cdFx0XHQvLyDop6PlhrPlm77niYfmn6XnnIvml7bnmoTmk43kvZzmjInpkq7vvIjml4vovazjgIHmlL7lpKfjgIHnvKnlsI/jgIHlhbPpl63vvInkuI3lnKjlsY/luZXlj7PkuIrop5LmmL7npLrnmoTpl67pophcblx0XHRcdGxldCBjaGlsZERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3AtaW1hZ2UtdG9vbGJhcicpWzBdO1xuXHRcdFx0bGV0IHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRcdFx0cGFyZW50RGl2LnN0eWxlLndpZHRoID0gJzEwMHZ3Jztcblx0XHRcdHBhcmVudERpdi5zdHlsZS5oZWlnaHQgPSAnMTAwdmgnO1xuXHRcdFx0cGFyZW50RGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcblx0XHRcdGNoaWxkRGl2Py5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUocGFyZW50RGl2LCBjaGlsZERpdik7XG5cdFx0XHRwYXJlbnREaXYuYXBwZW5kQ2hpbGQoY2hpbGREaXYpO1xuXHRcdH1cblx0fVxuXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xuXHRcdHRoaXMuY291bnRlciA9IGNvdW50ZXI7XG5cdFx0aWYgKGNvdW50ZXIgPT0gMCkge1xuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdH1cblxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcblx0XHR0aGlzLmNvdW50ZXItLTtcblx0XHRpZiAodGhpcy5jb3VudGVyID09PSAwKSB7XG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblx0XHRcdGZ1LmNsZWFyKCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -2,22 +2,26 @@ import { Component, input, effect, ViewChild, ElementRef } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { FileUpload } from 'primeng/fileupload';
4
4
  import { ButtonModule } from 'primeng/button';
5
- import { Image } from 'primeng/image';
6
5
  import { HttpRequest, HttpEventType } from '@angular/common/http';
7
6
  import { filter, forkJoin } from 'rxjs';
7
+ import { TranslatePipe } from '@ngx-translate/core';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common/http";
10
10
  import * as i2 from "../../service/action.service";
11
- import * as i3 from "primeng/button";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "primeng/button";
12
13
  export class UploadComponent {
13
- constructor(http, action, renderer) {
14
+ constructor(http, action, renderer, datePipe) {
14
15
  this.http = http;
15
16
  this.action = action;
16
17
  this.renderer = renderer;
18
+ this.datePipe = datePipe;
17
19
  this.field = input();
18
20
  this.props = {};
19
21
  this.fileList = [];
20
22
  this.deleteHooks = [];
23
+ this.loading = false;
24
+ this.counter = 0;
21
25
  effect(() => {
22
26
  if (this.field()) {
23
27
  this.props = this.field().uploadProps;
@@ -65,9 +69,19 @@ export class UploadComponent {
65
69
  return this.http.post('filerDelete', { fileName: fileStr });
66
70
  }
67
71
  uploadHandler(field, event, fu) {
68
- this.uploadFile(event.files[0]).subscribe((response) => {
69
- this.fileList?.push(response.body.fileName);
70
- this.field()?.fieldControl?.setValue(this.fileList);
72
+ this.initLoading(event.files.length);
73
+ event.files.forEach((v) => {
74
+ this.uploadFile(v).subscribe({
75
+ next: (response) => {
76
+ this.updateLoading(fu);
77
+ this.fileList?.push(response.body.fid);
78
+ this.field()?.fieldControl?.setValue(this.fileList);
79
+ },
80
+ error: (error) => {
81
+ this.initLoading(0);
82
+ console.error(error);
83
+ },
84
+ });
71
85
  });
72
86
  }
73
87
  deleteHandler(fileStr, index) {
@@ -96,7 +110,23 @@ export class UploadComponent {
96
110
  this.field().fieldControl.disable({ emitEvent: false });
97
111
  }
98
112
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
113
+ initLoading(counter) {
114
+ this.counter = counter;
115
+ if (counter == 0) {
116
+ this.loading = false;
117
+ return;
118
+ }
119
+ this.loading = true;
120
+ }
121
+ updateLoading(fu) {
122
+ this.counter--;
123
+ console.log('----counter', this.counter);
124
+ if (this.counter === 0) {
125
+ this.loading = false;
126
+ fu.clear();
127
+ }
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }, { token: i0.Renderer2 }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
100
130
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
101
131
  #fu
102
132
  auto
@@ -133,8 +163,8 @@ export class UploadComponent {
133
163
  <span
134
164
  ><span
135
165
  style="font-size: 12px; margin-right: 2.5px"
136
- class="pi pi-upload"></span
137
- >上传</span
166
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
167
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
138
168
  >
139
169
  </div>
140
170
  </ng-template>
@@ -162,11 +192,11 @@ export class UploadComponent {
162
192
  }
163
193
  </ng-template>
164
194
  <ng-template #file> </ng-template>
165
- </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
195
+ </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
166
196
  }
167
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
168
198
  type: Component,
169
- args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
199
+ args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
170
200
  #fu
171
201
  auto
172
202
  [id]="field()?.uuid"
@@ -202,8 +232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
202
232
  <span
203
233
  ><span
204
234
  style="font-size: 12px; margin-right: 2.5px"
205
- class="pi pi-upload"></span
206
- >上传</span
235
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
236
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
207
237
  >
208
238
  </div>
209
239
  </ng-template>
@@ -232,8 +262,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
232
262
  </ng-template>
233
263
  <ng-template #file> </ng-template>
234
264
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"] }]
235
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }, { type: i0.Renderer2 }], propDecorators: { uploadCompRef: [{
265
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }, { type: i0.Renderer2 }, { type: i3.DatePipe }], propDecorators: { uploadCompRef: [{
236
266
  type: ViewChild,
237
267
  args: ['uploadComp', { read: ElementRef, static: false }]
238
268
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL3VwbG9hZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQXNDLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUF5SXBELE1BQU0sT0FBTyxlQUFlO0lBTzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUI7UUFGbkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFSNUIsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBT25DLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FB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QUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLFlBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0YsQ0FBQzsrR0FqR1csZUFBZTttR0FBZixlQUFlLG1TQUNNLFVBQVUsNkJBckVqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBaUVNLDR2TUFsRU4sVUFBVSxnNUJBQUUsWUFBWSxpYkFBUyxtQkFBbUI7OzRGQXFFbEQsZUFBZTtrQkE1RzNCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksV0FxQ1AsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxZQUNyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBaUVNO21JQUk4QyxhQUFhO3NCQUExRSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XG5cdHVybD86IHN0cmluZztcblx0bWV0aG9kPzogJ3Bvc3QnIHwgJ3B1dCc7XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0YWNjZXB0Pzogc3RyaW5nO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS11cGxvYWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzdHlsZXM6IGBcblx0XHQuZmlsZS1pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAjZmZmO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0biB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSkubmctaG92ZXJlZCB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LmZpbGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0fVxuXHRcdC5maWxlLW5hbWU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0fVxuXHRcdDpob3N0IDo6bmctZGVlcCB7XG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xuXHRcdFx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHRcdFx0XHRjb2xvcjogIzMzNDE1NTtcblx0XHRcdH1cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIEltYWdlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXG5cdFx0I2Z1XG5cdFx0YXV0b1xuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcblx0XHRbbmFtZV09XCJwcm9wcy5uYW1lXCJcblx0XHRbdXJsXT1cInByb3BzLnVybFwiXG5cdFx0W21ldGhvZF09XCJwcm9wcy5tZXRob2QgPz8gJ3Bvc3QnXCJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGUgPz8gdHJ1ZVwiXG5cdFx0W2FjY2VwdF09XCJwcm9wcy5hY2NlcHRcIlxuXHRcdFt3aXRoQ3JlZGVudGlhbHNdPVwicHJvcHMud2l0aENyZWRlbnRpYWxzXCJcblx0XHRbbWF4RmlsZVNpemVdPVwicHJvcHMubWF4RmlsZVNpemVcIlxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxuXHRcdFtwcmV2aWV3V2lkdGhdPVwicHJvcHMucHJldmlld1dpZHRoID8/IDUwXCJcblx0XHRbbW9kZV09XCJwcm9wcy5tb2RlID8/ICdhZHZhbmNlZCdcIlxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxuXHRcdFtmaWxlTGltaXRdPVwicHJvcHMuZmlsZUxpbWl0XCJcblx0XHRbY3VzdG9tVXBsb2FkXT1cInByb3BzLmN1c3RvbVVwbG9hZCA/PyB0cnVlXCJcblx0XHQob25CZWZvcmVVcGxvYWQpPVwicHJvcHMub25CZWZvcmVVcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2VuZCk9XCJwcm9wcy5vblNlbmQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uVXBsb2FkKT1cInByb3BzLm9uVXBsb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkVycm9yKT1cInByb3BzLm9uRXJyb3I/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xlYXIpPVwicHJvcHMub25DbGVhcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25SZW1vdmUpPVwicHJvcHMub25SZW1vdmU/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblByb2dyZXNzKT1cInByb3BzLm9uUHJvZ3Jlc3M/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KHVwbG9hZEhhbmRsZXIpPVwidXBsb2FkSGFuZGxlcihmaWVsZCgpISwgJGV2ZW50LCBmdSlcIj5cblx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdCNoZWFkZXJcblx0XHRcdGxldC1jaG9vc2VDYWxsYmFjaz1cImNob29zZUNhbGxiYWNrXCI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCN1cGxvYWRDb21wXG5cdFx0XHRcdFtjbGFzc109XCInZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgdXBsb2FkLWJ0bicgKyAoZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCA/ICcgdXBsb2FkLWRpc2FibGUnIDogJycpXCJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdD48c3BhblxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS11cGxvYWRcIj48L3NwYW5cblx0XHRcdFx0XHQ+5LiK5LygPC9zcGFuXG5cdFx0XHRcdD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNjb250ZW50PlxuXHRcdFx0QGlmIChmaWxlTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdEBmb3IgKGZpbGUgb2YgZmlsZUxpc3Q7IHRyYWNrIGZpbGU7IGxldCBpbmRleCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZmlsZS1pdGVtXCI+XG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiXG5cdFx0XHRcdFx0XHRcdD48YVxuXHRcdFx0XHRcdFx0XHRcdFtocmVmXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgZmlsZVwiXG5cdFx0XHRcdFx0XHRcdFx0W2Rvd25sb2FkXT1cImZpbGVcIlxuXHRcdFx0XHRcdFx0XHRcdD57eyBmaWxlIH19PC9hXG5cdFx0XHRcdFx0XHRcdD48L3NwYW5cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdEBpZiAoIWZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cInBpIHBpLXRpbWVzXCJcblx0XHRcdFx0XHRcdFx0XHRzZXZlcml0eT1cImRhbmdlclwiXG5cdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJkZWxldGVIYW5kbGVyKGZpbGUsIGluZGV4KVwiXG5cdFx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSAjZmlsZT4gPC9uZy10ZW1wbGF0ZT5cblx0PC9wLWZpbGVVcGxvYWQ+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCd1cGxvYWRDb21wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHVwbG9hZENvbXBSZWYhOiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHM6IFVwbG9hZFByb3BzID0ge307XG5cdGZpbGVMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXHRkZWxldGVIb29rczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG5cdFx0cHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UsXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHQpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS51cGxvYWRQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Zm9ya0pvaW4odGhpcy5kZWxldGVIb29rcykuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVwbG9hZENvbXBSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnVwbG9hZENvbXBSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XG5cdFx0XHRcdHRoaXMudXBsb2FkQ29tcFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y2FsbGJhY2soKTtcblx0fVxuXG5cdHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblx0XHRyZXR1cm4gdGhpcy5odHRwXG5cdFx0XHQucmVxdWVzdChcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ZpbGVyVXBsb2FkJywgZm9ybURhdGEsIHtcblx0XHRcdFx0XHRyZXBvcnRQcm9ncmVzczogdHJ1ZSxcblx0XHRcdFx0XHR3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuXHRcdFx0XHR9KSxcblx0XHRcdClcblx0XHRcdC5waXBlKGZpbHRlcigocmVzcG9uc2U6IEh0dHBFdmVudDxhbnk+KSA9PiByZXNwb25zZS50eXBlID09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpKTtcblx0fVxuXG5cdGRlbEZpbGUoZmlsZVN0cjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2ZpbGVyRGVsZXRlJywgeyBmaWxlTmFtZTogZmlsZVN0ciB9KTtcblx0fVxuXG5cdHVwbG9hZEhhbmRsZXIoZmllbGQ6IGFueSwgZXZlbnQ6IGFueSwgZnU6IGFueSkge1xuXHRcdHRoaXMudXBsb2FkRmlsZShldmVudC5maWxlc1swXSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuXHRcdFx0dGhpcy5maWxlTGlzdD8ucHVzaChyZXNwb25zZS5ib2R5LmZpbGVOYW1lKTtcblx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmZpbGVMaXN0KTtcblx0XHR9KTtcblx0fVxuXG5cdGRlbGV0ZUhhbmRsZXIoZmlsZVN0cjogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG5cdFx0dGhpcy5kZWxldGVIb29rcy5wdXNoKHRoaXMuZGVsRmlsZShmaWxlU3RyKSk7XG5cdFx0dGhpcy5maWxlTGlzdCA9IHRoaXMuZmlsZUxpc3Q/LmZpbHRlcigodmFsdWUsIGkpID0+IGluZGV4ICE9IGkpO1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmZpbGVMaXN0KTtcblx0fVxuXG5cdGhhbmRsZUhvb2tDaGFuZ2UoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09IG51bGwpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5maWxlTGlzdCA9IFsuLi52YWx1ZV07XG5cdFx0fSk7XG5cdH1cblxuXHRhZnRlclN1Ym1pdCgpIHtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc3VibWl0Q2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmIChCb29sZWFuKHZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLmRlbGV0ZUhvb2tzLmZvckVhY2goKGhvb2spID0+IGhvb2suc3Vic2NyaWJlKCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL3VwbG9hZC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUF5SXBELE1BQU0sT0FBTyxlQUFlO0lBUzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVgzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBUVgsTUFBTSxDQUFDLEdBQUcsRUFB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O1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDRixDQUFDOytHQWhJVyxlQUFlO21HQUFmLGVBQWUsbVNBQ00sVUFBVSw2QkFyRWpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFpRU0sNHZNQWxFTixVQUFVLGc1QkFBRSxZQUFZLGliQUFFLG1CQUFtQiwwQkFBRSxhQUFhOzs0RkFxRTFELGVBQWU7a0JBNUczQixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBcUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsWUFDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlFTTswSkFJOEMsYUFBYTtzQkFBMUUsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XG5cdHVybD86IHN0cmluZztcblx0bWV0aG9kPzogJ3Bvc3QnIHwgJ3B1dCc7XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0YWNjZXB0Pzogc3RyaW5nO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS11cGxvYWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzdHlsZXM6IGBcblx0XHQuZmlsZS1pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAjZmZmO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0biB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSkubmctaG92ZXJlZCB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LmZpbGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0fVxuXHRcdC5maWxlLW5hbWU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0fVxuXHRcdDpob3N0IDo6bmctZGVlcCB7XG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xuXHRcdFx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHRcdFx0XHRjb2xvcjogIzMzNDE1NTtcblx0XHRcdH1cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuXHR0ZW1wbGF0ZTogYDxwLWZpbGVVcGxvYWRcblx0XHQjZnVcblx0XHRhdXRvXG5cdFx0W2lkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxuXHRcdFt1cmxdPVwicHJvcHMudXJsXCJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxuXHRcdFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyB0cnVlXCJcblx0XHRbYWNjZXB0XT1cInByb3BzLmFjY2VwdFwiXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxuXHRcdFttYXhGaWxlU2l6ZV09XCJwcm9wcy5tYXhGaWxlU2l6ZVwiXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxuXHRcdFttb2RlXT1cInByb3BzLm1vZGUgPz8gJ2FkdmFuY2VkJ1wiXG5cdFx0W2hlYWRlcnNdPVwicHJvcHMuaGVhZGVyc1wiXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxuXHRcdFtjdXN0b21VcGxvYWRdPVwicHJvcHMuY3VzdG9tVXBsb2FkID8/IHRydWVcIlxuXHRcdChvbkJlZm9yZVVwbG9hZCk9XCJwcm9wcy5vbkJlZm9yZVVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uRXJyb3IpPVwicHJvcHMub25FcnJvcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxuXHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0I2hlYWRlclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0I3VwbG9hZENvbXBcblx0XHRcdFx0W2NsYXNzXT1cIidmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCB1cGxvYWQtYnRuJyArIChmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkID8gJyB1cGxvYWQtZGlzYWJsZScgOiAnJylcIlxuXHRcdFx0XHQoY2xpY2spPVwiY2hvb3NlKCRldmVudCwgY2hvb3NlQ2FsbGJhY2spXCI+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0PjxzcGFuXG5cdFx0XHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXJpZ2h0OiAyLjVweFwiXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ3BpJyArIChsb2FkaW5nID8gJyBwaS1zcGluIHBpLXNwaW5uZXInIDogJyBwaS11cGxvYWQnKVwiPjwvc3BhblxuXHRcdFx0XHRcdD57eyAobG9hZGluZyA/ICdtb2RhbC51cGxvYWRpbmcnIDogJ21vZGFsLnNlbGVjdEZpbGUnKSB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuXHRcdFx0XHQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cblx0XHRcdEBpZiAoZmlsZUxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRAZm9yIChmaWxlIG9mIGZpbGVMaXN0OyB0cmFjayBmaWxlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGZpbGUtaXRlbVwiPlxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIlxuXHRcdFx0XHRcdFx0XHQ+PGFcblx0XHRcdFx0XHRcdFx0XHRbaHJlZl09XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGZpbGVcIlxuXHRcdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlXCJcblx0XHRcdFx0XHRcdFx0XHQ+e3sgZmlsZSB9fTwvYVxuXHRcdFx0XHRcdFx0XHQ+PC9zcGFuXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihmaWxlLCBpbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIiAvPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgI2ZpbGU+IDwvbmctdGVtcGxhdGU+XG5cdDwvcC1maWxlVXBsb2FkPmAsXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgndXBsb2FkQ29tcCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB1cGxvYWRDb21wUmVmITogRWxlbWVudFJlZjtcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XG5cdHByb3BzOiBVcGxvYWRQcm9wcyA9IHt9O1xuXHRmaWxlTGlzdDogc3RyaW5nW10gPSBbXTtcblx0ZGVsZXRlSG9va3M6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cdGxvYWRpbmcgPSBmYWxzZTtcblx0Y291bnRlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcblx0KSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEudXBsb2FkUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUhvb2tDaGFuZ2UoKTtcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGZvcmtKb2luKHRoaXMuZGVsZXRlSG9va3MpLnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy51cGxvYWRDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLnVwbG9hZENvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Y2hvb3NlKGV2ZW50OiBhbnksIGNhbGxiYWNrOiBhbnkpIHtcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNhbGxiYWNrKCk7XG5cdH1cblxuXHR1cGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cFxuXHRcdFx0LnJlcXVlc3QoXG5cdFx0XHRcdG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsICdmaWxlclVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XG5cdH1cblxuXHRkZWxGaWxlKGZpbGVTdHI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdmaWxlckRlbGV0ZScsIHsgZmlsZU5hbWU6IGZpbGVTdHIgfSk7XG5cdH1cblxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcblx0XHR0aGlzLmluaXRMb2FkaW5nKGV2ZW50LmZpbGVzLmxlbmd0aCk7XG5cdFx0ZXZlbnQuZmlsZXMuZm9yRWFjaCgodjogYW55KSA9PiB7XG5cdFx0XHR0aGlzLnVwbG9hZEZpbGUodikuc3Vic2NyaWJlKHtcblx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcblx0XHRcdFx0XHR0aGlzLmZpbGVMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcblx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcblx0XHRcdFx0XHR0aGlzLmluaXRMb2FkaW5nKDApO1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRkZWxldGVIYW5kbGVyKGZpbGVTdHI6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuXHRcdHRoaXMuZGVsZXRlSG9va3MucHVzaCh0aGlzLmRlbEZpbGUoZmlsZVN0cikpO1xuXHRcdHRoaXMuZmlsZUxpc3QgPSB0aGlzLmZpbGVMaXN0Py5maWx0ZXIoKHZhbHVlLCBpKSA9PiBpbmRleCAhPSBpKTtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMucHJvcHMub25Ib29rQ2hhbmdlPy4odGhpcy5maWVsZCgpISwgeyB2YWx1ZSB9KTtcblx0XHRcdHRoaXMuZmlsZUxpc3QgPSBbLi4udmFsdWVdO1xuXHRcdH0pO1xuXHR9XG5cblx0YWZ0ZXJTdWJtaXQoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoQm9vbGVhbih2YWx1ZSkpIHtcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGhhbmRsZURpc2FibGVkKCkge1xuXHRcdGlmICh0aGlzLnByb3BzPy5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdH1cblx0fVxuXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xuXHRcdHRoaXMuY291bnRlciA9IGNvdW50ZXI7XG5cdFx0aWYgKGNvdW50ZXIgPT0gMCkge1xuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdH1cblxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcblx0XHR0aGlzLmNvdW50ZXItLTtcblx0XHRjb25zb2xlLmxvZygnLS0tLWNvdW50ZXInLCB0aGlzLmNvdW50ZXIpO1xuXHRcdGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0ZnUuY2xlYXIoKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==