mmhglobal-dynamicform 2.3.1 → 2.4.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 (30) hide show
  1. package/README.md +6 -0
  2. package/esm2020/lib/components/fieldbase.component.mjs +3 -3
  3. package/esm2020/lib/components/inputfieldbase.component.mjs +1 -1
  4. package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +7 -6
  5. package/esm2020/lib/input-error-message/input-error-message.component.mjs +7 -6
  6. package/esm2020/lib/kcard/kcard.component.mjs +16 -14
  7. package/esm2020/lib/zbuttons/zbuttons.component.mjs +7 -6
  8. package/esm2020/lib/zgrid/zgrid.component.mjs +9 -8
  9. package/esm2020/lib/zkcard/zkcard.component.mjs +11 -10
  10. package/esm2020/lib/zlabel/zlabel.component.mjs +14 -12
  11. package/esm2020/lib/zreport/zreport.component.mjs +7 -6
  12. package/esm2020/lib/ztab/ztab.component.mjs +7 -6
  13. package/esm2020/lib/zudf/zudf.component.mjs +2 -2
  14. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +8 -6
  15. package/fesm2015/mmhglobal-dynamicform.mjs +179 -168
  16. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  17. package/fesm2020/mmhglobal-dynamicform.mjs +179 -168
  18. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  19. package/lib/components/fieldbase.component.d.ts +2 -2
  20. package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +3 -2
  21. package/lib/input-error-message/input-error-message.component.d.ts +3 -2
  22. package/lib/kcard/kcard.component.d.ts +3 -2
  23. package/lib/zbuttons/zbuttons.component.d.ts +3 -2
  24. package/lib/zgrid/zgrid.component.d.ts +3 -2
  25. package/lib/zkcard/zkcard.component.d.ts +4 -3
  26. package/lib/zlabel/zlabel.component.d.ts +3 -2
  27. package/lib/zreport/zreport.component.d.ts +4 -3
  28. package/lib/ztab/ztab.component.d.ts +3 -2
  29. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +4 -2
  30. package/package.json +1 -1
@@ -15,8 +15,9 @@ import * as i5 from "@fortawesome/angular-fontawesome";
15
15
  import * as i6 from "@angular/common";
16
16
  import * as i7 from "@angular/flex-layout/extended";
17
17
  export class ZbuttonsComponent extends ButtonFieldBase {
18
- constructor(compService, fieldService) {
18
+ constructor(compService, fontAweSomeService, fieldService) {
19
19
  super(compService);
20
+ this.fontAweSomeService = fontAweSomeService;
20
21
  this.fieldService = fieldService;
21
22
  this.items = [];
22
23
  this.leftBtns = [];
@@ -103,10 +104,10 @@ export class ZbuttonsComponent extends ButtonFieldBase {
103
104
  return button.DisableTrigger != undefined ? button.DisableTrigger : (data.DisableTrigger != undefined ? data.DisableTrigger : false);
104
105
  }
105
106
  }
106
- ZbuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZbuttonsComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FieldService }], target: i0.ɵɵFactoryTarget.Component });
107
- ZbuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZbuttonsComponent, selector: "app-zbuttons", usesInheritance: true, ngImport: i0, template: "<!-- <p>\r\n zbuttons {{data.Value}}\r\n</p> -->\r\n<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\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\"\r\n [style]=\"componentProperties.style.style3\">\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\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [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\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [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"], components: [{ type: i3.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
107
+ ZbuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZbuttonsComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i2.FieldService }], target: i0.ɵɵFactoryTarget.Component });
108
+ ZbuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZbuttonsComponent, selector: "app-zbuttons", usesInheritance: true, ngImport: i0, template: "<!-- <p>\r\n zbuttons {{data.Value}}\r\n</p> -->\r\n<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\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\"\r\n [style]=\"componentProperties.style.style3\">\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\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [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\" [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\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [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\" [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"], components: [{ type: i3.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
108
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZbuttonsComponent, decorators: [{
109
110
  type: Component,
110
- args: [{ selector: "app-zbuttons", template: "<!-- <p>\r\n zbuttons {{data.Value}}\r\n</p> -->\r\n<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\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\"\r\n [style]=\"componentProperties.style.style3\">\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\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [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\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [style]=\"componentProperties.style.style7\" class=\"e1tag-style7\">\r\n <fa-icon class=\"btn-icon\" *ngIf=\"item.icon\" [icon]=\"getFontAwesome(item.icon)\"></fa-icon>\r\n <span *ngIf=\"item.text\" [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"] }]
111
- }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }]; } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUE0QixnQkFBZ0IsRUFBaUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBT2hELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBTXBELFlBQVksV0FBOEIsRUFBVSxZQUEwQjtRQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUFoRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUw5RSxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBRW1GLENBQUM7SUFFdEcsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNmLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUN4QixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUVELElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDckIsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDckQ7b0JBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFMUMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDO29CQUUxQixJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7d0JBQzVDLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDckg7b0JBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDckQsSUFBSSxHQUFHLEdBQUc7d0JBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixJQUFJLEVBQUUsS0FBSzt3QkFDWCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzNDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzt3QkFDdkIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7d0JBQzFELElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO3dCQUN0RCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTO3dCQUM5QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO3dCQUN6RSxRQUFRLEVBQUUsY0FBYzt3QkFDeEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO3dCQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ3JCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVzt3QkFDL0IsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjt3QkFDL0MsY0FBYyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzt3QkFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTzt3QkFDMUIsVUFBVSxFQUFFLE1BQU07cUJBQ25CLENBQUM7b0JBRUYsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUFFO3dCQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDMUI7eUJBQ0k7d0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3pCO2dCQUVILENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLE9BQU8sS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ25CLFlBQVk7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtnQkFDaEMsVUFBVSxDQUFDO29CQUNULEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO1NBQ0Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixJQUFJLEVBQUUsSUFBSTtTQUNjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sNEJBQTRCLENBQUMsSUFBWSxFQUFFLE1BQVc7UUFDNUQsT0FBTyxNQUFNLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkksQ0FBQzs7K0dBdEdVLGlCQUFpQjttR0FBakIsaUJBQWlCLDJFQ2xCOUIsNG5GQTBDQTs0RkR4QmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkU2VydmljZSwgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaRmllbGQgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25GaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpidXR0b25zXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96YnV0dG9ucy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96YnV0dG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmJ1dHRvbnNDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25GaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbGVmdEJ0bnM6IEFycmF5PGFueT4gPSBbXTtcclxuICByaWdodEJ0bnM6IEFycmF5PGFueT4gPSBbXTtcclxuICBGaXJzdFpidG4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLCBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlKSB7IHN1cGVyKGNvbXBTZXJ2aWNlKSB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZEJ1dHRvbigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRCdXR0b24oKSB7XHJcbiAgICBjb25zdCBmaWVsZCQgPSB0aGlzLmZpZWxkU2VydmljZS5nZXRGb3JtRmllbGRDb2RlKFxyXG4gICAgICB0aGlzLmRhdGEuVmFsdWUsXHJcbiAgICAgIFwiRm9ybUZpZWxkXCIsIG51bGwsIG51bGxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5ncm91cC56QnV0dG9uc0NvdW50Kys7XHJcbiAgICBpZiAodGhpcy5ncm91cC56QnV0dG9uc0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMuRmlyc3RaYnRuID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBmaWVsZCQucGlwZShcclxuICAgICAgICB0YXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAvLyB0aGlzLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoYnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5TdWJUeXBlKSB7XHJcbiAgICAgICAgICAgICAgYnV0dG9uLk5hbWUgPSB0aGlzLmRhdGEuU3ViVHlwZSArICdfJyArIGJ1dHRvbi5OYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG5cclxuICAgICAgICAgICAgbGV0IGJ1dHRvbkRpc2FibGVkID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmIChidXR0b24uRGlzYWJsZWQgIT0gXCJcIiAmJiBidXR0b24uRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICBidXR0b25EaXNhYmxlZCA9IGJ1dHRvbi5EaXNhYmxlZCA9PT0gJ3RydWUnID8gdHJ1ZSA6IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBidXR0b24uRGlzYWJsZWQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpc1VzZUN1c3RvbUNsYXNzID0gYnV0dG9uLkNvbG9yID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICBsZXQgYnRuID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGJ1dHRvbi5OYW1lLFxyXG4gICAgICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgICAgIGljb246IFpDb21wb25lbnRIZWxwZXIuZ2V0SWNvbihidXR0b24uSWNvbiksXHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogYnV0dG9uLlZpc2libGUsXHJcbiAgICAgICAgICAgICAgY29sb3I6IGlzVXNlQ3VzdG9tQ2xhc3MgPyAnJyA6IChidXR0b24uQ29sb3IgfHwgJ3ByaW1hcnknKSxcclxuICAgICAgICAgICAgICBmaWxsOiBpc1VzZUN1c3RvbUNsYXNzID8gJycgOiAoYnV0dG9uLkZpbGwgfHwgJ3NvbGlkJyksXHJcbiAgICAgICAgICAgICAgc2l6ZTogYnV0dG9uLlNpemUgfHwgJ2RlZmF1bHQnLFxyXG4gICAgICAgICAgICAgIGNsYXNzOiBpc1VzZUN1c3RvbUNsYXNzID8gYCR7YnV0dG9uLkNsYXNzfSB1c2VDdXN0b21DbGFzc2AgOiBidXR0b24uQ2xhc3MsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGJ1dHRvbkRpc2FibGVkLFxyXG4gICAgICAgICAgICAgIGNsaWNrRXZlbnQ6IGJ1dHRvbi5DbGlja0V2ZW50LFxyXG4gICAgICAgICAgICAgIGljb25OYW1lOiBidXR0b24uSWNvbixcclxuICAgICAgICAgICAgICBkaXNtaXNzVHlwZTogYnV0dG9uLkRpc21pc3NUeXBlLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVUcmlnZ2VyVGltZXI6IGJ1dHRvbi5EaXNhYmxlVHJpZ2dlclRpbWVyLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVUcmlnZ2VyOiB0aGlzLmdldEJ1dHRvbkRpc2FibGVUcmlnZ2VyVmFsdWUodGhpcy5kYXRhLCBidXR0b24pLFxyXG4gICAgICAgICAgICAgIFN1YlR5cGU6IHRoaXMuZGF0YS5TdWJUeXBlLFxyXG4gICAgICAgICAgICAgIGJ1dHRvbkRhdGE6IGJ1dHRvbixcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGlmIChidXR0b24uUG9zaXRpb25YICYmIGJ1dHRvbi5Qb3NpdGlvblggPT09IFwicmlnaHRcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmxlZnRCdG5zLnB1c2goYnRuKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKC4uLnRoaXMubGVmdEJ0bnMsIC4uLnRoaXMucmlnaHRCdG5zKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zbGF0ZUJ1dHRvbnNMYWJlbCh0aGlzLml0ZW1zKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcImVycm9yOiBcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uQ2xpY2soaXRlbTogYW55KSB7XHJcbiAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQgPSBpdGVtLmRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/ICFpdGVtLmRpc2FibGVUcmlnZ2VyIDogdHJ1ZTtcclxuICAgIGlmICh0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkKSB7XHJcbiAgICAgIGNvbnN0IG1lID0gdGhpcy5ncm91cDtcclxuICAgICAgaWYgKCFpdGVtWydkaXNhYmxlVHJpZ2dlclRpbWVyJ10pIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIG1lWydpc1RyaWdnZXJlZCddID0gZmFsc2U7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXBbJ0Rpc21pc3NUeXBlJ10gPSBpdGVtLmRpc21pc3NUeXBlO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcImJ1dHRvbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogaXRlbS5jbGlja0V2ZW50LFxyXG4gICAgICBkYXRhOiBpdGVtXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1dHRvbkRpc2FibGVUcmlnZ2VyVmFsdWUoZGF0YTogWkZpZWxkLCBidXR0b246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbi5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBidXR0b24uRGlzYWJsZVRyaWdnZXIgOiAoZGF0YS5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBkYXRhLkRpc2FibGVUcmlnZ2VyIDogZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxwPlxyXG4gIHpidXR0b25zIHt7ZGF0YS5WYWx1ZX19XHJcbjwvcD4gLS0+XHJcbjxkaXZcclxuICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKSAmJiBpdGVtcy5sZW5ndGggPiAwXCJcclxuICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiIGNsYXNzPVwiZTF0YWctc3R5bGVcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlvbi1tYXJnaW4tdmVydGljYWwgZTF0YWctc3R5bGUxXCIgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgRmlyc3RaYnRuID09PSBmYWxzZVwiXHJcbiAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIj5cclxuICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiBbZGF0YV09XCJpdGVtc1wiIHNpemU9XCJsYXJnZVwiIFtsb29rXT1cIidvdXRsaW5lJ1wiIGNsYXNzPVwiaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnQgZTF0YWctc3R5bGUyXCJcclxuICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICAgIEFjdGlvbnNcclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRHJvcERvd25CdXR0b25JdGVtVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxyXG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXt7IGRhdGFJdGVtLmljb24gfX1cIj48L3NwYW4+IC0tPlxyXG4gICAgICAgIDxzcGFuIChjbGljayk9XCJidXR0b25DbGljayhkYXRhSXRlbSlcIj57eyBkYXRhSXRlbS50ZXh0IH19PC9zcGFuPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cclxuICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKSB8fCBpdGVtcy5sZW5ndGggPT09IDEgXCIgW25nQ2xhc3NdPVwiZGF0YS5EaXZDbGFzc1wiIGNsYXNzPVwiYnRuLWNvbnRhaW5lciBlMXRhZy1zdHlsZTNcIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWxlZnQgZTF0YWctc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVmdEJ0bnM7IGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0pXCJcclxuICAgICAgICBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZFwiXHJcbiAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTVcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24pXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS50ZXh0XCIgW2NsYXNzLmJ0bi1sYWJlbF09XCJpdGVtLmljb25cIiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tcmlnaHQgZTF0YWctc3R5bGU2XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU2XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRCdG5zOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiXHJcbiAgICAgICAgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIiBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWRcIlxyXG4gICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlN1wiIGNsYXNzPVwiZTF0YWctc3R5bGU3XCI+XHJcbiAgICAgICAgPGZhLWljb24gY2xhc3M9XCJidG4taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCIgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoaXRlbS5pY29uKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udGV4dFwiIFtjbGFzcy5idG4tbGFiZWxdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
111
+ args: [{ selector: "app-zbuttons", template: "<!-- <p>\r\n zbuttons {{data.Value}}\r\n</p> -->\r\n<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\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\"\r\n [style]=\"componentProperties.style.style3\">\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\"\r\n *ngFor=\"let item of leftBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [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\" [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\"\r\n *ngFor=\"let item of rightBtns; let i = index\" [ngClass]=\"item.class\" (click)=\"buttonClick(item)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\" [disabled]=\"group.isTriggered\"\r\n [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\" [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"] }]
112
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.FieldService }]; } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUE0QixnQkFBZ0IsRUFBcUQsTUFBTSxpQkFBaUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBT2hELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBTXBELFlBQ0UsV0FBOEIsRUFDdkIsa0JBQXNDLEVBQ3JDLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUhYLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFScEMsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQVFwQixDQUFDO0lBRUMsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMs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QUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixJQUFJLEVBQUUsSUFBSTtTQUNjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sNEJBQTRCLENBQUMsSUFBWSxFQUFFLE1BQVc7UUFDNUQsT0FBTyxNQUFNLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkksQ0FBQzs7K0dBNUdVLGlCQUFpQjttR0FBakIsaUJBQWlCLDJFQ2xCOUIsa3VGQTBDQTs0RkR4QmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkU2VydmljZSwgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaRmllbGQsIEZvbnRBd2VTb21lU2VydmljZSB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkZpZWxkQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7ICBcclxuIFxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemJ1dHRvbnNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pidXR0b25zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pidXR0b25zLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaYnV0dG9uc0NvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgaXRlbXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBsZWZ0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHJpZ2h0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIEZpcnN0WmJ0biA9IGZhbHNlOyBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZm9udEF3ZVNvbWVTZXJ2aWNlOiBGb250QXdlU29tZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wU2VydmljZSkgXHJcbn1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkQnV0dG9uKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJ1dHRvbigpIHtcclxuICAgIGNvbnN0IGZpZWxkJCA9IHRoaXMuZmllbGRTZXJ2aWNlLmdldEZvcm1GaWVsZENvZGUoXHJcbiAgICAgIHRoaXMuZGF0YS5WYWx1ZSxcclxuICAgICAgXCJGb3JtRmllbGRcIiwgbnVsbCwgbnVsbFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQrKztcclxuICAgIGlmICh0aGlzLmdyb3VwLnpCdXR0b25zQ291bnQgPT09IDEpIHtcclxuICAgICAgdGhpcy5GaXJzdFpidG4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGZpZWxkJC5waXBlKFxyXG4gICAgICAgIHRhcChkYXRhID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMuaXRlbXMgPSBkYXRhO1xyXG4gICAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUpIHtcclxuICAgICAgICAgICAgICBidXR0b24uTmFtZSA9IHRoaXMuZGF0YS5TdWJUeXBlICsgJ18nICsgYnV0dG9uLk5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcblxyXG4gICAgICAgICAgICBsZXQgYnV0dG9uRGlzYWJsZWQgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5EaXNhYmxlZCAhPSBcIlwiICYmIGJ1dHRvbi5EaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIGJ1dHRvbkRpc2FibGVkID0gYnV0dG9uLkRpc2FibGVkID09PSAndHJ1ZScgPyB0cnVlIDogWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGJ1dHRvbi5EaXNhYmxlZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzVXNlQ3VzdG9tQ2xhc3MgPSBidXR0b24uQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgICAgIGxldCBidG4gPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogYnV0dG9uLk5hbWUsXHJcbiAgICAgICAgICAgICAgdGV4dDogbGFiZWwsXHJcbiAgICAgICAgICAgICAgaWNvbjogWkNvbXBvbmVudEhlbHBlci5nZXRJY29uKGJ1dHRvbi5JY29uKSxcclxuICAgICAgICAgICAgICB2aXNpYmxlOiBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICAgICAgICBjb2xvcjogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5Db2xvciB8fCAncHJpbWFyeScpLFxyXG4gICAgICAgICAgICAgIGZpbGw6IGlzVXNlQ3VzdG9tQ2xhc3MgPyAnJyA6IChidXR0b24uRmlsbCB8fCAnc29saWQnKSxcclxuICAgICAgICAgICAgICBzaXplOiBidXR0b24uU2l6ZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgICAgICAgY2xhc3M6IGlzVXNlQ3VzdG9tQ2xhc3MgPyBgJHtidXR0b24uQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGJ1dHRvbi5DbGFzcyxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDogYnV0dG9uRGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgY2xpY2tFdmVudDogYnV0dG9uLkNsaWNrRXZlbnQsXHJcbiAgICAgICAgICAgICAgaWNvbk5hbWU6IGJ1dHRvbi5JY29uLFxyXG4gICAgICAgICAgICAgIGRpc21pc3NUeXBlOiBidXR0b24uRGlzbWlzc1R5cGUsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZVRyaWdnZXJUaW1lcjogYnV0dG9uLkRpc2FibGVUcmlnZ2VyVGltZXIsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZVRyaWdnZXI6IHRoaXMuZ2V0QnV0dG9uRGlzYWJsZVRyaWdnZXJWYWx1ZSh0aGlzLmRhdGEsIGJ1dHRvbiksXHJcbiAgICAgICAgICAgICAgU3ViVHlwZTogdGhpcy5kYXRhLlN1YlR5cGUsXHJcbiAgICAgICAgICAgICAgYnV0dG9uRGF0YTogYnV0dG9uLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5Qb3NpdGlvblggJiYgYnV0dG9uLlBvc2l0aW9uWCA9PT0gXCJyaWdodFwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yaWdodEJ0bnMucHVzaChidG4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMubGVmdEJ0bnMucHVzaChidG4pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goLi4udGhpcy5sZWZ0QnRucywgLi4udGhpcy5yaWdodEJ0bnMpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gc3VwZXIudHJhbnNsYXRlQnV0dG9uc0xhYmVsKHRoaXMuaXRlbXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3I6IFwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b25DbGljayhpdGVtOiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IGl0ZW0uZGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gIWl0ZW0uZGlzYWJsZVRyaWdnZXIgOiB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQpIHtcclxuICAgICAgY29uc3QgbWUgPSB0aGlzLmdyb3VwO1xyXG4gICAgICBpZiAoIWl0ZW1bJ2Rpc2FibGVUcmlnZ2VyVGltZXInXSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgbWVbJ2lzVHJpZ2dlcmVkJ10gPSBmYWxzZTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncm91cFsnRGlzbWlzc1R5cGUnXSA9IGl0ZW0uZGlzbWlzc1R5cGU7XHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwiYnV0dG9uQ2xpY2tcIixcclxuICAgICAgdGFyZ2V0OiBpdGVtLmNsaWNrRXZlbnQsXHJcbiAgICAgIGRhdGE6IGl0ZW1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uRGlzYWJsZVRyaWdnZXJWYWx1ZShkYXRhOiBaRmllbGQsIGJ1dHRvbjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYnV0dG9uLkRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/IGJ1dHRvbi5EaXNhYmxlVHJpZ2dlciA6IChkYXRhLkRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/IGRhdGEuRGlzYWJsZVRyaWdnZXIgOiBmYWxzZSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+XHJcbiAgemJ1dHRvbnMge3tkYXRhLlZhbHVlfX1cclxuPC9wPiAtLT5cclxuPGRpdlxyXG4gICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpICYmIGl0ZW1zLmxlbmd0aCA+IDBcIlxyXG4gIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLW1hcmdpbi12ZXJ0aWNhbCBlMXRhZy1zdHlsZTFcIiAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKCkgJiYgaXRlbXMubGVuZ3RoID4gMSAmJiBGaXJzdFpidG4gPT09IGZhbHNlXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtkYXRhXT1cIml0ZW1zXCIgc2l6ZT1cImxhcmdlXCIgW2xvb2tdPVwiJ291dGxpbmUnXCIgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudCBlMXRhZy1zdHlsZTJcIlxyXG4gICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIj5cclxuICAgICAgQWN0aW9uc1xyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9Ecm9wRG93bkJ1dHRvbkl0ZW1UZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XHJcbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImstaWNvbiBrLWkte3sgZGF0YUl0ZW0uaWNvbiB9fVwiPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGRhdGFJdGVtKVwiPnt7IGRhdGFJdGVtLnRleHQgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG4gICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMSBcIiBbbmdDbGFzc109XCJkYXRhLkRpdkNsYXNzXCIgY2xhc3M9XCJidG4tY29udGFpbmVyIGUxdGFnLXN0eWxlM1wiXHJcbiAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tbGVmdCBlMXRhZy1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTRcIj5cclxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiaXRlbS5maWxsXCIgW3NpemVdPVwiaXRlbS5zaXplXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBzdHJvbmc9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVmdEJ0bnM7IGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIiBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWRcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPlxyXG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwiYnRuLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGl0ZW0uaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiPjwvZmEtaWNvbj4gXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1yaWdodCBlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj5cclxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiaXRlbS5maWxsXCIgW3NpemVdPVwiaXRlbS5zaXplXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBzdHJvbmc9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRCdG5zOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCIgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU3XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTdcIj5cclxuICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+IFxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS50ZXh0XCIgW2NsYXNzLmJ0bi1sYWJlbF09XCJpdGVtLmljb25cIiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==