mmhglobal-dynamicform 2.28.5 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +12 -0
  2. package/esm2020/lib/embed-components/processing-record-loader/processing-record-loader.component.mjs +2 -2
  3. package/esm2020/lib/kscrollview/kscrollview.component.mjs +2 -2
  4. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +17 -8
  5. package/esm2020/lib/services/main.service.mjs +19 -4
  6. package/esm2020/lib/services/zcomponent.debug.service.mjs +3 -3
  7. package/esm2020/lib/services/zcomponent.service.mjs +2 -2
  8. package/esm2020/lib/sfdatetimepicker/sfdatetimepicker.component.mjs +51 -0
  9. package/esm2020/lib/uiheader/uiheader.component.mjs +2 -2
  10. package/esm2020/lib/zbuttons/zbuttons.component.mjs +20 -10
  11. package/esm2020/lib/zdatetime/dateKendoFormatParser.pipe.mjs +2 -1
  12. package/esm2020/lib/zdatetime/zdatetime.component.mjs +11 -7
  13. package/esm2020/lib/zform/zform.component.mjs +2 -2
  14. package/esm2020/lib/zinput-container/zinput-container.component.mjs +22 -20
  15. package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +4 -3
  16. package/esm2020/lib/ztreelist/ztreelist.component.mjs +3 -3
  17. package/esm2020/lib/zupload/zupload.component.mjs +6 -7
  18. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +3 -2
  19. package/esm2020/public-api.mjs +2 -1
  20. package/fesm2015/mmhglobal-dynamicform.mjs +144 -60
  21. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  22. package/fesm2020/mmhglobal-dynamicform.mjs +142 -60
  23. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  24. package/lib/mmhglobal-dynamicform.module.d.ts +41 -39
  25. package/lib/services/zcomponent.debug.service.d.ts +1 -1
  26. package/lib/sfdatetimepicker/sfdatetimepicker.component.d.ts +23 -0
  27. package/lib/zdatetime/zdatetime.component.d.ts +2 -1
  28. package/lib/zinput-container/zinput-container.component.d.ts +1 -0
  29. package/lib/zinput-container/zinput-container.pipe.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -0
@@ -87,9 +87,11 @@ export class ZuploadComponent extends InputFieldBase {
87
87
  // this.group['UploadMetaData'] = new UploadMetaData(null, '15', 'SO-No-1234', 'SaleOrder');
88
88
  // this.uploadSaveUrl = uploadAttachmentUrl + this.uploadSaveUrl;
89
89
  // this.uploadRemoveUrl = uploadAttachmentUrl + this.uploadRemoveUrl;
90
- if (this.data.SelectOptions) {
91
- this.restrictions.allowedExtensions = this.data
92
- .SelectOptions;
90
+ if (this.data.SelectOptions && !this.data.AllowedFileExtension) {
91
+ this.restrictions.allowedExtensions = this.data.SelectOptions;
92
+ }
93
+ else if (!this.data.SelectOptions && this.data.AllowedFileExtension) {
94
+ this.restrictions.allowedExtensions = this.restrictions.allowedExtensions.concat(this.data.AllowedFileExtension);
93
95
  }
94
96
  if (this.data.MinFileSize) {
95
97
  this.restrictions.minFileSize = this.data.MinFileSize;
@@ -104,9 +106,6 @@ export class ZuploadComponent extends InputFieldBase {
104
106
  if (this.data.Multiple) {
105
107
  this.isMultiple = this.data.Multiple;
106
108
  }
107
- if (this.data.AllowedFileExtension) {
108
- this.restrictions.allowedExtensions = this.restrictions.allowedExtensions.concat(this.data.AllowedFileExtension);
109
- }
110
109
  this.componentProperties.style.style6 = this.componentProperties.style.style6 || "margin: 5px; border: 1px solid gray;";
111
110
  }
112
111
  onSuccess(e) {
@@ -401,4 +400,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
401
400
  type: ViewChild,
402
401
  args: ["uploadComponent"]
403
402
  }] } });
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5Qiw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdyRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFFTyxnQkFBZ0IsRUFBeUIsY0FBYyxFQUE2QyxnQkFBZ0IsRUFDakksTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUV6QixNQUFNLE9BQU8sVUFBVTtDQUl0QjtBQVNELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBd0NsRCxtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixnREFBZ0Q7SUFDaEQsTUFBTTtJQUVOLG9CQUFvQjtJQUNwQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3Qiw0REFBNEQ7SUFDNUQsNENBQTRDO0lBQzVDLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLG9DQUFvQztJQUNwQyxvQ0FBb0M7SUFDcEMsa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixZQUNTLGdCQUFtQyxFQUNsQyxXQUF3QixFQUN4QixhQUFtQyxFQUNuQyxZQUEwQixFQUMxQixNQUFjLEVBQ2QsaUJBQW9DLEVBQ3BDLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBUmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBaEVwQyx3QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFDbkMsa0JBQWEsR0FBRywrQkFBK0IsQ0FBQyxDQUFDLDBDQUEwQztRQUMzRixvQkFBZSxHQUFHLGlDQUFpQyxDQUFDLENBQUMsMENBQTBDO1FBQy9GLG9CQUFlLEdBQUcsMEJBQTBCLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLGFBQWE7UUFDbkQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixRQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFFZCxpQkFBWSxHQUFxQjtZQUN0QyxXQUFXLEVBQUUsQ0FBQztZQUNkLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLO2dCQUNMLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxNQUFNO2dCQUNOLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixLQUFLO2FBQ047U0FDRixDQUFDO1FBRUssa0JBQWEsR0FBa0I7WUFDcEMsSUFBSSxFQUFFLE1BQU07WUFDWixjQUFjLEVBQUUsQ0FBQztTQUNsQixDQUFDO1FBZ0NBLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4Qiw0RkFBNEY7UUFHNUYsaUVBQWlFO1FBQ2pFLHFFQUFxRTtRQUVyRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEdBQUksSUFBSSxDQUFDLElBQUk7aUJBQzdDLGFBQXFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRWxELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN0QztRQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNsSDtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLHNDQUFzQyxDQUFDO0lBQzFILENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBZTtRQUN2Qiw4RkFBOEY7UUFDOUYsbUVBQW1FO1FBQ25FLGFBQWE7UUFDYixJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDNUgsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQWUsQ0FBQztRQUN0QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hILElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDNUIsc0NBQXNDO1lBQ3RDLGlHQUFpRztZQUNqRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFaEMsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUM5RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQztTQUVGO2FBQU0sSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUNuQyxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqRTtTQUNGO1FBRUQsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzNCLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDckIsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxTQUFpQztRQUNoRSxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUU7WUFDN0IsU0FBUyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkY7UUFFRCxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUU7WUFDN0IsU0FBUyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkY7YUFDSTtZQUNILFNBQVMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8saUJBQWlCLENBQUMsVUFBa0I7UUFDMUMsSUFBSSxvQkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxVQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUVuQixtQkFBbUI7UUFDbkIsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkQsZ0NBQWdDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRTtZQUMvQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhGLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO2dCQUNsQyxvQ0FBb0M7Z0JBQ3BDLFFBQVEsR0FBRyxXQUFXLEdBQUcsUUFBUSxDQUFDO2dCQUNsQyxvQkFBb0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9EO2lCQUNJO2dCQUNILG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0Q7WUFFRCxRQUFRLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDOUIsS0FBSyxHQUFHO29CQUNOLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQTtvQkFDakMsTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsVUFBVSxHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQTtvQkFDeEMsTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsVUFBVSxHQUFHLG9CQUFvQixHQUFHLE9BQU8sQ0FBQTtvQkFDM0MsTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsVUFBVSxHQUFHLG9CQUFvQixHQUFHLFVBQVUsQ0FBQTtvQkFDOUMsTUFBTTthQUNUO1NBQ0Y7YUFDSTtZQUNILHNDQUFzQztZQUN0QyxVQUFVLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQWM7UUFDL0IsZ0JBQWdCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVoQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWMsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNyQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU87YUFDUjtpQkFDSTtnQkFDSCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRTs0QkFDMUIsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dDQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29DQUM5QixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0NBQ3RCLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFVLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lDQUNoRTs2QkFDRjt3QkFDSCxDQUFDLENBQUE7d0JBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3BDO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxJQUFJLFVBQVUsR0FBbUIsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXpHLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxjQUFjLENBQUMsRUFBRTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyRyxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzVDO1FBR0Qsb0JBQW9CO1FBQ3BCLElBQUksY0FBYyxHQUFlLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUUzRywyQkFBMkI7UUFDM0IsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRixVQUFVLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3hDO1lBQ0QsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDaEUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixDQUFDO1lBQ3RGLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztTQUNyRjtRQUNELFlBQVk7UUFFWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDOUIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFjO1FBQ3JCLG9DQUFvQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDbkMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ3RDLENBQUM7UUFFRixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzFEO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDckMsSUFBSSxFQUFFLENBQUM7YUFDaUIsQ0FBQyxDQUFDO1NBQzdCO2FBQ0k7WUFDSCxNQUFNLE1BQU0sR0FBZSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBZSxDQUFDO1lBRXBELG1DQUFtQztZQUNuQyxDQUFDLENBQUMsSUFBSSxHQUFHO2dCQUNQLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSzthQUNqQixDQUFDO1lBQ0YsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDMUIsZUFBZSxFQUNmLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FDM0MsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFjLEVBQUUsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWdCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDdEIsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxJQUFJO2FBQ2MsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEVBQU8sRUFBRSxJQUFjO1FBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2RSw2Q0FBNkM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4RyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUM5RCxZQUFZLEdBQUcseUNBQXlDLEVBQUUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDekc7aUJBQ0ksSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7Z0JBQy9DLFlBQVksR0FBRyw0QkFBNEIsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7YUFDOUY7WUFFRCxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBRXRFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxDQUFjO1FBQy9CLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVoQixvQkFBb0I7UUFDcEIsTUFBTSxjQUFjLEdBQWUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQzdHLCtDQUErQztRQUMvQyxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsa0JBQWtCLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUNsRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztTQUNqRTtRQUNELFlBQVk7UUFFWixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUMvQix1Q0FBdUM7WUFDdkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQWMsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUU7NEJBQzFCLDBEQUEwRDs0QkFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQ3pDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUV2Qyw2QkFBNkI7NEJBQzdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMzQixFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7NEJBRW5ELElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO2dDQUNoQyx5QkFBeUI7Z0NBQ3pCLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQ0FDcEIsSUFBSSxFQUFFLDJCQUEyQjtvQ0FDakMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7b0NBQ3BDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUTtpQ0FDTyxDQUFDLENBQUM7NkJBQzdCO3dCQUNILENBQUMsQ0FBQzt3QkFDRixNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUMxQztpQkFDRjtxQkFDSTtvQkFDSCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUNJO1lBQ0gsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDekIsNkJBQTZCO2dCQUM3QixNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFFckUsd0NBQXdDO2dCQUN4QyxJQUFJLHVCQUF1QixLQUFLLElBQUksRUFBRTtvQkFDcEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFjLEVBQUUsRUFBRTt3QkFDakMsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFOzRCQUNwQyx1Q0FBdUM7NEJBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0NBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0NBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29DQUN2RSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixFQUFFO3dDQUM3QyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFFLGtEQUFrRDs2Q0FDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzs2Q0FDYixTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7NENBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnREFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7Z0RBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztnREFFOUIsNkJBQTZCO2dEQUM3QixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dEQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dEQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs0Q0FDckMsQ0FBQyxDQUFDLENBQUM7NENBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3dDQUNsRixDQUFDLENBQUMsQ0FBQztxQ0FDTixDQUFDLGtCQUFrQjtpQ0FDckIsQ0FBQyx5QkFBeUI7NkJBQzVCLENBQUMsa0JBQWtCO3lCQUNyQjs2QkFDSTs0QkFDSCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7eUJBQ3BCO29CQUNILENBQUMsQ0FBQyxDQUFBLENBQUMsaUJBQWlCO2lCQUNyQixDQUFDLHlCQUF5QjtnQkFFM0IscUJBQXFCO2dCQUNyQixFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDaEQ7U0FDRjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxLQUFLLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OzZHQXhiVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiw4TENoQzdCLHUyREF1REE7MkZEdkJhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxhQUFhO2dSQU1PLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgTmdab25lLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gXCJzcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50XCI7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZpbGVJbmZvLCBTdWNjZXNzRXZlbnQsIFJlbW92ZUV2ZW50LCBVcGxvYWRFdmVudCwgRmlsZVJlc3RyaWN0aW9ucywgQ2h1bmtTZXR0aW5ncywgU2VsZWN0RXZlbnQsIFVwbG9hZENvbXBvbmVudCB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci11cGxvYWRcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsIFpDb3JlU2VydmljZSwgQ29tcHJlc3NJbWFnZVNlcnZpY2UsIEFsZXJ0U2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIFVwbG9hZE1ldGFEYXRhLCBJbWFnZUNvbXByZXNzaW9uQ29uZmlnLCBTaGFyZVBvaW50U2VydmljZSwgQXR0YWNobWVudENvbmZpZywgQXR0YWNobWVudFxyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNeUZpbGVJbmZvIGltcGxlbWVudHMgRmlsZUluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1aWQ/OiBzdHJpbmc7XHJcbiAgbXlVaWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenVwbG9hZFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venVwbG9hZC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96dXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp1cGxvYWRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcInVwbG9hZENvbXBvbmVudFwiKSB1cGxvYWRDb21wb25lbnQ6IFVwbG9hZENvbXBvbmVudDtcclxuXHJcbiAgdXBsb2FkQXR0YWNobWVudFVybDogc3RyaW5nID0gbnVsbDtcclxuICB1cGxvYWRTYXZlVXJsID0gXCIvQXR0YWNobWVudC9DaHVua19VcGxvYWRfU2F2ZVwiOyAvLyBzaG91bGQgcmVwcmVzZW50IGFuIGFjdHVhbCBBUEkgZW5kcG9pbnRcclxuICB1cGxvYWRSZW1vdmVVcmwgPSBcIi9BdHRhY2htZW50L0NodW5rX1VwbG9hZF9SZW1vdmVcIjsgLy8gc2hvdWxkIHJlcHJlc2VudCBhbiBhY3R1YWwgQVBJIGVuZHBvaW50XHJcbiAgZG93bmxvYWRGaWxlVXJsID0gXCIvQXR0YWNobWVudC9kb3dubG9hZEZpbGVcIjtcclxuICBnZXRJbWFnZVVybCA9IFwiL0F0dGFjaG1lbnQvZ2V0SW1hZ2VcIjsgLy8gR0VUIG1ldGhvZFxyXG4gIGlzQXV0b1VwbG9hZCA9IGZhbHNlO1xyXG4gIGlzTXVsdGlwbGUgPSBmYWxzZTtcclxuICBpbWFnZVByZXZpZXdzOiBhbnlbXSA9IFtdO1xyXG4gIHVpZDogc3RyaW5nW10gPSBbXTtcclxuICBzaG93RmlsZUxpc3QgPSB0cnVlO1xyXG4gIGZpbGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgcmVzdHJpY3Rpb25zOiBGaWxlUmVzdHJpY3Rpb25zID0ge1xyXG4gICAgbWluRmlsZVNpemU6IDEsXHJcbiAgICBtYXhGaWxlU2l6ZTogNDE5NDMwNCxcclxuICAgIGFsbG93ZWRFeHRlbnNpb25zOiBbXHJcbiAgICAgIFwianBnXCIsXHJcbiAgICAgIFwianBlZ1wiLFxyXG4gICAgICBcInBuZ1wiLFxyXG4gICAgICBcImJtcFwiLFxyXG4gICAgICBcInBkZlwiLFxyXG4gICAgICBcInR4dFwiLFxyXG4gICAgICBcImRvY3hcIixcclxuICAgICAgXCJkb2NcIixcclxuICAgICAgXCJ4bHN4XCIsXHJcbiAgICAgIFwieGxzXCIsXHJcbiAgICAgIFwicHB0XCIsXHJcbiAgICAgIFwicHB0eFwiLFxyXG4gICAgICBcImNzdlwiLFxyXG4gICAgXSxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgY2h1bmtTZXR0aW5nczogQ2h1bmtTZXR0aW5ncyA9IHtcclxuICAgIHNpemU6IDEwMjQwMCxcclxuICAgIG1heEF1dG9SZXRyaWVzOiAzLFxyXG4gIH07XHJcblxyXG4gIC8vIHpNb2RlbFZhbHVlID0gW3tcclxuICAvLyAgIG5hbWU6IFwiUlhKUyAwMS5wbmdcIixcclxuICAvLyAgIHNpemU6IDEyODc1MyxcclxuICAvLyAgIHVpZDogXCJjOTZlMjM0ZC1hZjYxLTQ1ODctYWRjYy0zYjQwMGRkZWY4ODRcIlxyXG4gIC8vIH1dO1xyXG5cclxuICAvLyBmaWVsZEVsZW1lbnQgPSBbe1xyXG4gIC8vICAgTmFtZTogJ0ZpbGVVcGxvYWRMaXN0JyxcclxuICAvLyAgIFR5cGU6ICd6dXBsb2FkJyxcclxuICAvLyAgIFZhbHVlOiAnRmlsZVVwbG9hZExpc3QnLFxyXG4gIC8vICAgU2VsZWN0aW9uT3B0aW9uczogWydqcGcnLCAnanBlZycsICdwbmcnLCAnYm1wJywgJ3BkZiddLFxyXG4gIC8vICAgVXBsb2FkTWV0YURhdGE6ICdncm91cC5VcGxvYWRNZXRhRGF0YScsXHJcbiAgLy8gICBBdXRvVXBsb2FkOiBmYWxzZSxcclxuICAvLyAgIEFsbG93UmVtb3ZlOiB0cnVlLFxyXG4gIC8vICAgTXVsdGlwbGU6IGZhbHNlLFxyXG4gIC8vICAgT25TdWNjZXNzOiAnZ3JvdXAub25TdWNjZXNzKCknLFxyXG4gIC8vICAgRGl2Q2xhc3M6IFwiY29sLW1kLTEyIGNvbC1tZC02XCIsXHJcbiAgLy8gICBWaXNpYmxlOiB0cnVlXHJcbiAgLy8gfV07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbXByZXNzSW1hZ2U6IENvbXByZXNzSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6Y29yZVNlcnZpY2U6IFpDb3JlU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHNoYXJlUG9pbnRTZXJ2aWNlOiBTaGFyZVBvaW50U2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gICAgdGhpcy51cGxvYWRBdHRhY2htZW50VXJsID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKS51cGxvYWRBdHRhY2htZW50VXJsO1xyXG4gICAgdGhpcy51cGxvYWRTYXZlVXJsID0gdGhpcy51cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRTYXZlVXJsO1xyXG4gICAgdGhpcy51cGxvYWRSZW1vdmVVcmwgPSB0aGlzLnVwbG9hZEF0dGFjaG1lbnRVcmwgKyB0aGlzLnVwbG9hZFJlbW92ZVVybDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuc2V0dXBJbm5lckZpZWxkKCk7XHJcbiAgICAvLyB0aGlzLmdyb3VwWydVcGxvYWRNZXRhRGF0YSddID0gbmV3IFVwbG9hZE1ldGFEYXRhKG51bGwsICcxNScsICdTTy1Oby0xMjM0JywgJ1NhbGVPcmRlcicpO1xyXG5cclxuXHJcbiAgICAvLyB0aGlzLnVwbG9hZFNhdmVVcmwgPSB1cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRTYXZlVXJsO1xyXG4gICAgLy8gdGhpcy51cGxvYWRSZW1vdmVVcmwgPSB1cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRSZW1vdmVVcmw7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5TZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zID0gKHRoaXMuZGF0YVxyXG4gICAgICAgIC5TZWxlY3RPcHRpb25zIGFzIHVua25vd24pIGFzIHN0cmluZ1tdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuTWluRmlsZVNpemUpIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnMubWluRmlsZVNpemUgPSB0aGlzLmRhdGEuTWluRmlsZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5NYXhGaWxlU2l6ZSkge1xyXG4gICAgICB0aGlzLnJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSA9IHRoaXMuZGF0YS5NYXhGaWxlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1VwbG9hZCA9IHRoaXMuZGF0YS5BdXRvVXBsb2FkIHx8IGZhbHNlO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLkFsbG93UmVtb3ZlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkUmVtb3ZlVXJsID0gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRoaXMuZGF0YS5NdWx0aXBsZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLkFsbG93ZWRGaWxlRXh0ZW5zaW9uKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zID0gdGhpcy5yZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnMuY29uY2F0KHRoaXMuZGF0YS5BbGxvd2VkRmlsZUV4dGVuc2lvbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU2ID0gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNiB8fCBcIm1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCBncmF5O1wiO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzKGU6IFN1Y2Nlc3NFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gYW5ndWxhciBrZW5kbyB1cGxvYWQgZGlkbid0IGZpbHRlciBhd2F5IFNlbnQgZXZlbnQgZm9yIHJlbW92ZSwgc28gd2UgaGF2ZSB0byBoYW5kbGUgaXQgaGVyZVxyXG4gICAgLy8gdXBsb2FkIHByb2dyZXNzIG5vdCByZXF1aXJlZCBmb3IgcmVtb3ZhbCwgdGh1cyBpdCdzIGFsc28gcmVtb3ZlZFxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgaWYgKGUub3BlcmF0aW9uID09PSBcInJlbW92ZVwiICYmIChlLnJlc3BvbnNlLnR5cGUgPT09IEh0dHBFdmVudFR5cGUuU2VudCB8fCBlLnJlc3BvbnNlLnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSkpIHtcclxuICAgICAgdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbGUgPSBlLmZpbGVzWzBdIGFzIE15RmlsZUluZm87XHJcbiAgICBjb25zdCBleGlzdGluZ0ZpbGVJbmRleCA9IHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0uZmluZEluZGV4KGYgPT4gZi5uYW1lID09PSBmaWxlLm5hbWUgJiYgZi51aWQgPT09IGZpbGUudWlkKTtcclxuICAgIGlmIChlLm9wZXJhdGlvbiA9PT0gXCJ1cGxvYWRcIikge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygndXBsb2FkIFN1Y2Nlc3M6ICcsIGUpO1xyXG4gICAgICAvL3NoYXJlcG9pbnQgcmVxdWlyZWQgdG8gcmVhZCBkYXRhIGZyb20gZmlsZVVpZCBhbmQgYXR0YWNobWVudCBhYmxlIHRvIGdldCBkYXRhIGZyb20gZmlsZVVpZCB0b28uXHJcbiAgICAgIGZpbGUubXlVaWQgPSBlLnJlc3BvbnNlPy5ib2R5Py5maWxlVWlkID8/IGZpbGUudWlkO1xyXG4gICAgICBkZWxldGUgZmlsZVsnaHR0cFN1YnNjcmlwdGlvbiddO1xyXG5cclxuICAgICAgaWYgKGV4aXN0aW5nRmlsZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV1bZXhpc3RpbmdGaWxlSW5kZXhdID0gZmlsZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLnB1c2goZmlsZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKGUub3BlcmF0aW9uID09PSBcInJlbW92ZVwiKSB7XHJcbiAgICAgIGlmIChleGlzdGluZ0ZpbGVJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLnNwbGljZShleGlzdGluZ0ZpbGVJbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJ6dXBsb2FkLW9uU3VjY2Vzc1wiLFxyXG4gICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5PblN1Y2Nlc3MsXHJcbiAgICAgIGV2ZW50OiBlLFxyXG4gICAgICBkYXRhOiB7IHZhbHVlOiBlLmZpbGVzWzBdLCBmaWVsZDogdGhpcy5kYXRhIH0sXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXByZXNzaW9uQ29uZmlnSGFuZGxlcihpbWdDb25maWc6IEltYWdlQ29tcHJlc3Npb25Db25maWcpOiBJbWFnZUNvbXByZXNzaW9uQ29uZmlnIHtcclxuICAgIGlmIChpbWdDb25maWcuRmlsZVNpemVNYXhTaXplKSB7XHJcbiAgICAgIGltZ0NvbmZpZy5GaWxlU2l6ZU1heFNpemVCeXRlID0gdGhpcy5jb252ZXJ0U2l6ZVRvQnl0ZShpbWdDb25maWcuRmlsZVNpemVNYXhTaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZSkge1xyXG4gICAgICBpbWdDb25maWcuRmlsZVNpemVNaW5TaXplQnl0ZSA9IHRoaXMuY29udmVydFNpemVUb0J5dGUoaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZUJ5dGUgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbWdDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRTaXplVG9CeXRlKHNpemVTdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgX3RlbXBGaWxlU2l6ZU1heFNpemU6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgc2l6ZUJ5Qnl0ZTogbnVtYmVyID0gMDtcclxuICAgIGxldCBzaXplVHlwZSA9ICdiJztcclxuXHJcbiAgICAvLyByZW1vdmUgYWxsIHNwYWNlXHJcbiAgICBjb25zdCBfdGVtcEZpbGVTaXplID0gc2l6ZVN0cmluZy5yZXBsYWNlKC8gL2csICcnKTtcclxuXHJcbiAgICAvLyBjaGVjayBsYXN0IGNoYXIgaXMgYWxwaGFiZXRpY1xyXG4gICAgY29uc3QgbGFzdENoYXIgPSBfdGVtcEZpbGVTaXplLnN1YnN0cihfdGVtcEZpbGVTaXplLmxlbmd0aCAtIDEpO1xyXG4gICAgaWYgKGlzTmFOKHBhcnNlRmxvYXQobGFzdENoYXIpKSkge1xyXG4gICAgICBjb25zdCBzZWNMYXN0Q2hhciA9IF90ZW1wRmlsZVNpemUuc3Vic3RyKF90ZW1wRmlsZVNpemUubGVuZ3RoIC0gMikuc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgICAgaWYgKGlzTmFOKHBhcnNlRmxvYXQoc2VjTGFzdENoYXIpKSkge1xyXG4gICAgICAgIC8vIGNoZWNrIGxhc3QgMm5kIGNoYXIgaXMgYWxwaGFiZXRpY1xyXG4gICAgICAgIHNpemVUeXBlID0gc2VjTGFzdENoYXIgKyBzaXplVHlwZTtcclxuICAgICAgICBfdGVtcEZpbGVTaXplTWF4U2l6ZSA9IHBhcnNlRmxvYXQoX3RlbXBGaWxlU2l6ZS5zbGljZSgwLCAtMikpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIF90ZW1wRmlsZVNpemVNYXhTaXplID0gcGFyc2VGbG9hdChfdGVtcEZpbGVTaXplLnNsaWNlKDAsIC0xKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN3aXRjaCAoc2l6ZVR5cGUudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgIGNhc2UgXCJiXCI6XHJcbiAgICAgICAgICBzaXplQnlCeXRlID0gX3RlbXBGaWxlU2l6ZU1heFNpemVcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJrYlwiOlxyXG4gICAgICAgICAgc2l6ZUJ5Qnl0ZSA9IF90ZW1wRmlsZVNpemVNYXhTaXplICogMTAyNFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm1iXCI6XHJcbiAgICAgICAgICBzaXplQnlCeXRlID0gX3RlbXBGaWxlU2l6ZU1heFNpemUgKiAxMDQ4NTc2XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiZ2JcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZSAqIDEwNzM3NDE4MjRcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gZGVmYXVsdCB1c2luZyBieXRlcyBpZiBubyBzaXplIHR5cGVcclxuICAgICAgc2l6ZUJ5Qnl0ZSA9IHBhcnNlRmxvYXQoX3RlbXBGaWxlU2l6ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHNpemVCeUJ5dGU7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRFdmVudEhhbmRsZXIoZTogVXBsb2FkRXZlbnQpIHtcclxuICAgIC8vIEltYWdlIFByZXZpZXdcclxuICAgIGNvbnN0IG1lID0gdGhpcztcclxuXHJcbiAgICBlLmZpbGVzLmZvckVhY2goKGZpbGU6IEZpbGVJbmZvKSA9PiB7XHJcbiAgICAgIGlmICghbWUuaXNWYWxpZFVwbG9hZGVkRmlsZShtZSwgZmlsZSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChmaWxlLnJhd0ZpbGUgJiYgZmlsZS5yYXdGaWxlLnR5cGUuaW5jbHVkZXMoXCJpbWFnZVwiKSkge1xyXG4gICAgICAgICAgaWYgKCFmaWxlLnZhbGlkYXRpb25FcnJvcnMpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uIChldikge1xyXG4gICAgICAgICAgICAgIGlmIChtZS5kYXRhLkVuYWJsZUltYWdlUHJldmlldykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtZS51aWQuaW5jbHVkZXMoZmlsZS51aWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgIG1lLnVpZC5wdXNoKGZpbGUudWlkKTtcclxuICAgICAgICAgICAgICAgICAgbWUuaW1hZ2VQcmV2aWV3cy5wdXNoKHsgLi4uZmlsZSwgc3JjOiA8c3RyaW5nPnJlYWRlci5yZXN1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUucmF3RmlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBZGQgbWV0YWRhdGEgdG8gdGhlIHVwbG9hZCBldmVudFxyXG4gICAgbGV0IGFkZGl0aW9uYWw6IFVwbG9hZE1ldGFEYXRhID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5VcGxvYWRNZXRhRGF0YSk7XHJcblxyXG4gICAgaWYgKCEoYWRkaXRpb25hbCBpbnN0YW5jZW9mIFVwbG9hZE1ldGFEYXRhKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVXBsb2FkTWV0YURhdGEgZGVmaW5lZCBhdCBcIiArIHRoaXMuZGF0YS5VcGxvYWRNZXRhRGF0YSArIFwiIGlzIGludmFsaWQ6IFwiLCBhZGRpdGlvbmFsKTtcclxuICAgICAgYWRkaXRpb25hbCA9IG5ldyBVcGxvYWRNZXRhRGF0YShudWxsLCBcIjBcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vI3JlZ2lvbiBzaGFyZXBvaW50XHJcbiAgICBsZXQgYXR0YWNobWVudEluZm86IEF0dGFjaG1lbnQgPSB0aGlzLnNoYXJlUG9pbnRTZXJ2aWNlLmdldEF0dGFjaG1lbnRJbmZvKHRoaXMuZGF0YVtcIkRvd25sb2FkRmlsZUNvbmZpZ1wiXSk7XHJcblxyXG4gICAgLy9hZGQgdGFnZ2luZyBpbnRvIG1ldGFkYXRhXHJcbiAgICBpZiAoYXR0YWNobWVudEluZm8pIHtcclxuICAgICAgaWYgKGF0dGFjaG1lbnRJbmZvLnRhZykge1xyXG4gICAgICAgIGNvbnN0IHRhZyA9IHRoaXMuc2hhcmVQb2ludFNlcnZpY2UuZ2VuZXJhdGVUYWdnaW5nKHRoaXMuZ3JvdXAsIGF0dGFjaG1lbnRJbmZvLnRhZyk7XHJcbiAgICAgICAgYWRkaXRpb25hbFtBdHRhY2htZW50Q29uZmlnLnRhZ10gPSB0YWc7XHJcbiAgICAgIH1cclxuICAgICAgYWRkaXRpb25hbFtBdHRhY2htZW50Q29uZmlnLnNpdGVOYW1lXSA9IGF0dGFjaG1lbnRJbmZvLnNpdGVOYW1lO1xyXG4gICAgICBhZGRpdGlvbmFsW0F0dGFjaG1lbnRDb25maWcuZG9jdW1lbnRMaWJyYXJ5TmFtZV0gPSBhdHRhY2htZW50SW5mby5kb2N1bWVudExpYnJhcnlOYW1lO1xyXG4gICAgICBhZGRpdGlvbmFsW0F0dGFjaG1lbnRDb25maWcuaXNTYXZlVG9TaGFyZVBvaW50XSA9IGF0dGFjaG1lbnRJbmZvLmlzU2F2ZVRvU2hhcmVQb2ludDtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIGNvbnN0IHN0ciA9IEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWwpO1xyXG5cclxuICAgIGUuZGF0YSA9IHsgYWRkaXRpb25hbDogc3RyLCB9O1xyXG4gICAgZS5oZWFkZXJzID0gZS5oZWFkZXJzLmFwcGVuZChcIkF1dGhvcml6YXRpb25cIiwgXCJCZWFyZXIgXCIgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxQWNjZXNzVG9rZW4pO1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUoZTogUmVtb3ZlRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIHJlbW92ZSBmaWxlIGZyb20gY29tcG9uZW50IG1lbW9yeVxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGl0ZW0pID0+IGl0ZW0udWlkID09PSBlLmZpbGVzWzBdLnVpZFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLmZpbGVMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuZ3JvdXBbJ3p1cGxvYWRfJyArIHRoaXMuZGF0YS5WYWx1ZV0gPSB0aGlzLmZpbGVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGFbJ0ZpbGVSZW1vdmVkRXZlbnQnXSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogXCJ6dXBsb2FkLWZpbGVSZW1vdmVkRXZlbnRcIixcclxuICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YVsnRmlsZVJlbW92ZWRFdmVudCddLFxyXG4gICAgICAgIGRhdGE6IGVcclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IG15RmlsZTogTXlGaWxlSW5mbyA9IGUuZmlsZXNbMF0gYXMgTXlGaWxlSW5mbztcclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdyZW1vdmUgZG9uZTogJywgZSk7XHJcbiAgICAgIGUuZGF0YSA9IHtcclxuICAgICAgICBpZDogbXlGaWxlLm15VWlkLFxyXG4gICAgICB9O1xyXG4gICAgICBlLmhlYWRlcnMgPSBlLmhlYWRlcnMuYXBwZW5kKFxyXG4gICAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxyXG4gICAgICAgIFwiQmVhcmVyIFwiICsgdGhpcy5hdXRoU2VydmljZS5lMUFjY2Vzc1Rva2VuXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLkVuYWJsZUltYWdlUHJldmlldykge1xyXG4gICAgICAgIGUuZmlsZXMuZm9yRWFjaCgoZmlsZTogRmlsZUluZm8pID0+IHtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3cyA9IHRoaXMuaW1hZ2VQcmV2aWV3cy5maWx0ZXIoZiA9PiBmLnVpZCAhPT0gZmlsZS51aWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShmaWxlOiBGaWxlSW5mb1tdKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhWydGaWxlQ2hhbmdlZEV2ZW50J10pIHtcclxuICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgIHR5cGU6IFwienVwbG9hZC1maWxlQ2hhbmdlZEV2ZW50XCIsXHJcbiAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGFbJ0ZpbGVDaGFuZ2VkRXZlbnQnXSxcclxuICAgICAgICBkYXRhOiBmaWxlXHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZFVwbG9hZGVkRmlsZShtZTogYW55LCBmaWxlOiBGaWxlSW5mbyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZmlsZVNpemUgPSBmaWxlLnJhd0ZpbGUuc2l6ZTtcclxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlLnJhd0ZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgZmlsZSBzaXplIGFuZCBleHRlbnNpb24gYXJlIHZhbGlkXHJcbiAgICBpZiAoZmlsZVNpemUgPiBtZS5yZXN0cmljdGlvbnMubWF4RmlsZVNpemUgfHwgIW1lLnJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJ0Vycm9yOiAnO1xyXG4gICAgICBpZiAoIW1lLnJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGBJbnZhbGlkIGZpbGUgdHlwZS4gQWxsb3dlZCB0eXBlcyBhcmU6ICR7bWUucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zLmpvaW4oJywgJyl9LmA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZVNpemUgPiBtZS5yZXN0cmljdGlvbnMubWF4RmlsZVNpemUpIHtcclxuICAgICAgICBlcnJvck1lc3NhZ2UgPSBgRmlsZSBzaXplIGNhbm5vdCBleGNlZWRzICR7bWUuZm9ybWF0RmlsZVNpemUobWUucmVzdHJpY3Rpb25zLm1heEZpbGVTaXplKX0uYDtcclxuICAgICAgfVxyXG5cclxuICAgICAgbWUuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KCdGYWlsZWQgdG8gdXBsb2FkJywgZXJyb3JNZXNzYWdlLCBbJ2NvbC00J10pO1xyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RXZlbnRIYW5kbGVyKGU6IFNlbGVjdEV2ZW50KSB7XHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcblxyXG4gICAgLy8jcmVnaW9uIHNoYXJlcG9pbnRcclxuICAgIGNvbnN0IGF0dGFjaG1lbnRJbmZvOiBBdHRhY2htZW50ID0gdGhpcy5zaGFyZVBvaW50U2VydmljZS5nZXRBdHRhY2htZW50SW5mbyh0aGlzLmRhdGFbXCJEb3dubG9hZEZpbGVDb25maWdcIl0pO1xyXG4gICAgLy8gQ2hhbmdlIHVwbG9hZFNhdmVVcmwgaWYgc2F2aW5nIHRvIFNoYXJlUG9pbnRcclxuICAgIGlmIChhdHRhY2htZW50SW5mbyAmJiBhdHRhY2htZW50SW5mby5pc1NhdmVUb1NoYXJlUG9pbnQgJiYgYXR0YWNobWVudEluZm8uc2l0ZU5hbWUpIHtcclxuICAgICAgY29uc3QgYXR0YWNobWVudFNvdXJjZVVybCA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCkuYXR0YWNobWVudFNvdXJjZVVybDtcclxuICAgICAgdGhpcy51cGxvYWRTYXZlVXJsID0gYXR0YWNobWVudFNvdXJjZVVybCArICcvQ2h1bmtfVXBsb2FkX1NhdmUnO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnU2VsZWN0RmlsZU9ubHknXSkge1xyXG4gICAgICAvLyBBcHBlbmQgYWxsIGZpbGVzIHRvIGNvbXBvbmVudCBtZW1vcnlcclxuICAgICAgZS5maWxlcy5mb3JFYWNoKGFzeW5jIChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICAgIGlmIChtZS5pc1ZhbGlkVXBsb2FkZWRGaWxlKG1lLCBmaWxlKSkge1xyXG4gICAgICAgICAgaWYgKGZpbGUucmF3RmlsZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGV2KSB7XHJcbiAgICAgICAgICAgICAgLy8gQ2xvbmUgdGhlIGRhdGEgYW5kIGFsc28gYWRkIHRoZSByZWFkIGZpbGUgdG8gdGhlIG9iamVjdFxyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlsZSk7XHJcbiAgICAgICAgICAgICAgZmlsZURhdGFbJ2ZpbGUnXSA9IGV2LnRhcmdldFtcInJlc3VsdFwiXTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gUHVzaCB0byBjb21wb25lbnQgZmlsZUxpc3RcclxuICAgICAgICAgICAgICBtZS5maWxlTGlzdC5wdXNoKGZpbGVEYXRhKTtcclxuICAgICAgICAgICAgICBtZS5ncm91cFsnenVwbG9hZF8nICsgbWUuZGF0YS5WYWx1ZV0gPSBtZS5maWxlTGlzdDtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKG1lLmRhdGFbJ0ZpbGVTZWxlY3RlZEV2ZW50J10pIHtcclxuICAgICAgICAgICAgICAgIC8vIENhbGwgdGhlIHByb2plY3QgZXZlbnRcclxuICAgICAgICAgICAgICAgIG1lLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwienVwbG9hZC1maWxlU2VsZWN0ZWRFdmVudFwiLFxyXG4gICAgICAgICAgICAgICAgICB0YXJnZXQ6IG1lLmRhdGFbJ0ZpbGVTZWxlY3RlZEV2ZW50J10sXHJcbiAgICAgICAgICAgICAgICAgIGRhdGE6IG1lLmZpbGVMaXN0XHJcbiAgICAgICAgICAgICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBhd2FpdCByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlLnJhd0ZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIE9ubHkgd29ya2FibGUgZm9yIEF1dG8gVXBsb2FkID0gZmFsc2VcclxuICAgICAgaWYgKCF0aGlzLmRhdGEuQXV0b1VwbG9hZCkge1xyXG4gICAgICAgIC8vIENvbXByZXNzaW9uIGZvciBpbWFnZSBmaWxlXHJcbiAgICAgICAgY29uc3QgaW1hZ2VDb21wcmVzc2lvbkVuYWJsZWQgPSB0aGlzLmRhdGEuQ29tcHJlc3Npb24gPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIC8vQ2hlY2sgaWYgSW1hZ2UgQ29tcHJlc3Npb24gaXMgZW5hYmxlZC5cclxuICAgICAgICBpZiAoaW1hZ2VDb21wcmVzc2lvbkVuYWJsZWQgPT09IHRydWUpIHtcclxuICAgICAgICAgIGUuZmlsZXMuZm9yRWFjaCgoZmlsZTogRmlsZUluZm8pID0+IHtcclxuICAgICAgICAgICAgaWYgKG1lLmlzVmFsaWRVcGxvYWRlZEZpbGUobWUsIGZpbGUpKSB7XHJcbiAgICAgICAgICAgICAgLy8gQ29tcHJlc3Mgb25seSBpZiBpdCBpcyBhbiBpbWFnZSBmaWxlXHJcbiAgICAgICAgICAgICAgaWYgKGZpbGUucmF3RmlsZSAmJiBmaWxlLnJhd0ZpbGUudHlwZS5pbmNsdWRlcyhcImltYWdlXCIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpbGUudmFsaWRhdGlvbkVycm9ycykge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBpbWdDb25maWcgPSB0aGlzLmNvbXByZXNzaW9uQ29uZmlnSGFuZGxlcih0aGlzLmRhdGEuQ29tcHJlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZmlsZS5zaXplID4gaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZUJ5dGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZS5jb21wcmVzc0ltYWdlLmNvbXByZXNzKGZpbGUucmF3RmlsZSwgaW1nQ29uZmlnKSAgLy9QYXNzIGluIHBhcmFtZXRlciB0byBzZXQgdGhlIENvbXByZXNzaW9uIE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGNvbXByZXNzRmlsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5yYXdGaWxlID0gY29tcHJlc3NGaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuc2l6ZSA9IGNvbXByZXNzRmlsZS5zaXplO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQdXNoIHRvIGNvbXBvbmVudCBmaWxlTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1lLmZpbGVMaXN0LnB1c2goT2JqZWN0LmFzc2lnbih7fSwgZmlsZSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUucmF3RmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQ29tcHJlc3NlZCBmaWxlIHNpemU6ICR7KGZpbGUucmF3RmlsZS5zaXplIC8gMTAyNCkudG9GaXhlZCgyKX1LQmApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH0gLy8gZmlsZSBzaXplIGNoZWNrXHJcbiAgICAgICAgICAgICAgICB9IC8vIHZhbGlkYXRpb25FcnJvcnMgY2hlY2tcclxuICAgICAgICAgICAgICB9IC8vIGZpbGUgdHlwZSBjaGVja1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkgLy8gbG9vcCBlYWNoIGZpbGVcclxuICAgICAgICB9IC8vIGltYWdlY29tcHJlc3Npb24gY2hlY2tcclxuXHJcbiAgICAgICAgLy8gYWRkIHRvIGdyb3VwIHNjb3BlXHJcbiAgICAgICAgbWUuZ3JvdXBbJ3p1cGxvYWRfJyArIG1lLmRhdGEuVmFsdWVdID0gZS5maWxlcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWxlcygpIHtcclxuICAgIHRoaXMudXBsb2FkQ29tcG9uZW50LmNsZWFyRmlsZXMoKTtcclxuICAgIHRoaXMuZ3JvdXBbJ3p1cGxvYWRfJyArIHRoaXMuZGF0YS5WYWx1ZV0gPSB0aGlzLmZpbGVMaXN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQiddO1xyXG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQnl0ZSc7XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBpKSkudG9GaXhlZCgyKSkgKyBzaXplc1tpXTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInp1cGxvYWQtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuICA8a2VuZG8tdXBsb2FkXHJcbiAgICAqbmdJZj1cIiFkYXRhLlNlbGVjdEZpbGVPbmx5XCJcclxuICAgICN1cGxvYWRDb21wb25lbnRcclxuICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgIFthdXRvVXBsb2FkXT1cImlzQXV0b1VwbG9hZFwiXHJcbiAgICBbc2F2ZVVybF09XCJ1cGxvYWRTYXZlVXJsXCJcclxuICAgIFtyZW1vdmVVcmxdPVwidXBsb2FkUmVtb3ZlVXJsXCJcclxuICAgIFtyZXN0cmljdGlvbnNdPVwicmVzdHJpY3Rpb25zXCJcclxuICAgIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCJcclxuICAgIFtjaHVua2FibGVdPVwiY2h1bmtTZXR0aW5nc1wiXHJcbiAgICBbc2hvd0ZpbGVMaXN0XT1cInNob3dGaWxlTGlzdFwiXHJcbiAgICAoc2VsZWN0KT1cInNlbGVjdEV2ZW50SGFuZGxlcigkZXZlbnQpXCJcclxuICAgIChyZW1vdmUpPVwib25SZW1vdmUoJGV2ZW50KVwiXHJcbiAgICAoc3VjY2Vzcyk9XCJvblN1Y2Nlc3MoJGV2ZW50KVwiXHJcbiAgICAodXBsb2FkKT1cInVwbG9hZEV2ZW50SGFuZGxlcigkZXZlbnQpXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiXHJcbiAgICBjbGFzcz1cImUxdGFnLXN0eWxlMVwiPlxyXG4gIDwva2VuZG8tdXBsb2FkPlxyXG5cclxuICA8a2VuZG8tZmlsZXNlbGVjdFxyXG4gICAgKm5nSWY9XCJkYXRhLlNlbGVjdEZpbGVPbmx5XCJcclxuICAgICN1cGxvYWRDb21wb25lbnRcclxuICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgIChzZWxlY3QpPVwic2VsZWN0RXZlbnRIYW5kbGVyKCRldmVudClcIlxyXG4gICAgKHJlbW92ZSk9XCJvblJlbW92ZSgkZXZlbnQpXCJcclxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiIFxyXG4gICAgW3Jlc3RyaWN0aW9uc109XCJyZXN0cmljdGlvbnNcIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCJcclxuICAgIGNsYXNzPVwiZTF0YWctc3R5bGUxXCI+XHJcbiAgPC9rZW5kby1maWxlc2VsZWN0PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImltYWdlUHJldmlld3MubGVuZ3RoXCJcclxuICAgIGNsYXNzPVwiaW1hZ2UtcHJldmlldy1jb250YWluZXIgZTF0YWctc3R5bGUyXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMlwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxhYmVsLWNvbnRhaW5lciBlMXRhZy1zdHlsZTNcIlxyXG4gICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj5cclxuICAgICAgSW1hZ2UgUHJldmlldzpcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lciBlMXRhZy1zdHlsZTRcIlxyXG4gICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTRcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZVByZXZpZXdzXCJcclxuICAgICAgICBbc3JjXT1cImltYWdlLnNyY1wiXHJcbiAgICAgICAgYWx0PVwiaW1hZ2UgcHJldmlld1wiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTAwXCJcclxuICAgICAgICBjbGFzcz1cImUxdGFnLXN0eWxlNVwiXHJcbiAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCIgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5Qiw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdyRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFFTyxnQkFBZ0IsRUFBeUIsY0FBYyxFQUE2QyxnQkFBZ0IsRUFDakksTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUV6QixNQUFNLE9BQU8sVUFBVTtDQUl0QjtBQVNELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBd0NsRCxtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixnREFBZ0Q7SUFDaEQsTUFBTTtJQUVOLG9CQUFvQjtJQUNwQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3Qiw0REFBNEQ7SUFDNUQsNENBQTRDO0lBQzVDLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLG9DQUFvQztJQUNwQyxvQ0FBb0M7SUFDcEMsa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixZQUNTLGdCQUFtQyxFQUNsQyxX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QUM7UUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RCxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs2R0F2YlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsOExDaEM3Qix1MkRBdURBOzJGRHZCYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYTtnUkFNTyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE5nWm9uZSwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tIFwic3JjL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudFwiO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGaWxlSW5mbywgU3VjY2Vzc0V2ZW50LCBSZW1vdmVFdmVudCwgVXBsb2FkRXZlbnQsIEZpbGVSZXN0cmljdGlvbnMsIENodW5rU2V0dGluZ3MsIFNlbGVjdEV2ZW50LCBVcGxvYWRDb21wb25lbnQgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItdXBsb2FkXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhTZXJ2aWNlLCBaQ29yZVNlcnZpY2UsIENvbXByZXNzSW1hZ2VTZXJ2aWNlLCBBbGVydFNlcnZpY2UsXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBVcGxvYWRNZXRhRGF0YSwgSW1hZ2VDb21wcmVzc2lvbkNvbmZpZywgU2hhcmVQb2ludFNlcnZpY2UsIEF0dGFjaG1lbnRDb25maWcsIEF0dGFjaG1lbnRcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTXlGaWxlSW5mbyBpbXBsZW1lbnRzIEZpbGVJbmZvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdWlkPzogc3RyaW5nO1xyXG4gIG15VWlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXp1cGxvYWRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3p1cGxvYWQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4venVwbG9hZC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBadXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoXCJ1cGxvYWRDb21wb25lbnRcIikgdXBsb2FkQ29tcG9uZW50OiBVcGxvYWRDb21wb25lbnQ7XHJcblxyXG4gIHVwbG9hZEF0dGFjaG1lbnRVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgdXBsb2FkU2F2ZVVybCA9IFwiL0F0dGFjaG1lbnQvQ2h1bmtfVXBsb2FkX1NhdmVcIjsgLy8gc2hvdWxkIHJlcHJlc2VudCBhbiBhY3R1YWwgQVBJIGVuZHBvaW50XHJcbiAgdXBsb2FkUmVtb3ZlVXJsID0gXCIvQXR0YWNobWVudC9DaHVua19VcGxvYWRfUmVtb3ZlXCI7IC8vIHNob3VsZCByZXByZXNlbnQgYW4gYWN0dWFsIEFQSSBlbmRwb2ludFxyXG4gIGRvd25sb2FkRmlsZVVybCA9IFwiL0F0dGFjaG1lbnQvZG93bmxvYWRGaWxlXCI7XHJcbiAgZ2V0SW1hZ2VVcmwgPSBcIi9BdHRhY2htZW50L2dldEltYWdlXCI7IC8vIEdFVCBtZXRob2RcclxuICBpc0F1dG9VcGxvYWQgPSBmYWxzZTtcclxuICBpc011bHRpcGxlID0gZmFsc2U7XHJcbiAgaW1hZ2VQcmV2aWV3czogYW55W10gPSBbXTtcclxuICB1aWQ6IHN0cmluZ1tdID0gW107XHJcbiAgc2hvd0ZpbGVMaXN0ID0gdHJ1ZTtcclxuICBmaWxlTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlc3RyaWN0aW9uczogRmlsZVJlc3RyaWN0aW9ucyA9IHtcclxuICAgIG1pbkZpbGVTaXplOiAxLFxyXG4gICAgbWF4RmlsZVNpemU6IDQxOTQzMDQsXHJcbiAgICBhbGxvd2VkRXh0ZW5zaW9uczogW1xyXG4gICAgICBcImpwZ1wiLFxyXG4gICAgICBcImpwZWdcIixcclxuICAgICAgXCJwbmdcIixcclxuICAgICAgXCJibXBcIixcclxuICAgICAgXCJwZGZcIixcclxuICAgICAgXCJ0eHRcIixcclxuICAgICAgXCJkb2N4XCIsXHJcbiAgICAgIFwiZG9jXCIsXHJcbiAgICAgIFwieGxzeFwiLFxyXG4gICAgICBcInhsc1wiLFxyXG4gICAgICBcInBwdFwiLFxyXG4gICAgICBcInBwdHhcIixcclxuICAgICAgXCJjc3ZcIixcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGNodW5rU2V0dGluZ3M6IENodW5rU2V0dGluZ3MgPSB7XHJcbiAgICBzaXplOiAxMDI0MDAsXHJcbiAgICBtYXhBdXRvUmV0cmllczogMyxcclxuICB9O1xyXG5cclxuICAvLyB6TW9kZWxWYWx1ZSA9IFt7XHJcbiAgLy8gICBuYW1lOiBcIlJYSlMgMDEucG5nXCIsXHJcbiAgLy8gICBzaXplOiAxMjg3NTMsXHJcbiAgLy8gICB1aWQ6IFwiYzk2ZTIzNGQtYWY2MS00NTg3LWFkY2MtM2I0MDBkZGVmODg0XCJcclxuICAvLyB9XTtcclxuXHJcbiAgLy8gZmllbGRFbGVtZW50ID0gW3tcclxuICAvLyAgIE5hbWU6ICdGaWxlVXBsb2FkTGlzdCcsXHJcbiAgLy8gICBUeXBlOiAnenVwbG9hZCcsXHJcbiAgLy8gICBWYWx1ZTogJ0ZpbGVVcGxvYWRMaXN0JyxcclxuICAvLyAgIFNlbGVjdGlvbk9wdGlvbnM6IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2JtcCcsICdwZGYnXSxcclxuICAvLyAgIFVwbG9hZE1ldGFEYXRhOiAnZ3JvdXAuVXBsb2FkTWV0YURhdGEnLFxyXG4gIC8vICAgQXV0b1VwbG9hZDogZmFsc2UsXHJcbiAgLy8gICBBbGxvd1JlbW92ZTogdHJ1ZSxcclxuICAvLyAgIE11bHRpcGxlOiBmYWxzZSxcclxuICAvLyAgIE9uU3VjY2VzczogJ2dyb3VwLm9uU3VjY2VzcygpJyxcclxuICAvLyAgIERpdkNsYXNzOiBcImNvbC1tZC0xMiBjb2wtbWQtNlwiLFxyXG4gIC8vICAgVmlzaWJsZTogdHJ1ZVxyXG4gIC8vIH1dO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21wcmVzc0ltYWdlOiBDb21wcmVzc0ltYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgemNvcmVTZXJ2aWNlOiBaQ29yZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBzaGFyZVBvaW50U2VydmljZTogU2hhcmVQb2ludFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICAgIHRoaXMudXBsb2FkQXR0YWNobWVudFVybCA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCkudXBsb2FkQXR0YWNobWVudFVybDtcclxuICAgIHRoaXMudXBsb2FkU2F2ZVVybCA9IHRoaXMudXBsb2FkQXR0YWNobWVudFVybCArIHRoaXMudXBsb2FkU2F2ZVVybDtcclxuICAgIHRoaXMudXBsb2FkUmVtb3ZlVXJsID0gdGhpcy51cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRSZW1vdmVVcmw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpO1xyXG4gICAgLy8gdGhpcy5ncm91cFsnVXBsb2FkTWV0YURhdGEnXSA9IG5ldyBVcGxvYWRNZXRhRGF0YShudWxsLCAnMTUnLCAnU08tTm8tMTIzNCcsICdTYWxlT3JkZXInKTtcclxuXHJcblxyXG4gICAgLy8gdGhpcy51cGxvYWRTYXZlVXJsID0gdXBsb2FkQXR0YWNobWVudFVybCArIHRoaXMudXBsb2FkU2F2ZVVybDtcclxuICAgIC8vIHRoaXMudXBsb2FkUmVtb3ZlVXJsID0gdXBsb2FkQXR0YWNobWVudFVybCArIHRoaXMudXBsb2FkUmVtb3ZlVXJsO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuU2VsZWN0T3B0aW9ucyAmJiAhdGhpcy5kYXRhLkFsbG93ZWRGaWxlRXh0ZW5zaW9uKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zID0gKHRoaXMuZGF0YS5TZWxlY3RPcHRpb25zIGFzIHVua25vd24pIGFzIHN0cmluZ1tdO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIXRoaXMuZGF0YS5TZWxlY3RPcHRpb25zICYmIHRoaXMuZGF0YS5BbGxvd2VkRmlsZUV4dGVuc2lvbikge1xyXG4gICAgICB0aGlzLnJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHRoaXMucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zLmNvbmNhdCh0aGlzLmRhdGEuQWxsb3dlZEZpbGVFeHRlbnNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuTWluRmlsZVNpemUpIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnMubWluRmlsZVNpemUgPSB0aGlzLmRhdGEuTWluRmlsZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5NYXhGaWxlU2l6ZSkge1xyXG4gICAgICB0aGlzLnJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSA9IHRoaXMuZGF0YS5NYXhGaWxlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1VwbG9hZCA9IHRoaXMuZGF0YS5BdXRvVXBsb2FkIHx8IGZhbHNlO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLkFsbG93UmVtb3ZlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkUmVtb3ZlVXJsID0gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRoaXMuZGF0YS5NdWx0aXBsZTtcclxuICAgIH1cclxuICAgICBcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTYgPSB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU2IHx8IFwibWFyZ2luOiA1cHg7IGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7XCI7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3MoZTogU3VjY2Vzc0V2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBhbmd1bGFyIGtlbmRvIHVwbG9hZCBkaWRuJ3QgZmlsdGVyIGF3YXkgU2VudCBldmVudCBmb3IgcmVtb3ZlLCBzbyB3ZSBoYXZlIHRvIGhhbmRsZSBpdCBoZXJlXHJcbiAgICAvLyB1cGxvYWQgcHJvZ3Jlc3Mgbm90IHJlcXVpcmVkIGZvciByZW1vdmFsLCB0aHVzIGl0J3MgYWxzbyByZW1vdmVkXHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAoZS5vcGVyYXRpb24gPT09IFwicmVtb3ZlXCIgJiYgKGUucmVzcG9uc2UudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5TZW50IHx8IGUucmVzcG9uc2UudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsZSA9IGUuZmlsZXNbMF0gYXMgTXlGaWxlSW5mbztcclxuICAgIGNvbnN0IGV4aXN0aW5nRmlsZUluZGV4ID0gdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXS5maW5kSW5kZXgoZiA9PiBmLm5hbWUgPT09IGZpbGUubmFtZSAmJiBmLnVpZCA9PT0gZmlsZS51aWQpO1xyXG4gICAgaWYgKGUub3BlcmF0aW9uID09PSBcInVwbG9hZFwiKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd1cGxvYWQgU3VjY2VzczogJywgZSk7XHJcbiAgICAgIC8vc2hhcmVwb2ludCByZXF1aXJlZCB0byByZWFkIGRhdGEgZnJvbSBmaWxlVWlkIGFuZCBhdHRhY2htZW50IGFibGUgdG8gZ2V0IGRhdGEgZnJvbSBmaWxlVWlkIHRvby5cclxuICAgICAgZmlsZS5teVVpZCA9IGUucmVzcG9uc2U/LmJvZHk/LmZpbGVVaWQgPz8gZmlsZS51aWQ7XHJcbiAgICAgIGRlbGV0ZSBmaWxlWydodHRwU3Vic2NyaXB0aW9uJ107XHJcblxyXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXVtleGlzdGluZ0ZpbGVJbmRleF0gPSBmaWxlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0ucHVzaChmaWxlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSBpZiAoZS5vcGVyYXRpb24gPT09IFwicmVtb3ZlXCIpIHtcclxuICAgICAgaWYgKGV4aXN0aW5nRmlsZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0uc3BsaWNlKGV4aXN0aW5nRmlsZUluZGV4LCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0sIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcInp1cGxvYWQtb25TdWNjZXNzXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uU3VjY2VzcyxcclxuICAgICAgZXZlbnQ6IGUsXHJcbiAgICAgIGRhdGE6IHsgdmFsdWU6IGUuZmlsZXNbMF0sIGZpZWxkOiB0aGlzLmRhdGEgfSxcclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHJlc3Npb25Db25maWdIYW5kbGVyKGltZ0NvbmZpZzogSW1hZ2VDb21wcmVzc2lvbkNvbmZpZyk6IEltYWdlQ29tcHJlc3Npb25Db25maWcge1xyXG4gICAgaWYgKGltZ0NvbmZpZy5GaWxlU2l6ZU1heFNpemUpIHtcclxuICAgICAgaW1nQ29uZmlnLkZpbGVTaXplTWF4U2l6ZUJ5dGUgPSB0aGlzLmNvbnZlcnRTaXplVG9CeXRlKGltZ0NvbmZpZy5GaWxlU2l6ZU1heFNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbWdDb25maWcuRmlsZVNpemVNaW5TaXplKSB7XHJcbiAgICAgIGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemVCeXRlID0gdGhpcy5jb252ZXJ0U2l6ZVRvQnl0ZShpbWdDb25maWcuRmlsZVNpemVNaW5TaXplKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpbWdDb25maWcuRmlsZVNpemVNaW5TaXplQnl0ZSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGltZ0NvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFNpemVUb0J5dGUoc2l6ZVN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGxldCBfdGVtcEZpbGVTaXplTWF4U2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGxldCBzaXplQnlCeXRlOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IHNpemVUeXBlID0gJ2InO1xyXG5cclxuICAgIC8vIHJlbW92ZSBhbGwgc3BhY2VcclxuICAgIGNvbnN0IF90ZW1wRmlsZVNpemUgPSBzaXplU3RyaW5nLnJlcGxhY2UoLyAvZywgJycpO1xyXG5cclxuICAgIC8vIGNoZWNrIGxhc3QgY2hhciBpcyBhbHBoYWJldGljXHJcbiAgICBjb25zdCBsYXN0Q2hhciA9IF90ZW1wRmlsZVNpemUuc3Vic3RyKF90ZW1wRmlsZVNpemUubGVuZ3RoIC0gMSk7XHJcbiAgICBpZiAoaXNOYU4ocGFyc2VGbG9hdChsYXN0Q2hhcikpKSB7XHJcbiAgICAgIGNvbnN0IHNlY0xhc3RDaGFyID0gX3RlbXBGaWxlU2l6ZS5zdWJzdHIoX3RlbXBGaWxlU2l6ZS5sZW5ndGggLSAyKS5zbGljZSgwLCAtMSk7XHJcblxyXG4gICAgICBpZiAoaXNOYU4ocGFyc2VGbG9hdChzZWNMYXN0Q2hhcikpKSB7XHJcbiAgICAgICAgLy8gY2hlY2sgbGFzdCAybmQgY2hhciBpcyBhbHBoYWJldGljXHJcbiAgICAgICAgc2l6ZVR5cGUgPSBzZWNMYXN0Q2hhciArIHNpemVUeXBlO1xyXG4gICAgICAgIF90ZW1wRmlsZVNpemVNYXhTaXplID0gcGFyc2VGbG9hdChfdGVtcEZpbGVTaXplLnNsaWNlKDAsIC0yKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgX3RlbXBGaWxlU2l6ZU1heFNpemUgPSBwYXJzZUZsb2F0KF90ZW1wRmlsZVNpemUuc2xpY2UoMCwgLTEpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3dpdGNoIChzaXplVHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgY2FzZSBcImJcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImtiXCI6XHJcbiAgICAgICAgICBzaXplQnlCeXRlID0gX3RlbXBGaWxlU2l6ZU1heFNpemUgKiAxMDI0XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwibWJcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZSAqIDEwNDg1NzZcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJnYlwiOlxyXG4gICAgICAgICAgc2l6ZUJ5Qnl0ZSA9IF90ZW1wRmlsZVNpemVNYXhTaXplICogMTA3Mzc0MTgyNFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBkZWZhdWx0IHVzaW5nIGJ5dGVzIGlmIG5vIHNpemUgdHlwZVxyXG4gICAgICBzaXplQnlCeXRlID0gcGFyc2VGbG9hdChfdGVtcEZpbGVTaXplKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2l6ZUJ5Qnl0ZTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEV2ZW50SGFuZGxlcihlOiBVcGxvYWRFdmVudCkge1xyXG4gICAgLy8gSW1hZ2UgUHJldmlld1xyXG4gICAgY29uc3QgbWUgPSB0aGlzO1xyXG5cclxuICAgIGUuZmlsZXMuZm9yRWFjaCgoZmlsZTogRmlsZUluZm8pID0+IHtcclxuICAgICAgaWYgKCFtZS5pc1ZhbGlkVXBsb2FkZWRGaWxlKG1lLCBmaWxlKSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGZpbGUucmF3RmlsZSAmJiBmaWxlLnJhd0ZpbGUudHlwZS5pbmNsdWRlcyhcImltYWdlXCIpKSB7XHJcbiAgICAgICAgICBpZiAoIWZpbGUudmFsaWRhdGlvbkVycm9ycykge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGV2KSB7XHJcbiAgICAgICAgICAgICAgaWYgKG1lLmRhdGEuRW5hYmxlSW1hZ2VQcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIW1lLnVpZC5pbmNsdWRlcyhmaWxlLnVpZCkpIHtcclxuICAgICAgICAgICAgICAgICAgbWUudWlkLnB1c2goZmlsZS51aWQpO1xyXG4gICAgICAgICAgICAgICAgICBtZS5pbWFnZVByZXZpZXdzLnB1c2goeyAuLi5maWxlLCBzcmM6IDxzdHJpbmc+cmVhZGVyLnJlc3VsdCB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5yYXdGaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFkZCBtZXRhZGF0YSB0byB0aGUgdXBsb2FkIGV2ZW50XHJcbiAgICBsZXQgYWRkaXRpb25hbDogVXBsb2FkTWV0YURhdGEgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlVwbG9hZE1ldGFEYXRhKTtcclxuXHJcbiAgICBpZiAoIShhZGRpdGlvbmFsIGluc3RhbmNlb2YgVXBsb2FkTWV0YURhdGEpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJVcGxvYWRNZXRhRGF0YSBkZWZpbmVkIGF0IFwiICsgdGhpcy5kYXRhLlVwbG9hZE1ldGFEYXRhICsgXCIgaXMgaW52YWxpZDogXCIsIGFkZGl0aW9uYWwpO1xyXG4gICAgICBhZGRpdGlvbmFsID0gbmV3IFVwbG9hZE1ldGFEYXRhKG51bGwsIFwiMFwiKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8jcmVnaW9uIHNoYXJlcG9pbnRcclxuICAgIGxldCBhdHRhY2htZW50SW5mbzogQXR0YWNobWVudCA9IHRoaXMuc2hhcmVQb2ludFNlcnZpY2UuZ2V0QXR0YWNobWVudEluZm8odGhpcy5kYXRhW1wiRG93bmxvYWRGaWxlQ29uZmlnXCJdKTtcclxuXHJcbiAgICAvL2FkZCB0YWdnaW5nIGludG8gbWV0YWRhdGFcclxuICAgIGlmIChhdHRhY2htZW50SW5mbykge1xyXG4gICAgICBpZiAoYXR0YWNobWVudEluZm8udGFnKSB7XHJcbiAgICAgICAgY29uc3QgdGFnID0gdGhpcy5zaGFyZVBvaW50U2VydmljZS5nZW5lcmF0ZVRhZ2dpbmcodGhpcy5ncm91cCwgYXR0YWNobWVudEluZm8udGFnKTtcclxuICAgICAgICBhZGRpdGlvbmFsW0F0dGFjaG1lbnRDb25maWcudGFnXSA9IHRhZztcclxuICAgICAgfVxyXG4gICAgICBhZGRpdGlvbmFsW0F0dGFjaG1lbnRDb25maWcuc2l0ZU5hbWVdID0gYXR0YWNobWVudEluZm8uc2l0ZU5hbWU7XHJcbiAgICAgIGFkZGl0aW9uYWxbQXR0YWNobWVudENvbmZpZy5kb2N1bWVudExpYnJhcnlOYW1lXSA9IGF0dGFjaG1lbnRJbmZvLmRvY3VtZW50TGlicmFyeU5hbWU7XHJcbiAgICAgIGFkZGl0aW9uYWxbQXR0YWNobWVudENvbmZpZy5pc1NhdmVUb1NoYXJlUG9pbnRdID0gYXR0YWNobWVudEluZm8uaXNTYXZlVG9TaGFyZVBvaW50O1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgY29uc3Qgc3RyID0gSlNPTi5zdHJpbmdpZnkoYWRkaXRpb25hbCk7XHJcblxyXG4gICAgZS5kYXRhID0geyBhZGRpdGlvbmFsOiBzdHIsIH07XHJcbiAgICBlLmhlYWRlcnMgPSBlLmhlYWRlcnMuYXBwZW5kKFwiQXV0aG9yaXphdGlvblwiLCBcIkJlYXJlciBcIiArIHRoaXMuYXV0aFNlcnZpY2UuZTFBY2Nlc3NUb2tlbik7XHJcbiAgfVxyXG5cclxuICBvblJlbW92ZShlOiBSZW1vdmVFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gcmVtb3ZlIGZpbGUgZnJvbSBjb21wb25lbnQgbWVtb3J5XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsZUxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbS51aWQgPT09IGUuZmlsZXNbMF0udWlkXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuZmlsZUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5ncm91cFsnenVwbG9hZF8nICsgdGhpcy5kYXRhLlZhbHVlXSA9IHRoaXMuZmlsZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnRmlsZVJlbW92ZWRFdmVudCddKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcInp1cGxvYWQtZmlsZVJlbW92ZWRFdmVudFwiLFxyXG4gICAgICAgIHRhcmdldDogdGhpcy5kYXRhWydGaWxlUmVtb3ZlZEV2ZW50J10sXHJcbiAgICAgICAgZGF0YTogZVxyXG4gICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgbXlGaWxlOiBNeUZpbGVJbmZvID0gZS5maWxlc1swXSBhcyBNeUZpbGVJbmZvO1xyXG5cclxuICAgICAgLy8gY29uc29sZS5sb2coJ3JlbW92ZSBkb25lOiAnLCBlKTtcclxuICAgICAgZS5kYXRhID0ge1xyXG4gICAgICAgIGlkOiBteUZpbGUubXlVaWQsXHJcbiAgICAgIH07XHJcbiAgICAgIGUuaGVhZGVycyA9IGUuaGVhZGVycy5hcHBlbmQoXHJcbiAgICAgICAgXCJBdXRob3JpemF0aW9uXCIsXHJcbiAgICAgICAgXCJCZWFyZXIgXCIgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxQWNjZXNzVG9rZW5cclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuRW5hYmxlSW1hZ2VQcmV2aWV3KSB7XHJcbiAgICAgICAgZS5maWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXdzID0gdGhpcy5pbWFnZVByZXZpZXdzLmZpbHRlcihmID0+IGYudWlkICE9PSBmaWxlLnVpZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGZpbGU6IEZpbGVJbmZvW10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGFbJ0ZpbGVDaGFuZ2VkRXZlbnQnXSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogXCJ6dXBsb2FkLWZpbGVDaGFuZ2VkRXZlbnRcIixcclxuICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YVsnRmlsZUNoYW5nZWRFdmVudCddLFxyXG4gICAgICAgIGRhdGE6IGZpbGVcclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1ZhbGlkVXBsb2FkZWRGaWxlKG1lOiBhbnksIGZpbGU6IEZpbGVJbmZvKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmaWxlU2l6ZSA9IGZpbGUucmF3RmlsZS5zaXplO1xyXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGUucmF3RmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAvLyBDaGVjayBpZiBmaWxlIHNpemUgYW5kIGV4dGVuc2lvbiBhcmUgdmFsaWRcclxuICAgIGlmIChmaWxlU2l6ZSA+IG1lLnJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSB8fCAhbWUucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnRXJyb3I6ICc7XHJcbiAgICAgIGlmICghbWUucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYEludmFsaWQgZmlsZSB0eXBlLiBBbGxvd2VkIHR5cGVzIGFyZTogJHttZS5yZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnMuam9pbignLCAnKX0uYDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChmaWxlU2l6ZSA+IG1lLnJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGBGaWxlIHNpemUgY2Fubm90IGV4Y2VlZHMgJHttZS5mb3JtYXRGaWxlU2l6ZShtZS5yZXN0cmljdGlvbnMubWF4RmlsZVNpemUpfS5gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBtZS5hbGVydFNlcnZpY2Uuc2hvd09rYXkoJ0ZhaWxlZCB0byB1cGxvYWQnLCBlcnJvck1lc3NhZ2UsIFsnY29sLTQnXSk7XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RFdmVudEhhbmRsZXIoZTogU2VsZWN0RXZlbnQpIHtcclxuICAgIGNvbnN0IG1lID0gdGhpcztcclxuXHJcbiAgICAvLyNyZWdpb24gc2hhcmVwb2ludFxyXG4gICAgY29uc3QgYXR0YWNobWVudEluZm86IEF0dGFjaG1lbnQgPSB0aGlzLnNoYXJlUG9pbnRTZXJ2aWNlLmdldEF0dGFjaG1lbnRJbmZvKHRoaXMuZGF0YVtcIkRvd25sb2FkRmlsZUNvbmZpZ1wiXSk7XHJcbiAgICAvLyBDaGFuZ2UgdXBsb2FkU2F2ZVVybCBpZiBzYXZpbmcgdG8gU2hhcmVQb2ludFxyXG4gICAgaWYgKGF0dGFjaG1lbnRJbmZvICYmIGF0dGFjaG1lbnRJbmZvLmlzU2F2ZVRvU2hhcmVQb2ludCAmJiBhdHRhY2htZW50SW5mby5zaXRlTmFtZSkge1xyXG4gICAgICBjb25zdCBhdHRhY2htZW50U291cmNlVXJsID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKS5hdHRhY2htZW50U291cmNlVXJsO1xyXG4gICAgICB0aGlzLnVwbG9hZFNhdmVVcmwgPSBhdHRhY2htZW50U291cmNlVXJsICsgJy9DaHVua19VcGxvYWRfU2F2ZSc7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydTZWxlY3RGaWxlT25seSddKSB7XHJcbiAgICAgIC8vIEFwcGVuZCBhbGwgZmlsZXMgdG8gY29tcG9uZW50IG1lbW9yeVxyXG4gICAgICBlLmZpbGVzLmZvckVhY2goYXN5bmMgKGZpbGU6IEZpbGVJbmZvKSA9PiB7XHJcbiAgICAgICAgaWYgKG1lLmlzVmFsaWRVcGxvYWRlZEZpbGUobWUsIGZpbGUpKSB7XHJcbiAgICAgICAgICBpZiAoZmlsZS5yYXdGaWxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXYpIHtcclxuICAgICAgICAgICAgICAvLyBDbG9uZSB0aGUgZGF0YSBhbmQgYWxzbyBhZGQgdGhlIHJlYWQgZmlsZSB0byB0aGUgb2JqZWN0XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBmaWxlKTtcclxuICAgICAgICAgICAgICBmaWxlRGF0YVsnZmlsZSddID0gZXYudGFyZ2V0W1wicmVzdWx0XCJdO1xyXG5cclxuICAgICAgICAgICAgICAvLyBQdXNoIHRvIGNvbXBvbmVudCBmaWxlTGlzdFxyXG4gICAgICAgICAgICAgIG1lLmZpbGVMaXN0LnB1c2goZmlsZURhdGEpO1xyXG4gICAgICAgICAgICAgIG1lLmdyb3VwWyd6dXBsb2FkXycgKyBtZS5kYXRhLlZhbHVlXSA9IG1lLmZpbGVMaXN0O1xyXG5cclxuICAgICAgICAgICAgICBpZiAobWUuZGF0YVsnRmlsZVNlbGVjdGVkRXZlbnQnXSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgcHJvamVjdCBldmVudFxyXG4gICAgICAgICAgICAgICAgbWUuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJ6dXBsb2FkLWZpbGVTZWxlY3RlZEV2ZW50XCIsXHJcbiAgICAgICAgICAgICAgICAgIHRhcmdldDogbWUuZGF0YVsnRmlsZVNlbGVjdGVkRXZlbnQnXSxcclxuICAgICAgICAgICAgICAgICAgZGF0YTogbWUuZmlsZUxpc3RcclxuICAgICAgICAgICAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGF3YWl0IHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUucmF3RmlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gT25seSB3b3JrYWJsZSBmb3IgQXV0byBVcGxvYWQgPSBmYWxzZVxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5BdXRvVXBsb2FkKSB7XHJcbiAgICAgICAgLy8gQ29tcHJlc3Npb24gZm9yIGltYWdlIGZpbGVcclxuICAgICAgICBjb25zdCBpbWFnZUNvbXByZXNzaW9uRW5hYmxlZCA9IHRoaXMuZGF0YS5Db21wcmVzc2lvbiA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgLy9DaGVjayBpZiBJbWFnZSBDb21wcmVzc2lvbiBpcyBlbmFibGVkLlxyXG4gICAgICAgIGlmIChpbWFnZUNvbXByZXNzaW9uRW5hYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgZS5maWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICAgICAgICBpZiAobWUuaXNWYWxpZFVwbG9hZGVkRmlsZShtZSwgZmlsZSkpIHtcclxuICAgICAgICAgICAgICAvLyBDb21wcmVzcyBvbmx5IGlmIGl0IGlzIGFuIGltYWdlIGZpbGVcclxuICAgICAgICAgICAgICBpZiAoZmlsZS5yYXdGaWxlICYmIGZpbGUucmF3RmlsZS50eXBlLmluY2x1ZGVzKFwiaW1hZ2VcIikpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsZS52YWxpZGF0aW9uRXJyb3JzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGltZ0NvbmZpZyA9IHRoaXMuY29tcHJlc3Npb25Db25maWdIYW5kbGVyKHRoaXMuZGF0YS5Db21wcmVzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaWxlLnNpemUgPiBpbWdDb25maWcuRmlsZVNpemVNaW5TaXplQnl0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1lLmNvbXByZXNzSW1hZ2UuY29tcHJlc3MoZmlsZS5yYXdGaWxlLCBpbWdDb25maWcpICAvL1Bhc3MgaW4gcGFyYW1ldGVyIHRvIHNldCB0aGUgQ29tcHJlc3Npb24gT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoY29tcHJlc3NGaWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLnJhd0ZpbGUgPSBjb21wcmVzc0ZpbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5zaXplID0gY29tcHJlc3NGaWxlLnNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFB1c2ggdG8gY29tcG9uZW50IGZpbGVMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuZmlsZUxpc3QucHVzaChPYmplY3QuYXNzaWduKHt9LCBmaWxlKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5yYXdGaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb21wcmVzc2VkIGZpbGUgc2l6ZTogJHsoZmlsZS5yYXdGaWxlLnNpemUgLyAxMDI0KS50b0ZpeGVkKDIpfUtCYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfSAvLyBmaWxlIHNpemUgY2hlY2tcclxuICAgICAgICAgICAgICAgIH0gLy8gdmFsaWRhdGlvbkVycm9ycyBjaGVja1xyXG4gICAgICAgICAgICAgIH0gLy8gZmlsZSB0eXBlIGNoZWNrXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSAvLyBsb29wIGVhY2ggZmlsZVxyXG4gICAgICAgIH0gLy8gaW1hZ2Vjb21wcmVzc2lvbiBjaGVja1xyXG5cclxuICAgICAgICAvLyBhZGQgdG8gZ3JvdXAgc2NvcGVcclxuICAgICAgICBtZS5ncm91cFsnenVwbG9hZF8nICsgbWUuZGF0YS5WYWx1ZV0gPSBlLmZpbGVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbGVzKCkge1xyXG4gICAgdGhpcy51cGxvYWRDb21wb25lbnQuY2xlYXJGaWxlcygpO1xyXG4gICAgdGhpcy5ncm91cFsnenVwbG9hZF8nICsgdGhpcy5kYXRhLlZhbHVlXSA9IHRoaXMuZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICBpZiAoYnl0ZXMgPT09IDApIHJldHVybiAnMCBCeXRlJztcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKDEwMjQpKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDIpKSArIHNpemVzW2ldO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwienVwbG9hZC1jb250YWluZXIgZTF0YWctc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxrZW5kby11cGxvYWRcclxuICAgICpuZ0lmPVwiIWRhdGEuU2VsZWN0RmlsZU9ubHlcIlxyXG4gICAgI3VwbG9hZENvbXBvbmVudFxyXG4gICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgW2F1dG9VcGxvYWRdPVwiaXNBdXRvVXBsb2FkXCJcclxuICAgIFtzYXZlVXJsXT1cInVwbG9hZFNhdmVVcmxcIlxyXG4gICAgW3JlbW92ZVVybF09XCJ1cGxvYWRSZW1vdmVVcmxcIlxyXG4gICAgW3Jlc3RyaWN0aW9uc109XCJyZXN0cmljdGlvbnNcIlxyXG4gICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gICAgW2NodW5rYWJsZV09XCJjaHVua1NldHRpbmdzXCJcclxuICAgIFtzaG93RmlsZUxpc3RdPVwic2hvd0ZpbGVMaXN0XCJcclxuICAgIChzZWxlY3QpPVwic2VsZWN0RXZlbnRIYW5kbGVyKCRldmVudClcIlxyXG4gICAgKHJlbW92ZSk9XCJvblJlbW92ZSgkZXZlbnQpXCJcclxuICAgIChzdWNjZXNzKT1cIm9uU3VjY2VzcygkZXZlbnQpXCJcclxuICAgICh1cGxvYWQpPVwidXBsb2FkRXZlbnRIYW5kbGVyKCRldmVudClcIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCJcclxuICAgIGNsYXNzPVwiZTF0YWctc3R5bGUxXCI+XHJcbiAgPC9rZW5kby11cGxvYWQ+XHJcblxyXG4gIDxrZW5kby1maWxlc2VsZWN0XHJcbiAgICAqbmdJZj1cImRhdGEuU2VsZWN0RmlsZU9ubHlcIlxyXG4gICAgI3VwbG9hZENvbXBvbmVudFxyXG4gICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgKHNlbGVjdCk9XCJzZWxlY3RFdmVudEhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKCRldmVudClcIlxyXG4gICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgXHJcbiAgICBbcmVzdHJpY3Rpb25zXT1cInJlc3RyaWN0aW9uc1wiXHJcbiAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIlxyXG4gICAgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIj5cclxuICA8L2tlbmRvLWZpbGVzZWxlY3Q+XHJcblxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaW1hZ2VQcmV2aWV3cy5sZW5ndGhcIlxyXG4gICAgY2xhc3M9XCJpbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBlMXRhZy1zdHlsZTJcIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGFiZWwtY29udGFpbmVyIGUxdGFnLXN0eWxlM1wiXHJcbiAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPlxyXG4gICAgICBJbWFnZSBQcmV2aWV3OlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyIGUxdGFnLXN0eWxlNFwiXHJcbiAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlUHJldmlld3NcIlxyXG4gICAgICAgIFtzcmNdPVwiaW1hZ2Uuc3JjXCJcclxuICAgICAgICBhbHQ9XCJpbWFnZSBwcmV2aWV3XCJcclxuICAgICAgICBoZWlnaHQ9XCIxMDBcIlxyXG4gICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGU1XCJcclxuICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -191,9 +191,10 @@ export class ZworkflowbuttonsComponent extends ButtonFieldBase {
191
191
  }
192
192
  }
193
193
  updateEventId(button) {
194
+ const name = button.Name ?? button.name;
194
195
  const updateButtonEventId = (buttons) => {
195
196
  buttons.forEach(item => {
196
- if (item.name === button.Name) {
197
+ if (item.name === name) {
197
198
  const eventId = ZComponentHelper.generateTimeStampId();
198
199
  const attributes = JSON.parse(item.fieldAttribute.Attributes);
199
200
  item.fieldAttribute.eventId = eventId;
@@ -239,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
239
240
  type: Component,
240
241
  args: [{ selector: 'app-zworkflowbuttons', template: "<div class=\"e1tag-style\"\r\n *ngIf=\"!group.isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\">\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\" [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1\" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\" [style]=\"componentProperties.style.style3\">\r\n <!-- <button *ngFor=\"let item of items; let i = index\" (click)=\"buttonClick(item.fieldAttribute)\"\r\n kendoButton [togglable]=\"true\" [icon]=\"item.icon\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n style=\"margin-right: 5px;\">\r\n {{item.text}}\r\n </button> -->\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\" *ngFor=\"let item of leftBtns; let i = index\"\r\n [ngClass]=\"item.class\" (click)=\"buttonClick(item.fieldAttribute)\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text && item.showLabel\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ion-button [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\" *ngFor=\"let item of rightBtns; let i = index\"\r\n [ngClass]=\"item.class\" (click)=\"buttonClick(item.fieldAttribute)\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered\" [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span *ngIf=\"item.text && item.showLabel\" [class.btn-label]=\"item.icon\" class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"] }]
241
242
  }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.WebApiService }, { type: i2.ResourceApiService }, { type: i2.ComponentErrorHandlerService }, { type: i2.WorkflowService }]; } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiendvcmtmbG93YnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96d29ya2Zsb3didXR0b25zL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFPLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLE9BQU8sRUFFTyxnQkFBZ0IsRUFBVSxlQUFlLEVBQ3RELE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQVN6QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQWlCNUQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDLEVBQ3JDLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0Qyw0QkFBMEQsRUFDMUQsZUFBZ0M7UUFFeEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFQakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUNBQTRCLEdB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QUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVksRUFBRSxNQUFXO1FBQ3RELE9BQU8sTUFBTSxDQUFDLGNBQWMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUM3RixJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDOztzSEE1UVUseUJBQXlCOzBHQUF6Qix5QkFBeUIsbUZDekJ0QyxrdEZBa0NBOzJGRFRhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBCdXR0b25GaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgV2ViQXBpU2VydmljZSwgUmVzb3VyY2VBcGlTZXJ2aWNlLCBXb3JrZmxvd1NlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSwgQ29tcG9uZW50RXJyb3JIYW5kbGVyU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaRmllbGQsIFRyaWdnZXJGcm9tVHlwZVxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtendvcmtmbG93YnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25GaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuICAvL2RvbWFpblVSTCA9IFwiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMDAvXCI7XHJcbiAgLy9lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCA9IHRoaXMuZG9tYWluVVJMICsgXCIvYXBpL1dvcmtmbG93Q2xpZW50cy9HZXRXb3JrZmxvd0NsaWVudEJ1dHRvbnMvXCI7XHJcbiAgLy9lMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMID0gdGhpcy5kb21haW5VUkwgKyBcIi9hcGkvV29ya2Zsb3dDbGllbnRzL0dldFdvcmtmbG93SW5pdGlhbFN0YXR1cy9cIjtcclxuICAvL2Uxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTCA9IHRoaXMuZG9tYWluVVJMICsgXCIvYXBpL1dvcmtmbG93Q2xpZW50cy9HZXREb2N1bWVudFN0YXR1cy9cIjtcclxuICBkYXRhRm9ybUZpZWxkczogYW55ID0ge307XHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBpc0xvY2FsSG9zdEFQSTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2U6IENvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdvcmtmbG93U2VydmljZTogV29ya2Zsb3dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAvLyBDaGVjayBwcm9qZWN0IHJlc291cmNlVVJMIGlzIGl0IGxvY2FsaG9zdFxyXG4gICAgICBpZiAodGhpcy5ncm91cC5yZXNvdXJjZVVSTCkge1xyXG4gICAgICAgIHRoaXMuaXNMb2NhbEhvc3RBUEkgPSB0aGlzLmdyb3VwLnJlc291cmNlVVJMLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubG9hZEJ1dHRvbihUcmlnZ2VyRnJvbVR5cGUuaW5pdGlhbFBhZ2VMb2FkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRCdXR0b24odHJpZ2dlckZyb20/OiBUcmlnZ2VyRnJvbVR5cGUpIHtcclxuICAgIHRoaXMubGVmdEJ0bnMgPSBbXTtcclxuICAgIHRoaXMucmlnaHRCdG5zID0gW107XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcblxyXG4gICAgLy8gR2V0IFdGU19Eb2N1bWVudElkIGlmIGFueS5cclxuICAgIGNvbnN0IGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbD8uWydXRlNfRG9jdW1lbnRJZCddO1xyXG5cclxuICAgIC8vIFNldCB0aGUgZG9jdW1lbnRJZCB0byB0aGUgc2VydmljZVxyXG4gICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuYXBwZW5kV0ZTX0RvY3VtZW50c0luZm8odGhpcy5kYXRhLldvcmtmbG93Q29kZSwgZG9jdW1lbnRJZCk7XHJcblxyXG4gICAgLy8gYnV0dG9uIGNvdW50XHJcbiAgICB0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQrKztcclxuICAgIHRoaXMuRmlyc3RaYnRuID0gdGhpcy5ncm91cC56QnV0dG9uc0NvdW50ID09PSAxO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIG9mKHRydWUpLnBpcGUoXHJcbiAgICAgICAgY29uY2F0TWFwKCgpID0+IHtcclxuICAgICAgICAgIC8vIHJldHJpZXZlIHRoZSB3b3JrZmxvdyBidXR0b25cclxuICAgICAgICAgIHJldHVybiB0aGlzLndvcmtmbG93U2VydmljZS5nZXRXb3JrZmxvd0J1dHRvbnNGaWVsZChcclxuICAgICAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICAgICAgdGhpcy5lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCxcclxuICAgICAgICAgICAgU3RyaW5nKHRoaXMuaXNMb2NhbEhvc3RBUEkpLFxyXG4gICAgICAgICAgICB0cmlnZ2VyRnJvbVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcChyZXN1bHREYXRhID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHREYXRhKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdERhdGEuZm9yRWFjaCgoYnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIWJ1dHRvbi5MYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uLkxhYmVsID0gYnV0dG9uLk5hbWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXNVc2VDdXN0b21DbGFzcyA9IGF0dHJpYnV0ZXMuQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgIGJ1dHRvbiA9IHRoaXMuYXBwZW5kVG9BdHRyaWJ1dGVVc2VmdWxEZXRhaWwoYnV0dG9uKTtcclxuICAgICAgICAgICAgICBjb25zdCBidG4gPSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBidXR0b24uTmFtZSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBidXR0b24uU2hvd0xhYmVsID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBaQ29tcG9uZW50SGVscGVyLmdldEljb24oYXR0cmlidXRlcy5JY29uKSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IGF0dHJpYnV0ZXMuVmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBpc1VzZUN1c3RvbUNsYXNzID8gJycgOiAoYXR0cmlidXRlcy5Db2xvciB8fCAncHJpbWFyeScpLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGF0dHJpYnV0ZXMuRmlsbCB8fCAnc29saWQnKSxcclxuICAgICAgICAgICAgICAgIHNpemU6IGF0dHJpYnV0ZXMuU2l6ZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgICAgICAgICBjbGFzczogaXNVc2VDdXN0b21DbGFzcyA/IGAke2F0dHJpYnV0ZXMuQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGF0dHJpYnV0ZXMuQ2xhc3MsXHJcbiAgICAgICAgICAgICAgICBmaWVsZEF0dHJpYnV0ZTogYnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgaWNvbk5hbWU6IGF0dHJpYnV0ZXMuSWNvbixcclxuICAgICAgICAgICAgICAgIGNsaWNrOiAoeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5Qb3NpdGlvblggJiYgYXR0cmlidXRlcy5Qb3NpdGlvblggPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKC4uLnRoaXMubGVmdEJ0bnMsIC4uLnRoaXMucmlnaHRCdG5zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuYWJsZSB0byBnZXQgd29ya2Zsb3cgYnV0dG9uLiBEYXRhIHJldHVybmVkIG51bGwuYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdXBlci50cmFuc2xhdGVCdXR0b25zTGFiZWwodGhpcy5pdGVtcyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5kYXRhLkRpc2FibGVTeW5jV29ya2Zsb3dTdGF0dXMpIHtcclxuICAgICAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5ncm91cC56TW9kZWxbJ1dGU19TdGF0dXNOYW1lJ10pIHtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBXb3JrZmxvd01hc3RlckNvZGU6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2ViQXBpU2VydmljZS5odHRwUG9zdCQodGhpcy5lMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMLCBwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKCdXRlNfU3RhdHVzSWQnLCByZXMuRGF0YVsnSWQnXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKCdXRlNfU3RhdHVzTmFtZScsIHJlcy5EYXRhWydOYW1lJ10sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIucHJlc2V0TW9kZWxWYWx1ZSgnV0ZTX1N0YXR1c0NvZGUnLCByZXMuRGF0YVsnQ29kZSddLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy8gV2hlbiBsb2FkaW5nIGFsc28gdG8gZ2V0IGN1cnJlbnQgU3RhdHVzIEluZm9ybWF0aW9uIGlmIGFueS5cclxuICAgICAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgICAgICBXb3JrZmxvd01hc3RlckNvZGU6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgICAgICBEb2N1bWVudElkOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMuRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrKGJ1dHRvbjogYW55KSB7XHJcbiAgICAvLyBHZXQgdGhlIGZvcm0gZ3JvdXBcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZ3JvdXAuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBjb25zdCBidXR0b25UeXBlQ29kZSA9IGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICB0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkID0gYnV0dG9uLmRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/ICFidXR0b24uZGlzYWJsZVRyaWdnZXIgOiB0cnVlO1xyXG4gICAgXHJcbiAgICBjb25zdCBjbG9uZWRCdXR0b24gPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZShidXR0b24pO1xyXG4gICAgY29uc3QgY2xvbmVkQXR0cmlidXRlcyA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKGF0dHJpYnV0ZXMpO1xyXG4gICAgXHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50SWQoYnV0dG9uKTtcclxuXHJcbiAgICBzd2l0Y2ggKGJ1dHRvblR5cGVDb2RlKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIC8vIEhhbmRsZSBmdW5jdGlvbmFsIGJ1dHRvbnNcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERpc2FibGUgdHJpZ2dlciB0aW1lclxyXG4gICAgICAgIGlmICghYXR0cmlidXRlc1snRGlzYWJsZVRyaWdnZXJUaW1lciddKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFsnaXNUcmlnZ2VyZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIENhbGwgdGhlIHdvcmtmbG93IHNlcnZpY2UgdG8gaGFuZGxlIHRoZSBmdW5jdGlvbmFsIGJ1dHRvbiBjbGljayBldmVudFxyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmZ1bmN0aW9uYWxCdXR0b25fT25DbGljayhjbG9uZWRBdHRyaWJ1dGVzLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkdPVE9cIjpcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkdPVE8gQnV0dG9uOiBcIiwgYnV0dG9uLk5hbWUpO1xyXG4gICAgICAgIC8vIENhbGwgdGhlIHdvcmtmbG93IHNlcnZpY2UgdG8gaGFuZGxlIHRoZSBHT1RPIGJ1dHRvbiBjbGljayBldmVudFxyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmdvdG9CdXR0b25fT25jbGljayhjbG9uZWRCdXR0b24sIHRoaXMuZGF0YSwgY2xvbmVkQXR0cmlidXRlcywgdGhpcy5ncm91cCwgdGhpcy5pc0xvY2FsSG9zdEFQSSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAvLyBSZWxvYWQgdGhlIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5sb2FkQnV0dG9uKFRyaWdnZXJGcm9tVHlwZS5nb1RvQnV0dG9uKTtcclxuXHJcbiAgICAgICAgICAvLyBSZXNldCB0cmlnZ2VyIHN0YXR1c1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgLy8gVHJpZ2dlciBlbWFpbCBzZW5kaW5nXHJcbiAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnRyaWdnZXJTZW5kRW1haWwodGhpcy5ncm91cCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc29sZS53YXJuKGBJbnZhbGlkIEJ1dHRvbiBUeXBlOiAke2J1dHRvbi5OYW1lfWApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVFdmVudElkKGJ1dHRvbjogYW55KSB7XHJcbiAgICBjb25zdCB1cGRhdGVCdXR0b25FdmVudElkID0gKGJ1dHRvbnM6IGFueVtdKSA9PiB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5uYW1lID09PSBidXR0b24uTmFtZSkge1xyXG4gICAgICAgICAgY29uc3QgZXZlbnRJZCA9IFpDb21wb25lbnRIZWxwZXIuZ2VuZXJhdGVUaW1lU3RhbXBJZCgpO1xyXG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IEpTT04ucGFyc2UoaXRlbS5maWVsZEF0dHJpYnV0ZS5BdHRyaWJ1dGVzKTtcclxuICBcclxuICAgICAgICAgIGl0ZW0uZmllbGRBdHRyaWJ1dGUuZXZlbnRJZCA9IGV2ZW50SWQ7XHJcbiAgICAgICAgICBhdHRyaWJ1dGVzLmV2ZW50SWQgPSBldmVudElkO1xyXG4gIFxyXG4gICAgICAgICAgaXRlbS5maWVsZEF0dHJpYnV0ZS5BdHRyaWJ1dGVzID0gSlNPTi5zdHJpbmdpZnkoYXR0cmlidXRlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgXHJcbiAgICB1cGRhdGVCdXR0b25FdmVudElkKHRoaXMubGVmdEJ0bnMpO1xyXG4gICAgdXBkYXRlQnV0dG9uRXZlbnRJZCh0aGlzLnJpZ2h0QnRucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGVuZFRvQXR0cmlidXRlVXNlZnVsRGV0YWlsKGJ1dHRvbjogYW55KSB7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBjb25zdCBldmVudElkID0gWkNvbXBvbmVudEhlbHBlci5nZW5lcmF0ZVRpbWVTdGFtcElkKCk7XHJcblxyXG4gICAgY29uc3QgbmV3QXR0cmlidXRlcyA9IHtcclxuICAgICAgLi4uYXR0cmlidXRlcyxcclxuICAgICAgekJ1dHRvbk5hbWU6IHRoaXMuZGF0YS5OYW1lLFxyXG4gICAgICBUeXBlQ29kZTogYnV0dG9uLlR5cGVDb2RlLFxyXG4gICAgICBXb3JrZmxvd0NvZGU6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgIGV2ZW50SWQ6IGV2ZW50SWRcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbmV3QnV0dG9uID0ge1xyXG4gICAgICAuLi5idXR0b24sXHJcbiAgICAgIEF0dHJpYnV0ZXM6IEpTT04uc3RyaW5naWZ5KG5ld0F0dHJpYnV0ZXMpLFxyXG4gICAgICBkaXNhYmxlVHJpZ2dlcjogdGhpcy5pc0J1dHRvbkRpc2FibGVUcmlnZ2VyKHRoaXMuZGF0YSwgYnV0dG9uKSxcclxuICAgICAgZXZlbnRJZDogZXZlbnRJZFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0J1dHRvbkRpc2FibGVUcmlnZ2VyKGRhdGE6IFpGaWVsZCwgYnV0dG9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24uRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gYnV0dG9uLkRpc2FibGVUcmlnZ2VyIDogKGRhdGEuRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gZGF0YS5EaXNhYmxlVHJpZ2dlciA6IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVHb3RvQnV0dG9uKCkge1xyXG4gICAgY29uc3QgaW5kZXhUb0RlbGV0ZSA9IHRoaXMubGVmdEJ0bnMuZmluZEluZGV4KG9iaiA9PiBvYmouZmllbGRBdHRyaWJ1dGUuVHlwZUNvZGUgPT09IFwiR09UT1wiKTtcclxuICAgIGlmIChpbmRleFRvRGVsZXRlICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmxlZnRCdG5zLnNwbGljZShpbmRleFRvRGVsZXRlLCAxKTtcclxuICAgIH1cclxuICB9IFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlMXRhZy1zdHlsZVwiXHJcbiAgKm5nSWY9XCIhZ3JvdXAuaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKSAmJiBpdGVtcy5sZW5ndGggPiAwXCJcclxuICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXZlcnRpY2FsIGUxdGFnLXN0eWxlMVwiICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKSAmJiBpdGVtcy5sZW5ndGggPiAxICYmIEZpcnN0WmJ0biA9PT0gZmFsc2VcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIj5cclxuICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiBbZGF0YV09XCJpdGVtc1wiIHNpemU9XCJsYXJnZVwiIFtsb29rXT1cIidvdXRsaW5lJ1wiIGNsYXNzPVwiaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnQgZTF0YWctc3R5bGUyXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICAgIEFjdGlvbnNcclxuICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbiAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgfHwgaXRlbXMubGVuZ3RoID09PSAxXCIgW25nQ2xhc3NdPVwiZGF0YS5EaXZDbGFzc1wiIGNsYXNzPVwiYnRuLWNvbnRhaW5lciBlMXRhZy1zdHlsZTNcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj5cclxuICAgIDwhLS0gPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtLmZpZWxkQXR0cmlidXRlKVwiXHJcbiAgICAgICAgICAgIGtlbmRvQnV0dG9uIFt0b2dnbGFibGVdPVwidHJ1ZVwiIFtpY29uXT1cIml0ZW0uaWNvblwiIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuICAgICAge3tpdGVtLnRleHR9fVxyXG4gICAgPC9idXR0b24+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1sZWZ0IGUxdGFnLXN0eWxlNFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBbZmlsbF09XCJpdGVtLmZpbGxcIiBbc2l6ZV09XCJpdGVtLnNpemVcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIHN0cm9uZz1cInRydWVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsZWZ0QnRuczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtLmZpZWxkQXR0cmlidXRlKVwiIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPlxyXG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwiYnRuLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGl0ZW0uaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udGV4dCAmJiBpdGVtLnNob3dMYWJlbFwiIFtjbGFzcy5idG4tbGFiZWxdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuLXJpZ2h0IGUxdGFnLXN0eWxlNlwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNlwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBbZmlsbF09XCJpdGVtLmZpbGxcIiBbc2l6ZV09XCJpdGVtLnNpemVcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIHN0cm9uZz1cInRydWVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByaWdodEJ0bnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soaXRlbS5maWVsZEF0dHJpYnV0ZSlcIiBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU3XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTdcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHQgJiYgaXRlbS5zaG93TGFiZWxcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiendvcmtmbG93YnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96d29ya2Zsb3didXR0b25zL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFPLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLE9BQU8sRUFFTyxnQkFBZ0IsRUFBVSxlQUFlLEVBQ3RELE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQVN6QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQWlCNUQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDLEVBQ3JDLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0Qyw0QkFBMEQsRUFDMUQsZUFBZ0M7UUFFeEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFQakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUNBQTRCLEdB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QU0sQ0FBQztZQUM5RCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVksRUFBRSxNQUFXO1FBQ3RELE9BQU8sTUFBTSxDQUFDLGNBQWMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUM3RixJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDOztzSEE3UVUseUJBQXlCOzBHQUF6Qix5QkFBeUIsbUZDekJ0QyxrdEZBa0NBOzJGRFRhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBCdXR0b25GaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgV2ViQXBpU2VydmljZSwgUmVzb3VyY2VBcGlTZXJ2aWNlLCBXb3JrZmxvd1NlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSwgQ29tcG9uZW50RXJyb3JIYW5kbGVyU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaRmllbGQsIFRyaWdnZXJGcm9tVHlwZVxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtendvcmtmbG93YnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25GaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuICAvL2RvbWFpblVSTCA9IFwiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMDAvXCI7XHJcbiAgLy9lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCA9IHRoaXMuZG9tYWluVVJMICsgXCIvYXBpL1dvcmtmbG93Q2xpZW50cy9HZXRXb3JrZmxvd0NsaWVudEJ1dHRvbnMvXCI7XHJcbiAgLy9lMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMID0gdGhpcy5kb21haW5VUkwgKyBcIi9hcGkvV29ya2Zsb3dDbGllbnRzL0dldFdvcmtmbG93SW5pdGlhbFN0YXR1cy9cIjtcclxuICAvL2Uxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTCA9IHRoaXMuZG9tYWluVVJMICsgXCIvYXBpL1dvcmtmbG93Q2xpZW50cy9HZXREb2N1bWVudFN0YXR1cy9cIjtcclxuICBkYXRhRm9ybUZpZWxkczogYW55ID0ge307XHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBpc0xvY2FsSG9zdEFQSTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2U6IENvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdvcmtmbG93U2VydmljZTogV29ya2Zsb3dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAvLyBDaGVjayBwcm9qZWN0IHJlc291cmNlVVJMIGlzIGl0IGxvY2FsaG9zdFxyXG4gICAgICBpZiAodGhpcy5ncm91cC5yZXNvdXJjZVVSTCkge1xyXG4gICAgICAgIHRoaXMuaXNMb2NhbEhvc3RBUEkgPSB0aGlzLmdyb3VwLnJlc291cmNlVVJMLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubG9hZEJ1dHRvbihUcmlnZ2VyRnJvbVR5cGUuaW5pdGlhbFBhZ2VMb2FkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRCdXR0b24odHJpZ2dlckZyb20/OiBUcmlnZ2VyRnJvbVR5cGUpIHtcclxuICAgIHRoaXMubGVmdEJ0bnMgPSBbXTtcclxuICAgIHRoaXMucmlnaHRCdG5zID0gW107XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcblxyXG4gICAgLy8gR2V0IFdGU19Eb2N1bWVudElkIGlmIGFueS5cclxuICAgIGNvbnN0IGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbD8uWydXRlNfRG9jdW1lbnRJZCddO1xyXG5cclxuICAgIC8vIFNldCB0aGUgZG9jdW1lbnRJZCB0byB0aGUgc2VydmljZVxyXG4gICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuYXBwZW5kV0ZTX0RvY3VtZW50c0luZm8odGhpcy5kYXRhLldvcmtmbG93Q29kZSwgZG9jdW1lbnRJZCk7XHJcblxyXG4gICAgLy8gYnV0dG9uIGNvdW50XHJcbiAgICB0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQrKztcclxuICAgIHRoaXMuRmlyc3RaYnRuID0gdGhpcy5ncm91cC56QnV0dG9uc0NvdW50ID09PSAxO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIG9mKHRydWUpLnBpcGUoXHJcbiAgICAgICAgY29uY2F0TWFwKCgpID0+IHtcclxuICAgICAgICAgIC8vIHJldHJpZXZlIHRoZSB3b3JrZmxvdyBidXR0b25cclxuICAgICAgICAgIHJldHVybiB0aGlzLndvcmtmbG93U2VydmljZS5nZXRXb3JrZmxvd0J1dHRvbnNGaWVsZChcclxuICAgICAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICAgICAgdGhpcy5lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCxcclxuICAgICAgICAgICAgU3RyaW5nKHRoaXMuaXNMb2NhbEhvc3RBUEkpLFxyXG4gICAgICAgICAgICB0cmlnZ2VyRnJvbVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcChyZXN1bHREYXRhID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHREYXRhKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdERhdGEuZm9yRWFjaCgoYnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIWJ1dHRvbi5MYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uLkxhYmVsID0gYnV0dG9uLk5hbWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXNVc2VDdXN0b21DbGFzcyA9IGF0dHJpYnV0ZXMuQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgIGJ1dHRvbiA9IHRoaXMuYXBwZW5kVG9BdHRyaWJ1dGVVc2VmdWxEZXRhaWwoYnV0dG9uKTtcclxuICAgICAgICAgICAgICBjb25zdCBidG4gPSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBidXR0b24uTmFtZSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBidXR0b24uU2hvd0xhYmVsID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBaQ29tcG9uZW50SGVscGVyLmdldEljb24oYXR0cmlidXRlcy5JY29uKSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IGF0dHJpYnV0ZXMuVmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBpc1VzZUN1c3RvbUNsYXNzID8gJycgOiAoYXR0cmlidXRlcy5Db2xvciB8fCAncHJpbWFyeScpLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGF0dHJpYnV0ZXMuRmlsbCB8fCAnc29saWQnKSxcclxuICAgICAgICAgICAgICAgIHNpemU6IGF0dHJpYnV0ZXMuU2l6ZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgICAgICAgICBjbGFzczogaXNVc2VDdXN0b21DbGFzcyA/IGAke2F0dHJpYnV0ZXMuQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGF0dHJpYnV0ZXMuQ2xhc3MsXHJcbiAgICAgICAgICAgICAgICBmaWVsZEF0dHJpYnV0ZTogYnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgaWNvbk5hbWU6IGF0dHJpYnV0ZXMuSWNvbixcclxuICAgICAgICAgICAgICAgIGNsaWNrOiAoeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5Qb3NpdGlvblggJiYgYXR0cmlidXRlcy5Qb3NpdGlvblggPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKC4uLnRoaXMubGVmdEJ0bnMsIC4uLnRoaXMucmlnaHRCdG5zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuYWJsZSB0byBnZXQgd29ya2Zsb3cgYnV0dG9uLiBEYXRhIHJldHVybmVkIG51bGwuYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdXBlci50cmFuc2xhdGVCdXR0b25zTGFiZWwodGhpcy5pdGVtcyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5kYXRhLkRpc2FibGVTeW5jV29ya2Zsb3dTdGF0dXMpIHtcclxuICAgICAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5ncm91cC56TW9kZWxbJ1dGU19TdGF0dXNOYW1lJ10pIHtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBXb3JrZmxvd01hc3RlckNvZGU6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2ViQXBpU2VydmljZS5odHRwUG9zdCQodGhpcy5lMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMLCBwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKCdXRlNfU3RhdHVzSWQnLCByZXMuRGF0YVsnSWQnXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKCdXRlNfU3RhdHVzTmFtZScsIHJlcy5EYXRhWydOYW1lJ10sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIucHJlc2V0TW9kZWxWYWx1ZSgnV0ZTX1N0YXR1c0NvZGUnLCByZXMuRGF0YVsnQ29kZSddLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy8gV2hlbiBsb2FkaW5nIGFsc28gdG8gZ2V0IGN1cnJlbnQgU3RhdHVzIEluZm9ybWF0aW9uIGlmIGFueS5cclxuICAgICAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgICAgICBXb3JrZmxvd01hc3RlckNvZGU6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgICAgICBEb2N1bWVudElkOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMuRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrKGJ1dHRvbjogYW55KSB7XHJcbiAgICAvLyBHZXQgdGhlIGZvcm0gZ3JvdXBcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZ3JvdXAuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBjb25zdCBidXR0b25UeXBlQ29kZSA9IGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICB0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkID0gYnV0dG9uLmRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/ICFidXR0b24uZGlzYWJsZVRyaWdnZXIgOiB0cnVlO1xyXG4gICAgXHJcbiAgICBjb25zdCBjbG9uZWRCdXR0b24gPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZShidXR0b24pO1xyXG4gICAgY29uc3QgY2xvbmVkQXR0cmlidXRlcyA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKGF0dHJpYnV0ZXMpO1xyXG4gICAgXHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50SWQoYnV0dG9uKTtcclxuXHJcbiAgICBzd2l0Y2ggKGJ1dHRvblR5cGVDb2RlKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIC8vIEhhbmRsZSBmdW5jdGlvbmFsIGJ1dHRvbnNcclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERpc2FibGUgdHJpZ2dlciB0aW1lclxyXG4gICAgICAgIGlmICghYXR0cmlidXRlc1snRGlzYWJsZVRyaWdnZXJUaW1lciddKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFsnaXNUcmlnZ2VyZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIENhbGwgdGhlIHdvcmtmbG93IHNlcnZpY2UgdG8gaGFuZGxlIHRoZSBmdW5jdGlvbmFsIGJ1dHRvbiBjbGljayBldmVudFxyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmZ1bmN0aW9uYWxCdXR0b25fT25DbGljayhjbG9uZWRBdHRyaWJ1dGVzLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkdPVE9cIjpcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkdPVE8gQnV0dG9uOiBcIiwgYnV0dG9uLk5hbWUpO1xyXG4gICAgICAgIC8vIENhbGwgdGhlIHdvcmtmbG93IHNlcnZpY2UgdG8gaGFuZGxlIHRoZSBHT1RPIGJ1dHRvbiBjbGljayBldmVudFxyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmdvdG9CdXR0b25fT25jbGljayhjbG9uZWRCdXR0b24sIHRoaXMuZGF0YSwgY2xvbmVkQXR0cmlidXRlcywgdGhpcy5ncm91cCwgdGhpcy5pc0xvY2FsSG9zdEFQSSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAvLyBSZWxvYWQgdGhlIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5sb2FkQnV0dG9uKFRyaWdnZXJGcm9tVHlwZS5nb1RvQnV0dG9uKTtcclxuXHJcbiAgICAgICAgICAvLyBSZXNldCB0cmlnZ2VyIHN0YXR1c1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgLy8gVHJpZ2dlciBlbWFpbCBzZW5kaW5nXHJcbiAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnRyaWdnZXJTZW5kRW1haWwodGhpcy5ncm91cCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc29sZS53YXJuKGBJbnZhbGlkIEJ1dHRvbiBUeXBlOiAke2J1dHRvbi5OYW1lfWApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVFdmVudElkKGJ1dHRvbjogYW55KSB7XHJcbiAgICBjb25zdCBuYW1lID0gYnV0dG9uLk5hbWUgPz8gYnV0dG9uLm5hbWU7XHJcbiAgICBjb25zdCB1cGRhdGVCdXR0b25FdmVudElkID0gKGJ1dHRvbnM6IGFueVtdKSA9PiB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5uYW1lID09PSBuYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBldmVudElkID0gWkNvbXBvbmVudEhlbHBlci5nZW5lcmF0ZVRpbWVTdGFtcElkKCk7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShpdGVtLmZpZWxkQXR0cmlidXRlLkF0dHJpYnV0ZXMpO1xyXG4gIFxyXG4gICAgICAgICAgaXRlbS5maWVsZEF0dHJpYnV0ZS5ldmVudElkID0gZXZlbnRJZDtcclxuICAgICAgICAgIGF0dHJpYnV0ZXMuZXZlbnRJZCA9IGV2ZW50SWQ7XHJcbiAgXHJcbiAgICAgICAgICBpdGVtLmZpZWxkQXR0cmlidXRlLkF0dHJpYnV0ZXMgPSBKU09OLnN0cmluZ2lmeShhdHRyaWJ1dGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICBcclxuICAgIHVwZGF0ZUJ1dHRvbkV2ZW50SWQodGhpcy5sZWZ0QnRucyk7XHJcbiAgICB1cGRhdGVCdXR0b25FdmVudElkKHRoaXMucmlnaHRCdG5zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kVG9BdHRyaWJ1dGVVc2VmdWxEZXRhaWwoYnV0dG9uOiBhbnkpIHtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKGJ1dHRvbi5BdHRyaWJ1dGVzKTtcclxuICAgIGNvbnN0IGV2ZW50SWQgPSBaQ29tcG9uZW50SGVscGVyLmdlbmVyYXRlVGltZVN0YW1wSWQoKTtcclxuXHJcbiAgICBjb25zdCBuZXdBdHRyaWJ1dGVzID0ge1xyXG4gICAgICAuLi5hdHRyaWJ1dGVzLFxyXG4gICAgICB6QnV0dG9uTmFtZTogdGhpcy5kYXRhLk5hbWUsXHJcbiAgICAgIFR5cGVDb2RlOiBidXR0b24uVHlwZUNvZGUsXHJcbiAgICAgIFdvcmtmbG93Q29kZTogdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgZXZlbnRJZDogZXZlbnRJZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBuZXdCdXR0b24gPSB7XHJcbiAgICAgIC4uLmJ1dHRvbixcclxuICAgICAgQXR0cmlidXRlczogSlNPTi5zdHJpbmdpZnkobmV3QXR0cmlidXRlcyksXHJcbiAgICAgIGRpc2FibGVUcmlnZ2VyOiB0aGlzLmlzQnV0dG9uRGlzYWJsZVRyaWdnZXIodGhpcy5kYXRhLCBidXR0b24pLFxyXG4gICAgICBldmVudElkOiBldmVudElkXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQnV0dG9uRGlzYWJsZVRyaWdnZXIoZGF0YTogWkZpZWxkLCBidXR0b246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbi5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBidXR0b24uRGlzYWJsZVRyaWdnZXIgOiAoZGF0YS5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBkYXRhLkRpc2FibGVUcmlnZ2VyIDogZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUdvdG9CdXR0b24oKSB7XHJcbiAgICBjb25zdCBpbmRleFRvRGVsZXRlID0gdGhpcy5sZWZ0QnRucy5maW5kSW5kZXgob2JqID0+IG9iai5maWVsZEF0dHJpYnV0ZS5UeXBlQ29kZSA9PT0gXCJHT1RPXCIpO1xyXG4gICAgaWYgKGluZGV4VG9EZWxldGUgIT09IC0xKSB7XHJcbiAgICAgIHRoaXMubGVmdEJ0bnMuc3BsaWNlKGluZGV4VG9EZWxldGUsIDEpO1xyXG4gICAgfVxyXG4gIH0gXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImUxdGFnLXN0eWxlXCJcclxuICAqbmdJZj1cIiFncm91cC5pc0xvYWRpbmcgJiYgKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpICYmIGl0ZW1zLmxlbmd0aCA+IDBcIlxyXG4gIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlvbi1tYXJnaW4tdmVydGljYWwgZTF0YWctc3R5bGUxXCIgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgRmlyc3RaYnRuID09PSBmYWxzZVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtkYXRhXT1cIml0ZW1zXCIgc2l6ZT1cImxhcmdlXCIgW2xvb2tdPVwiJ291dGxpbmUnXCIgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudCBlMXRhZy1zdHlsZTJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIj5cclxuICAgICAgQWN0aW9uc1xyXG4gICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cclxuICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKSB8fCBpdGVtcy5sZW5ndGggPT09IDFcIiBbbmdDbGFzc109XCJkYXRhLkRpdkNsYXNzXCIgY2xhc3M9XCJidG4tY29udGFpbmVyIGUxdGFnLXN0eWxlM1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPlxyXG4gICAgPCEtLSA8YnV0dG9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0uZmllbGRBdHRyaWJ1dGUpXCJcclxuICAgICAgICAgICAga2VuZG9CdXR0b24gW3RvZ2dsYWJsZV09XCJ0cnVlXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiPlxyXG4gICAgICB7e2l0ZW0udGV4dH19XHJcbiAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWxlZnQgZTF0YWctc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxlZnRCdG5zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0uZmllbGRBdHRyaWJ1dGUpXCIgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNVwiIGNsYXNzPVwiZTF0YWctc3R5bGU1XCI+XHJcbiAgICAgICAgPGZhLWljb24gY2xhc3M9XCJidG4taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCIgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoaXRlbS5pY29uLCBmb250QXdlU29tZVNlcnZpY2UpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS50ZXh0ICYmIGl0ZW0uc2hvd0xhYmVsXCIgW2NsYXNzLmJ0bi1sYWJlbF09XCJpdGVtLmljb25cIiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tcmlnaHQgZTF0YWctc3R5bGU2XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU2XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJpZ2h0QnRuczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtLmZpZWxkQXR0cmlidXRlKVwiIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTdcIiBjbGFzcz1cImUxdGFnLXN0eWxlN1wiPlxyXG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwiYnRuLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGl0ZW0uaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udGV4dCAmJiBpdGVtLnNob3dMYWJlbFwiIFtjbGFzcy5idG4tbGFiZWxdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -100,4 +100,5 @@ export * from './lib/kmenu/kmenu.component';
100
100
  export * from './lib/kscrollview/kscrollview.component';
101
101
  export * from './lib/embed-components/context-menu/context-menu.component';
102
102
  export * from './lib/ficon/ficon.component';
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILCtCQUErQjtBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsOENBQThDO0FBQzlDLDJEQUEyRDtBQUczRCxpQ0FBaUM7QUFDakMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELDhCQUE4QjtBQUM5QixjQUFjLG9DQUFvQyxDQUFDO0FBR25ELDZCQUE2QjtBQUM3QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFFekQsK0NBQStDO0FBQy9DLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQ0FBK0MsQ0FBQztBQUc5RCxrQ0FBa0M7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsd0VBQXdFLENBQUE7QUFDdEYsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGtEQUFrRCxDQUFBO0FBQ2hFLGNBQWMsb0ZBQW9GLENBQUE7QUFDbEcsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkeW5hbWljLWZvcm1cclxuICovXHJcblxyXG4vKioqKioqKioqKiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ptb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvemNvbXBvbmVudC5kZWJ1Zy5zZXJ2aWNlJztcclxuXHJcblxyXG4vKioqKioqKioqKiBEaXJlY3RpdmUgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zY3JvbGxiYXIudGhlbWUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9maWVsZGVsZW1lbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvemdyaWQuYmluZGluZy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZWxlbWVudGNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5cclxuLyoqKioqKioqKiogTW9kdWxlICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21taGdsb2JhbC1keW5hbWljZm9ybS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKioqKioqKioqIEFkZG9uICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS9kYXRlUGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y29kZWVkaXRvci96Y29kZWVkaXRvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRpdi96ZGl2LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGFiL3p0YWIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUvcGFuZWwtYXJlYS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemlucHV0LWNvbnRhaW5lci96aW5wdXQtY29udGFpbmVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlL2h0bWxTYW5pdGl6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem51bWVyaWMvem51bWVyaWMuY29tcG9uZW50LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUlvbmljRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUtlbmRvRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUlvbmljTWluTWF4RGF0ZS5waXBlJztcclxuXHJcbi8vIGV4cG9ydCAqIGZyb20gICcuL2xpYi96bW9kYWwvem1vZGFsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pncmlkL2RhdGUtcmFuZ2UtY2VsbC1maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenNjaGVkdWxlci96c2NoZWR1bGVyLnRvb2xiYXIuY29tcG9uZW50JztcclxuXHJcblxyXG4vKioqKioqKioqKiB6Q29tcG9uZW50ICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpY29udGFpbmVyL3VpY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpY29udGVudC91aWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlwYWdlL3VpcGFnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aW1lbnVjb250ZW50L3VpbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWltZW51YnV0dG9uL3VpbWVudWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlidWxsZXRpbi91aWJ1bGxldGluLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpYWN0aW9uYnV0dG9uL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpdmFsaWRhdGlvbm1lc3NhZ2UvdWl2YWxpZGF0aW9ubWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96YnVsbGV0L3pidWxsZXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNhcmQvemNhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNoYXJ0L3pjaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y2hlY2tib3gvemNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjaGlwL3pjaGlwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjb2RlZWRpdG9yL3pjb2RlZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRlcmFuZ2UvemRhdGVyYW5nZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvemRhdGV0aW1lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkaXYvemRpdi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Zm9ybS96Zm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Zm9ybWNvbnRyb2wvemZvcm1jb250cm9sLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvemdyaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvY29udGFpbmVyL3pncmlkLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC96Z3JpZC5wb3B1cC5hbmNob3ItdGFyZ2V0LmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemltZy96aW1nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3psYWJlbC96bGFiZWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem1mYi96bWZiLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ptb2RhbC96bW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem1vZGFsL3ptb2RhbC1tb2JpbGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem51bWVyaWMvem51bWVyaWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenBvc3RzZWxlY3RpbnB1dC96cG9zdHNlbGVjdGlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pyZXBvcnQvenJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2NoZWR1bGVyL3pzY2hlZHVsZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenNlbGVjdG11bHRpcGxlL3pzZWxlY3RtdWx0aXBsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGFiL3p0YWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRleHQvenRleHQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dGVkaXRvci96dGV4dGVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dHJlZS96dHJlZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dHJlZWxpc3QvenRyZWVsaXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVuZGNhcmQvenRyZW5kY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dWRmL3p1ZGYuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenVua25vd24venVua25vd24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p3b3JrZmxvd2J1dHRvbnMvendvcmtmbG93YnV0dG9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rY2FyZC9rY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenByb2dyZXNzYmFyL3pwcm9ncmVzc2Jhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGFsaXN0aW5nZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXQtZXJyb3ItbWVzc2FnZS9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvcGFnZS1sb2FkZXIvcGFnZS1sb2FkZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbWJlZC1jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvcHJvY2Vzc2luZy1yZWNvcmQtbG9hZGVyL3Byb2Nlc3NpbmctcmVjb3JkLWxvYWRlci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzZWxlY3RtdWx0aXBsZS96c2VsZWN0bXVsdGlwbGUucGlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bG9vcC96bG9vcC5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tzcGxpdHRlci9rc3BsaXR0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNvbG9ycGlja2VyL3pjb2xvcnBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbWVudS9rbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rc2Nyb2xsdmlldy9rc2Nyb2xsdmlldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbWJlZC1jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmljb24vZmljb24uY29tcG9uZW50JztcclxuIl19
103
+ export * from './lib/sfdatetimepicker/sfdatetimepicker.component';
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILCtCQUErQjtBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsOENBQThDO0FBQzlDLDJEQUEyRDtBQUczRCxpQ0FBaUM7QUFDakMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELDhCQUE4QjtBQUM5QixjQUFjLG9DQUFvQyxDQUFDO0FBR25ELDZCQUE2QjtBQUM3QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFFekQsK0NBQStDO0FBQy9DLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQ0FBK0MsQ0FBQztBQUc5RCxrQ0FBa0M7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsd0VBQXdFLENBQUE7QUFDdEYsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGtEQUFrRCxDQUFBO0FBQ2hFLGNBQWMsb0ZBQW9GLENBQUE7QUFDbEcsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGR5bmFtaWMtZm9ybVxyXG4gKi9cclxuXHJcbi8qKioqKioqKioqIFNlcnZpY2UgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvem1vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy96Y29tcG9uZW50LmRlYnVnLnNlcnZpY2UnO1xyXG5cclxuXHJcbi8qKioqKioqKioqIERpcmVjdGl2ZSAqKioqKioqKioqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Njcm9sbGJhci50aGVtZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZpZWxkZWxlbWVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC96Z3JpZC5iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzZWxlY3RtdWx0aXBsZS96c2VsZWN0bXVsdGlwbGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9lbGVtZW50Y29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcblxyXG4vKioqKioqKioqKiBNb2R1bGUgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtLm1vZHVsZSc7XHJcblxyXG5cclxuLyoqKioqKioqKiogQWRkb24gKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL2RhdGVQYXJzZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjb2RlZWRpdG9yL3pjb2RlZWRpdG9yLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGl2L3pkaXYucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0YWIvenRhYi5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9wYW5lbC1hcmVhLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUvaHRtbFNhbml0aXplLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bnVtZXJpYy96bnVtZXJpYy5jb21wb25lbnQucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS9kYXRlSW9uaWNGb3JtYXRQYXJzZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS9kYXRlS2VuZG9Gb3JtYXRQYXJzZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS9kYXRlSW9uaWNNaW5NYXhEYXRlLnBpcGUnO1xyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAgJy4vbGliL3ptb2RhbC96bW9kYWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvZGF0ZS1yYW5nZS1jZWxsLWZpbHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2NoZWR1bGVyL3pzY2hlZHVsZXIudG9vbGJhci5jb21wb25lbnQnO1xyXG5cclxuXHJcbi8qKioqKioqKioqIHpDb21wb25lbnQgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWljb250YWluZXIvdWljb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWljb250ZW50L3VpY29udGVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWhlYWRlci91aWhlYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aXBhZ2UvdWlwYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpbWVudWNvbnRlbnQvdWltZW51Y29udGVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aW1lbnVidXR0b24vdWltZW51YnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpYXBwbWVudWNvbnRlbnQvdWlhcHBtZW51Y29udGVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWJ1bGxldGluL3VpYnVsbGV0aW4uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWl2YWxpZGF0aW9ubWVzc2FnZS91aXZhbGlkYXRpb25tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pidWxsZXQvemJ1bGxldC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96YnV0dG9ucy96YnV0dG9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y2FyZC96Y2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y2hhcnQvemNoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjaGVja2JveC96Y2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNoaXAvemNoaXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNvZGVlZGl0b3IvemNvZGVlZGl0b3IuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGVyYW5nZS96ZGF0ZXJhbmdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS96ZGF0ZXRpbWUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRpdi96ZGl2LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pmb3JtL3pmb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pmb3JtY29udHJvbC96Zm9ybWNvbnRyb2wuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdhdWdlL3pnYXVnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC96Z3JpZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC9jb250YWluZXIvemdyaWQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pncmlkL3pncmlkLnBvcHVwLmFuY2hvci10YXJnZXQuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96aW1nL3ppbWcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemxhYmVsL3psYWJlbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bWZiL3ptZmIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem1vZGFsL3ptb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bW9kYWwvem1vZGFsLW1vYmlsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bnVtZXJpYy96bnVtZXJpYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96cG9zdHNlbGVjdGlucHV0L3pwb3N0c2VsZWN0aW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzY2hlZHVsZXIvenNjaGVkdWxlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0YWIvenRhYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dC96dGV4dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dGFyZWEvenRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0ZXh0ZWRpdG9yL3p0ZXh0ZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVlL3p0cmVlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVlbGlzdC96dHJlZWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRyZW5kY2FyZC96dHJlbmRjYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p1ZGYvenVkZi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dW5rbm93bi96dW5rbm93bi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tjYXJkL2tjYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ppbnB1dC1jb250YWluZXIvemlucHV0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96cHJvZ3Jlc3NiYXIvenByb2dyZXNzYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29udGFpbmVyZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1lcnJvci1tZXNzYWdlL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWQtY29tcG9uZW50cy9pbnB1dC1maWVsZC1hZGRvbnMvaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWQtY29tcG9uZW50cy9wYWdlLWxvYWRlci9wYWdlLWxvYWRlci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWQtY29tcG9uZW50cy9wcm9jZXNzaW5nLXJlY29yZC1sb2FkZXIvcHJvY2Vzc2luZy1yZWNvcmQtbG9hZGVyLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenNlbGVjdG11bHRpcGxlL3pzZWxlY3RtdWx0aXBsZS5waXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZnF1ZXJ5YnVpbGRlci9zZnF1ZXJ5YnVpbGRlci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3psb29wL3psb29wLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIva3NwbGl0dGVyL2tzcGxpdHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi92aXJ0dWFsLXNjcm9sbC92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y29sb3JwaWNrZXIvemNvbG9ycGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ttZW51L2ttZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tzY3JvbGx2aWV3L2tzY3JvbGx2aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWNvbi9maWNvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZmRhdGV0aW1lcGlja2VyL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50JztcclxuIl19