vcomply-workflow-engine 2.9.58 → 2.9.60

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 (36) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +956 -263
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/more-option/more-option.component.js +110 -59
  4. package/esm2015/lib/more-option/more-option.component.ngfactory.js +3 -3
  5. package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.js +435 -0
  6. package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.js +292 -0
  7. package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngsummary.json +1 -0
  8. package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.js +2 -0
  9. package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.ngsummary.json +1 -0
  10. package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.js +2 -0
  11. package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.ngsummary.json +1 -0
  12. package/esm2015/lib/sharedComponents/link-program/restapi.service.js +136 -0
  13. package/esm2015/lib/sharedComponents/link-program/restapi.service.ngsummary.json +1 -0
  14. package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.js +25 -0
  15. package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.ngsummary.json +1 -0
  16. package/esm2015/lib/workflow-engine.module.js +9 -3
  17. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  18. package/esm2015/lib/workflow-interfaces/create-policy-form.js +1 -1
  19. package/esm2015/lib/workflow-policy/workflow-policy.component.js +65 -17
  20. package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +171 -156
  21. package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
  22. package/esm2015/vcomply-workflow-engine.js +193 -190
  23. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  24. package/fesm2015/vcomply-workflow-engine.js +758 -78
  25. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  26. package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +81 -0
  27. package/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.d.ts +1 -0
  28. package/lib/sharedComponents/link-program/link-program/program-list-model.d.ts +25 -0
  29. package/lib/sharedComponents/link-program/program-integration-interfaces.d.ts +9 -0
  30. package/lib/sharedComponents/link-program/restapi.service.d.ts +33 -0
  31. package/lib/sharedComponents/link-program/tooltip-validation.pipe.d.ts +4 -0
  32. package/lib/workflow-interfaces/create-policy-form.d.ts +5 -0
  33. package/lib/workflow-policy/workflow-policy.component.d.ts +2 -0
  34. package/package.json +1 -1
  35. package/vcomply-workflow-engine.d.ts +192 -189
  36. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
2
  export class MoreOptionComponent {
3
3
  constructor() {
4
4
  var _a, _b, _c;
@@ -18,9 +18,9 @@ export class MoreOptionComponent {
18
18
  CAR: 'Select what additional information you would like to include in the responsibility.',
19
19
  CAS: 'Select what additional information you would like to include in the survey.',
20
20
  LAI: 'Select what additional information you would like to include in the issue.',
21
- CAPR: 'Select what additional information you would like to include in the scope.'
21
+ CAPR: 'Select what additional information you would like to include in the scope.',
22
22
  };
23
- this.businessCycle = JSON.parse((_a = localStorage.getItem("businessCycle")) !== null && _a !== void 0 ? _a : '{}');
23
+ this.businessCycle = JSON.parse((_a = localStorage.getItem('businessCycle')) !== null && _a !== void 0 ? _a : '{}');
24
24
  this.moreOptionsList = {
25
25
  AAR: [
26
26
  {
@@ -30,7 +30,7 @@ export class MoreOptionComponent {
30
30
  tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',
31
31
  checked: false,
32
32
  hidden: false,
33
- code: 'OVERSEER'
33
+ code: 'OVERSEER',
34
34
  },
35
35
  {
36
36
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg',
@@ -39,7 +39,7 @@ export class MoreOptionComponent {
39
39
  tooltipMessage: 'This sets the priority level for the mitigation of each risk.',
40
40
  checked: false,
41
41
  hidden: false,
42
- code: 'MITIGATION'
42
+ code: 'MITIGATION',
43
43
  },
44
44
  {
45
45
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg',
@@ -48,7 +48,7 @@ export class MoreOptionComponent {
48
48
  tooltipMessage: 'Specify the mitigation plan that can be undertaken to mitigate the risk.',
49
49
  checked: false,
50
50
  hidden: false,
51
- code: 'MITIGATION_PLAN'
51
+ code: 'MITIGATION_PLAN',
52
52
  },
53
53
  {
54
54
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
@@ -57,7 +57,7 @@ export class MoreOptionComponent {
57
57
  tooltipMessage: 'This option lets you specify if this is a newly identified risk or it is a rapidly changing risk.',
58
58
  checked: false,
59
59
  hidden: false,
60
- code: 'RISK_LABEL'
60
+ code: 'RISK_LABEL',
61
61
  },
62
62
  ],
63
63
  CAP: [
@@ -73,7 +73,7 @@ export class MoreOptionComponent {
73
73
  overall performance of the Responsibility Center.`,
74
74
  checked: false,
75
75
  hidden: false,
76
- code: 'RESPONSIBILITY_CENTER'
76
+ code: 'RESPONSIBILITY_CENTER',
77
77
  },
78
78
  {
79
79
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
@@ -83,7 +83,7 @@ export class MoreOptionComponent {
83
83
  You can select a reviewer and determine how often the policy needs to be reviewed.`,
84
84
  checked: false,
85
85
  hidden: true,
86
- code: 'REVIEWER'
86
+ code: 'REVIEWER',
87
87
  },
88
88
  {
89
89
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
@@ -95,7 +95,7 @@ export class MoreOptionComponent {
95
95
  `,
96
96
  checked: false,
97
97
  hidden: true,
98
- code: 'CHECKPOINTS'
98
+ code: 'CHECKPOINTS',
99
99
  },
100
100
  {
101
101
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
@@ -107,7 +107,7 @@ export class MoreOptionComponent {
107
107
  `,
108
108
  checked: false,
109
109
  hidden: false,
110
- code: 'OVERSEER'
110
+ code: 'OVERSEER',
111
111
  },
112
112
  {
113
113
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
@@ -117,8 +117,38 @@ export class MoreOptionComponent {
117
117
  to the policy or are a subset of the policy that is being created.`,
118
118
  checked: false,
119
119
  hidden: false,
120
- code: 'RELATED_DOCUMENTS'
121
- }
120
+ code: 'RELATED_DOCUMENTS',
121
+ },
122
+ {
123
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg',
124
+ name: 'VERSION',
125
+ tooltipTitle: 'Version',
126
+ tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
127
+ to the policy or are a subset of the policy that is being created.`,
128
+ checked: false,
129
+ hidden: false,
130
+ code: 'VERSION',
131
+ },
132
+ {
133
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg',
134
+ name: 'LINK PROGRAMS & RESPONSIBILITIES',
135
+ tooltipTitle: 'LINK PROGRAMS & RESPONSIBILITIES',
136
+ tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
137
+ to the policy or are a subset of the policy that is being created.`,
138
+ checked: false,
139
+ hidden: false,
140
+ code: 'LINK_PROGRAM_RESPONSIBILITIES',
141
+ },
142
+ {
143
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
144
+ name: 'LINK ASSESSMENTS',
145
+ tooltipTitle: 'LINK ASSESSMENTS',
146
+ tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
147
+ to the policy or are a subset of the policy that is being created.`,
148
+ checked: false,
149
+ hidden: false,
150
+ code: 'LINK_ASSESSMENTS',
151
+ },
122
152
  ],
123
153
  CAR: [
124
154
  {
@@ -182,7 +212,7 @@ export class MoreOptionComponent {
182
212
  checked: false,
183
213
  hidden: false,
184
214
  isDisabled: false,
185
- disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
215
+ disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
186
216
  },
187
217
  {
188
218
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
@@ -194,7 +224,7 @@ export class MoreOptionComponent {
194
224
  checked: false,
195
225
  hidden: false,
196
226
  isDisabled: false,
197
- disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.'
227
+ disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.',
198
228
  },
199
229
  {
200
230
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
@@ -205,7 +235,7 @@ export class MoreOptionComponent {
205
235
  checked: false,
206
236
  hidden: false,
207
237
  isDisabled: false,
208
- disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.'
238
+ disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.',
209
239
  },
210
240
  {
211
241
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg',
@@ -214,7 +244,7 @@ export class MoreOptionComponent {
214
244
  tooltipMessage: 'You can specify the level of risk that the organization will be exposed to if the responsibility is not completed.',
215
245
  checked: false,
216
246
  hidden: false,
217
- code: 'RISK_CLASSIFICATION'
247
+ code: 'RISK_CLASSIFICATION',
218
248
  },
219
249
  {
220
250
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
@@ -223,7 +253,7 @@ export class MoreOptionComponent {
223
253
  tooltipMessage: 'A Reviewer is a person that is tasked with reviewing the completed responsibility.',
224
254
  checked: false,
225
255
  hidden: false,
226
- code: 'REVIEWER'
256
+ code: 'REVIEWER',
227
257
  },
228
258
  {
229
259
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
@@ -234,7 +264,7 @@ export class MoreOptionComponent {
234
264
  As the person creating the responsibility, you will automatically receive email notifications about the performance of the responsibility.`,
235
265
  checked: false,
236
266
  hidden: false,
237
- code: 'OVERSEER'
267
+ code: 'OVERSEER',
238
268
  },
239
269
  // {
240
270
  // imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
@@ -254,7 +284,7 @@ export class MoreOptionComponent {
254
284
  tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',
255
285
  checked: false,
256
286
  hidden: false,
257
- code: 'ASSURANCE'
287
+ code: 'ASSURANCE',
258
288
  },
259
289
  {
260
290
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
@@ -265,7 +295,7 @@ export class MoreOptionComponent {
265
295
  hidden: false,
266
296
  code: 'REQUIRES_AUDIT',
267
297
  isDisabled: true,
268
- disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.'
298
+ disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.',
269
299
  },
270
300
  // {
271
301
  // imageUrl: 'https://cdn.v-comply.com/risk-mitigation-priority.svg',
@@ -301,7 +331,7 @@ export class MoreOptionComponent {
301
331
  tooltipMessage: '',
302
332
  checked: false,
303
333
  hidden: false,
304
- }
334
+ },
305
335
  ],
306
336
  LAI: [
307
337
  {
@@ -311,7 +341,7 @@ export class MoreOptionComponent {
311
341
  tooltipMessage: 'Exception type lets you specify whether there is a design or an operational effectiveness problem.',
312
342
  checked: false,
313
343
  hidden: false,
314
- code: 'EXCEPTION_TYPE'
344
+ code: 'EXCEPTION_TYPE',
315
345
  },
316
346
  // {
317
347
  // imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg',
@@ -338,7 +368,7 @@ export class MoreOptionComponent {
338
368
  tooltipMessage: 'Associated risks lets you specify the risks that are related to this issue.',
339
369
  checked: false,
340
370
  hidden: false,
341
- code: 'ASSOCIATED_RISKS'
371
+ code: 'ASSOCIATED_RISKS',
342
372
  },
343
373
  {
344
374
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
@@ -347,7 +377,7 @@ export class MoreOptionComponent {
347
377
  tooltipMessage: 'Overseers are the persons responsible for overseeing an issue. These persons will receive email notifications about the issue status. As the person reporting this issue, you will automatically receive such email notifications.',
348
378
  checked: false,
349
379
  hidden: false,
350
- code: 'OVERSIGHT'
380
+ code: 'OVERSIGHT',
351
381
  },
352
382
  {
353
383
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
@@ -356,8 +386,8 @@ export class MoreOptionComponent {
356
386
  tooltipMessage: 'You can require that the person resolving the issue uploads evidence to confirm',
357
387
  checked: false,
358
388
  hidden: false,
359
- code: 'EVIDENCE'
360
- }
389
+ code: 'EVIDENCE',
390
+ },
361
391
  ],
362
392
  CAPR: [
363
393
  {
@@ -367,7 +397,7 @@ export class MoreOptionComponent {
367
397
  tooltipMessage: `Role(s) let you specify the users that can be “Owners” of a Program.`,
368
398
  checked: false,
369
399
  hidden: false,
370
- code: 'ROLES'
400
+ code: 'ROLES',
371
401
  },
372
402
  {
373
403
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg',
@@ -378,7 +408,7 @@ export class MoreOptionComponent {
378
408
  `,
379
409
  checked: false,
380
410
  hidden: false,
381
- code: 'OWNERS'
411
+ code: 'OWNERS',
382
412
  },
383
413
  {
384
414
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg',
@@ -387,16 +417,18 @@ export class MoreOptionComponent {
387
417
  tooltipMessage: `An Approver is responsible for approving a Program. Where an Approver is selected, the Program and all responsibilities linked with that Program will only commence once the Program has been approved.`,
388
418
  checked: false,
389
419
  hidden: true,
390
- code: 'APPROVER'
420
+ code: 'APPROVER',
391
421
  },
392
422
  {
393
423
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recurring.svg',
394
424
  name: 'Program Duration',
395
425
  tooltipTitle: 'Program Duration',
396
- tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' + ((_c = (_b = this.businessCycle) === null || _b === void 0 ? void 0 : _b.selectedCycle) === null || _c === void 0 ? void 0 : _c.business_cycle) + '. All responsibilities linked with that Program will also have the same Program Duration.',
426
+ tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +
427
+ ((_c = (_b = this.businessCycle) === null || _b === void 0 ? void 0 : _b.selectedCycle) === null || _c === void 0 ? void 0 : _c.business_cycle) +
428
+ '. All responsibilities linked with that Program will also have the same Program Duration.',
397
429
  checked: false,
398
430
  hidden: true,
399
- code: 'PROGRAM_FREQUENCY'
431
+ code: 'PROGRAM_FREQUENCY',
400
432
  },
401
433
  {
402
434
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg',
@@ -405,7 +437,7 @@ export class MoreOptionComponent {
405
437
  tooltipMessage: `If the Program Scope is locked, neither the Program nor the responsibilities linked with the Program can be edited once the Program begins. In order to edit the Program or the linked responsibilities, the Program details will need to be edited.`,
406
438
  checked: false,
407
439
  hidden: true,
408
- code: 'SCOPE_CHANGES'
440
+ code: 'SCOPE_CHANGES',
409
441
  },
410
442
  {
411
443
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',
@@ -414,7 +446,7 @@ export class MoreOptionComponent {
414
446
  tooltipMessage: `Responsibility Centers represent your organizational and operational infrastructure. Where Responsibility Centers are selected when creating a Program, only those Responsibilities Centers will be available for selection when creating a responsibility linked with the Program.`,
415
447
  checked: false,
416
448
  hidden: true,
417
- code: 'RC'
449
+ code: 'RC',
418
450
  },
419
451
  {
420
452
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg',
@@ -423,7 +455,7 @@ export class MoreOptionComponent {
423
455
  tooltipMessage: `Assignees are required to complete the responsibilities that have been assigned to them. Where Assignees are selected when creating a Program, only those Assignees will be available for selection when creating a responsibility linked with the Program.`,
424
456
  checked: false,
425
457
  hidden: true,
426
- code: 'ASSIGNEES'
458
+ code: 'ASSIGNEES',
427
459
  },
428
460
  {
429
461
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
@@ -432,7 +464,7 @@ export class MoreOptionComponent {
432
464
  tooltipMessage: `Reviewers are required to review responsibilities after they have been completed. Where Reviewers are selected when creating a Program, only those Reviewers will be available for selection when creating a responsibility linked with the Program.`,
433
465
  checked: false,
434
466
  hidden: true,
435
- code: 'REVIEWER'
467
+ code: 'REVIEWER',
436
468
  },
437
469
  {
438
470
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
@@ -441,7 +473,7 @@ export class MoreOptionComponent {
441
473
  tooltipMessage: 'Overseers receive updates when a responsibility is completed, completed with delay or not completed. Where Overseers are selected when creating a Program, only those Overseers will be available for selection when creating a responsibility linked with the Program.',
442
474
  checked: false,
443
475
  hidden: true,
444
- code: 'OVERSEER'
476
+ code: 'OVERSEER',
445
477
  },
446
478
  {
447
479
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
@@ -452,7 +484,7 @@ export class MoreOptionComponent {
452
484
  checked: false,
453
485
  hidden: true,
454
486
  isDisabled: false,
455
- disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
487
+ disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
456
488
  },
457
489
  {
458
490
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
@@ -472,7 +504,7 @@ export class MoreOptionComponent {
472
504
  checked: false,
473
505
  hidden: false,
474
506
  },
475
- ]
507
+ ],
476
508
  };
477
509
  }
478
510
  set getOrganizationDetails(details) {
@@ -482,10 +514,10 @@ export class MoreOptionComponent {
482
514
  this.updateProgramMoreOptions();
483
515
  }
484
516
  }
485
- ;
486
517
  ngOnChanges(changes) {
487
518
  var _a, _b;
488
- if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _b === void 0 ? void 0 : _b.previousValue)) {
519
+ if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !==
520
+ ((_b = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _b === void 0 ? void 0 : _b.previousValue)) {
489
521
  this.isProgramSelected = changes.isProgramSelected.currentValue;
490
522
  }
491
523
  if (!this.isRCSelected) {
@@ -513,12 +545,16 @@ export class MoreOptionComponent {
513
545
  var _a, _b, _c, _d;
514
546
  this.featureflagrole = (_a = this.allowedFeature) === null || _a === void 0 ? void 0 : _a.isFeatureEnabled('ff_role_improvements');
515
547
  this.ff_rc_listing = this.allowedFeature.isFeatureEnabled('ff_rc_listing');
516
- this.ff_rc_listing ? this.permissionText = 'Permissions' : this.permissionText = 'Permission Group(S)';
548
+ this.ff_rc_listing
549
+ ? (this.permissionText = 'Permissions')
550
+ : (this.permissionText = 'Permission Group(S)');
517
551
  this.moreOptionsList.CAPR[0].name = this.permissionText;
518
552
  this.moreOptionsList.CAPR[0].tooltipTitle = this.permissionText;
519
- this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole ? `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
553
+ this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
554
+ ? `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
520
555
  The <b>Key Power User </b> and all <b>Power Users</b> will be selected as the Owners of a Program by default.
521
- ` : `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
556
+ `
557
+ : `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
522
558
  The <b>Key Admin</b> and all <b>Admin</b> users will be selected as the Owners of a Program by default.
523
559
  `;
524
560
  if ((_b = this.allowedFeature) === null || _b === void 0 ? void 0 : _b.isFeatureEnabled('ff_program_simplify')) {
@@ -528,28 +564,33 @@ export class MoreOptionComponent {
528
564
  this.moreOptionsList.CAPR[0].tooltipMessage = `${this.permissionText} let you specify the users that can be “Owners” and “Approvers” of a Program.`;
529
565
  }
530
566
  const index = this.moreOptionsList.CAR.findIndex((ele) => ele.code === 'CHECKPOINTS');
531
- this.moreOptionsList.CAR[index].hidden = this.isEditMode === false ? true : false;
567
+ this.moreOptionsList.CAR[index].hidden =
568
+ this.isEditMode === false ? true : false;
532
569
  const ProgramIndex = this.moreOptionsList.CAR.findIndex((ele) => ele.code === 'PROGRAM');
533
570
  if (ProgramIndex > -1) {
534
571
  this.moreOptionsList.CAR[ProgramIndex].isDisabled = this.isEditMode;
535
572
  }
536
- this.programSimplifyFlag = (_d = (_c = this.allowedFeature) === null || _c === void 0 ? void 0 : _c.isFeatureEnabled('ff_program_simplify')) !== null && _d !== void 0 ? _d : true;
573
+ this.programSimplifyFlag =
574
+ (_d = (_c = this.allowedFeature) === null || _c === void 0 ? void 0 : _c.isFeatureEnabled('ff_program_simplify')) !== null && _d !== void 0 ? _d : true;
537
575
  }
538
576
  selectMoreOption(event, index) {
539
- console.log("event ==>", event, this.currentWorkflow, this.moreOptionsList[this.currentWorkflow][index]);
540
- if (this.currentWorkflow === 'CAR' && event.code === 'CHECKPOINTS_NEW' && this.moreOptionsList[this.currentWorkflow][index].checked) {
577
+ console.log('event ==>', event, this.currentWorkflow, this.moreOptionsList[this.currentWorkflow][index]);
578
+ if (this.currentWorkflow === 'CAR' &&
579
+ event.code === 'CHECKPOINTS_NEW' &&
580
+ this.moreOptionsList[this.currentWorkflow][index].checked) {
541
581
  event['checkpoint_new'] = true;
542
582
  this.selectedOption.emit(event);
543
583
  }
544
584
  else {
545
585
  event['checkpoint_new'] = false;
546
- this.moreOptionsList[this.currentWorkflow][index].checked = !event.checked;
547
- console.log("this.moreOptionsList[this.currentWorkflow][index] ===>", this.moreOptionsList[this.currentWorkflow][index], event.checked);
586
+ this.moreOptionsList[this.currentWorkflow][index].checked =
587
+ !event.checked;
588
+ console.log('this.moreOptionsList[this.currentWorkflow][index] ===>', this.moreOptionsList[this.currentWorkflow][index], event.checked);
548
589
  this.selectedOption.emit(event);
549
590
  }
550
591
  }
551
592
  populate(evt) {
552
- console.log("event ===>", evt);
593
+ console.log('event ===>', evt);
553
594
  if (this.currentWorkflow) {
554
595
  this.moreOptionsList[this.currentWorkflow].forEach((element) => {
555
596
  if (evt.includes(element.code)) {
@@ -558,7 +599,7 @@ export class MoreOptionComponent {
558
599
  else {
559
600
  element.checked = false;
560
601
  }
561
- if (evt.includes("CHECKPOINTS_NEW")) {
602
+ if (evt.includes('CHECKPOINTS_NEW')) {
562
603
  if (element.code === 'CHECKPOINTS') {
563
604
  element.isDisabled = true;
564
605
  }
@@ -566,7 +607,7 @@ export class MoreOptionComponent {
566
607
  element.isDisabled = true;
567
608
  }
568
609
  }
569
- if (evt.includes("ASSESSMENT")) {
610
+ if (evt.includes('ASSESSMENT')) {
570
611
  if (element.code === 'CHECKPOINTS_NEW') {
571
612
  element.isDisabled = true;
572
613
  }
@@ -574,7 +615,7 @@ export class MoreOptionComponent {
574
615
  element.isDisabled = false;
575
616
  }
576
617
  }
577
- if (evt.includes("CHECKPOINTS")) {
618
+ if (evt.includes('CHECKPOINTS')) {
578
619
  if (element.code === 'CHECKPOINTS_NEW') {
579
620
  element.isDisabled = true;
580
621
  }
@@ -582,7 +623,7 @@ export class MoreOptionComponent {
582
623
  element.isDisabled = true;
583
624
  }
584
625
  }
585
- if (evt.includes("PROGRAM")) {
626
+ if (evt.includes('PROGRAM')) {
586
627
  if (element.code === 'PROGRAM' && this.isProgramSelected) {
587
628
  element.isDisabled = true;
588
629
  }
@@ -611,8 +652,18 @@ export class MoreOptionComponent {
611
652
  }
612
653
  updateProgramMoreOptions() {
613
654
  var _a, _b, _c, _d, _e;
614
- const code = ['PROGRAM_FREQUENCY', 'SCOPE_CHANGES', 'RC', 'ASSIGNEES', 'REVIEWER', 'OVERSEER', 'ASSESSMENT', 'FORMATE_EVIDENCE'];
615
- if (((_a = this.orgDetails) === null || _a === void 0 ? void 0 : _a.hasProgramFullPermission) && this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
655
+ const code = [
656
+ 'PROGRAM_FREQUENCY',
657
+ 'SCOPE_CHANGES',
658
+ 'RC',
659
+ 'ASSIGNEES',
660
+ 'REVIEWER',
661
+ 'OVERSEER',
662
+ 'ASSESSMENT',
663
+ 'FORMATE_EVIDENCE',
664
+ ];
665
+ if (((_a = this.orgDetails) === null || _a === void 0 ? void 0 : _a.hasProgramFullPermission) &&
666
+ this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
616
667
  (_c = (_b = this.moreOptionsList) === null || _b === void 0 ? void 0 : _b.CAPR) === null || _c === void 0 ? void 0 : _c.forEach((option) => {
617
668
  if (code === null || code === void 0 ? void 0 : code.includes(option.code)) {
618
669
  option.hidden = false;
@@ -632,7 +683,7 @@ export class MoreOptionComponent {
632
683
  MoreOptionComponent.decorators = [
633
684
  { type: Component, args: [{
634
685
  selector: 'app-more-option',
635
- template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n <div class=\"message-container\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/add-risk-more-option.svg\" alt=\"\" />\r\n <p *ngIf=\"currentWorkflow\">{{placeholderTexts[currentWorkflow]}}</p>\r\n </div>\r\n <div class=\"more-options\">\r\n <ul>\r\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\r\n <ng-container *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\">\r\n <!-- <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled && !isRcSelected? 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.' : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled && !isRcSelected\">\r\n <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || (data.isDisabled && !isRCSelected)\" [class.disabled]=\"data.isDisabled && !isRCSelected\" (click)=\"data.checked = !data.checked; selectMoreOption(data)\"> -->\r\n\r\n <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled || (data.code === 'RC' && !isRcSelected && data.isDisabled )? data?.disabledMessage : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled\" id=\"listdata\">\r\n <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || data.isDisabled || (data.isDisabled && !isRCSelected)\" (click)=\" selectMoreOption(data, i)\" >\r\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\r\n <img [src]=\"data.imageUrl\" alt=\"\" />\r\n </span>\r\n <svg *ngIf=\"data.checked\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n <span class=\"value\" [innerHTML]=\"data?.name\"></span>\r\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\r\n </button>\r\n <span class=\"icon\" *ngIf=\"data.tooltipMessage !== ''\" libPopoverHover (mouseover)=\"dataTooltip.popover()\" (mouseleave)=\"dataTooltip.closePopover()\"\r\n placement=\"right\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\" [innerHTML]=\"data.tooltipTitle\"></div>\r\n <div class=\"vx-info-card-body\" [innerHTML]=\"data.tooltipMessage\"></div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <div class=\"more-options-heading vx-mt-2\" *ngIf=\"currentWorkflow ==='CAPR' && i === 2\">PROGRAM SCOPE OPTIONS</div>\r\n </ng-container>\r\n\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">VERSION</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Version</div>\r\n <div class=\"vx-info-card-body\">Version text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK PROGRAMS & RESPONSIBILITIES</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Programs & Responsibilities</div>\r\n <div class=\"vx-info-card-body\">Link Programs & Responsibilities text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK ASSESSMENTS</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Assessment</div>\r\n <div class=\"vx-info-card-body\">Link Assessment text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n",
686
+ template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n <div class=\"message-container\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/add-risk-more-option.svg\"\r\n alt=\"\"\r\n />\r\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\r\n </div>\r\n <div class=\"more-options\">\r\n <ul>\r\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\r\n <ng-container\r\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\r\n >\r\n <!-- <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled && !isRcSelected? 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.' : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled && !isRcSelected\">\r\n <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || (data.isDisabled && !isRCSelected)\" [class.disabled]=\"data.isDisabled && !isRCSelected\" (click)=\"data.checked = !data.checked; selectMoreOption(data)\"> -->\r\n\r\n <li\r\n *ngIf=\"!data.hidden\"\r\n [appTooltip]=\"\r\n data.isDisabled ||\r\n (data.code === 'RC' && !isRcSelected && data.isDisabled)\r\n ? data?.disabledMessage\r\n : ''\r\n \"\r\n placement=\"right\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"data.isDisabled\"\r\n id=\"listdata\"\r\n >\r\n <button\r\n [class.active]=\"data.checked\"\r\n [disabled]=\"\r\n (data.code === 'RC' &&\r\n openedFrom === 'RISK_TREATMENT' &&\r\n currentWorkflow === 'CAR') ||\r\n data.isDisabled ||\r\n (data.isDisabled && !isRCSelected)\r\n \"\r\n (click)=\"selectMoreOption(data, i)\"\r\n >\r\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\r\n <img [src]=\"data.imageUrl\" alt=\"\" />\r\n </span>\r\n <svg\r\n *ngIf=\"data.checked\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n <span class=\"value\" [innerHTML]=\"data?.name\"></span>\r\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\r\n </button>\r\n <span\r\n class=\"icon\"\r\n *ngIf=\"data.tooltipMessage !== ''\"\r\n libPopoverHover\r\n (mouseover)=\"dataTooltip.popover()\"\r\n (mouseleave)=\"dataTooltip.closePopover()\"\r\n placement=\"right\"\r\n ><i class=\"icons\">&#xe91f;</i></span\r\n >\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div\r\n class=\"vx-info-card-head\"\r\n [innerHTML]=\"data.tooltipTitle\"\r\n ></div>\r\n <div\r\n class=\"vx-info-card-body\"\r\n [innerHTML]=\"data.tooltipMessage\"\r\n ></div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <div\r\n class=\"more-options-heading vx-mt-2\"\r\n *ngIf=\"currentWorkflow === 'CAPR' && i === 2\"\r\n >\r\n PROGRAM SCOPE OPTIONS\r\n </div>\r\n </ng-container>\r\n <!--\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">VERSION</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Version</div>\r\n <div class=\"vx-info-card-body\">Version text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK PROGRAMS & RESPONSIBILITIES</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Programs & Responsibilities</div>\r\n <div class=\"vx-info-card-body\">Link Programs & Responsibilities text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK ASSESSMENTS</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\">&#xe91f;</i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Assessment</div>\r\n <div class=\"vx-info-card-body\">Link Assessment text here</div>\r\n </div>\r\n </popover-hover>\r\n </li> -->\r\n </ul>\r\n </div>\r\n</div>\r\n",
636
687
  styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";::ng-deep .more-option{align-items:center;position:relative;padding:0;display:block;height:auto}::ng-deep .more-option .message-container{text-align:center;position:static;padding:0 0 20px;top:0;left:0;right:0}::ng-deep .more-option .message-container img{width:163px;margin-bottom:13px;display:inline-block}@media screen and (max-height: 900px){::ng-deep .more-option .message-container img{width:120px;margin-bottom:8px}}::ng-deep .more-option .message-container p{font-size:12px;font-weight:300;font-style:italic;color:#707070;margin:0;padding:0;line-height:18px}::ng-deep .more-option .more-options{display:block;background:#ffffff;margin-left:-38px;padding:20px 0 20px 16px;position:relative;width:calc(100% + 60px);border-radius:16px 0 0 16px}::ng-deep .more-option .more-options:before{content:\"\";position:absolute;left:0px;top:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-bottom:8px solid transparent;border-bottom-right-radius:46px}::ng-deep .more-option .more-options:after{content:\"\";position:absolute;left:0px;bottom:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-top:8px solid transparent;border-top-right-radius:46px}@media screen and (max-width: 2550px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1920px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1600px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1440px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1366px){::ng-deep .more-option .more-options{margin-top:0}}::ng-deep .more-option .more-options ul{padding:0 32px 0 0;margin:0;overflow-y:auto}::ng-deep .more-option .more-options ul::-webkit-scrollbar{width:0;background-color:transparent}::ng-deep .more-option .more-options ul::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb}::ng-deep .more-option .more-options ul .more-options-heading{color:#747576;font-size:11px;font-weight:500;text-transform:uppercase;margin-bottom:8px}::ng-deep .more-option .more-options ul li{position:relative;list-style:none;display:flex;align-items:center}::ng-deep .more-option .more-options ul li button{display:flex;outline:none;background:transparent;cursor:pointer;align-items:center;justify-content:flex-start;margin:0;width:100%;border:none;padding:4px 11px 4px 4px;border:1px solid #F1F1F1;border-radius:4px}::ng-deep .more-option .more-options ul li button.active{background:#FBFBFB}::ng-deep .more-option .more-options ul li button span.more-icon{height:32px;width:32px;display:flex;margin-right:12px;align-items:center;justify-content:center}::ng-deep .more-option .more-options ul li button img{width:100%}::ng-deep .more-option .more-options ul li button .checkIcon{width:24px;height:24px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin:4px 16px 4px 4px}::ng-deep .more-option .more-options ul li button .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .more-option .more-options ul li button .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .more-option .more-options ul li button span.value{line-height:18px;color:#161b2f;font-size:11px;font-weight:500;text-transform:uppercase;width:calc(100% - 72px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;text-align:left}::ng-deep .more-option .more-options ul li button span.value i.depreciation-icon{color:#e4b700}::ng-deep .more-option .more-options ul li button .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .more-option .more-options ul li button:disabled{background:#f8f8f8;pointer-events:none}::ng-deep .more-option .more-options ul li button:disabled span{opacity:.3}::ng-deep .more-option .more-options ul li+li{margin-top:8px}::ng-deep .more-option .more-options ul li .vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}::ng-deep .more-option .more-options ul li .vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}::ng-deep .more-option .more-options ul li .vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}::ng-deep .more-option .more-options ul li span.icon{color:#1e5dd3;font-size:12px;line-height:12px;cursor:pointer;position:absolute;top:calc(50% - 6px);right:12px;height:12px;width:12px}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes animate{0%{transform:translate(281px)}to{transform:translate(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"]
637
688
  },] }
638
689
  ];
@@ -647,4 +698,4 @@ MoreOptionComponent.propDecorators = {
647
698
  allowedFeature: [{ type: Input }],
648
699
  getOrganizationDetails: [{ type: Input, args: ['orgDetailsData',] }]
649
700
  };
650
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU96RyxNQUFNLE9BQU8sbUJBQW1CO0lBc2U5Qjs7UUFyZVMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDakIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNuQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxhQUFhLENBQUM7UUFFdkMscUJBQWdCLEdBQVE7WUFDdkIsR0FBRyxFQUFFLDJFQUEyRTtZQUNoRixHQUFHLEVBQUUsNkVBQTZFO1lBQ2xGLEdBQUcsRUFBRSxxRkFBcUY7WUFDMUYsR0FBRyxFQUFFLDZFQUE2RTtZQUNsRixHQUFHLEVBQUUsNEVBQTRFO1lBQ2pGLElBQUksRUFBQyw0RUFBNEU7U0FDakYsQ0FBQztRQUVGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFBLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLG1DQUFJLElBQUksQ0FBQyxDQUFDO1FBQzFFLG9CQUFlLEdBQVE7WUFDckIsR0FBRyxFQUFFO2dCQUNIO29CQUNFLFFBQVEsRUFBRSxrRkFBa0Y7b0JBQzVGLElB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QVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGt5TEFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSztnQ0FDTCxLQUFLOzZCQUNMLEtBQUs7cUNBRUwsS0FBSyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9yZU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBjdXJyZW50V29ya2Zsb3cgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJydcclxuICBASW5wdXQoKSBpc0VkaXRNb2RlID0gZmFsc2VcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZihkZXRhaWxzICYmIE9iamVjdC5rZXlzKGRldGFpbHMpPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGRhdGVQcm9ncmFtTW9yZU9wdGlvbnMoKTtcclxuICAgIH1cclxuICB9O1xyXG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZl9yY19saXN0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXHJcbiAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nLFxyXG4gICBDQVBSOidTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLidcclxuICB9O1xyXG5cclxuICBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzQ3ljbGVcIikgPz8gJ3t9Jyk7XHJcbiAgbW9yZU9wdGlvbnNMaXN0OiBhbnkgPSB7XHJcbiAgICBBQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVyIGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1NwZWNpZnkgdGhlIG1pdGlnYXRpb24gcGxhbiB0aGF0IGNhbiBiZSB1bmRlcnRha2VuIHRvIG1pdGlnYXRlIHRoZSByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnTUlUSUdBVElPTl9QTEFOJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgTGFiZWwnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTGFiZWwnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCdcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBDQVA6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZFxyXG4gICAgICAgICBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS4gWW91IGNhbiBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gb25lIG9yIG1vcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycy5cclxuICAgICAgICAgIFdoZXJlIHlvdSBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsIHRoYXQgcG9saWN5IHdpbGwgYmUgc2hvd24gYXMgYSBwb2xpY3lcclxuICAgICAgICAgICB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGF0dGVzdGVkIGJ5IGFsbCB0aGUgcGVyc29ucyBhc3NvY2lhdGVkIHdpdGggdGhhdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXHJcbiAgICAgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBvZiBhIHBvbGljeSBhc3NpZ25lZCB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciB3aWxsIGFsc28gY29udHJpYnV0ZSB0byB0aGVcclxuICAgICAgICAgICAgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUkVTUE9OU0lCSUxJVFlfQ0VOVEVSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9ucyBsZXRzIHlvdSBzcGVjaWZ5IGEgcmV2aWV3IGxpZmVjeWNsZSBmb3IgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBzZWxlY3QgYSByZXZpZXdlciBhbmQgZGV0ZXJtaW5lIGhvdyBvZnRlbiB0aGUgcG9saWN5IG5lZWRzIHRvIGJlIHJldmlld2VkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBDaGVja3BvaW50cyBlbmFibGUgeW91IHRvIGNvbmZpcm0gYSBwZXJzb27igJlzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBjcmVhdGUgcXVlc3Rpb25zIGJhc2VkIG9uIHRoZSBwb2xpY3kgY29udGVudCBhbmQgcmVxdWlyZSB0aGF0IHRoZSByZWFkZXIgb2YgdGhlIHBvbGljeVxyXG4gICAgICAgICBhbnN3ZXJzIHRoZXNlIHF1ZXN0aW9ucyBjb3JyZWN0bHkgYmVmb3JlIHByb2NlZWRpbmcgdG8gY29tcGxldGUgdGhlIGF0dGVzdGF0aW9uLlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNlZXJzIGFyZSBwZXJzb25zIHdobyBvdmVyc2VlIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVsYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUydcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIGNvZGU6ICdPQkpFQ1RJVkUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGUgb2JqZWN0aXZlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhbiBvYmplY3RpdmUgZm9yIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnUHJvZ3JhbScsXHJcbiAgICAgIC8vICAgY29kZTogJ0NBVEVHT1JZJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogYFByb2dyYW1zIGVuYWJsZSB5b3UgdG8gZ3JvdXAgc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIHRvZ2V0aGVyLlxyXG4gICAgICAvLyAgICAgQWxsb2NhdGluZyBhIHJlc3BvbnNpYmlsaXR5IHRvIGEgUHJvZ3JhbSBhbGxvd3MgeW91IHRvIHZpZXcgYSBncm91cCBvciBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgYXQgb25jZS5cclxuICAgICAgLy8gICAgIEl0IGFsc28gYWxsb3dzIHlvdSB0byB2aWV3IHRoZSBwZXJmb3JtYW5jZSBvZiB0aG9zZSBjb2xsZWN0aXZlIHJlc3BvbnNpYmlsaXRpZXMuYCxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgICBjb2RlOiAnUFJPR1JBTScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cclxuICAgICAgICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXHJcbiAgICAgICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhvc2UgY29sbGVjdGl2ZSByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkLXF1ZXN0aW9ubmFpcmVzIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcyB3aXRoIGEgcmVzcG9uc2liaWxpdHkuIFRoZXNlIG5lZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBhc3NpZ25lZSBhcyBhIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAvLyAgbmFtZTogJ0NoZWNrcG9pbnRzIDxzcGFuICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cImNoZWNrcG9pbnQtdmVyc2lvblwiPlYyLjA8L3NwYW4+IDxpIGNsYXNzPVwiaWNvbnMgZGVwcmVjaWF0aW9uLWljb24gdngtZnMtMTYgdngtbWwtMlwiIGFwcFRvb2x0aXA9XCJUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLlwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMwOzwvaT4nLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cyA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1RoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UU19ORVcnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiAnTmV3IENoZWNrcG9pbnRzIGNhbiBiZSBsaW5rZWQgd2l0aCBhIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzLidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiBzcGVjaWZ5IHRoZSBsZXZlbCBvZiByaXNrIHRoYXQgdGhlIG9yZ2FuaXphdGlvbiB3aWxsIGJlIGV4cG9zZWQgdG8gaWYgdGhlIHJlc3BvbnNpYmlsaXR5IGlzIG5vdCBjb21wbGV0ZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0EgUmV2aWV3ZXIgaXMgYSBwZXJzb24gdGhhdCBpcyB0YXNrZWQgd2l0aCByZXZpZXdpbmcgdGhlIGNvbXBsZXRlZCByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHQgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmVzcG9uc2liaWxpdHkuXHJcbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxyXG4gICAgICAgICAgQXMgdGhlIHBlcnNvbiBjcmVhdGluZyB0aGUgcmVzcG9uc2liaWxpdHksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJ1NlbGVjdCB0aGUgdGVzdCBwbGFuIGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgLy8gICBkaXNhYmxlZE1lc3NhZ2U6ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSRVFVSVJFUyBBVURJVD8nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIGF1ZGl0IGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoaXMgcmVzcG9uc2liaWxpdHkgY2FuIGJlIHNjaGVkdWxlZCBmb3IgYW4gYXVkaXQgb25seSBhZnRlciB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGlzIHNlbGVjdGVkLidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL3Jpc2stbWl0aWdhdGlvbi1wcmlvcml0eS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdBZGQgYW4gYXBwJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnQVBQUydcclxuICAgICAgLy8gfVxyXG4gICAgXSxcclxuICAgIENBUzogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJmFtcDsgRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH1cclxuICAgIF0sXHJcblxyXG4gICAgIExBSTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0V4Y2VwdGlvbiB0eXBlIGxldHMgeW91IHNwZWNpZnkgd2hldGhlciB0aGVyZSBpcyBhIGRlc2lnbiBvciBhbiBvcGVyYXRpb25hbCBlZmZlY3RpdmVuZXNzIHByb2JsZW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdFWENFUFRJT05fVFlQRSdcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2lzc3VlLXR5cGUuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnSVNTVUVfVFlQRSdcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciByZXNvbHZpbmcgZWFjaCBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1BSSU9SSVRZJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVycyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBDQVBSIDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcm9sZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUm9sZShTKScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUm9sZShzKScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSb2xlKHMpIGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIG9mIGEgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JPTEVTJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3duZXIocyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ093bmVyKHMpJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE93bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5cclxuICAgICAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPV05FUlMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBcHByb3ZlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXBwcm92ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQW4gQXBwcm92ZXIgaXMgcmVzcG9uc2libGUgZm9yIGFwcHJvdmluZyBhIFByb2dyYW0uIFdoZXJlIGFuIEFwcHJvdmVyIGlzIHNlbGVjdGVkLCB0aGUgUHJvZ3JhbSBhbmQgYWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgb25seSBjb21tZW5jZSBvbmNlIHRoZSBQcm9ncmFtIGhhcyBiZWVuIGFwcHJvdmVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdBUFBST1ZFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3JlY3VycmluZy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnK3RoaXMuYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uYnVzaW5lc3NfY3ljbGUrJy4gIEFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIGFsc28gaGF2ZSB0aGUgc2FtZSBQcm9ncmFtIER1cmF0aW9uLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdQUk9HUkFNX0ZSRVFVRU5DWSdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xvY2stc2NvcGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBJZiB0aGUgUHJvZ3JhbSBTY29wZSBpcyBsb2NrZWQsIG5laXRoZXIgdGhlIFByb2dyYW0gbm9yIHRoZSByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtIGNhbiBiZSBlZGl0ZWQgb25jZSB0aGUgUHJvZ3JhbSBiZWdpbnMuIEluIG9yZGVyIHRvIGVkaXQgdGhlIFByb2dyYW0gb3IgdGhlIGxpbmtlZCByZXNwb25zaWJpbGl0aWVzLCB0aGUgUHJvZ3JhbSBkZXRhaWxzIHdpbGwgbmVlZCB0byBiZSBlZGl0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1NDT1BFX0NIQU5HRVMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFdoZXJlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIFJlc3BvbnNpYmlsaXRpZXMgQ2VudGVycyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnUkMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzaWduZWVzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NpZ25lZXMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzaWduZWVzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB0aGVtLiBXaGVyZSBBc3NpZ25lZXMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2lnbmVlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQVNTSUdORUVTJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXJzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXZpZXdlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmV2aWV3ZXJzIGFyZSByZXF1aXJlZCB0byByZXZpZXcgcmVzcG9uc2liaWxpdGllcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBjb21wbGV0ZWQuIFdoZXJlIFJldmlld2VycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmV2aWV3ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVycycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdPdmVyc2VlcnMgcmVjZWl2ZSB1cGRhdGVzIHdoZW4gYSByZXNwb25zaWJpbGl0eSBpcyBjb21wbGV0ZWQsIGNvbXBsZXRlZCB3aXRoIGRlbGF5IG9yIG5vdCBjb21wbGV0ZWQuIFdoZXJlIE92ZXJzZWVycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgT3ZlcnNlZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc2Vzc21lbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0Fzc2Vzc21lbnRzIGFyZSBhIGRpZ2l0YWwgZm9ybSB0aGF0IGFyZSBjcmVhdGVkIGluIOKAnEFzc2Vzc21lbnTigJ0gd2l0aGluIHRoZSBDb21wbGlhbmNlIE1vZHVsZS4gV2hlcmUgQXNzZXNzbWVudHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2Vzc21lbnRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdJZiBzZWxlY3RlZCwgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiBhIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgcmVxdWlyZWQgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLiBBbiBBc3NpZ25vciwgYmVpbmcgdGhlIHBlcnNvbiB3aG8gY3JlYXRlcyB0aGUgcmVzcG9uc2liaWxpdHksIGNhbiBvdmVycmlkZSB0aGlzIG9wdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jdXN0b20tZmllbGRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0N1c3RvbSBGaWVsZCcsXHJcbiAgICAgICAgY29kZTogJ0NVU1RPTV9GSUVMRFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBDdXN0b20gRmllbGQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnV2hlcmUgYSBjdXN0b20gZmllbGQgaXMgc3BlY2lmaWVkLCBhbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0gd2lsbCBjb250YWluIHRoYXQgY3VzdG9tIGZpZWxkLiBDdXN0b20gZmllbGRzIGVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBhZGRpdGlvbmFsIG1ldGEgZGF0YS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcblxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmKGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQgPSBjaGFuZ2VzLmlzUHJvZ3JhbVNlbGVjdGVkLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLmlzUkNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGlmKGVsZS5jb2RlID09PSAnUkVRVUlSRVNfQVVESVQnKSB7XHJcbiAgICAgICAgICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgIC8vICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgaWYoZWxlLmNvZGUgPT09ICdSRVFVSVJFU19BVURJVCcpIHtcclxuICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZlYXR1cmVmbGFncm9sZSA9IHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3JvbGVfaW1wcm92ZW1lbnRzJyk7XHJcbiAgICB0aGlzLmZmX3JjX2xpc3RpbmcgPSB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3JjX2xpc3RpbmcnKTtcclxuICAgIHRoaXMuZmZfcmNfbGlzdGluZyA/IHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbnMnIDogdGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9uIEdyb3VwKFMpJ1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS5uYW1lID0gdGhpcy5wZXJtaXNzaW9uVGV4dFxyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS50b29sdGlwVGl0bGUgPSB0aGlzLnBlcm1pc3Npb25UZXh0XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzFdLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPyBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBQb3dlciBVc2VyIDwvYj4gYW5kIGFsbCA8Yj5Qb3dlciBVc2VyczwvYj4gIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC5cclxuICAgIGAgOiBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBBZG1pbjwvYj4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYDtcclxuICAgIGlmKHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSl7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcE1lc3NhZ2UgPSBgJHt0aGlzLnBlcm1pc3Npb25UZXh0fSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBvZiBhIFByb2dyYW0uYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcE1lc3NhZ2UgPSBgJHt0aGlzLnBlcm1pc3Npb25UZXh0fSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBhbmQg4oCcQXBwcm92ZXJz4oCdIG9mIGEgUHJvZ3JhbS5gXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUycpO1xyXG4gICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9IHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgIGNvbnN0IFByb2dyYW1JbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ1BST0dSQU0nKTtcclxuICAgaWYoUHJvZ3JhbUluZGV4ID4gLTEpe1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW1Byb2dyYW1JbmRleF0uaXNEaXNhYmxlZCA9IHRoaXMuaXNFZGl0TW9kZTtcclxuICAgfVxyXG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5hbGxvd2VkRmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpID8/IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb3JlT3B0aW9uKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZXZlbnQgPT0+XCIsIGV2ZW50LCB0aGlzLmN1cnJlbnRXb3JrZmxvdywgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XSk7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicgJiYgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiYgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkICkge1xyXG5cclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSBmYWxzZTtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkID0gIWV2ZW50LmNoZWNrZWQgO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0gPT09PlwiLCB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdLCBldmVudC5jaGVja2VkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgcG9wdWxhdGUoZXZ0OiBhbnkpe1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudCA9PT0+XCIsIGV2dCk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpe1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKXtcclxuICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICB9ZWxzZXtcclxuICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICB9XHJcbiAgICAgICBpZihldnQuaW5jbHVkZXMoXCJDSEVDS1BPSU5UU19ORVdcIikpIHtcclxuICAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gICAgICAgaWYoZXZ0LmluY2x1ZGVzKFwiQVNTRVNTTUVOVFwiKSkge1xyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoZXZ0LmluY2x1ZGVzKFwiQ0hFQ0tQT0lOVFNcIikpIHtcclxuICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZihldnQuaW5jbHVkZXMoXCJQUk9HUkFNXCIpKSB7XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnUFJPR1JBTScgICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgfVxyXG5cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6YW55KXtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyl7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgaWYgKGhpZGRlbkxpc3QuaW5jbHVkZXMoZWxlbWVudC5jb2RlKSl7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGwod29ya2Zsb3dUeXBlOnN0cmluZyl7XHJcbiAgICBpZih0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdKXtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dUeXBlXS5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xyXG4gICAgY29uc3QgY29kZSA9IFsnUFJPR1JBTV9GUkVRVUVOQ1knLCAnU0NPUEVfQ0hBTkdFUycsICdSQycsICdBU1NJR05FRVMnLCAnUkVWSUVXRVInLCAnT1ZFUlNFRVInLCAnQVNTRVNTTUVOVCcsICdGT1JNQVRFX0VWSURFTkNFJ107XHJcbiAgICBpZih0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiAmJiB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCggKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKXtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpKSB7XHJcbiAgICAgIGNvZGUucHVzaCgnQVBQUk9WRVInKVxyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCggKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKXtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
701
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQThrQjlCOztRQTdrQlMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFTbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsYUFBYSxDQUFDO1FBRXZDLHFCQUFnQixHQUFRO1lBQ3RCLEdBQUcsRUFBRSwyRUFBMkU7WUFDaEYsR0FBRyxFQUFFLDZFQUE2RTtZQUNsRixHQUFHLEVBQUUscUZBQXFGO1lBQzFGLEdBQUcsRUFBRSw2RUFBNkU7WUFDbEYsR0FBRyxFQUFFLDRFQUE0RTtZQUNqRixJQUFJLEVBQUUsNEVBQTRFO1NBQ25GLENBQUM7UUFFRixrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBQSxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxtQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUMxRSxvQkFBZSxHQUFRO1lBQ3JCLEdBQUcsRUFBRTtnQkFDSDtvQkFDRSxRQUFRLEVBQ04sa0ZBQWtGO29CQUNwRixJ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Q0FBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QixNQUFBLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsSUFBSSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7OztZQTV3QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHU2TUFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSztnQ0FDTCxLQUFLOzZCQUNMLEtBQUs7cUNBRUwsS0FBSyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vcmVPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY3VycmVudFdvcmtmbG93ID0gJyc7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZiAoZGV0YWlscyAmJiBPYmplY3Qua2V5cyhkZXRhaWxzKT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZl9yY19saXN0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgIEFBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmlzay4nLFxyXG4gICAgQ0FQOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBwb2xpY3kuJyxcclxuICAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgIENBUzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgc3VydmV5LicsXHJcbiAgICBMQUk6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIGlzc3VlLicsXHJcbiAgICBDQVBSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzY29wZS4nLFxyXG4gIH07XHJcblxyXG4gIGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJ3t9Jyk7XHJcbiAgbW9yZU9wdGlvbnNMaXN0OiBhbnkgPSB7XHJcbiAgICBBQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnT3ZlcnNlZXIgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmlzayBtYW5hZ2VtZW50IHByb2Nlc3MuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoaXMgc2V0cyB0aGUgcHJpb3JpdHkgbGV2ZWwgZm9yIHRoZSBtaXRpZ2F0aW9uIG9mIGVhY2ggcmlzay4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ01JVElHQVRJT04nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnU3BlY2lmeSB0aGUgbWl0aWdhdGlvbiBwbGFuIHRoYXQgY2FuIGJlIHVuZGVydGFrZW4gdG8gbWl0aWdhdGUgdGhlIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OX1BMQU4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIExhYmVsJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIExhYmVsJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IGlmIHRoaXMgaXMgYSBuZXdseSBpZGVudGlmaWVkIHJpc2sgb3IgaXQgaXMgYSByYXBpZGx5IGNoYW5naW5nIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0xBQkVMJyxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBDQVA6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmRcclxuICAgICAgICAgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFlvdSBjYW4gYXR0cmlidXRlIGEgcG9saWN5IHRvIG9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuXHJcbiAgICAgICAgICBXaGVyZSB5b3UgYXR0cmlidXRlIGEgcG9saWN5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLCB0aGF0IHBvbGljeSB3aWxsIGJlIHNob3duIGFzIGEgcG9saWN5XHJcbiAgICAgICAgICAgdGhhdCBpcyByZXF1aXJlZCB0byBiZSBhdHRlc3RlZCBieSBhbGwgdGhlIHBlcnNvbnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgICBUaGUgcGVyZm9ybWFuY2Ugb2YgYSBwb2xpY3kgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlXHJcbiAgICAgICAgICAgIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFU1BPTlNJQklMSVRZX0NFTlRFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9ucyBsZXRzIHlvdSBzcGVjaWZ5IGEgcmV2aWV3IGxpZmVjeWNsZSBmb3IgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBzZWxlY3QgYSByZXZpZXdlciBhbmQgZGV0ZXJtaW5lIGhvdyBvZnRlbiB0aGUgcG9saWN5IG5lZWRzIHRvIGJlIHJldmlld2VkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYENoZWNrcG9pbnRzIGVuYWJsZSB5b3UgdG8gY29uZmlybSBhIHBlcnNvbuKAmXMgdW5kZXJzdGFuZGluZyBvZiB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIGNyZWF0ZSBxdWVzdGlvbnMgYmFzZWQgb24gdGhlIHBvbGljeSBjb250ZW50IGFuZCByZXF1aXJlIHRoYXQgdGhlIHJlYWRlciBvZiB0aGUgcG9saWN5XHJcbiAgICAgICAgIGFuc3dlcnMgdGhlc2UgcXVlc3Rpb25zIGNvcnJlY3RseSBiZWZvcmUgcHJvY2VlZGluZyB0byBjb21wbGV0ZSB0aGUgYXR0ZXN0YXRpb24uXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzZWVycyBhcmUgcGVyc29ucyB3aG8gb3ZlcnNlZSB0aGUgcG9saWN5LlxyXG4gICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgICBBcyB0aGUgcGVyc29uIGNyZWF0aW5nIHRoZSBwb2xpY3ksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVsYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdWRVJTSU9OJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdWZXJzaW9uJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlbGF0ZWQgZG9jdW1lbnRzIGFyZSBmaWxlcyB0aGF0IG1pZ2h0IGJlIHJlbGF0ZWQgdG8gdGhlIHBvbGljeS4gVGhlc2UgY291bGQgYmUgZG9jdW1lbnRzIHdoaWNoIGFyZSByZWxhdGVkXHJcbiAgICAgICAgIHRvIHRoZSBwb2xpY3kgb3IgYXJlIGEgc3Vic2V0IG9mIHRoZSBwb2xpY3kgdGhhdCBpcyBiZWluZyBjcmVhdGVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnVkVSU0lPTicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBQUk9HUkFNUyAmIFJFU1BPTlNJQklMSVRJRVMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBBU1NFU1NNRU5UUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBBU1NFU1NNRU5UUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxyXG4gICAgICAgICB0byB0aGUgcG9saWN5IG9yIGFyZSBhIHN1YnNldCBvZiB0aGUgcG9saWN5IHRoYXQgaXMgYmVpbmcgY3JlYXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0xJTktfQVNTRVNTTUVOVFMnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcclxuICAgICAgICBjb2RlOiAnT0JKRUNUSVZFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBvYmplY3RpdmUgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGFuIG9iamVjdGl2ZSBmb3IgdGhlIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgLy8gICBjb2RlOiAnQ0FURUdPUlknLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgIC8vICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAvLyAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgY29kZTogJ1BST0dSQU0nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Zvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEZvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc2Vzc21lbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgLy8gIG5hbWU6ICdDaGVja3BvaW50cyA8c3BhbiAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJjaGVja3BvaW50LXZlcnNpb25cIj5WMi4wPC9zcGFuPiA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMgPGkgY2xhc3M9XCJpY29ucyBkZXByZWNpYXRpb24taWNvbiB2eC1mcy0xNiB2eC1tbC0yXCIgYXBwVG9vbHRpcD1cIlRoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MzA7PC9pPicsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTX05FVycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ05ldyBDaGVja3BvaW50cyBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gc3BlY2lmeSB0aGUgbGV2ZWwgb2YgcmlzayB0aGF0IHRoZSBvcmdhbml6YXRpb24gd2lsbCBiZSBleHBvc2VkIHRvIGlmIHRoZSByZXNwb25zaWJpbGl0eSBpcyBub3QgY29tcGxldGVkLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19DTEFTU0lGSUNBVElPTicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBIFJldmlld2VyIGlzIGEgcGVyc29uIHRoYXQgaXMgdGFza2VkIHdpdGggcmV2aWV3aW5nIHRoZSBjb21wbGV0ZWQgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHQgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmVzcG9uc2liaWxpdHkuXHJcbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxyXG4gICAgICAgICAgQXMgdGhlIHBlcnNvbiBjcmVhdGluZyB0aGUgcmVzcG9uc2liaWxpdHksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAvLyAgIGlzRGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIC8vICAgZGlzYWJsZWRNZXNzYWdlOiAnVGhpcyByZXNwb25zaWJpbGl0eSBjYW4gYmUgc2NoZWR1bGVkIGZvciBhbiBhdWRpdCBvbmx5IGFmdGVyIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgaXMgc2VsZWN0ZWQuJ1xyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIGF1ZGl0IGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vcmlzay1taXRpZ2F0aW9uLXByaW9yaXR5LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0FkZCBhbiBhcHAnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdBUFBTJ1xyXG4gICAgICAvLyB9XHJcbiAgICBdLFxyXG4gICAgQ0FTOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcblxyXG4gICAgTEFJOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaXNzdWUtdHlwZS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdJc3N1ZSB0eXBlJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdJU1NVRV9UWVBFJ1xyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgcmVzb2x2aW5nIGVhY2ggaXNzdWUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdQUklPUklUWScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzZWVycyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUFI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yb2xlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSb2xlKFMpJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSb2xlKHMpJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJvbGUocykgbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUk9MRVMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L293bmVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ093bmVyKHMpJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPd25lcihzKScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICAgICAgVGhlIDxiPktleSBBZG1pbjwvYj4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1dORVJTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBcHByb3ZlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXBwcm92ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQW4gQXBwcm92ZXIgaXMgcmVzcG9uc2libGUgZm9yIGFwcHJvdmluZyBhIFByb2dyYW0uIFdoZXJlIGFuIEFwcHJvdmVyIGlzIHNlbGVjdGVkLCB0aGUgUHJvZ3JhbSBhbmQgYWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgb25seSBjb21tZW5jZSBvbmNlIHRoZSBQcm9ncmFtIGhhcyBiZWVuIGFwcHJvdmVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdBUFBST1ZFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjdXJyaW5nLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Byb2dyYW0gRHVyYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0gRHVyYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnICtcclxuICAgICAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uYnVzaW5lc3NfY3ljbGUgK1xyXG4gICAgICAgICAgJy4gIEFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIGFsc28gaGF2ZSB0aGUgc2FtZSBQcm9ncmFtIER1cmF0aW9uLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdQUk9HUkFNX0ZSRVFVRU5DWScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbG9jay1zY29wZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMb2NrIHRoZSBQcm9ncmFtIFNjb3BlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMb2NrIHRoZSBQcm9ncmFtIFNjb3BlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYElmIHRoZSBQcm9ncmFtIFNjb3BlIGlzIGxvY2tlZCwgbmVpdGhlciB0aGUgUHJvZ3JhbSBub3IgdGhlIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhlIFByb2dyYW0gY2FuIGJlIGVkaXRlZCBvbmNlIHRoZSBQcm9ncmFtIGJlZ2lucy4gSW4gb3JkZXIgdG8gZWRpdCB0aGUgUHJvZ3JhbSBvciB0aGUgbGlua2VkIHJlc3BvbnNpYmlsaXRpZXMsIHRoZSBQcm9ncmFtIGRldGFpbHMgd2lsbCBuZWVkIHRvIGJlIGVkaXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnU0NPUEVfQ0hBTkdFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBXaGVyZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXNwb25zaWJpbGl0aWVzIENlbnRlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzaWduZWVzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NpZ25lZXMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzaWduZWVzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB0aGVtLiBXaGVyZSBBc3NpZ25lZXMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2lnbmVlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQVNTSUdORUVTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VycycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXZpZXdlcnMgYXJlIHJlcXVpcmVkIHRvIHJldmlldyByZXNwb25zaWJpbGl0aWVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gV2hlcmUgUmV2aWV3ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXZpZXdlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXJzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzZWVycyByZWNlaXZlIHVwZGF0ZXMgd2hlbiBhIHJlc3BvbnNpYmlsaXR5IGlzIGNvbXBsZXRlZCwgY29tcGxldGVkIHdpdGggZGVsYXkgb3Igbm90IGNvbXBsZXRlZC4gV2hlcmUgT3ZlcnNlZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBPdmVyc2VlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgY29kZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQXNzZXNzbWVudHMgYXJlIGEgZGlnaXRhbCBmb3JtIHRoYXQgYXJlIGNyZWF0ZWQgaW4g4oCcQXNzZXNzbWVudOKAnSB3aXRoaW4gdGhlIENvbXBsaWFuY2UgTW9kdWxlLiBXaGVyZSBBc3Nlc3NtZW50cyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzZXNzbWVudHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdJZiBzZWxlY3RlZCwgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiBhIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgcmVxdWlyZWQgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLiBBbiBBc3NpZ25vciwgYmVpbmcgdGhlIHBlcnNvbiB3aG8gY3JlYXRlcyB0aGUgcmVzcG9uc2liaWxpdHksIGNhbiBvdmVycmlkZSB0aGlzIG9wdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY3VzdG9tLWZpZWxkcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDdXN0b20gRmllbGQnLFxyXG4gICAgICAgIGNvZGU6ICdDVVNUT01fRklFTERTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQ3VzdG9tIEZpZWxkJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5jdXJyZW50VmFsdWUgIT09XHJcbiAgICAgIGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5wcmV2aW91c1ZhbHVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1Byb2dyYW1TZWxlY3RlZCA9IGNoYW5nZXMuaXNQcm9ncmFtU2VsZWN0ZWQuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmlzUkNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGlmIChlbGUuY29kZSA9PT0gJ1JFUVVJUkVTX0FVRElUJykge1xyXG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgLy8gICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZiAoZWxlLmNvZGUgPT09ICdSRVFVSVJFU19BVURJVCcpIHtcclxuICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfcm9sZV9pbXByb3ZlbWVudHMnXHJcbiAgICApO1xyXG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XHJcbiAgICB0aGlzLmZmX3JjX2xpc3RpbmdcclxuICAgICAgPyAodGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9ucycpXHJcbiAgICAgIDogKHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbiBHcm91cChTKScpO1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS5uYW1lID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcFRpdGxlID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMV0udG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmZlYXR1cmVmbGFncm9sZVxyXG4gICAgICA/IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IFBvd2VyIFVzZXIgPC9iPiBhbmQgYWxsIDxiPlBvd2VyIFVzZXJzPC9iPiAgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYFxyXG4gICAgICA6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICBgO1xyXG4gICAgaWYgKHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gYW5kIOKAnEFwcHJvdmVyc+KAnSBvZiBhIFByb2dyYW0uYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUydcclxuICAgICk7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9XHJcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBQcm9ncmFtSW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5jb2RlID09PSAnUFJPR1JBTSdcclxuICAgICk7XHJcbiAgICBpZiAoUHJvZ3JhbUluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW1Byb2dyYW1JbmRleF0uaXNEaXNhYmxlZCA9IHRoaXMuaXNFZGl0TW9kZTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9XHJcbiAgICAgIHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSA/PyB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0TW9yZU9wdGlvbihldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ2V2ZW50ID09PicsXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICB0aGlzLmN1cnJlbnRXb3JrZmxvdyxcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XVxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPT09ICdDQVInICYmXHJcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnICYmXHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0uY2hlY2tlZFxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbi5lbWl0KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0uY2hlY2tlZCA9XHJcbiAgICAgICAgIWV2ZW50LmNoZWNrZWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICd0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdID09PT4nLFxyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0sXHJcbiAgICAgICAgZXZlbnQuY2hlY2tlZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGUoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT0+JywgZXZ0KTtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdykge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd10uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQ0hFQ0tQT0lOVFNfTkVXJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdBU1NFU1NNRU5UJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UUycpKSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoJ1BST0dSQU0nKSkge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ1BST0dSQU0nICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlRWxlbWVudHMoaGlkZGVuTGlzdDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChoaWRkZW5MaXN0LmluY2x1ZGVzKGVsZW1lbnQuY29kZSkpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGwod29ya2Zsb3dUeXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xyXG4gICAgY29uc3QgY29kZSA9IFtcclxuICAgICAgJ1BST0dSQU1fRlJFUVVFTkNZJyxcclxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxyXG4gICAgICAnUkMnLFxyXG4gICAgICAnQVNTSUdORUVTJyxcclxuICAgICAgJ1JFVklFV0VSJyxcclxuICAgICAgJ09WRVJTRUVSJyxcclxuICAgICAgJ0FTU0VTU01FTlQnLFxyXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICBdO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiAmJlxyXG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0Py5DQVBSPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjb2RlPy5pbmNsdWRlcyhvcHRpb24uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICBjb2RlLnB1c2goJ0FQUFJPVkVSJyk7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0Py5DQVBSPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjb2RlPy5pbmNsdWRlcyhvcHRpb24uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=