tin-spa 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/esm2020/lib/classes/Classes.mjs +7 -1
  2. package/esm2020/lib/classes/TinCore.mjs +16 -2
  3. package/esm2020/lib/components/form/form.component.mjs +1 -1
  4. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +7 -10
  5. package/esm2020/lib/components/option/option.component.mjs +1 -1
  6. package/esm2020/lib/components/select/select.component.mjs +5 -3
  7. package/esm2020/lib/components/select-internal/select-internal.component.mjs +4 -2
  8. package/esm2020/lib/components/steps/steps.component.mjs +46 -13
  9. package/esm2020/lib/components/table/detailsDialog.component.mjs +4 -4
  10. package/esm2020/lib/components/table/table.component.mjs +28 -20
  11. package/esm2020/lib/components/table-action/table-action.component.mjs +26 -6
  12. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +4 -4
  13. package/esm2020/lib/components/table-internal/table-internal.component.mjs +29 -20
  14. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +4 -4
  15. package/esm2020/lib/components/table-lite/table-lite.component.mjs +29 -20
  16. package/esm2020/lib/components/text/text.component.mjs +7 -4
  17. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
  18. package/esm2020/lib/pages/approvals/approvals.component.mjs +10 -100
  19. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +14 -9
  20. package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
  21. package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
  22. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
  23. package/esm2020/lib/pages/login/login.component.mjs +6 -4
  24. package/esm2020/lib/pages/profile/profile.component.mjs +1 -1
  25. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
  26. package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
  27. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
  28. package/esm2020/lib/pages/welcome/welcome.component.mjs +1 -1
  29. package/esm2020/lib/services/button.service.mjs +3 -16
  30. package/esm2020/lib/services/datalib.service.mjs +180 -4
  31. package/esm2020/lib/services/dialog.service.mjs +12 -8
  32. package/esm2020/lib/services/notifications.service.mjs +2 -2
  33. package/esm2020/lib/services/table-config.service.mjs +24 -6
  34. package/fesm2015/tin-spa.mjs +426 -258
  35. package/fesm2015/tin-spa.mjs.map +1 -1
  36. package/fesm2020/tin-spa.mjs +445 -246
  37. package/fesm2020/tin-spa.mjs.map +1 -1
  38. package/lib/classes/Classes.d.ts +11 -1
  39. package/lib/components/steps/steps.component.d.ts +5 -1
  40. package/lib/components/table/table.component.d.ts +0 -1
  41. package/lib/components/table-action/table-action.component.d.ts +4 -1
  42. package/lib/components/table-internal/table-internal.component.d.ts +0 -1
  43. package/lib/components/table-lite/table-lite.component.d.ts +0 -1
  44. package/lib/components/text/text.component.d.ts +2 -1
  45. package/lib/pages/approvals/approvals.component.d.ts +3 -7
  46. package/lib/pages/approvals-config/approvals-config.component.d.ts +4 -0
  47. package/lib/services/button.service.d.ts +0 -2
  48. package/lib/services/datalib.service.d.ts +13 -0
  49. package/lib/services/dialog.service.d.ts +2 -2
  50. package/lib/services/table-config.service.d.ts +4 -0
  51. package/package.json +1 -1
@@ -35,6 +35,7 @@ export class DataServiceLib {
35
35
  this.capGrades = new CapItem;
36
36
  this.capApprovals = new CapItem;
37
37
  this.capApprovalsConfig = new CapItem;
38
+ this.capNotifications = new CapItem;
38
39
  this.tmpProfileuserName = "";
39
40
  this.isProcessing = false;
40
41
  //--------------------------Departmemts Form-------------------------
@@ -265,6 +266,9 @@ export class DataServiceLib {
265
266
  showFilter: true,
266
267
  minColumns: ['name'],
267
268
  flatButtons: true,
269
+ logResponse: true,
270
+ maxButtonsCount: 3,
271
+ collapseButtons: true,
268
272
  columns: [
269
273
  { name: 'name', type: 'text' },
270
274
  { name: 'phone', type: 'text' },
@@ -330,6 +334,172 @@ export class DataServiceLib {
330
334
  { name: 'UI + Email + SMS', value: 7 },
331
335
  { name: 'All Channels', value: 15 }
332
336
  ];
337
+ //--------------------------Approvals-------------------------
338
+ //Approval History
339
+ this.approvalHistoryTableConfig = {
340
+ tabTitle: 'Trail',
341
+ elevation: 'none',
342
+ minColumns: ['levelName', 'status'],
343
+ flatButtons: true,
344
+ columns: [
345
+ { name: 'createdDate', type: 'datetime', alias: 'Date' },
346
+ { name: 'levelName', type: 'text', alias: 'Level' },
347
+ {
348
+ name: 'statusName', type: 'text', alias: 'Status',
349
+ colors: [
350
+ { name: '#90A4AE', condition: x => x.status === 0 },
351
+ { name: '#66BB6A', condition: x => x.status === 1 },
352
+ { name: '#F44336', condition: x => x.status === 2 }
353
+ ]
354
+ },
355
+ { name: 'comments', type: 'text', },
356
+ { name: 'createdByName', type: 'text', alias: 'By' },
357
+ ],
358
+ buttons: [],
359
+ loadAction: { url: 'approvalhistory/approval/x' },
360
+ loadCriteria: 'approval',
361
+ loadIDField: 'approvalID'
362
+ };
363
+ //approvals form
364
+ this.approvalFormConfig = {
365
+ title: 'Approval',
366
+ fields: [
367
+ { name: 'blank', type: 'blank', span: true },
368
+ { name: 'statusName', type: 'label', alias: 'Status', span: true },
369
+ { name: 'message', type: 'text', required: true, span: true, infoMessage: 'Message to approver' },
370
+ ],
371
+ loadAction: { url: 'approvals/id' },
372
+ heroField: 'approvalID'
373
+ };
374
+ this.approvalDetailsConfig = {
375
+ formConfig: this.approvalFormConfig,
376
+ heroField: 'approvalID',
377
+ tableConfigs: [this.approvalHistoryTableConfig],
378
+ stepConfig: {
379
+ steps: [],
380
+ loadAction: { url: `approvals/steps/{id}` },
381
+ loadIDField: 'approvalID',
382
+ valueField: 'currentLevel'
383
+ },
384
+ };
385
+ // approval action dialog
386
+ this.approvalActionFormConfig = {
387
+ title: 'Approval Action',
388
+ fixedTitle: true,
389
+ fields: [
390
+ {
391
+ name: 'comments', type: 'text', required: false, span: true, rows: 3,
392
+ infoMessage: 'Enter your comments about this approval action. This will be visible in the approval history.'
393
+ }
394
+ ]
395
+ };
396
+ this.approveActionDetailsConfig = {
397
+ formConfig: {
398
+ ...this.approvalActionFormConfig,
399
+ fields: [
400
+ {
401
+ name: 'comments', type: 'text', required: false, span: true, rows: 3,
402
+ infoMessage: 'Enter your comments about this approval action. This will be visible in the approval history.'
403
+ }
404
+ ],
405
+ },
406
+ mode: 'edit',
407
+ buttons: [
408
+ { name: 'edit', display: 'Approve', color: 'green', action: { url: 'approve', method: 'post' } } //url preconfigured to be dynamic
409
+ ]
410
+ };
411
+ this.declineActionDetailsConfig = {
412
+ formConfig: { ...this.approvalActionFormConfig,
413
+ fields: [
414
+ {
415
+ name: 'comments', type: 'text', required: true, span: true, rows: 3,
416
+ infoMessage: 'Enter your comments about this approval action. This will be visible in the approval history.',
417
+ hint: 'Decline comment is required !'
418
+ }
419
+ ],
420
+ },
421
+ mode: 'edit',
422
+ buttons: [
423
+ { name: 'edit', display: 'Decline', color: 'red', action: { url: 'decline', method: 'post' } } //url preconfigured to be dynamic
424
+ ]
425
+ };
426
+ this.viewApprovalButton = {
427
+ name: 'info', dialog: true, icon: { name: 'info' }, detailsConfig: this.approvalDetailsConfig,
428
+ visible: x => x.canAction
429
+ };
430
+ this.approveButton = {
431
+ name: 'approve', dialog: true, icon: { name: 'done' }, color: 'green', detailsConfig: this.approveActionDetailsConfig,
432
+ // confirm: { message: 'Approve?' },
433
+ // disabled: x => !x.canAction,
434
+ visible: x => x.canAction
435
+ };
436
+ this.declineButton = {
437
+ name: 'decline', dialog: true, icon: { name: 'close' }, color: 'red', detailsConfig: this.declineActionDetailsConfig,
438
+ // confirm: { message: 'Decline?' },
439
+ // disabled: x => !x.canAction,
440
+ visible: x => x.canAction
441
+ };
442
+ this.cancelButton = {
443
+ name: 'cancel', icon: { name: 'cancel' }, color: 'red', action: { url: 'cancel', method: 'post', },
444
+ confirm: { message: 'Cancel approval request? This will revert changes and stop the approval process.' },
445
+ visible: x => !x.canAction && x.canCancel
446
+ };
447
+ //received approvals
448
+ this.receivedApprovalsTableConfig = {
449
+ showFilter: true,
450
+ minColumns: ['message', 'statusName'],
451
+ minButtons: ['view', 'approve', 'decline'],
452
+ flatButtons: true,
453
+ greyOut: (x) => x.isGreyedOut,
454
+ // logResponse: true,
455
+ collapseButtons: true,
456
+ columns: [
457
+ { name: 'createdDate', type: 'datetime', alias: 'Date' },
458
+ { name: 'createdByName', alias: 'Request By', type: 'text' },
459
+ { name: 'message', type: 'text' },
460
+ {
461
+ name: 'typeName', alias: 'Type', type: 'chip',
462
+ colors: [
463
+ { name: '#66BB6A', condition: x => x.type === 0 },
464
+ { name: 'orange', condition: x => x.type === 1 },
465
+ { name: '#F44336', condition: x => x.type === 2 }
466
+ ]
467
+ },
468
+ {
469
+ name: 'statusName', alias: 'Status', type: 'chip', detailsConfig: this.approvalDetailsConfig,
470
+ colors: [
471
+ { name: '#90A4AE', condition: x => x.status === 0 },
472
+ { name: '#66BB6A', condition: x => x.status === 1 },
473
+ { name: '#F44336', condition: x => x.status === 2 }
474
+ ]
475
+ },
476
+ {
477
+ name: 'currentLevelName', type: 'text', alias: 'Current Level',
478
+ icons: [
479
+ { name: 'done', color: '#66BB6A', condition: x => x.status === 'Approved', tip: 'Approved' },
480
+ { name: 'close', color: '#F44336', condition: x => x.status === 'Declined', tip: 'Declined' },
481
+ { name: 'schedule', color: '#FFC107', condition: x => x.status === 'Pending', tip: 'Pending' }
482
+ ]
483
+ },
484
+ { name: 'updatedByName', alias: 'Actioned By', type: 'text' },
485
+ { name: 'updatedDateDisplay', type: 'datetime', alias: 'Actioned Date' },
486
+ ],
487
+ buttons: [
488
+ this.viewApprovalButton,
489
+ this.approveButton,
490
+ this.declineButton,
491
+ ],
492
+ loadAction: { url: 'approvals/all/x' }
493
+ };
494
+ //send approvals
495
+ this.sentApprovalsTableConfig = {
496
+ ...this.receivedApprovalsTableConfig,
497
+ buttons: [
498
+ // this.viewApprovalButton,
499
+ this.cancelButton,
500
+ ],
501
+ loadAction: { url: 'approvals/sent/x' }
502
+ };
333
503
  //---------------------------Other code
334
504
  this.listCache = {};
335
505
  this.cacheDuration = 5 * 60 * 1000;
@@ -377,7 +547,11 @@ export class DataServiceLib {
377
547
  this.capPlans.link = "home/admin/plans";
378
548
  this.capGeneral.name = "cap11";
379
549
  this.capGeneral.display = "General";
380
- this.capGeneral.capSubItems = [this.capApprovals, this.capCustomers, this.capInventory, this.capAccounts, this.capSuppliers, this.capTasks];
550
+ this.capGeneral.capSubItems = [this.capNotifications, this.capApprovals, this.capCustomers, this.capInventory, this.capAccounts, this.capSuppliers, this.capTasks];
551
+ this.capNotifications.name = "cap1";
552
+ this.capNotifications.display = "Notifications";
553
+ this.capNotifications.link = "home/admin/notifications";
554
+ this.capNotifications.icon = "notifications";
381
555
  this.capCustomers.name = "cap12";
382
556
  this.capCustomers.display = "Customers";
383
557
  this.capCustomers.link = "home/admin/customers";
@@ -418,7 +592,7 @@ export class DataServiceLib {
418
592
  this.capApprovals.name = "cap18";
419
593
  this.capApprovals.display = "Approvals";
420
594
  this.capApprovals.link = "home/admin/approvals";
421
- this.capApprovals.icon = "task_alt";
595
+ this.capApprovals.icon = "rule";
422
596
  this.capApprovalsConfig.name = "cap19";
423
597
  this.capApprovalsConfig.display = "Approvals Config";
424
598
  this.capApprovalsConfig.link = "home/admin/approvals-config";
@@ -440,9 +614,11 @@ export class DataServiceLib {
440
614
  }
441
615
  else if (action.method == 'post') {
442
616
  if (action.isFormData || action.url.includes('/form')) {
617
+ action.isFormData = true;
443
618
  return this.httpService.Post_FormData(action.url, data);
444
619
  }
445
- else if (action.url == 'approve' || action.url == 'decline') {
620
+ else if (action.url == 'approve' || action.url == 'decline' || action.url == 'cancel') {
621
+ console.log(data);
446
622
  return this.httpService.Post(`${data.endpoint}/approve?action=${action.url}`, data);
447
623
  }
448
624
  else {
@@ -573,4 +749,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
573
749
  providedIn: 'root'
574
750
  }]
575
751
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
576
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUIsU0FBUyxFQUFVLE9BQU8sRUFBZ0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNuSSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFRNUQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsV0FBd0IsRUFBUyxNQUFjLEVBQVUsS0FBcUI7UUFBOUUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUEySGxHLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQU03RCxZQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDdEIsYUFBUSxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDdkIsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDekIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUM1QixhQUFRLEdB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LEVBQVUsRUFBRSxHQUFXO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBYztRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsyR0F2ckJVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEFwaVJlc3BvbnNlLCBBcHBDb25maWcsIEJ1dHRvbiwgQ2FwSXRlbSwgRGV0YWlsc0RpYWxvZ0NvbmZpZywgRm9ybUNvbmZpZywgVGFibGVDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9MaWJDbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlTGliIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuXHJcbiAgICB0aGlzLmFwcENvbmZpZy5hcHBOYW1lID0gXCJBcHAtTmFtZVwiO1xyXG4gICAgdGhpcy5hcHBDb25maWcubG9nbyA9IFwiLi9hc3NldHMvbG9nby5wbmdcIlxyXG4gICAgdGhpcy5hcHBDb25maWcuQURBdXRoID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBwQ29uZmlnLmNhcEl0ZW1zID0gW3RoaXMuY2FwTXVsdGl0ZW5hbnQsIHRoaXMuY2FwQWRtaW4sIHRoaXMuY2FwSG9tZV07XHJcblxyXG5cclxuICAgIHRoaXMuY2FwSG9tZS5uYW1lID0gXCJjYXAxXCI7XHJcbiAgICB0aGlzLmNhcEhvbWUuZGlzcGxheSA9IFwiSG9tZVwiO1xyXG4gICAgdGhpcy5jYXBIb21lLmxpbmsgPSBcImhvbWVcIjtcclxuICAgIHRoaXMuY2FwSG9tZS5pY29uID1cImhvbWVcIjtcclxuXHJcblxyXG4gICAgdGhpcy5jYXBBZG1pbi5uYW1lID0gXCJjYXAyXCI7XHJcbiAgICB0aGlzLmNhcEFkbWluLmRpc3BsYXkgPSBcIkFkbWluXCI7XHJcbiAgICB0aGlzLmNhcEFkbWluLmljb24gPSBcInNlY3VyaXR5XCJcclxuICAgIHRoaXMuY2FwQWRtaW4uY2FwU3ViSXRlbXMgPSBbdGhpcy5jYXBVc2VycywgdGhpcy5jYXBSb2xlcywgdGhpcy5jYXBMb2dzLCB0aGlzLmNhcFNldHRpbmdzLCB0aGlzLmNhcEFwcHJvdmFsc0NvbmZpZ107XHJcblxyXG4gICAgdGhpcy5jYXBVc2Vycy5uYW1lID0gXCJjYXAzXCI7XHJcbiAgICB0aGlzLmNhcFVzZXJzLmRpc3BsYXkgPSBcIlVzZXJzXCI7XHJcbiAgICB0aGlzLmNhcFVzZXJzLmxpbmsgPSBcImhvbWUvYWRtaW4vdXNlcnNcIjtcclxuICAgIHRoaXMuY2FwVXNlcnMuaWNvbiA9IFwiZ3JvdXBcIjtcclxuXHJcbiAgICB0aGlzLmNhcFJvbGVzLm5hbWUgPSBcImNhcDRcIlxyXG4gICAgdGhpcy5jYXBSb2xlcy5kaXNwbGF5ID0gXCJSb2xlc1wiO1xyXG4gICAgdGhpcy5jYXBSb2xlcy5saW5rID0gXCJob21lL2FkbWluL3JvbGVzXCI7XHJcbiAgICB0aGlzLmNhcFJvbGVzLmljb24gPSBcIndvcmtcIjtcclxuXHJcbiAgICB0aGlzLmNhcExvZ3MubmFtZSA9IFwiY2FwNVwiXHJcbiAgICB0aGlzLmNhcExvZ3MuZGlzcGxheSA9IFwiTG9nc1wiO1xyXG4gICAgdGhpcy5jYXBMb2dzLmxpbmsgPSBcImhvbWUvYWRtaW4vbG9nc1wiO1xyXG4gICAgdGhpcy5jYXBMb2dzLmljb24gPSBcInRleHRfc25pcHBldFwiO1xyXG5cclxuICAgIHRoaXMuY2FwU2V0dGluZ3MubmFtZSA9IFwiY2FwNlwiXHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLmRpc3BsYXkgPSBcIlNldHRpbmdzXCI7XHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLmxpbmsgPSBcImhvbWUvYWRtaW4vc2V0dGluZ3NcIjtcclxuICAgIHRoaXMuY2FwU2V0dGluZ3MuaWNvbiA9XCJzZXR0aW5nc1wiO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcE11bHRpdGVuYW50Lm5hbWUgPSBcImNhcDdcIlxyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5kaXNwbGF5ID0gXCJNdWx0aXRlbmFudFwiO1xyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5pY29uID0gXCJhcGFydG1lbnRcIlxyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5jYXBTdWJJdGVtcyA9IFt0aGlzLmNhcFRlbmFudHMsIHRoaXMuY2FwTWVtYmVyc2hpcCwgdGhpcy5jYXBQbGFucyBdO1xyXG5cclxuICAgIHRoaXMuY2FwVGVuYW50cy5uYW1lID0gXCJjYXA4XCJcclxuICAgIHRoaXMuY2FwVGVuYW50cy5kaXNwbGF5ID0gXCJUZW5hbnRzXCI7XHJcbiAgICB0aGlzLmNhcFRlbmFudHMubGluayA9IFwiaG9tZS9hZG1pbi90ZW5hbnRzXCI7XHJcblxyXG4gICAgdGhpcy5jYXBNZW1iZXJzaGlwLm5hbWUgPSBcImNhcDlcIlxyXG4gICAgdGhpcy5jYXBNZW1iZXJzaGlwLmRpc3BsYXkgPSBcIk1lbWJlcnNoaXBcIjtcclxuICAgIHRoaXMuY2FwTWVtYmVyc2hpcC5saW5rID0gXCJob21lL2FkbWluL21lbWJlcnNoaXBcIjtcclxuXHJcbiAgICB0aGlzLmNhcFBsYW5zLm5hbWUgPSBcImNhcDEwXCJcclxuICAgIHRoaXMuY2FwUGxhbnMuZGlzcGxheSA9IFwiUGxhbnNcIjtcclxuICAgIHRoaXMuY2FwUGxhbnMubGluayA9IFwiaG9tZS9hZG1pbi9wbGFuc1wiO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcEdlbmVyYWwubmFtZSA9IFwiY2FwMTFcIlxyXG4gICAgdGhpcy5jYXBHZW5lcmFsLmRpc3BsYXkgPSBcIkdlbmVyYWxcIjtcclxuICAgIHRoaXMuY2FwR2VuZXJhbC5jYXBTdWJJdGVtcyA9IFt0aGlzLmNhcEFwcHJvdmFscyx0aGlzLmNhcEN1c3RvbWVycywgdGhpcy5jYXBJbnZlbnRvcnksIHRoaXMuY2FwQWNjb3VudHMsIHRoaXMuY2FwU3VwcGxpZXJzLCB0aGlzLmNhcFRhc2tzXTtcclxuXHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5uYW1lID0gXCJjYXAxMlwiXHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5kaXNwbGF5ID0gXCJDdXN0b21lcnNcIjtcclxuICAgIHRoaXMuY2FwQ3VzdG9tZXJzLmxpbmsgPSBcImhvbWUvYWRtaW4vY3VzdG9tZXJzXCI7XHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5pY29uID0gXCJncm91cFwiXHJcblxyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkubmFtZSA9IFwiY2FwMTNcIlxyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkuZGlzcGxheSA9IFwiSW52ZW50b3J5XCI7XHJcbiAgICB0aGlzLmNhcEludmVudG9yeS5saW5rID0gXCJob21lL2FkbWluL2ludmVudG9yeVwiO1xyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkuaWNvbiA9IFwic3RvcmVmcm9udFwiXHJcblxyXG4gICAgdGhpcy5jYXBBY2NvdW50cy5uYW1lID0gXCJjYXAxNFwiXHJcbiAgICB0aGlzLmNhcEFjY291bnRzLmRpc3BsYXkgPSBcIkFjY291bnRzXCI7XHJcbiAgICB0aGlzLmNhcEFjY291bnRzLmxpbmsgPSBcImhvbWUvYWRtaW4vYWNjb3VudHNcIjtcclxuICAgIHRoaXMuY2FwQWNjb3VudHMuaWNvbiA9IFwiYWNjb3VudF9iYWxhbmNlX3dhbGxldFwiXHJcblxyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMubmFtZSA9IFwiY2FwMTVcIlxyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMuZGlzcGxheSA9IFwiU3VwcGxpZXJzXCI7XHJcbiAgICB0aGlzLmNhcFN1cHBsaWVycy5saW5rID0gXCJob21lL2FkbWluL3N1cHBsaWVyc1wiO1xyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMuaWNvbiA9IFwiZ3JvdXBzXCJcclxuXHJcbiAgICB0aGlzLmNhcFRhc2tzLm5hbWUgPSBcImNhcDE2XCJcclxuICAgIHRoaXMuY2FwVGFza3MuZGlzcGxheSA9IFwiVGFza3NcIjtcclxuICAgIHRoaXMuY2FwVGFza3MubGluayA9IFwiaG9tZS9hZG1pbi90YXNrc1wiO1xyXG4gICAgdGhpcy5jYXBUYXNrcy5pY29uID0gXCJjaGVja19ib3hcIlxyXG5cclxuXHJcbiAgICB0aGlzLmNhcEhSLm5hbWUgPSBcImNhcDE3XCJcclxuICAgIHRoaXMuY2FwSFIuZGlzcGxheSA9IFwiSFJcIjtcclxuICAgIHRoaXMuY2FwSFIubGluayA9IFwiaG9tZS9hZG1pbi9oclwiO1xyXG4gICAgdGhpcy5jYXBIUi5pY29uID0gXCJkaXZlcnNpdHlfM1wiXHJcbiAgICB0aGlzLmNhcEhSLmNhcFN1Ykl0ZW1zID0gW3RoaXMuY2FwRGVwYXJ0bWVudHMsIHRoaXMuY2FwUG9zaXRpb25zLCB0aGlzLmNhcEVtcGxveWVlcyxdXHJcblxyXG4gICAgdGhpcy5jYXBFbXBsb3llZXMubmFtZSA9IFwiY2FwMTdcIlxyXG4gICAgdGhpcy5jYXBFbXBsb3llZXMuZGlzcGxheSA9IFwiRW1wbG95ZWVzXCI7XHJcbiAgICB0aGlzLmNhcEVtcGxveWVlcy5saW5rID0gXCJob21lL2FkbWluL2VtcGxveWVlc1wiO1xyXG4gICAgdGhpcy5jYXBFbXBsb3llZXMuaWNvbiA9IFwiZ3JvdXBcIlxyXG5cclxuICAgIHRoaXMuY2FwRGVwYXJ0bWVudHMubmFtZSA9IFwiY2FwMTdcIlxyXG4gICAgdGhpcy5jYXBEZXBhcnRtZW50cy5kaXNwbGF5ID0gXCJEZXBhcnRtZW50c1wiO1xyXG4gICAgdGhpcy5jYXBEZXBhcnRtZW50cy5saW5rID0gXCJob21lL2FkbWluL2RlcGFydG1lbnRzXCI7XHJcbiAgICB0aGlzLmNhcERlcGFydG1lbnRzLmljb24gPSBcImJ1c2luZXNzX2NlbnRlclwiXHJcblxyXG4gICAgdGhpcy5jYXBQb3NpdGlvbnMubmFtZSA9IFwiY2FwMTdcIlxyXG4gICAgdGhpcy5jYXBQb3NpdGlvbnMuZGlzcGxheSA9IFwiUG9zaXRpb25zXCI7XHJcbiAgICB0aGlzLmNhcFBvc2l0aW9ucy5saW5rID0gXCJob21lL2FkbWluL3Bvc2l0aW9uc1wiO1xyXG4gICAgdGhpcy5jYXBQb3NpdGlvbnMuaWNvbiA9IFwicGljdHVyZV9pbl9waWN0dXJlX21lZGl1bVwiXHJcblxyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHMubmFtZSA9IFwiY2FwMThcIlxyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHMuZGlzcGxheSA9IFwiQXBwcm92YWxzXCI7XHJcbiAgICB0aGlzLmNhcEFwcHJvdmFscy5saW5rID0gXCJob21lL2FkbWluL2FwcHJvdmFsc1wiO1xyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHMuaWNvbiA9IFwidGFza19hbHRcIlxyXG5cclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLm5hbWUgPSBcImNhcDE5XCJcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLmRpc3BsYXkgPSBcIkFwcHJvdmFscyBDb25maWdcIjtcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLmxpbmsgPSBcImhvbWUvYWRtaW4vYXBwcm92YWxzLWNvbmZpZ1wiO1xyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHNDb25maWcuaWNvbiA9IFwicHVibGlzaGVkX3dpdGhfY2hhbmdlc1wiXHJcblxyXG5cclxuICB9XHJcblxyXG5cclxuICBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBhcHBDb25maWdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXBwQ29uZmlnKTtcclxuICBwdWJsaWMgYXBwQ29uZmlnT2JzZXJ2ID0gdGhpcy5hcHBDb25maWdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQXBwQ29uZmlnKGNvbmZpZzogQXBwQ29uZmlnKSB7XHJcbiAgICB0aGlzLmFwcENvbmZpZ1NvdXJjZS5uZXh0KGNvbmZpZyk7XHJcbiAgICB0aGlzLmFwcENvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIGNhcEhvbWUgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBZG1pbiA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFVzZXJzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwUm9sZXMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBMb2dzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwU2V0dGluZ3MgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgY2FwTXVsdGl0ZW5hbnQgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBUZW5hbnRzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwTWVtYmVyc2hpcCA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFBsYW5zID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEdlbmVyYWwgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBDdXN0b21lcnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBJbnZlbnRvcnkgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBY2NvdW50cyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFN1cHBsaWVycyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFRhc2tzID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEhSID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRW1wbG95ZWVzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRGVwYXJ0bWVudHMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBQb3NpdGlvbnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBHcmFkZXMgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgY2FwQXBwcm92YWxzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwQXBwcm92YWxzQ29uZmlnID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIHB1YmxpYyB0bXBQcm9maWxldXNlck5hbWUgPSBcIlwiO1xyXG5cclxuXHJcbiAgaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRGVwYXJ0bWVtdHMgRm9ybS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBkZXBhcnRtZW50Rm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIHNlY3VyaXR5OiB7IGFsbG93OiBbdGhpcy5jYXBEZXBhcnRtZW50c10gfSxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnZGVwYXJ0bWVudHMvaWQnIH0sXHJcbiAgICBoZXJvRmllbGQ6ICdkZXBhcnRtZW50SUQnXHJcbiAgfVxyXG5cclxuICBlZGl0RGVwYXJ0bWVudEJ1dHRvbjogQnV0dG9uID0geyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcsIHN1Y2Nlc3NNZXNzYWdlOiAnRWRpdGVkIFN1Y2Nlc3NmdWxseScgfSB9XHJcblxyXG4gIGRlcGFydG1lbnREZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5kZXBhcnRtZW50Rm9ybUNvbmZpZyxcclxuICAgIGhlcm9GaWVsZDogJ2RlcGFydG1lbnRJRCcsXHJcbiAgICBidXR0b25zOiBbdGhpcy5lZGl0RGVwYXJ0bWVudEJ1dHRvbl0sXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVBvc2l0aW9ucyBGb3JtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHBvc2l0aW9uRm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIHNlY3VyaXR5OiB7IGFsbG93OiBbdGhpcy5jYXBQb3NpdGlvbnNdIH0sXHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnZGVzY3JpcHRpb24nLCB0eXBlOiAndGV4dCcsIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlcGFydG1lbnRJRCcsIGFsaWFzOiAnRGVwYXJ0bWVudCcsIHR5cGU6ICdzZWxlY3QnLCBsb2FkQWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzL2xpc3QveCcgfSwgZGV0YWlsc0NvbmZpZzogdGhpcy5kZXBhcnRtZW50RGV0YWlsc0NvbmZpZyB9LFxyXG5cclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3Bvc2l0aW9ucy9pZCcgfSxcclxuICAgIGhlcm9GaWVsZDogJ3Bvc2l0aW9uSUQnXHJcbiAgfVxyXG5cclxuICBlZGl0UG9zaXRpb25CdXR0b246IEJ1dHRvbiA9IHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0Jywgc3VjY2Vzc01lc3NhZ2U6ICdFZGl0ZWQgU3VjY2Vzc2Z1bGx5JyB9IH1cclxuXHJcbiAgcG9zaXRpb25EZXRhaWxzQ29uZmlnIDogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWcgOiB0aGlzLnBvc2l0aW9uRm9ybUNvbmZpZyxcclxuICAgIGhlcm9GaWVsZCA6ICdwb3NpdGlvbklEJyxcclxuICAgIGJ1dHRvbnM6IFt0aGlzLmVkaXRQb3NpdGlvbkJ1dHRvbl0sXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1FbXBsb3llZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIGdlbmRlcnMgPSBbXHJcbiAgICB7IG5hbWU6ICdNYWxlJywgdmFsdWU6IDEgfSxcclxuICAgIHsgbmFtZTogJ0ZlbWFsZScsIHZhbHVlOiAyIH1cclxuICBdXHJcblxyXG4gIGVtcGxveWVlRm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIHNlY3VyaXR5IDoge2FsbG93IDogW3RoaXMuY2FwRW1wbG95ZWVzXX0sXHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmF0aW9uYWxJRCcsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdOYXRpb25hbCBJRCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2dlbmRlcicsIGFsaWFzOiAnR2VuZGVyJywgdHlwZTogJ3NlbGVjdCcsIG9wdGlvbnM6IHRoaXMuZ2VuZGVycywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnZmlyc3ROYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdsYXN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnZGF0ZU9mQmlydGgnLCB0eXBlOiAnZGF0ZScsIGFsaWFzOiAnRGF0ZSBvZiBCaXJ0aCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtcGxveW1lbnREYXRlJywgdHlwZTogJ2RhdGUnLCBhbGlhczogJ0VtcGxveW1lbnQgRGF0ZScsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlcGFydG1lbnRJRCcsIGFsaWFzOiAnRGVwYXJ0bWVudCcsIHR5cGU6ICdzZWxlY3QnLCBsb2FkQWN0aW9uIDogeyB1cmwgOiAnZGVwYXJ0bWVudHMvbGlzdC94J30sIGRldGFpbHNDb25maWc6IHRoaXMuZGVwYXJ0bWVudERldGFpbHNDb25maWcgfSxcclxuICAgICAgeyBuYW1lOiAncG9zaXRpb25JRCcsIGFsaWFzOiAnUG9zaXRpb24nLCB0eXBlOiAnc2VsZWN0JywgbG9hZEFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnMvbGlzdC94JyB9LCBtYXN0ZXJGaWVsZDogJ2RlcGFydG1lbnRJRCcsIGRldGFpbHNDb25maWc6IHRoaXMucG9zaXRpb25EZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtcGxveW1lbnRTdGF0dXMnLCBhbGlhczogJ0VtcGxveW1lbnQgU3RhdHVzJywgdHlwZTogJ3NlbGVjdCcsIGxvYWRBY3Rpb246IHsgdXJsOiAnZW1wbG95ZWVzL2xpc3QvZW1wbG95bWVudC1zdGF0dXMnIH0gfSxcclxuICAgICAgeyBuYW1lOiAnYWN0aXZlU3RhdHVzJywgYWxpYXM6ICdBY3RpdmUgU3RhdHVzJywgdHlwZTogJ3NlbGVjdCcsIGxvYWRBY3Rpb246IHsgdXJsOiAnZW1wbG95ZWVzL2xpc3QvYWN0aXZlLXN0YXR1cycgfSB9LFxyXG4gICAgICB7IG5hbWU6ICd1c2VyTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdVc2VyJywgbG9hZEFjdGlvbjogeyB1cmw6ICd1c2VyL2xpc3QveCcgfSwgb3B0aW9uRGlzcGxheTogJ25hbWUnLCBvcHRpb25WYWx1ZTogJ3ZhbHVlJyB9LFxyXG4gICAgICB7IG5hbWU6ICdhZGRyZXNzJywgdHlwZTogJ3RleHQnLCByb3dzOiAyLCBzcGFuOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bob25lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25vdGUnLCB0eXBlOiAndGV4dCcsIHJvd3M6IDIsIHNwYW46IHRydWUgfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy9pZCcgfSxcclxuICAgIGhlcm9GaWVsZDogJ2VtcGxveWVlSUQnXHJcbiAgfVxyXG5cclxuICBlbXBsb3llZVRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnLCAnZGVwYXJ0bWVudE5hbWUnLCAncG9zaXRpb25OYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdnZW5kZXJOYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ0dlbmRlcicgfSxcclxuICAgICAgeyBuYW1lOiAnZGVwYXJ0bWVudE5hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnRGVwYXJ0bWVudCcgfSxcclxuICAgICAgeyBuYW1lOiAncG9zaXRpb25OYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ1Bvc2l0aW9uJyB9LFxyXG4gICAgICB7IG5hbWU6ICdlbXBsb3ltZW50U3RhdHVzTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdFbXBsb3ltZW50IFN0YXR1cycgfSxcclxuICAgICAgeyBuYW1lOiAnYWN0aXZlU3RhdHVzTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdBY3RpdmUgU3RhdHVzJyB9LFxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0NyZWF0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcz9hY3Rpb249Y3JlYXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICd2aWV3JywgZGlhbG9nOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnZW1wbG95ZWVzL2FsbC94JyB9LFxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5lbXBsb3llZUZvcm1Db25maWdcclxuICB9XHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tUG9zaXRpb25zLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHBvc2l0aW9uc1RhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdkZXBhcnRtZW50TmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0NyZWF0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3Bvc2l0aW9ucz9hY3Rpb249Y3JlYXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3ZpZXcnLFxyXG4gICAgICAgIGRpYWxvZzogdHJ1ZSxcclxuICAgICAgICBkZXRhaWxzQ29uZmlnOiB7XHJcbiAgICAgICAgICBmb3JtQ29uZmlnOiB0aGlzLnBvc2l0aW9uRm9ybUNvbmZpZyAsXHJcbiAgICAgICAgICBoZXJvRmllbGQ6ICdwb3NpdGlvbklEJyxcclxuICAgICAgICAgIGJ1dHRvbnM6IFt0aGlzLmVkaXRQb3NpdGlvbkJ1dHRvbl0sXHJcbiAgICAgICAgICB0YWJsZUNvbmZpZ3M6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMuZW1wbG95ZWVUYWJsZUNvbmZpZyxcclxuICAgICAgICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy94L3gnIH0sIGxvYWRDcml0ZXJpYTogJ3Bvc2l0aW9uJywgbG9hZElERmllbGQ6ICdwb3NpdGlvbklEJyxcclxuICAgICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmVtcGxveWVlVGFibGVDb25maWcuY29sdW1ucy5maWx0ZXIoeCA9PiBbJ2RlcGFydG1lbnROYW1lJywgJ3Bvc2l0aW9uTmFtZSddLmluY2x1ZGVzKHgubmFtZSkgPT0gZmFsc2UpLFxyXG4gICAgICAgICAgICAgIHRhYlRpdGxlOiAnRW1wbG95ZWVzJyxcclxuICAgICAgICAgICAgICBlbGV2YXRpb246ICdub25lJyxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuZWRpdFBvc2l0aW9uQnV0dG9uLFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3Bvc2l0aW9ucy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMucG9zaXRpb25Gb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLURlcGFydG1lbnRzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICBkZXBhcnRtZW50VGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIC8vIHsgbmFtZTogJ2RlcGFydG1lbnRJRCcsIHR5cGU6ICdudW1iZXInLCBhbGlhczogJ0lEJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQ3JlYXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZGVwYXJ0bWVudHM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICd2aWV3JyxcclxuICAgICAgICBkaWFsb2c6IHRydWUsXHJcbiAgICAgICAgZGV0YWlsc0NvbmZpZzoge1xyXG4gICAgICAgICAgZm9ybUNvbmZpZzogdGhpcy5kZXBhcnRtZW50Rm9ybUNvbmZpZyxcclxuICAgICAgICAgIGhlcm9GaWVsZDogJ2RlcGFydG1lbnRJRCcsXHJcbiAgICAgICAgICBidXR0b25zOiBbdGhpcy5lZGl0RGVwYXJ0bWVudEJ1dHRvbl0sXHJcbiAgICAgICAgICB0YWJsZUNvbmZpZ3M6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMuZW1wbG95ZWVUYWJsZUNvbmZpZyxcclxuICAgICAgICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy94L3gnIH0sIGxvYWRDcml0ZXJpYTogJ2RlcGFydG1lbnQnLCBsb2FkSURGaWVsZDogJ2RlcGFydG1lbnRJRCcsXHJcbiAgICAgICAgICAgICAgY29sdW1uczogdGhpcy5lbXBsb3llZVRhYmxlQ29uZmlnLmNvbHVtbnMuZmlsdGVyKHggPT4gWydkZXBhcnRtZW50TmFtZScsICdwb3NpdGlvbk5hbWUnXS5pbmNsdWRlcyh4Lm5hbWUpID09IGZhbHNlKSxcclxuICAgICAgICAgICAgICB0YWJUaXRsZTogJ0VtcGxveWVlcycsXHJcbiAgICAgICAgICAgICAgZWxldmF0aW9uOiAnbm9uZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBvc2l0aW9uc1RhYmxlQ29uZmlnLFxyXG4gICAgICAgICAgICAgIGxvYWRBY3Rpb246IHsgdXJsOiAncG9zaXRpb25zL3gveCcgfSwgbG9hZENyaXRlcmlhOiAnZGVwYXJ0bWVudCcsIGxvYWRJREZpZWxkOiAnZGVwYXJ0bWVudElEJyxcclxuICAgICAgICAgICAgICB0YWJUaXRsZTogJ1Bvc2l0aW9ucycsXHJcbiAgICAgICAgICAgICAgZWxldmF0aW9uOiAnbm9uZScsXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGhpcy5lZGl0RGVwYXJ0bWVudEJ1dHRvbixcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZGVwYXJ0bWVudHM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzL2FsbC94JyB9LFxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5kZXBhcnRtZW50Rm9ybUNvbmZpZ1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1Db250YWN0IFBlcnNvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgY29udGFjdFBlcnNvbkZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcbiAgICB0aXRsZTogJ0NvbnRhY3QgUGVyc29uJyxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCBzcGFuIDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdtb2JpbGUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY29udGFjdE1ldGhvZHMnLCB0eXBlOiAnY29tcG9zaXRlJywgc3BhbjogdHJ1ZSwgc3ViZmllbGRzIDpbXHJcbiAgICAgICAgeyBuYW1lOiAnY2FuQ2FsbCcsIHR5cGU6ICdjaGVja2JveCcsIGFsaWFzOiAnQ2FsbCcgfSxcclxuICAgICAgICB7IG5hbWU6ICdjYW5TTVMnLCB0eXBlOiAnY2hlY2tib3gnLCBhbGlhczogJ1NNUycgfSxcclxuICAgICAgICB7IG5hbWU6ICdjYW5XaGF0c0FwcCcsIHR5cGU6ICdjaGVja2JveCcsIGFsaWFzOiAnV2hhdHNBcHAnIH1cclxuICAgICAgXSB9LFxyXG5cclxuICAgIF0sXHJcbiAgICByZXNldDogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIGNvbnRhY3RQZXJzb25UYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICB0YWJUaXRsZTogJ0NvbnRhY3RzJyxcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnLCAnY29udGFjdE1ldGhvZHMnXSxcclxuICAgIGVsZXZhdGlvbjogJ25vbmUnLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIH0sXHJcbiAgICAgIHsgbmFtZTogJ21vYmlsZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdlbWFpbCcsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NvbnRhY3RNZXRob2RzJyxcclxuICAgICAgICB0eXBlOiAnaWNvbicsXHJcbiAgICAgICAgaWNvbnM6IFtcclxuICAgICAgICAgIHsgbmFtZTogJ2NhbGwnLCBjb2xvcjogJ2dyZWVuJywgY29uZGl0aW9uOiB4ID0+IHguY2FuQ2FsbCwgdGlwOiAnQXZhaWxhYmxlIGZvciBDYWxscycgfSxcclxuICAgICAgICAgIHsgbmFtZTogJ3NtcycsIGNvbG9yOiAnZ3JlZW4nLCBjb25kaXRpb246IHggPT4geC5jYW5TTVMsIHRpcDogJ0F2YWlsYWJsZSBmb3IgU01TJyB9LFxyXG4gICAgICAgICAgeyBuYW1lOiAnZm9ydW0nLCBjb2xvcjogJ2dyZWVuJywgY29uZGl0aW9uOiB4ID0+IHguY2FuV2hhdHNBcHAsIHRpcDogJ0F2YWlsYWJsZSBvbiBXaGF0c0FwcCcgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0FkZCcsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2NvbnRhY3RwZXJzb25zP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9LCBjb25maXJtOiB7IG1lc3NhZ2U6ICdBZGQgY29udGFjdCBwZXJzb24/JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdjb250YWN0cGVyc29ucz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnY29udGFjdHBlcnNvbnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfVxyXG4gICAgXSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuY29udGFjdFBlcnNvbkZvcm1Db25maWdcclxuICB9O1xyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUN1c3RvbWVycy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBjdXN0b21lckZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcblxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bob25lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NvbnRhY3RQZXJzb24nLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnYWRkcmVzcycsIHR5cGU6ICd0ZXh0Jywgcm93czogMiwgc3BhbjogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdjdXN0b21lclRlbmFudElEJywgYWxpYXM6ICdDdXN0b21lciBUZW5hbnQnLCB0eXBlOiAndGV4dCcsIGxvYWRBY3Rpb246IHsgdXJsOiAndGVuYW50cy9saXN0L3gnIH0gLCBudWxsYWJsZTogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuICB9XHJcblxyXG4gIGN1c3RvbWVyRWRpdEJ1dHRvbjogQnV0dG9uID0geyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2N1c3RvbWVycz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnIH0gfVxyXG5cclxuICBjdXN0b21lckRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnIDogdGhpcy5jdXN0b21lckZvcm1Db25maWcsXHJcbiAgICBoZXJvRmllbGQgOiAnY3VzdG9tZXJJRCcsXHJcbiAgICB0YWJsZUNvbmZpZ3M6IFtcclxuICAgICAge1xyXG4gICAgICAgIC4uLnRoaXMuY29udGFjdFBlcnNvblRhYmxlQ29uZmlnLFxyXG4gICAgICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnY29udGFjdHBlcnNvbnMvY3VzdG9tZXIveCcgfSxcclxuICAgICAgICBsb2FkQ3JpdGVyaWE6ICdjdXN0b21lcicsXHJcbiAgICAgICAgbG9hZElERmllbGQ6ICdjdXN0b21lcklEJ1xyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczogW3RoaXMuY3VzdG9tZXJFZGl0QnV0dG9uXVxyXG4gIH07XHJcblxyXG4gIGN1c3RvbWVyc1RhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncGhvbmUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY29udGFjdFBlcnNvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdpc0xpbmtlZCcsIHR5cGU6ICdjaGVja2JveCcsIGFsaWFzOiAnTGlua2VkJyB9LFxyXG5cclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQ3JlYXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnY3VzdG9tZXJzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMuY3VzdG9tZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMuY3VzdG9tZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2N1c3RvbWVycz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2N1c3RvbWVycy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuY3VzdG9tZXJGb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVN1cHBsaWVycy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBzdXBwbGllckZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcblxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bob25lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NvbnRhY3RQZXJzb24nLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnYWRkcmVzcycsIHR5cGU6ICd0ZXh0Jywgcm93czogMiwgc3BhbjogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuICB9XHJcblxyXG4gIHN1cHBsaWVyRWRpdEJ1dHRvbiA6IEJ1dHRvbiA9IHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdzdXBwbGllcnM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH1cclxuXHJcbiAgc3VwcGxpZXJEZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZm9ybUNvbmZpZyA6IHRoaXMuc3VwcGxpZXJGb3JtQ29uZmlnLFxyXG4gICAgaGVyb0ZpZWxkIDogJ3N1cHBsaWVySUQnLFxyXG4gICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICAuLi50aGlzLmNvbnRhY3RQZXJzb25UYWJsZUNvbmZpZyxcclxuICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2NvbnRhY3RwZXJzb25zL3N1cHBsaWVyL3gnIH0sXHJcbiAgICAgICAgbG9hZENyaXRlcmlhOiAnc3VwcGxpZXInLFxyXG4gICAgICAgIGxvYWRJREZpZWxkOiAnc3VwcGxpZXJJRCdcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnMgOiBbdGhpcy5zdXBwbGllckVkaXRCdXR0b25dXHJcbiAgfTtcclxuXHJcbiAgc3VwcGxpZXJzVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncGhvbmUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY29udGFjdFBlcnNvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdzdXBwbGllcnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0sfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogdGhpcy5zdXBwbGllckRldGFpbHNDb25maWcgfSxcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgIGRldGFpbHNDb25maWc6IHRoaXMuc3VwcGxpZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3N1cHBsaWVycz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3N1cHBsaWVycy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuc3VwcGxpZXJGb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5vdGlmaWNhdGlvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIG5vdGlmaWNhdGlvbk9wdGlvbnMgPSBbXHJcbiAgICB7IG5hbWU6ICdVSSBPbmx5JywgdmFsdWU6IDEgfSxcclxuICAgIHsgbmFtZTogJ1VJICsgRW1haWwnLCB2YWx1ZTogMyB9LFxyXG4gICAgeyBuYW1lOiAnVUkgKyBFbWFpbCArIFNNUycsIHZhbHVlOiA3IH0sXHJcbiAgICB7IG5hbWU6ICdBbGwgQ2hhbm5lbHMnLCB2YWx1ZTogMTUgfVxyXG4gIF1cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tT3RoZXIgY29kZVxyXG5cclxuICBwcml2YXRlIGxpc3RDYWNoZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIHByaXZhdGUgY2FjaGVEdXJhdGlvbiA9IDUgKiA2MCAqIDEwMDA7XHJcbiAgcHJpdmF0ZSBjYWNoZVRpbWVzdGFtcHM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgcHVibGljIENhbGxBcGkoYWN0aW9uOiBBY3Rpb24sIGRhdGE6IGFueSA9ICcnICkge1xyXG5cclxuICAgIGlmIChhY3Rpb24udXJsLmluY2x1ZGVzKCcvbGlzdC8nKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVMaXN0Q2FsbChhY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghYWN0aW9uLm1ldGhvZCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChhY3Rpb24udXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihhY3Rpb24ubWV0aG9kID09J2dldCcpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoYWN0aW9uLnVybCk7XHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbi5tZXRob2QgPT0gJ3Bvc3QnKXtcclxuXHJcbiAgICAgIGlmIChhY3Rpb24uaXNGb3JtRGF0YSB8fCBhY3Rpb24udXJsLmluY2x1ZGVzKCcvZm9ybScpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdF9Gb3JtRGF0YShhY3Rpb24udXJsLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhY3Rpb24udXJsID09ICdhcHByb3ZlJyB8fCBhY3Rpb24udXJsID09ICdkZWNsaW5lJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoYCR7ZGF0YS5lbmRwb2ludH0vYXBwcm92ZT9hY3Rpb249JHthY3Rpb24udXJsfWAsIGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChhY3Rpb24udXJsLCBkYXRhKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KGFjdGlvbi51cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTGlzdENhbGwoYWN0aW9uOiBBY3Rpb24pIHtcclxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYWN0aW9uLnVybDtcclxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICAvLyBSZXR1cm4gY2FjaGUgaWYgdmFsaWQgYW5kIG5vdCBmb3JjaW5nIHJlZnJlc2hcclxuICAgIGlmICghYWN0aW9uLnNraXBDYWNoZSAmJiB0aGlzLmxpc3RDYWNoZVtjYWNoZUtleV0gJiYgY3VycmVudFRpbWUgLSB0aGlzLmNhY2hlVGltZXN0YW1wc1tjYWNoZUtleV0gPCB0aGlzLmNhY2hlRHVyYXRpb24pIHtcclxuICAgICAgcmV0dXJuIG9mKHtcclxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHRoaXMubGlzdENhY2hlW2NhY2hlS2V5XVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBNYWtlIEFQSSBjYWxsIGFuZCBjYWNoZSByZXN1bHRcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChhY3Rpb24udXJsKS5waXBlKFxyXG4gICAgICB0YXAoKHJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RDYWNoZVtjYWNoZUtleV0gPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jYWNoZVRpbWVzdGFtcHNbY2FjaGVLZXldID0gY3VycmVudFRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIE1ldGhvZCB0byBpbnZhbGlkYXRlIGNhY2hlIG9uIGRhdGEgY2hhbmdlXHJcbiAgcHVibGljIGludmFsaWRhdGVMaXN0Q2FjaGUoZW50aXR5VXJsOiBzdHJpbmcpIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMubGlzdENhY2hlKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIC8vIEludmFsaWRhdGUgYW55IGNhY2hlIGVudHJpZXMgcmVsYXRlZCB0byB0aGlzIGVudGl0eVxyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKGVudGl0eVVybCkpIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5saXN0Q2FjaGVba2V5XTtcclxuICAgICAgICBkZWxldGUgdGhpcy5jYWNoZVRpbWVzdGFtcHNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xlYXJDYWNoZSgpe1xyXG4gICAgdGhpcy5saXN0Q2FjaGUgPSB7fTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2hlY2tXZWxjb21lZChwYXRoOiBzdHJpbmcgPSAnaG9tZS9hZG1pbi93ZWxjb21lJykge1xyXG4gICAgdGhpcy5DYWxsQXBpKHsgdXJsOiAndGVuYW50L3dlbGNvbWUveCcgfSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy5OYXZpZ2F0ZShwYXRoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgTmF2aWdhdGUocGF0aDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aF0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE5hdmlnYXRlV2l0aFZhbHVlKHBhdGg6IHN0cmluZywgdmFsdWUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHY6IHZhbHVlIH0sXHJcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE5hdmlnYXRpb25WYWx1ZSgpe1xyXG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJ2XCJdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInZcIl1cclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0bXBBY2NvdW50SUQ7XHJcblxyXG5cclxuXHJcbiAgLy9Vc2Vyc1xyXG4gIHB1YmxpYyBHZXRVc2VyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuR2V0KFwiVXNlci9hbGwveFwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZWdpc3RlckFjY291bnQodSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvcmVnaXN0ZXJcIiwgdSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VXNlckJ5SUQodmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChgVXNlci9pZC8ke3ZhbH1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVVc2VyKHByb2ZpbGUpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2VkaXRcIiwgcHJvZmlsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVW5sb2NrVXNlcih1c2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci91bmxvY2tcIiwgdXNlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9ja1VzZXIodXNlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvbG9ja1wiLCB1c2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEZWxldGVVc2VyKHVzZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2RlbGV0ZVwiLCB1c2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dpbih1OiBVc2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9sb2dpblwiLCB1KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDaGFuZ2VQYXNzd29yZCh1KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9jaGFuZ2VwYXNzd29yZC1zZWxmXCIsIHUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENoYW5nZVBhc3N3b3JkQWRtaW4odSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvY2hhbmdlcGFzc3dvcmQtYWRtaW5cIiwgdSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZlJlc2V0KHU6IFVzZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIkJhc2ljL1NlbGZSZXNldFwiLCB1KTtcclxuICB9XHJcblxyXG5cclxuICAvL1JvbGVzXHJcblxyXG4gIHB1YmxpYyBQb3N0Um9sZShyb2xlLCBhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChgUm9sZT9hY3Rpb249JHthY3Rpb259YCwgcm9sZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHV0Um9sZShyb2xlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5QdXQoXCJSb2xlXCIsIHJvbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFJvbGUoYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIlJvbGUvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vTG9nc1xyXG4gIHB1YmxpYyBHZXRMb2coYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIkxvZy9hbGwveFwiKTtcclxuICB9XHJcblxyXG5cclxuICAvL1NldHRpbmdzXHJcbiAgcHVibGljIEdldFNldHRpbmcoYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIlNldHRpbmcvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlU2V0dGluZyhzZXR0aW5nLCBhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChgU2V0dGluZz9hY3Rpb249JHthY3Rpb259YCwgc2V0dGluZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
752
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUIsU0FBUyxFQUFVLE9BQU8sRUFBZ0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNuSSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFRNUQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsV0FBd0IsRUFBUyxNQUFjLEVBQVUsS0FBcUI7UUFBOUUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFpSWxHLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQU03RCxZQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDdEIsYUFBUSxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDdkIsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDekIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUM1QixhQUFRLEdB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O1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBYztRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsyR0FuNEJVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEFwaVJlc3BvbnNlLCBBcHBDb25maWcsIEJ1dHRvbiwgQ2FwSXRlbSwgRGV0YWlsc0RpYWxvZ0NvbmZpZywgRm9ybUNvbmZpZywgVGFibGVDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9MaWJDbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlTGliIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuXHJcbiAgICB0aGlzLmFwcENvbmZpZy5hcHBOYW1lID0gXCJBcHAtTmFtZVwiO1xyXG4gICAgdGhpcy5hcHBDb25maWcubG9nbyA9IFwiLi9hc3NldHMvbG9nby5wbmdcIlxyXG4gICAgdGhpcy5hcHBDb25maWcuQURBdXRoID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmFwcENvbmZpZy5jYXBJdGVtcyA9IFt0aGlzLmNhcE11bHRpdGVuYW50LCB0aGlzLmNhcEFkbWluLCB0aGlzLmNhcEhvbWVdO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcEhvbWUubmFtZSA9IFwiY2FwMVwiO1xyXG4gICAgdGhpcy5jYXBIb21lLmRpc3BsYXkgPSBcIkhvbWVcIjtcclxuICAgIHRoaXMuY2FwSG9tZS5saW5rID0gXCJob21lXCI7XHJcbiAgICB0aGlzLmNhcEhvbWUuaWNvbiA9XCJob21lXCI7XHJcblxyXG5cclxuICAgIHRoaXMuY2FwQWRtaW4ubmFtZSA9IFwiY2FwMlwiO1xyXG4gICAgdGhpcy5jYXBBZG1pbi5kaXNwbGF5ID0gXCJBZG1pblwiO1xyXG4gICAgdGhpcy5jYXBBZG1pbi5pY29uID0gXCJzZWN1cml0eVwiXHJcbiAgICB0aGlzLmNhcEFkbWluLmNhcFN1Ykl0ZW1zID0gW3RoaXMuY2FwVXNlcnMsIHRoaXMuY2FwUm9sZXMsIHRoaXMuY2FwTG9ncywgdGhpcy5jYXBTZXR0aW5ncywgdGhpcy5jYXBBcHByb3ZhbHNDb25maWddO1xyXG5cclxuICAgIHRoaXMuY2FwVXNlcnMubmFtZSA9IFwiY2FwM1wiO1xyXG4gICAgdGhpcy5jYXBVc2Vycy5kaXNwbGF5ID0gXCJVc2Vyc1wiO1xyXG4gICAgdGhpcy5jYXBVc2Vycy5saW5rID0gXCJob21lL2FkbWluL3VzZXJzXCI7XHJcbiAgICB0aGlzLmNhcFVzZXJzLmljb24gPSBcImdyb3VwXCI7XHJcblxyXG4gICAgdGhpcy5jYXBSb2xlcy5uYW1lID0gXCJjYXA0XCJcclxuICAgIHRoaXMuY2FwUm9sZXMuZGlzcGxheSA9IFwiUm9sZXNcIjtcclxuICAgIHRoaXMuY2FwUm9sZXMubGluayA9IFwiaG9tZS9hZG1pbi9yb2xlc1wiO1xyXG4gICAgdGhpcy5jYXBSb2xlcy5pY29uID0gXCJ3b3JrXCI7XHJcblxyXG4gICAgdGhpcy5jYXBMb2dzLm5hbWUgPSBcImNhcDVcIlxyXG4gICAgdGhpcy5jYXBMb2dzLmRpc3BsYXkgPSBcIkxvZ3NcIjtcclxuICAgIHRoaXMuY2FwTG9ncy5saW5rID0gXCJob21lL2FkbWluL2xvZ3NcIjtcclxuICAgIHRoaXMuY2FwTG9ncy5pY29uID0gXCJ0ZXh0X3NuaXBwZXRcIjtcclxuXHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLm5hbWUgPSBcImNhcDZcIlxyXG4gICAgdGhpcy5jYXBTZXR0aW5ncy5kaXNwbGF5ID0gXCJTZXR0aW5nc1wiO1xyXG4gICAgdGhpcy5jYXBTZXR0aW5ncy5saW5rID0gXCJob21lL2FkbWluL3NldHRpbmdzXCI7XHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLmljb24gPVwic2V0dGluZ3NcIjtcclxuXHJcblxyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5uYW1lID0gXCJjYXA3XCJcclxuICAgIHRoaXMuY2FwTXVsdGl0ZW5hbnQuZGlzcGxheSA9IFwiTXVsdGl0ZW5hbnRcIjtcclxuICAgIHRoaXMuY2FwTXVsdGl0ZW5hbnQuaWNvbiA9IFwiYXBhcnRtZW50XCJcclxuICAgIHRoaXMuY2FwTXVsdGl0ZW5hbnQuY2FwU3ViSXRlbXMgPSBbdGhpcy5jYXBUZW5hbnRzLCB0aGlzLmNhcE1lbWJlcnNoaXAsIHRoaXMuY2FwUGxhbnMgXTtcclxuXHJcbiAgICB0aGlzLmNhcFRlbmFudHMubmFtZSA9IFwiY2FwOFwiXHJcbiAgICB0aGlzLmNhcFRlbmFudHMuZGlzcGxheSA9IFwiVGVuYW50c1wiO1xyXG4gICAgdGhpcy5jYXBUZW5hbnRzLmxpbmsgPSBcImhvbWUvYWRtaW4vdGVuYW50c1wiO1xyXG5cclxuICAgIHRoaXMuY2FwTWVtYmVyc2hpcC5uYW1lID0gXCJjYXA5XCJcclxuICAgIHRoaXMuY2FwTWVtYmVyc2hpcC5kaXNwbGF5ID0gXCJNZW1iZXJzaGlwXCI7XHJcbiAgICB0aGlzLmNhcE1lbWJlcnNoaXAubGluayA9IFwiaG9tZS9hZG1pbi9tZW1iZXJzaGlwXCI7XHJcblxyXG4gICAgdGhpcy5jYXBQbGFucy5uYW1lID0gXCJjYXAxMFwiXHJcbiAgICB0aGlzLmNhcFBsYW5zLmRpc3BsYXkgPSBcIlBsYW5zXCI7XHJcbiAgICB0aGlzLmNhcFBsYW5zLmxpbmsgPSBcImhvbWUvYWRtaW4vcGxhbnNcIjtcclxuXHJcblxyXG4gICAgdGhpcy5jYXBHZW5lcmFsLm5hbWUgPSBcImNhcDExXCJcclxuICAgIHRoaXMuY2FwR2VuZXJhbC5kaXNwbGF5ID0gXCJHZW5lcmFsXCI7XHJcbiAgICB0aGlzLmNhcEdlbmVyYWwuY2FwU3ViSXRlbXMgPSBbdGhpcy5jYXBOb3RpZmljYXRpb25zLHRoaXMuY2FwQXBwcm92YWxzLHRoaXMuY2FwQ3VzdG9tZXJzLCB0aGlzLmNhcEludmVudG9yeSwgdGhpcy5jYXBBY2NvdW50cywgdGhpcy5jYXBTdXBwbGllcnMsIHRoaXMuY2FwVGFza3NdO1xyXG5cclxuICAgIHRoaXMuY2FwTm90aWZpY2F0aW9ucy5uYW1lID0gXCJjYXAxXCJcclxuICAgIHRoaXMuY2FwTm90aWZpY2F0aW9ucy5kaXNwbGF5ID0gXCJOb3RpZmljYXRpb25zXCI7XHJcbiAgICB0aGlzLmNhcE5vdGlmaWNhdGlvbnMubGluayA9IFwiaG9tZS9hZG1pbi9ub3RpZmljYXRpb25zXCI7XHJcbiAgICB0aGlzLmNhcE5vdGlmaWNhdGlvbnMuaWNvbiA9IFwibm90aWZpY2F0aW9uc1wiXHJcblxyXG4gICAgdGhpcy5jYXBDdXN0b21lcnMubmFtZSA9IFwiY2FwMTJcIlxyXG4gICAgdGhpcy5jYXBDdXN0b21lcnMuZGlzcGxheSA9IFwiQ3VzdG9tZXJzXCI7XHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5saW5rID0gXCJob21lL2FkbWluL2N1c3RvbWVyc1wiO1xyXG4gICAgdGhpcy5jYXBDdXN0b21lcnMuaWNvbiA9IFwiZ3JvdXBcIlxyXG5cclxuICAgIHRoaXMuY2FwSW52ZW50b3J5Lm5hbWUgPSBcImNhcDEzXCJcclxuICAgIHRoaXMuY2FwSW52ZW50b3J5LmRpc3BsYXkgPSBcIkludmVudG9yeVwiO1xyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkubGluayA9IFwiaG9tZS9hZG1pbi9pbnZlbnRvcnlcIjtcclxuICAgIHRoaXMuY2FwSW52ZW50b3J5Lmljb24gPSBcInN0b3JlZnJvbnRcIlxyXG5cclxuICAgIHRoaXMuY2FwQWNjb3VudHMubmFtZSA9IFwiY2FwMTRcIlxyXG4gICAgdGhpcy5jYXBBY2NvdW50cy5kaXNwbGF5ID0gXCJBY2NvdW50c1wiO1xyXG4gICAgdGhpcy5jYXBBY2NvdW50cy5saW5rID0gXCJob21lL2FkbWluL2FjY291bnRzXCI7XHJcbiAgICB0aGlzLmNhcEFjY291bnRzLmljb24gPSBcImFjY291bnRfYmFsYW5jZV93YWxsZXRcIlxyXG5cclxuICAgIHRoaXMuY2FwU3VwcGxpZXJzLm5hbWUgPSBcImNhcDE1XCJcclxuICAgIHRoaXMuY2FwU3VwcGxpZXJzLmRpc3BsYXkgPSBcIlN1cHBsaWVyc1wiO1xyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMubGluayA9IFwiaG9tZS9hZG1pbi9zdXBwbGllcnNcIjtcclxuICAgIHRoaXMuY2FwU3VwcGxpZXJzLmljb24gPSBcImdyb3Vwc1wiXHJcblxyXG4gICAgdGhpcy5jYXBUYXNrcy5uYW1lID0gXCJjYXAxNlwiXHJcbiAgICB0aGlzLmNhcFRhc2tzLmRpc3BsYXkgPSBcIlRhc2tzXCI7XHJcbiAgICB0aGlzLmNhcFRhc2tzLmxpbmsgPSBcImhvbWUvYWRtaW4vdGFza3NcIjtcclxuICAgIHRoaXMuY2FwVGFza3MuaWNvbiA9IFwiY2hlY2tfYm94XCJcclxuXHJcblxyXG4gICAgdGhpcy5jYXBIUi5uYW1lID0gXCJjYXAxN1wiXHJcbiAgICB0aGlzLmNhcEhSLmRpc3BsYXkgPSBcIkhSXCI7XHJcbiAgICB0aGlzLmNhcEhSLmxpbmsgPSBcImhvbWUvYWRtaW4vaHJcIjtcclxuICAgIHRoaXMuY2FwSFIuaWNvbiA9IFwiZGl2ZXJzaXR5XzNcIlxyXG4gICAgdGhpcy5jYXBIUi5jYXBTdWJJdGVtcyA9IFt0aGlzLmNhcERlcGFydG1lbnRzLCB0aGlzLmNhcFBvc2l0aW9ucywgdGhpcy5jYXBFbXBsb3llZXMsXVxyXG5cclxuICAgIHRoaXMuY2FwRW1wbG95ZWVzLm5hbWUgPSBcImNhcDE3XCJcclxuICAgIHRoaXMuY2FwRW1wbG95ZWVzLmRpc3BsYXkgPSBcIkVtcGxveWVlc1wiO1xyXG4gICAgdGhpcy5jYXBFbXBsb3llZXMubGluayA9IFwiaG9tZS9hZG1pbi9lbXBsb3llZXNcIjtcclxuICAgIHRoaXMuY2FwRW1wbG95ZWVzLmljb24gPSBcImdyb3VwXCJcclxuXHJcbiAgICB0aGlzLmNhcERlcGFydG1lbnRzLm5hbWUgPSBcImNhcDE3XCJcclxuICAgIHRoaXMuY2FwRGVwYXJ0bWVudHMuZGlzcGxheSA9IFwiRGVwYXJ0bWVudHNcIjtcclxuICAgIHRoaXMuY2FwRGVwYXJ0bWVudHMubGluayA9IFwiaG9tZS9hZG1pbi9kZXBhcnRtZW50c1wiO1xyXG4gICAgdGhpcy5jYXBEZXBhcnRtZW50cy5pY29uID0gXCJidXNpbmVzc19jZW50ZXJcIlxyXG5cclxuICAgIHRoaXMuY2FwUG9zaXRpb25zLm5hbWUgPSBcImNhcDE3XCJcclxuICAgIHRoaXMuY2FwUG9zaXRpb25zLmRpc3BsYXkgPSBcIlBvc2l0aW9uc1wiO1xyXG4gICAgdGhpcy5jYXBQb3NpdGlvbnMubGluayA9IFwiaG9tZS9hZG1pbi9wb3NpdGlvbnNcIjtcclxuICAgIHRoaXMuY2FwUG9zaXRpb25zLmljb24gPSBcInBpY3R1cmVfaW5fcGljdHVyZV9tZWRpdW1cIlxyXG5cclxuICAgIHRoaXMuY2FwQXBwcm92YWxzLm5hbWUgPSBcImNhcDE4XCJcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzLmRpc3BsYXkgPSBcIkFwcHJvdmFsc1wiO1xyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHMubGluayA9IFwiaG9tZS9hZG1pbi9hcHByb3ZhbHNcIjtcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzLmljb24gPSBcInJ1bGVcIlxyXG5cclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLm5hbWUgPSBcImNhcDE5XCJcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLmRpc3BsYXkgPSBcIkFwcHJvdmFscyBDb25maWdcIjtcclxuICAgIHRoaXMuY2FwQXBwcm92YWxzQ29uZmlnLmxpbmsgPSBcImhvbWUvYWRtaW4vYXBwcm92YWxzLWNvbmZpZ1wiO1xyXG4gICAgdGhpcy5jYXBBcHByb3ZhbHNDb25maWcuaWNvbiA9IFwicHVibGlzaGVkX3dpdGhfY2hhbmdlc1wiXHJcblxyXG5cclxuICB9XHJcblxyXG5cclxuICBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBhcHBDb25maWdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXBwQ29uZmlnKTtcclxuICBwdWJsaWMgYXBwQ29uZmlnT2JzZXJ2ID0gdGhpcy5hcHBDb25maWdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQXBwQ29uZmlnKGNvbmZpZzogQXBwQ29uZmlnKSB7XHJcbiAgICB0aGlzLmFwcENvbmZpZ1NvdXJjZS5uZXh0KGNvbmZpZyk7XHJcbiAgICB0aGlzLmFwcENvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIGNhcEhvbWUgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBZG1pbiA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFVzZXJzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwUm9sZXMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBMb2dzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwU2V0dGluZ3MgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgY2FwTXVsdGl0ZW5hbnQgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBUZW5hbnRzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwTWVtYmVyc2hpcCA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFBsYW5zID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEdlbmVyYWwgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBDdXN0b21lcnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBJbnZlbnRvcnkgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBY2NvdW50cyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFN1cHBsaWVycyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFRhc2tzID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEhSID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRW1wbG95ZWVzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRGVwYXJ0bWVudHMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBQb3NpdGlvbnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBHcmFkZXMgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgY2FwQXBwcm92YWxzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwQXBwcm92YWxzQ29uZmlnID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwTm90aWZpY2F0aW9ucyA9IG5ldyBDYXBJdGVtO1xyXG5cclxuICBwdWJsaWMgdG1wUHJvZmlsZXVzZXJOYW1lID0gXCJcIjtcclxuXHJcblxyXG4gIGlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLURlcGFydG1lbXRzIEZvcm0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgZGVwYXJ0bWVudEZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcbiAgICBzZWN1cml0eTogeyBhbGxvdzogW3RoaXMuY2FwRGVwYXJ0bWVudHNdIH0sXHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzL2lkJyB9LFxyXG4gICAgaGVyb0ZpZWxkOiAnZGVwYXJ0bWVudElEJ1xyXG4gIH1cclxuXHJcbiAgZWRpdERlcGFydG1lbnRCdXR0b246IEJ1dHRvbiA9IHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnLCBzdWNjZXNzTWVzc2FnZTogJ0VkaXRlZCBTdWNjZXNzZnVsbHknIH0gfVxyXG5cclxuICBkZXBhcnRtZW50RGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHRoaXMuZGVwYXJ0bWVudEZvcm1Db25maWcsXHJcbiAgICBoZXJvRmllbGQ6ICdkZXBhcnRtZW50SUQnLFxyXG4gICAgYnV0dG9uczogW3RoaXMuZWRpdERlcGFydG1lbnRCdXR0b25dLFxyXG4gIH1cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1Qb3NpdGlvbnMgRm9ybS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBwb3NpdGlvbkZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcbiAgICBzZWN1cml0eTogeyBhbGxvdzogW3RoaXMuY2FwUG9zaXRpb25zXSB9LFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogJ3RleHQnLCB9LFxyXG4gICAgICB7IG5hbWU6ICdkZXBhcnRtZW50SUQnLCBhbGlhczogJ0RlcGFydG1lbnQnLCB0eXBlOiAnc2VsZWN0JywgbG9hZEFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cy9saXN0L3gnIH0sIGRldGFpbHNDb25maWc6IHRoaXMuZGVwYXJ0bWVudERldGFpbHNDb25maWcgfSxcclxuXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnMvaWQnIH0sXHJcbiAgICBoZXJvRmllbGQ6ICdwb3NpdGlvbklEJ1xyXG4gIH1cclxuXHJcbiAgZWRpdFBvc2l0aW9uQnV0dG9uOiBCdXR0b24gPSB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAncG9zaXRpb25zP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcsIHN1Y2Nlc3NNZXNzYWdlOiAnRWRpdGVkIFN1Y2Nlc3NmdWxseScgfSB9XHJcblxyXG4gIHBvc2l0aW9uRGV0YWlsc0NvbmZpZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnIDogdGhpcy5wb3NpdGlvbkZvcm1Db25maWcsXHJcbiAgICBoZXJvRmllbGQgOiAncG9zaXRpb25JRCcsXHJcbiAgICBidXR0b25zOiBbdGhpcy5lZGl0UG9zaXRpb25CdXR0b25dLFxyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRW1wbG95ZWVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICBnZW5kZXJzID0gW1xyXG4gICAgeyBuYW1lOiAnTWFsZScsIHZhbHVlOiAxIH0sXHJcbiAgICB7IG5hbWU6ICdGZW1hbGUnLCB2YWx1ZTogMiB9XHJcbiAgXVxyXG5cclxuICBlbXBsb3llZUZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcbiAgICBzZWN1cml0eSA6IHthbGxvdyA6IFt0aGlzLmNhcEVtcGxveWVlc119LFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hdGlvbmFsSUQnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnTmF0aW9uYWwgSUQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdnZW5kZXInLCBhbGlhczogJ0dlbmRlcicsIHR5cGU6ICdzZWxlY3QnLCBvcHRpb25zOiB0aGlzLmdlbmRlcnMsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnbGFzdE5hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RhdGVPZkJpcnRoJywgdHlwZTogJ2RhdGUnLCBhbGlhczogJ0RhdGUgb2YgQmlydGgnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdlbXBsb3ltZW50RGF0ZScsIHR5cGU6ICdkYXRlJywgYWxpYXM6ICdFbXBsb3ltZW50IERhdGUnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZXBhcnRtZW50SUQnLCBhbGlhczogJ0RlcGFydG1lbnQnLCB0eXBlOiAnc2VsZWN0JywgbG9hZEFjdGlvbiA6IHsgdXJsIDogJ2RlcGFydG1lbnRzL2xpc3QveCd9LCBkZXRhaWxzQ29uZmlnOiB0aGlzLmRlcGFydG1lbnREZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bvc2l0aW9uSUQnLCBhbGlhczogJ1Bvc2l0aW9uJywgdHlwZTogJ3NlbGVjdCcsIGxvYWRBY3Rpb246IHsgdXJsOiAncG9zaXRpb25zL2xpc3QveCcgfSwgbWFzdGVyRmllbGQ6ICdkZXBhcnRtZW50SUQnLCBkZXRhaWxzQ29uZmlnOiB0aGlzLnBvc2l0aW9uRGV0YWlsc0NvbmZpZyB9LFxyXG4gICAgICB7IG5hbWU6ICdlbXBsb3ltZW50U3RhdHVzJywgYWxpYXM6ICdFbXBsb3ltZW50IFN0YXR1cycsIHR5cGU6ICdzZWxlY3QnLCBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy9saXN0L2VtcGxveW1lbnQtc3RhdHVzJyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ2FjdGl2ZVN0YXR1cycsIGFsaWFzOiAnQWN0aXZlIFN0YXR1cycsIHR5cGU6ICdzZWxlY3QnLCBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy9saXN0L2FjdGl2ZS1zdGF0dXMnIH0gfSxcclxuICAgICAgeyBuYW1lOiAndXNlck5hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnVXNlcicsIGxvYWRBY3Rpb246IHsgdXJsOiAndXNlci9saXN0L3gnIH0sIG9wdGlvbkRpc3BsYXk6ICduYW1lJywgb3B0aW9uVmFsdWU6ICd2YWx1ZScgfSxcclxuICAgICAgeyBuYW1lOiAnYWRkcmVzcycsIHR5cGU6ICd0ZXh0Jywgcm93czogMiwgc3BhbjogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdwaG9uZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdlbWFpbCcsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdub3RlJywgdHlwZTogJ3RleHQnLCByb3dzOiAyLCBzcGFuOiB0cnVlIH0sXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXMvaWQnIH0sXHJcbiAgICBoZXJvRmllbGQ6ICdlbXBsb3llZUlEJ1xyXG4gIH1cclxuXHJcbiAgZW1wbG95ZWVUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJywgJ2RlcGFydG1lbnROYW1lJywgJ3Bvc2l0aW9uTmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZ2VuZGVyTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdHZW5kZXInIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlcGFydG1lbnROYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ0RlcGFydG1lbnQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bvc2l0aW9uTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdQb3NpdGlvbicgfSxcclxuICAgICAgeyBuYW1lOiAnZW1wbG95bWVudFN0YXR1c05hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnRW1wbG95bWVudCBTdGF0dXMnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2FjdGl2ZVN0YXR1c05hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnQWN0aXZlIFN0YXR1cycgfSxcclxuICAgIF0sXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZW1wbG95ZWVzP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2VtcGxveWVlcy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuZW1wbG95ZWVGb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVBvc2l0aW9ucy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBwb3NpdGlvbnNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZGVzY3JpcHRpb24nLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZGVwYXJ0bWVudE5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICd2aWV3JyxcclxuICAgICAgICBkaWFsb2c6IHRydWUsXHJcbiAgICAgICAgZGV0YWlsc0NvbmZpZzoge1xyXG4gICAgICAgICAgZm9ybUNvbmZpZzogdGhpcy5wb3NpdGlvbkZvcm1Db25maWcgLFxyXG4gICAgICAgICAgaGVyb0ZpZWxkOiAncG9zaXRpb25JRCcsXHJcbiAgICAgICAgICBidXR0b25zOiBbdGhpcy5lZGl0UG9zaXRpb25CdXR0b25dLFxyXG4gICAgICAgICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLmVtcGxveWVlVGFibGVDb25maWcsXHJcbiAgICAgICAgICAgICAgbG9hZEFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXMveC94JyB9LCBsb2FkQ3JpdGVyaWE6ICdwb3NpdGlvbicsIGxvYWRJREZpZWxkOiAncG9zaXRpb25JRCcsXHJcbiAgICAgICAgICAgICAgY29sdW1uczogdGhpcy5lbXBsb3llZVRhYmxlQ29uZmlnLmNvbHVtbnMuZmlsdGVyKHggPT4gWydkZXBhcnRtZW50TmFtZScsICdwb3NpdGlvbk5hbWUnXS5pbmNsdWRlcyh4Lm5hbWUpID09IGZhbHNlKSxcclxuICAgICAgICAgICAgICB0YWJUaXRsZTogJ0VtcGxveWVlcycsXHJcbiAgICAgICAgICAgICAgZWxldmF0aW9uOiAnbm9uZScsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmVkaXRQb3NpdGlvbkJ1dHRvbixcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAncG9zaXRpb25zP2FjdGlvbj1kZWxldGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnMvYWxsL3gnIH0sXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLnBvc2l0aW9uRm9ybUNvbmZpZ1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1EZXBhcnRtZW50cy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgZGVwYXJ0bWVudFRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICAvLyB7IG5hbWU6ICdkZXBhcnRtZW50SUQnLCB0eXBlOiAnbnVtYmVyJywgYWxpYXM6ICdJRCcgfSxcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0NyZWF0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAndmlldycsXHJcbiAgICAgICAgZGlhbG9nOiB0cnVlLFxyXG4gICAgICAgIGRldGFpbHNDb25maWc6IHtcclxuICAgICAgICAgIGZvcm1Db25maWc6IHRoaXMuZGVwYXJ0bWVudEZvcm1Db25maWcsXHJcbiAgICAgICAgICBoZXJvRmllbGQ6ICdkZXBhcnRtZW50SUQnLFxyXG4gICAgICAgICAgYnV0dG9uczogW3RoaXMuZWRpdERlcGFydG1lbnRCdXR0b25dLFxyXG4gICAgICAgICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLmVtcGxveWVlVGFibGVDb25maWcsXHJcbiAgICAgICAgICAgICAgbG9hZEFjdGlvbjogeyB1cmw6ICdlbXBsb3llZXMveC94JyB9LCBsb2FkQ3JpdGVyaWE6ICdkZXBhcnRtZW50JywgbG9hZElERmllbGQ6ICdkZXBhcnRtZW50SUQnLFxyXG4gICAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuZW1wbG95ZWVUYWJsZUNvbmZpZy5jb2x1bW5zLmZpbHRlcih4ID0+IFsnZGVwYXJ0bWVudE5hbWUnLCAncG9zaXRpb25OYW1lJ10uaW5jbHVkZXMoeC5uYW1lKSA9PSBmYWxzZSksXHJcbiAgICAgICAgICAgICAgdGFiVGl0bGU6ICdFbXBsb3llZXMnLFxyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbjogJ25vbmUnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wb3NpdGlvbnNUYWJsZUNvbmZpZyxcclxuICAgICAgICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3Bvc2l0aW9ucy94L3gnIH0sIGxvYWRDcml0ZXJpYTogJ2RlcGFydG1lbnQnLCBsb2FkSURGaWVsZDogJ2RlcGFydG1lbnRJRCcsXHJcbiAgICAgICAgICAgICAgdGFiVGl0bGU6ICdQb3NpdGlvbnMnLFxyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbjogJ25vbmUnLFxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuZWRpdERlcGFydG1lbnRCdXR0b24sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzP2FjdGlvbj1kZWxldGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuZGVwYXJ0bWVudEZvcm1Db25maWdcclxuICB9XHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQ29udGFjdCBQZXJzb25zLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGNvbnRhY3RQZXJzb25Gb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgdGl0bGU6ICdDb250YWN0IFBlcnNvbicsXHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0Jywgc3BhbiA6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnbW9iaWxlJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NvbnRhY3RNZXRob2RzJywgdHlwZTogJ2NvbXBvc2l0ZScsIHNwYW46IHRydWUsIHN1YmZpZWxkcyA6W1xyXG4gICAgICAgIHsgbmFtZTogJ2NhbkNhbGwnLCB0eXBlOiAnY2hlY2tib3gnLCBhbGlhczogJ0NhbGwnIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnY2FuU01TJywgdHlwZTogJ2NoZWNrYm94JywgYWxpYXM6ICdTTVMnIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnY2FuV2hhdHNBcHAnLCB0eXBlOiAnY2hlY2tib3gnLCBhbGlhczogJ1doYXRzQXBwJyB9XHJcbiAgICAgIF0gfSxcclxuXHJcbiAgICBdLFxyXG4gICAgcmVzZXQ6IHRydWVcclxuICB9O1xyXG5cclxuICBjb250YWN0UGVyc29uVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgdGFiVGl0bGU6ICdDb250YWN0cycsXHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJywgJ2NvbnRhY3RNZXRob2RzJ10sXHJcbiAgICBlbGV2YXRpb246ICdub25lJyxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCB9LFxyXG4gICAgICB7IG5hbWU6ICdtb2JpbGUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdjb250YWN0TWV0aG9kcycsXHJcbiAgICAgICAgdHlwZTogJ2ljb24nLFxyXG4gICAgICAgIGljb25zOiBbXHJcbiAgICAgICAgICB7IG5hbWU6ICdjYWxsJywgY29sb3I6ICdncmVlbicsIGNvbmRpdGlvbjogeCA9PiB4LmNhbkNhbGwsIHRpcDogJ0F2YWlsYWJsZSBmb3IgQ2FsbHMnIH0sXHJcbiAgICAgICAgICB7IG5hbWU6ICdzbXMnLCBjb2xvcjogJ2dyZWVuJywgY29uZGl0aW9uOiB4ID0+IHguY2FuU01TLCB0aXA6ICdBdmFpbGFibGUgZm9yIFNNUycgfSxcclxuICAgICAgICAgIHsgbmFtZTogJ2ZvcnVtJywgY29sb3I6ICdncmVlbicsIGNvbmRpdGlvbjogeCA9PiB4LmNhbldoYXRzQXBwLCB0aXA6ICdBdmFpbGFibGUgb24gV2hhdHNBcHAnIH1cclxuICAgICAgICBdXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdBZGQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdjb250YWN0cGVyc29ucz9hY3Rpb249Y3JlYXRlJywgbWV0aG9kOiAncG9zdCcgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnQWRkIGNvbnRhY3QgcGVyc29uPycgfSB9LFxyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnY29udGFjdHBlcnNvbnM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2NvbnRhY3RwZXJzb25zP2FjdGlvbj1kZWxldGUnLCBtZXRob2Q6ICdwb3N0JyB9IH1cclxuICAgIF0sXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLmNvbnRhY3RQZXJzb25Gb3JtQ29uZmlnXHJcbiAgfTtcclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1DdXN0b21lcnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgY3VzdG9tZXJGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdwaG9uZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdjb250YWN0UGVyc29uJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2FkZHJlc3MnLCB0eXBlOiAndGV4dCcsIHJvd3M6IDIsIHNwYW46IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnY3VzdG9tZXJUZW5hbnRJRCcsIGFsaWFzOiAnQ3VzdG9tZXIgVGVuYW50JywgdHlwZTogJ3RleHQnLCBsb2FkQWN0aW9uOiB7IHVybDogJ3RlbmFudHMvbGlzdC94JyB9ICwgbnVsbGFibGU6IHRydWUgfSxcclxuICAgIF0sXHJcblxyXG4gICAgcmVzZXQ6IHRydWUsXHJcbiAgfVxyXG5cclxuICBjdXN0b21lckVkaXRCdXR0b246IEJ1dHRvbiA9IHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdjdXN0b21lcnM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH1cclxuXHJcbiAgY3VzdG9tZXJEZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZm9ybUNvbmZpZyA6IHRoaXMuY3VzdG9tZXJGb3JtQ29uZmlnLFxyXG4gICAgaGVyb0ZpZWxkIDogJ2N1c3RvbWVySUQnLFxyXG4gICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICAuLi50aGlzLmNvbnRhY3RQZXJzb25UYWJsZUNvbmZpZyxcclxuICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2NvbnRhY3RwZXJzb25zL2N1c3RvbWVyL3gnIH0sXHJcbiAgICAgICAgbG9hZENyaXRlcmlhOiAnY3VzdG9tZXInLFxyXG4gICAgICAgIGxvYWRJREZpZWxkOiAnY3VzdG9tZXJJRCdcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFt0aGlzLmN1c3RvbWVyRWRpdEJ1dHRvbl1cclxuICB9O1xyXG5cclxuICBjdXN0b21lcnNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGxvZ1Jlc3BvbnNlOiB0cnVlLFxyXG4gICAgbWF4QnV0dG9uc0NvdW50OiAzLFxyXG4gICAgY29sbGFwc2VCdXR0b25zIDogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncGhvbmUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY29udGFjdFBlcnNvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdpc0xpbmtlZCcsIHR5cGU6ICdjaGVja2JveCcsIGFsaWFzOiAnTGlua2VkJyB9LFxyXG5cclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQ3JlYXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnY3VzdG9tZXJzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMuY3VzdG9tZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMuY3VzdG9tZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2N1c3RvbWVycz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2N1c3RvbWVycy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuY3VzdG9tZXJGb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVN1cHBsaWVycy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBzdXBwbGllckZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcblxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bob25lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NvbnRhY3RQZXJzb24nLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnYWRkcmVzcycsIHR5cGU6ICd0ZXh0Jywgcm93czogMiwgc3BhbjogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuICB9XHJcblxyXG4gIHN1cHBsaWVyRWRpdEJ1dHRvbiA6IEJ1dHRvbiA9IHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdzdXBwbGllcnM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH1cclxuXHJcbiAgc3VwcGxpZXJEZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZm9ybUNvbmZpZyA6IHRoaXMuc3VwcGxpZXJGb3JtQ29uZmlnLFxyXG4gICAgaGVyb0ZpZWxkIDogJ3N1cHBsaWVySUQnLFxyXG4gICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICAuLi50aGlzLmNvbnRhY3RQZXJzb25UYWJsZUNvbmZpZyxcclxuICAgICAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2NvbnRhY3RwZXJzb25zL3N1cHBsaWVyL3gnIH0sXHJcbiAgICAgICAgbG9hZENyaXRlcmlhOiAnc3VwcGxpZXInLFxyXG4gICAgICAgIGxvYWRJREZpZWxkOiAnc3VwcGxpZXJJRCdcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnMgOiBbdGhpcy5zdXBwbGllckVkaXRCdXR0b25dXHJcbiAgfTtcclxuXHJcbiAgc3VwcGxpZXJzVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncGhvbmUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY29udGFjdFBlcnNvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdzdXBwbGllcnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0sfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogdGhpcy5zdXBwbGllckRldGFpbHNDb25maWcgfSxcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgIGRldGFpbHNDb25maWc6IHRoaXMuc3VwcGxpZXJEZXRhaWxzQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3N1cHBsaWVycz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3N1cHBsaWVycy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMuc3VwcGxpZXJGb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5vdGlmaWNhdGlvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIG5vdGlmaWNhdGlvbk9wdGlvbnMgPSBbXHJcbiAgICB7IG5hbWU6ICdVSSBPbmx5JywgdmFsdWU6IDEgfSxcclxuICAgIHsgbmFtZTogJ1VJICsgRW1haWwnLCB2YWx1ZTogMyB9LFxyXG4gICAgeyBuYW1lOiAnVUkgKyBFbWFpbCArIFNNUycsIHZhbHVlOiA3IH0sXHJcbiAgICB7IG5hbWU6ICdBbGwgQ2hhbm5lbHMnLCB2YWx1ZTogMTUgfVxyXG4gIF1cclxuXHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQXBwcm92YWxzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvL0FwcHJvdmFsIEhpc3RvcnlcclxuICBhcHByb3ZhbEhpc3RvcnlUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICB0YWJUaXRsZTogJ1RyYWlsJyxcclxuICAgIGVsZXZhdGlvbjogJ25vbmUnLFxyXG4gICAgbWluQ29sdW1uczogWydsZXZlbE5hbWUnLCAnc3RhdHVzJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlZERhdGUnLCB0eXBlOiAnZGF0ZXRpbWUnLCBhbGlhcyA6ICdEYXRlJyB9LFxyXG4gICAgICB7IG5hbWU6ICdsZXZlbE5hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnTGV2ZWwnIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnc3RhdHVzTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdTdGF0dXMnLFxyXG4gICAgICAgIGNvbG9yczogW1xyXG4gICAgICAgICAgeyBuYW1lOiAnIzkwQTRBRScsIGNvbmRpdGlvbjogeCA9PiB4LnN0YXR1cyA9PT0gMCB9LFxyXG4gICAgICAgICAgeyBuYW1lOiAnIzY2QkI2QScsIGNvbmRpdGlvbjogeCA9PiB4LnN0YXR1cyA9PT0gMSB9LFxyXG4gICAgICAgICAgeyBuYW1lOiAnI0Y0NDMzNicsIGNvbmRpdGlvbjogeCA9PiB4LnN0YXR1cyA9PT0gMiB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7IG5hbWU6ICdjb21tZW50cycsIHR5cGU6ICd0ZXh0JywgfSxcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlZEJ5TmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdCeScgfSxcclxuXHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczogW10sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2FwcHJvdmFsaGlzdG9yeS9hcHByb3ZhbC94JyB9LFxyXG4gICAgbG9hZENyaXRlcmlhOiAnYXBwcm92YWwnLFxyXG4gICAgbG9hZElERmllbGQ6ICdhcHByb3ZhbElEJ1xyXG4gIH07XHJcblxyXG5cclxuXHJcbiAgLy9hcHByb3ZhbHMgZm9ybVxyXG4gIGFwcHJvdmFsRm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIHRpdGxlOiAnQXBwcm92YWwnLFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ2JsYW5rJywgdHlwZTogJ2JsYW5rJywgc3BhbjogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdzdGF0dXNOYW1lJywgdHlwZTogJ2xhYmVsJywgYWxpYXM6ICdTdGF0dXMnLCBzcGFuOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ21lc3NhZ2UnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlLCBzcGFuOiB0cnVlLCBpbmZvTWVzc2FnZTogJ01lc3NhZ2UgdG8gYXBwcm92ZXInIH0sXHJcblxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnYXBwcm92YWxzL2lkJyB9LFxyXG4gICAgaGVyb0ZpZWxkOiAnYXBwcm92YWxJRCdcclxuICB9O1xyXG5cclxuICBhcHByb3ZhbERldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLmFwcHJvdmFsRm9ybUNvbmZpZyxcclxuICAgIGhlcm9GaWVsZDogJ2FwcHJvdmFsSUQnLFxyXG4gICAgdGFibGVDb25maWdzOiBbdGhpcy5hcHByb3ZhbEhpc3RvcnlUYWJsZUNvbmZpZ10sXHJcblxyXG4gICAgc3RlcENvbmZpZzoge1xyXG4gICAgICBzdGVwcyA6IFtdLFxyXG4gICAgICBsb2FkQWN0aW9uOiB7IHVybDogYGFwcHJvdmFscy9zdGVwcy97aWR9YCB9LFxyXG4gICAgICBsb2FkSURGaWVsZCA6ICdhcHByb3ZhbElEJyxcclxuICAgICAgdmFsdWVGaWVsZDogJ2N1cnJlbnRMZXZlbCdcclxuICAgIH0sXHJcblxyXG4gIH07XHJcblxyXG5cclxuICAvLyBhcHByb3ZhbCBhY3Rpb24gZGlhbG9nXHJcbiAgYXBwcm92YWxBY3Rpb25Gb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgdGl0bGU6ICdBcHByb3ZhbCBBY3Rpb24nLFxyXG4gICAgZml4ZWRUaXRsZTogdHJ1ZSxcclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NvbW1lbnRzJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogZmFsc2UsIHNwYW46IHRydWUsIHJvd3M6IDMsXHJcbiAgICAgICAgaW5mb01lc3NhZ2U6ICdFbnRlciB5b3VyIGNvbW1lbnRzIGFib3V0IHRoaXMgYXBwcm92YWwgYWN0aW9uLiBUaGlzIHdpbGwgYmUgdmlzaWJsZSBpbiB0aGUgYXBwcm92YWwgaGlzdG9yeS4nXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9O1xyXG5cclxuICBhcHByb3ZlQWN0aW9uRGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy5hcHByb3ZhbEFjdGlvbkZvcm1Db25maWcsXHJcbiAgICAgIGZpZWxkczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdjb21tZW50cycsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IGZhbHNlLCBzcGFuOiB0cnVlLCByb3dzOiAzLFxyXG4gICAgICAgICAgaW5mb01lc3NhZ2U6ICdFbnRlciB5b3VyIGNvbW1lbnRzIGFib3V0IHRoaXMgYXBwcm92YWwgYWN0aW9uLiBUaGlzIHdpbGwgYmUgdmlzaWJsZSBpbiB0aGUgYXBwcm92YWwgaGlzdG9yeS4nXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdlZGl0JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpc3BsYXk6ICdBcHByb3ZlJywgY29sb3I6ICdncmVlbicsIGFjdGlvbjogeyB1cmw6ICdhcHByb3ZlJywgbWV0aG9kOiAncG9zdCcgfSB9IC8vdXJsIHByZWNvbmZpZ3VyZWQgdG8gYmUgZHluYW1pY1xyXG4gICAgXVxyXG4gIH07XHJcblxyXG4gIGRlY2xpbmVBY3Rpb25EZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZm9ybUNvbmZpZzogey4uLnRoaXMuYXBwcm92YWxBY3Rpb25Gb3JtQ29uZmlnLFxyXG4gICAgICBmaWVsZHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnY29tbWVudHMnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlLCBzcGFuOiB0cnVlLCByb3dzOiAzLFxyXG4gICAgICAgICAgaW5mb01lc3NhZ2U6ICdFbnRlciB5b3VyIGNvbW1lbnRzIGFib3V0IHRoaXMgYXBwcm92YWwgYWN0aW9uLiBUaGlzIHdpbGwgYmUgdmlzaWJsZSBpbiB0aGUgYXBwcm92YWwgaGlzdG9yeS4nLFxyXG4gICAgICAgICAgaGludCA6ICdEZWNsaW5lIGNvbW1lbnQgaXMgcmVxdWlyZWQgISdcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAgbW9kZTogJ2VkaXQnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlzcGxheTogJ0RlY2xpbmUnLCBjb2xvcjogJ3JlZCcsIGFjdGlvbjogeyB1cmw6ICdkZWNsaW5lJywgbWV0aG9kOiAncG9zdCcgfSB9IC8vdXJsIHByZWNvbmZpZ3VyZWQgdG8gYmUgZHluYW1pY1xyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgdmlld0FwcHJvdmFsQnV0dG9uOiBCdXR0b24gPSB7XHJcbiAgICBuYW1lOiAnaW5mbycsIGRpYWxvZzogdHJ1ZSwgaWNvbiA6IHtuYW1lIDogJ2luZm8nfSwgIGRldGFpbHNDb25maWc6IHRoaXMuYXBwcm92YWxEZXRhaWxzQ29uZmlnLFxyXG4gICAgdmlzaWJsZTogeCA9PiB4LmNhbkFjdGlvblxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZUJ1dHRvbjogQnV0dG9uID0ge1xyXG4gICAgbmFtZTogJ2FwcHJvdmUnLCBkaWFsb2c6IHRydWUsIGljb246IHsgbmFtZTogJ2RvbmUnIH0sIGNvbG9yOiAnZ3JlZW4nLCBkZXRhaWxzQ29uZmlnOiB0aGlzLmFwcHJvdmVBY3Rpb25EZXRhaWxzQ29uZmlnLFxyXG4gICAgLy8gY29uZmlybTogeyBtZXNzYWdlOiAnQXBwcm92ZT8nIH0sXHJcbiAgICAvLyBkaXNhYmxlZDogeCA9PiAheC5jYW5BY3Rpb24sXHJcbiAgICB2aXNpYmxlOiB4ID0+IHguY2FuQWN0aW9uXHJcbiAgfVxyXG5cclxuICBkZWNsaW5lQnV0dG9uOiBCdXR0b24gPSB7XHJcbiAgICBuYW1lOiAnZGVjbGluZScsIGRpYWxvZzogdHJ1ZSwgaWNvbjogeyBuYW1lOiAnY2xvc2UnIH0sIGNvbG9yOiAncmVkJywgIGRldGFpbHNDb25maWc6IHRoaXMuZGVjbGluZUFjdGlvbkRldGFpbHNDb25maWcsXHJcbiAgICAvLyBjb25maXJtOiB7IG1lc3NhZ2U6ICdEZWNsaW5lPycgfSxcclxuICAgIC8vIGRpc2FibGVkOiB4ID0+ICF4LmNhbkFjdGlvbixcclxuICAgIHZpc2libGU6IHggPT4geC5jYW5BY3Rpb25cclxuICB9XHJcblxyXG4gIGNhbmNlbEJ1dHRvbjogQnV0dG9uID0ge1xyXG4gICAgbmFtZTogJ2NhbmNlbCcsIGljb246IHsgbmFtZTogJ2NhbmNlbCcgfSwgY29sb3I6ICdyZWQnLCBhY3Rpb246IHsgdXJsOiAnY2FuY2VsJywgbWV0aG9kOiAncG9zdCcsIH0sIC8vdXJsIHByZWNvbmZpZ3VyZWQgdG8gYmUgZHluYW1pY1xyXG4gICAgY29uZmlybTogeyBtZXNzYWdlOiAnQ2FuY2VsIGFwcHJvdmFsIHJlcXVlc3Q/IFRoaXMgd2lsbCByZXZlcnQgY2hhbmdlcyBhbmQgc3RvcCB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nIH0sXHJcbiAgICB2aXNpYmxlOiB4ID0+ICF4LmNhbkFjdGlvbiAmJiB4LmNhbkNhbmNlbFxyXG4gIH1cclxuXHJcblxyXG4gIC8vcmVjZWl2ZWQgYXBwcm92YWxzXHJcbiAgcmVjZWl2ZWRBcHByb3ZhbHNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWydtZXNzYWdlJywgJ3N0YXR1c05hbWUnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsndmlldycsICdhcHByb3ZlJywgJ2RlY2xpbmUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG4gICAgZ3JleU91dDogKHgpID0+IHguaXNHcmV5ZWRPdXQsXHJcbiAgICAvLyBsb2dSZXNwb25zZTogdHJ1ZSxcclxuICAgIGNvbGxhcHNlQnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlZERhdGUnLCB0eXBlOiAnZGF0ZXRpbWUnLCBhbGlhczogJ0RhdGUnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZWRCeU5hbWUnLCBhbGlhczogJ1JlcXVlc3QgQnknLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnbWVzc2FnZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3R5cGVOYW1lJywgYWxpYXM6ICdUeXBlJywgdHlwZTogJ2NoaXAnLFxyXG4gICAgICAgIGNvbG9yczogW1xyXG4gICAgICAgICAgeyBuYW1lOiAnIzY2QkI2QScsIGNvbmRpdGlvbjogeCA9PiB4LnR5cGUgPT09IDAgfSxcclxuICAgICAgICAgIHsgbmFtZTogJ29yYW5nZScsIGNvbmRpdGlvbjogeCA9PiB4LnR5cGUgPT09IDEgfSxcclxuICAgICAgICAgIHsgbmFtZTogJyNGNDQzMzYnLCBjb25kaXRpb246IHggPT4geC50eXBlID09PSAyIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnc3RhdHVzTmFtZScsIGFsaWFzOiAnU3RhdHVzJywgdHlwZTogJ2NoaXAnLCBkZXRhaWxzQ29uZmlnOiB0aGlzLmFwcHJvdmFsRGV0YWlsc0NvbmZpZyxcclxuICAgICAgICBjb2xvcnM6IFtcclxuICAgICAgICAgIHsgbmFtZTogJyM5MEE0QUUnLCBjb25kaXRpb246IHggPT4geC5zdGF0dXMgPT09IDAgfSxcclxuICAgICAgICAgIHsgbmFtZTogJyM2NkJCNkEnLCBjb25kaXRpb246IHggPT4geC5zdGF0dXMgPT09IDEgfSxcclxuICAgICAgICAgIHsgbmFtZTogJyNGNDQzMzYnLCBjb25kaXRpb246IHggPT4geC5zdGF0dXMgPT09IDIgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdjdXJyZW50TGV2ZWxOYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ0N1cnJlbnQgTGV2ZWwnLFxyXG4gICAgICAgIGljb25zOiBbXHJcbiAgICAgICAgICB7IG5hbWU6ICdkb25lJywgY29sb3I6ICcjNjZCQjZBJywgY29uZGl0aW9uOiB4ID0+IHguc3RhdHVzID09PSAnQXBwcm92ZWQnLCB0aXA6ICdBcHByb3ZlZCcgfSxcclxuICAgICAgICAgIHsgbmFtZTogJ2Nsb3NlJywgY29sb3I6ICcjRjQ0MzM2JywgY29uZGl0aW9uOiB4ID0+IHguc3RhdHVzID09PSAnRGVjbGluZWQnLCB0aXA6ICdEZWNsaW5lZCcgfSxcclxuICAgICAgICAgIHsgbmFtZTogJ3NjaGVkdWxlJywgY29sb3I6ICcjRkZDMTA3JywgY29uZGl0aW9uOiB4ID0+IHguc3RhdHVzID09PSAnUGVuZGluZycsIHRpcDogJ1BlbmRpbmcnIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ3VwZGF0ZWRCeU5hbWUnLCBhbGlhczogJ0FjdGlvbmVkIEJ5JywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3VwZGF0ZWREYXRlRGlzcGxheScsIHR5cGU6ICdkYXRldGltZScsIGFsaWFzOiAnQWN0aW9uZWQgRGF0ZScgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB0aGlzLnZpZXdBcHByb3ZhbEJ1dHRvbixcclxuICAgICAgdGhpcy5hcHByb3ZlQnV0dG9uLFxyXG4gICAgICB0aGlzLmRlY2xpbmVCdXR0b24sXHJcbiAgICBdLFxyXG5cclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnYXBwcm92YWxzL2FsbC94JyB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8vc2VuZCBhcHByb3ZhbHNcclxuICBzZW50QXBwcm92YWxzVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgLi4udGhpcy5yZWNlaXZlZEFwcHJvdmFsc1RhYmxlQ29uZmlnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICAvLyB0aGlzLnZpZXdBcHByb3ZhbEJ1dHRvbixcclxuICAgICAgdGhpcy5jYW5jZWxCdXR0b24sXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdhcHByb3ZhbHMvc2VudC94JyB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tT3RoZXIgY29kZVxyXG5cclxuICBwcml2YXRlIGxpc3RDYWNoZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIHByaXZhdGUgY2FjaGVEdXJhdGlvbiA9IDUgKiA2MCAqIDEwMDA7XHJcbiAgcHJpdmF0ZSBjYWNoZVRpbWVzdGFtcHM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgcHVibGljIENhbGxBcGkoYWN0aW9uOiBBY3Rpb24sIGRhdGE6IGFueSA9ICcnICkge1xyXG5cclxuICAgIGlmIChhY3Rpb24udXJsLmluY2x1ZGVzKCcvbGlzdC8nKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVMaXN0Q2FsbChhY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghYWN0aW9uLm1ldGhvZCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChhY3Rpb24udXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihhY3Rpb24ubWV0aG9kID09J2dldCcpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoYWN0aW9uLnVybCk7XHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbi5tZXRob2QgPT0gJ3Bvc3QnKXtcclxuXHJcbiAgICAgIGlmIChhY3Rpb24uaXNGb3JtRGF0YSB8fCBhY3Rpb24udXJsLmluY2x1ZGVzKCcvZm9ybScpKSB7XHJcbiAgICAgICAgYWN0aW9uLmlzRm9ybURhdGEgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3RfRm9ybURhdGEoYWN0aW9uLnVybCwgZGF0YSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYWN0aW9uLnVybCA9PSAnYXBwcm92ZScgfHwgYWN0aW9uLnVybCA9PSAnZGVjbGluZScgfHwgYWN0aW9uLnVybCA9PSAnY2FuY2VsJykge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KGAke2RhdGEuZW5kcG9pbnR9L2FwcHJvdmU/YWN0aW9uPSR7YWN0aW9uLnVybH1gLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoYWN0aW9uLnVybCwgZGF0YSk7XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChhY3Rpb24udXJsLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUxpc3RDYWxsKGFjdGlvbjogQWN0aW9uKSB7XHJcbiAgICBjb25zdCBjYWNoZUtleSA9IGFjdGlvbi51cmw7XHJcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IERhdGUubm93KCk7XHJcblxyXG4gICAgLy8gUmV0dXJuIGNhY2hlIGlmIHZhbGlkIGFuZCBub3QgZm9yY2luZyByZWZyZXNoXHJcbiAgICBpZiAoIWFjdGlvbi5za2lwQ2FjaGUgJiYgdGhpcy5saXN0Q2FjaGVbY2FjaGVLZXldICYmIGN1cnJlbnRUaW1lIC0gdGhpcy5jYWNoZVRpbWVzdGFtcHNbY2FjaGVLZXldIDwgdGhpcy5jYWNoZUR1cmF0aW9uKSB7XHJcbiAgICAgIHJldHVybiBvZih7XHJcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcclxuICAgICAgICBkYXRhOiB0aGlzLmxpc3RDYWNoZVtjYWNoZUtleV1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWFrZSBBUEkgY2FsbCBhbmQgY2FjaGUgcmVzdWx0XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoYWN0aW9uLnVybCkucGlwZShcclxuICAgICAgdGFwKChyZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZT8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5saXN0Q2FjaGVbY2FjaGVLZXldID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgIHRoaXMuY2FjaGVUaW1lc3RhbXBzW2NhY2hlS2V5XSA9IGN1cnJlbnRUaW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gaW52YWxpZGF0ZSBjYWNoZSBvbiBkYXRhIGNoYW5nZVxyXG4gIHB1YmxpYyBpbnZhbGlkYXRlTGlzdENhY2hlKGVudGl0eVVybDogc3RyaW5nKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmxpc3RDYWNoZSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAvLyBJbnZhbGlkYXRlIGFueSBjYWNoZSBlbnRyaWVzIHJlbGF0ZWQgdG8gdGhpcyBlbnRpdHlcclxuICAgICAgaWYgKGtleS5pbmNsdWRlcyhlbnRpdHlVcmwpKSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMubGlzdENhY2hlW2tleV07XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuY2FjaGVUaW1lc3RhbXBzW2tleV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFyQ2FjaGUoKXtcclxuICAgIHRoaXMubGlzdENhY2hlID0ge307XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIENoZWNrV2VsY29tZWQocGF0aDogc3RyaW5nID0gJ2hvbWUvYWRtaW4vd2VsY29tZScpIHtcclxuICAgIHRoaXMuQ2FsbEFwaSh7IHVybDogJ3RlbmFudC93ZWxjb21lL3gnIH0pLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICBpZiAoIXguZGF0YSkge1xyXG4gICAgICAgIHRoaXMuTmF2aWdhdGUocGF0aClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIE5hdmlnYXRlKHBhdGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOYXZpZ2F0ZVdpdGhWYWx1ZShwYXRoOiBzdHJpbmcsIHZhbHVlIDogc3RyaW5nKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyB2OiB2YWx1ZSB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROYXZpZ2F0aW9uVmFsdWUoKXtcclxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1widlwiXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJ2XCJdXHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG1wQWNjb3VudElEO1xyXG5cclxuXHJcblxyXG4gIC8vVXNlcnNcclxuICBwdWJsaWMgR2V0VXNlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIlVzZXIvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVnaXN0ZXJBY2NvdW50KHUpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL3JlZ2lzdGVyXCIsIHUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFVzZXJCeUlEKHZhbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoYFVzZXIvaWQvJHt2YWx9YCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlVXNlcihwcm9maWxlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9lZGl0XCIsIHByb2ZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFVubG9ja1VzZXIodXNlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvdW5sb2NrXCIsIHVzZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvY2tVc2VyKHVzZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2xvY2tcIiwgdXNlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRGVsZXRlVXNlcih1c2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9kZWxldGVcIiwgdXNlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9naW4odTogVXNlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvbG9naW5cIiwgdSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2hhbmdlUGFzc3dvcmQodSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvY2hhbmdlcGFzc3dvcmQtc2VsZlwiLCB1KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDaGFuZ2VQYXNzd29yZEFkbWluKHUpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2NoYW5nZXBhc3N3b3JkLWFkbWluXCIsIHUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGZSZXNldCh1OiBVc2VyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJCYXNpYy9TZWxmUmVzZXRcIiwgdSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9Sb2xlc1xyXG5cclxuICBwdWJsaWMgUG9zdFJvbGUocm9sZSwgYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoYFJvbGU/YWN0aW9uPSR7YWN0aW9ufWAsIHJvbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFB1dFJvbGUocm9sZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUHV0KFwiUm9sZVwiLCByb2xlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRSb2xlKGJ5OiBzdHJpbmcsIHZhbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoXCJSb2xlL2FsbC94XCIpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvL0xvZ3NcclxuICBwdWJsaWMgR2V0TG9nKGJ5OiBzdHJpbmcsIHZhbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoXCJMb2cvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9TZXR0aW5nc1xyXG4gIHB1YmxpYyBHZXRTZXR0aW5nKGJ5OiBzdHJpbmcsIHZhbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5HZXQoXCJTZXR0aW5nL2FsbC94XCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFVwZGF0ZVNldHRpbmcoc2V0dGluZywgYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoYFNldHRpbmc/YWN0aW9uPSR7YWN0aW9ufWAsIHNldHRpbmcpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19