@thetradeengineorg1/snova-shell-module 0.0.19 → 0.0.21

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.
@@ -7,11 +7,9 @@ export class AvatarComponent {
7
7
  }
8
8
  }
9
9
  AvatarComponent.ɵfac = function AvatarComponent_Factory(t) { return new (t || AvatarComponent)(); };
10
- AvatarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AvatarComponent, selectors: [["app-avatar"]], inputs: { name: "name", src: "src", isRound: "isRound", size: "size", avatarClass: "avatarClass" }, decls: 2, vars: 6, consts: [["initialsSize", "2", 3, "name", "src", "round", "size"]], template: function AvatarComponent_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵtext(0, "Test\n");
12
- i0.ɵɵelement(1, "ngx-avatar", 0);
10
+ AvatarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AvatarComponent, selectors: [["app-avatar"]], inputs: { name: "name", src: "src", isRound: "isRound", size: "size", avatarClass: "avatarClass" }, decls: 1, vars: 6, consts: [["initialsSize", "2", 3, "name", "src", "round", "size"]], template: function AvatarComponent_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelement(0, "ngx-avatar", 0);
13
12
  } if (rf & 2) {
14
- i0.ɵɵadvance(1);
15
13
  i0.ɵɵclassMap(ctx.avatarClass);
16
14
  i0.ɵɵproperty("name", ctx.name)("src", ctx.src)("round", ctx.isRound)("size", ctx.size);
17
15
  } }, directives: [i1.ɵa], encapsulation: 2 });
@@ -32,4 +30,4 @@ AvatarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AvatarCompo
32
30
  }], avatarClass: [{
33
31
  type: Input
34
32
  }] }); })();
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9nbG9iYWxkZXBlbmRlbmNpZXMvY29tcG9uZW50cy9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL2dsb2JhbGRlcGVuZGVuY2llcy9jb21wb25lbnRzL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBVVcsZ0JBQVcsR0FBVSxjQUFjLENBQUE7S0FDN0M7OzhFQU5ZLGVBQWU7a0VBQWYsZUFBZTtRQ1Y5QixzQkFDQTtRQUFBLGdDQVFhOztRQVBELGVBQXFCO1FBQXJCLDhCQUFxQjtRQUNyQiwrQkFBYSxnQkFBQSxzQkFBQSxrQkFBQTs7dUZET1YsZUFBZTtjQUwzQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7YUFFdkM7Z0JBRVUsSUFBSTtrQkFBWixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dFxyXG4gIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuICBcclxuICBAQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFwcC1hdmF0YXJcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYXZhdGFyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgIFxyXG4gIH0pXHJcbiAgZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzcmM6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGlzUm91bmQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNpemU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGF2YXRhckNsYXNzOiBzdHJpbmcgPVwiYnRyYWstYXZhdGFyXCJcclxuICB9XHJcbiAgIiwiVGVzdFxyXG48bmd4LWF2YXRhclxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiYXZhdGFyQ2xhc3NcIlxyXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxyXG4gICAgICAgICAgICBpbml0aWFsc1NpemU9XCIyXCJcclxuICAgICAgICAgICAgW3JvdW5kXT1cImlzUm91bmRcIlxyXG4gICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgID5cclxuPC9uZ3gtYXZhdGFyPiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9nbG9iYWxkZXBlbmRlbmNpZXMvY29tcG9uZW50cy9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL2dsb2JhbGRlcGVuZGVuY2llcy9jb21wb25lbnRzL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBVVcsZ0JBQVcsR0FBVSxjQUFjLENBQUE7S0FDN0M7OzhFQU5ZLGVBQWU7a0VBQWYsZUFBZTtRQ1Q5QixnQ0FRYTs7UUFQRCw4QkFBcUI7UUFDckIsK0JBQWEsZ0JBQUEsc0JBQUEsa0JBQUE7O3VGRE9WLGVBQWU7Y0FMM0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUseUJBQXlCO2FBRXZDO2dCQUVVLElBQUk7a0JBQVosS0FBSztZQUNHLEdBQUc7a0JBQVgsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXRcclxuICB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbiAgXHJcbiAgQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhcHAtYXZhdGFyXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2F2YXRhci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc3JjOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpc1JvdW5kOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhdmF0YXJDbGFzczogc3RyaW5nID1cImJ0cmFrLWF2YXRhclwiXHJcbiAgfVxyXG4gICIsIlxyXG48bmd4LWF2YXRhclxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiYXZhdGFyQ2xhc3NcIlxyXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxyXG4gICAgICAgICAgICBpbml0aWFsc1NpemU9XCIyXCJcclxuICAgICAgICAgICAgW3JvdW5kXT1cImlzUm91bmRcIlxyXG4gICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgID5cclxuPC9uZ3gtYXZhdGFyPiJdfQ==
@@ -284,7 +284,7 @@ export class AdminLayoutComponent {
284
284
  AdminLayoutComponent.ɵfac = function AdminLayoutComponent_Factory(t) { return new (t || AdminLayoutComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.TranslateService), i0.ɵɵdirectiveInject(i3.LayoutService), i0.ɵɵdirectiveInject(i4.Store), i0.ɵɵdirectiveInject(i5.CookieService), i0.ɵɵdirectiveInject(i6.Actions), i0.ɵɵdirectiveInject(i7.Location), i0.ɵɵdirectiveInject(i8.CommonService), i0.ɵɵdirectiveInject(i9.PubNubAngular), i0.ɵɵdirectiveInject(i10.SignalrService)); };
285
285
  AdminLayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminLayoutComponent, selectors: [["app-admin-layout"]], hostBindings: function AdminLayoutComponent_HostBindings(rf, ctx) { if (rf & 1) {
286
286
  i0.ɵɵlistener("resize", function AdminLayoutComponent_resize_HostBindingHandler($event) { return ctx.onResize($event); }, false, i0.ɵɵresolveWindow);
287
- } }, decls: 15, vars: 35, consts: [[1, "app-admin-wrap", 3, "dir"], [3, "notificPanel", 4, "ngIf"], ["fgsSize", "180", "color", "primary", 3, "fgsType"], [1, "app-admin-container", "app-side-nav-container", "mat-drawer-transition", 3, "dir", "ngClass"], [4, "ngIf"], [1, "main-content-wrap", 3, "perfectScrollbar", "disabled"], [3, "notificPanel", "opened"], [1, "rightside-content-hold", 3, "perfectScrollbar", "disabled", "ngClass"], ["class", "view-loader", 4, "ngIf"], ["id", "btrak-preloader", 4, "ngIf"], [1, "sidebar-backdrop", 3, "ngClass", "click"], ["mode", "side", "opened", "", "id", "style-1", 1, "side-nav-color", 3, "fixedInViewport", "fixedTopGap", "fixedBottomGap"], ["sidenav", ""], [3, "notificPanel"], [1, "view-loader"], [1, "spinner"], [1, "double-bounce1", "mat-bg-accent"], [1, "double-bounce2", "mat-bg-primary"], ["id", "btrak-preloader"], [1, "preloading-text"], ["id", "btrak-loader", 4, "ngIf"], ["id", "btrak-loader"]], template: function AdminLayoutComponent_Template(rf, ctx) { if (rf & 1) {
287
+ } }, decls: 15, vars: 35, consts: [[1, "app-admin-wrap", 3, "dir"], [3, "notificPanel", 4, "ngIf"], ["fgsSize", "180", "color", "primary", 3, "fgsType"], [1, "app-admin-container", "app-side-nav-container", "mat-drawer-transition", 3, "dir", "ngClass"], [4, "ngIf"], [1, "main-content-wrap", 3, "perfectScrollbar", "disabled"], [1, "custom-app-header", 3, "notificPanel", "opened"], [1, "rightside-content-hold", 3, "perfectScrollbar", "disabled", "ngClass"], ["class", "view-loader", 4, "ngIf"], ["id", "btrak-preloader", 4, "ngIf"], [1, "sidebar-backdrop", 3, "ngClass", "click"], ["mode", "side", "opened", "", "id", "style-1", 1, "side-nav-color", 3, "fixedInViewport", "fixedTopGap", "fixedBottomGap"], ["sidenav", ""], [3, "notificPanel"], [1, "view-loader"], [1, "spinner"], [1, "double-bounce1", "mat-bg-accent"], [1, "double-bounce2", "mat-bg-primary"], ["id", "btrak-preloader"], [1, "preloading-text"], ["id", "btrak-loader", 4, "ngIf"], ["id", "btrak-loader"]], template: function AdminLayoutComponent_Template(rf, ctx) { if (rf & 1) {
288
288
  i0.ɵɵelementStart(0, "div", 0);
289
289
  i0.ɵɵtemplate(1, AdminLayoutComponent_app_header_top_1_Template, 1, 1, "app-header-top", 1);
290
290
  i0.ɵɵelement(2, "ngx-ui-loader", 2);
@@ -334,7 +334,7 @@ AdminLayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminL
334
334
  i0.ɵɵadvance(1);
335
335
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(33, _c3, ctx.layoutConf.sidebarStyle !== "closed" && ctx.layoutConf.isMobile));
336
336
  i0.ɵɵadvance(1);
337
- i0.ɵɵproperty("fixedInViewport", true)("fixedTopGap", 45)("fixedBottomGap", 0);
337
+ i0.ɵɵproperty("fixedInViewport", true)("fixedTopGap", 88)("fixedBottomGap", 0);
338
338
  } }, directives: [i11.Dir, i7.NgIf, i12.ɵb, i13.MatSidenavContainer, i7.NgClass, i14.DefaultClassDirective, i15.PerfectScrollbarDirective, i16.HeaderSideComponent, i13.MatSidenav, i17.SideBarComponent, i18.HeaderTopComponent, i19.SidebarTopComponent, i1.RouterOutlet], pipes: [i2.TranslatePipe], encapsulation: 2 });
339
339
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdminLayoutComponent, [{
340
340
  type: Component,
@@ -346,4 +346,4 @@ AdminLayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminL
346
346
  type: HostListener,
347
347
  args: ["window:resize", ['$event']]
348
348
  }] }); })();
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvYWRtaW4tbGF5b3V0L2FkbWluLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2FkbWluLWxheW91dC9hZG1pbi1sYXlvdXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFVLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEdBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUt4TCxvREFBb0Q7QUFDcEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQTZCLE1BQU0sNENBQTRDLENBQUM7QUFFaEosT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUkzRSxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtE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Z0RBVUc7UUFPRCw2RkFBcUc7UUFHckcsOEJBQXFHO1FBR25HLDBDQUFvRTtRQUFuRCxrSEFBVSxrQkFBYyxJQUFDO1FBQzFDLGlCQUFrQjtRQTBCbEIsOEJBQzBGO1FBa0N4RixxRUFLTTtRQUVOLHFFQU1NO1FBQ04sdUVBRU07UUFDUixpQkFBTTtRQUNSLGlCQUFNO1FBRU4sZ0NBQzJCO1FBQXpCLCtGQUFTLGtCQUFjLElBQUM7UUFBQyxpQkFBTTtRQUdqQyw0Q0FDMkQ7UUFDekQsK0JBQTJCO1FBQzdCLGlCQUFjO1FBQ2hCLGlCQUF3QjtRQUMxQixpQkFBTTs7O1FBekhzQix3Q0FBc0I7UUFHL0IsZUFBd0M7UUFBeEMsNkRBQXdDO1FBRTVCLGVBQXVCO1FBQXZCLHlDQUF1QjtRQUU3QixlQUFzQjtRQUF0Qix3Q0FBc0IsaWhCQUFBO1FBaUJ6QixlQUErRDtRQUEvRCx3RkFBK0Q7UUFHbEQsZUFBaUM7UUFBakMsbURBQWlDLHdDQUFBO1FBR25CLGVBQXdCO1FBQXhCLGtDQUF3QjtRQTJCL0IsZUFBaUM7UUFBakMsbURBQWlDLHlDQUFBLHFEQUFBLDJEQUFBO1FBbUN6QyxlQUFxQjtRQUFyQiwwQ0FBcUI7UUFPcEIsZUFBYTtRQUFiLGtDQUFhO1FBT2xDLGVBQWM7UUFBZCxtQ0FBYztRQU1NLGVBQW9GO1FBQXBGLDBIQUFvRjtRQUlqRCxlQUF3QjtRQUF4QixzQ0FBd0IsbUJBQUEscUJBQUE7O3VGRHJGaEYsb0JBQW9CO2NBTGhDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixXQUFXLEVBQUUsOEJBQThCO2FBQzVDO3VTQThLQyxRQUFRO2tCQUZQLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIFJvdXRlQ29uZmlnTG9hZFN0YXJ0LCBSb3V0ZUNvbmZpZ0xvYWRFbmQsIFJlc29sdmVTdGFydCwgUmVzb2x2ZUVuZCwgTmF2aWdhdGlvblN0YXJ0LCBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRXJyb3IsIEV2ZW50LCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2XCI7XHJcbmltcG9ydCB7IE1lZGlhQ2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL2ZsZXgtbGF5b3V0XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG4vLyBpbXBvcnQgUGVyZmVjdFNjcm9sbGJhciBmcm9tICdwZXJmZWN0LXNjcm9sbGJhcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luLCBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLCBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvYXV0aGVudGljYXRpb24uYWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSBcIm5neC1jb29raWUtc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb2Z0bGFiZWxzLW1vZGVsXCJcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclN0b3J5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXJTdG9yeSc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1vZHVsZVN0YXRlIGZyb20gXCIuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9oZWxwZXJzL2ZvbnRhd2Vzb21lLWljb25zJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9jb25zdGFudHMvbG9jYWxzdG9yYWdlLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLXVzZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFB1Yk51YkFuZ3VsYXIgfSBmcm9tICdwdWJudWItYW5ndWxhcjInO1xyXG5pbXBvcnQgeyBTUElOTkVSIH0gZnJvbSAnbmd4LXVpLWxvYWRlcic7XHJcbmltcG9ydCB7IFNpZ25hbHJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NpZ25hbHIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWFkbWluLWxheW91dFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWRtaW4tbGF5b3V0LnRlbXBsYXRlLmh0bWxcIlxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkbWluTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBpc01vZHVsZUxvYWRpbmc6IEJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIG1vZHVsZUxvYWRlclN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5b3V0Q29uZlN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGVyRXZlbnRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG1lZGlhU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgc29mdExhYmVscyQ6IE9ic2VydmFibGU8U29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsW10+O1xyXG4gIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG4gIC8vIHByaXZhdGUgc2lkZWJhclBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG5cclxuICAvLyBwcml2YXRlIGJvZHlQUzogUGVyZmVjdFNjcm9sbGJhcjtcclxuICAvLyBwcml2YXRlIGhlYWRlckZpeGVkQm9keVBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG4gIHB1YmxpYyBzY3JvbGxDb25maWcgPSB7fTtcclxuICBwdWJsaWMgbGF5b3V0Q29uZjogYW55ID0ge307XHJcbiAgZGlzcGxheTogYm9vbGVhbjtcclxuICB1c2VyU3RvcmllcyQ6IE9ic2VydmFibGU8VXNlclN0b3J5W10+O1xyXG4gIHNob3c6IGJvb2xlYW47XHJcbiAgdXNlclN0b3JpZXM6IFVzZXJTdG9yeVtdO1xyXG4gIHVzZXJTdG9yeTogVXNlclN0b3J5O1xyXG4gIGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgcHVibGljIG5nRGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGFzaGJvYXJkUGFnZTogYm9vbGVhbjtcclxuICBiZ2NvbG9yOiBhbnk7XHJcbiAgcHJpdmF0ZSBzdWI6IFN1YnNjcmlwdGlvbjtcclxuICB1c2Vyc3RvcnkgPSAndXNlcnN0b3J5JztcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgdG90YWxMb2FkaW5nVGltZTogbnVtYmVyID0gMDtcclxuICBpbnRlcnZhbDtcclxuICBzcGlubmVyVHlwZSA9IFNQSU5ORVIuY2lyY2xlO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8U2hhcmVkTW9kdWxlU3RhdGUuU3RhdGU+LFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25VcGRhdGVzJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwdWJudWI6IFB1Yk51YkFuZ3VsYXIsXHJcbiAgICBwcml2YXRlIHNpZ25hbHI6IFNpZ25hbHJTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgLy8gbGV0IGNvbklkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnY29uZWN0aW9uSWQnKTtcclxuICAgIC8vIGlmKCFjb25JZCkge1xyXG4gICAgICB0aGlzLnNpZ25hbHIuaW5pdGlhbGl6ZVNpZ25hbFJDb25uZWN0aW9uKCk7XHJcbiAgICAvLyB9XHJcbiAgICBsZXQgZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuRW52aXJvbm1lbnQpKTtcclxuICAgIGxldCBjb21wYW55U2V0dGluZ3MgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlTZXR0aW5ncyk7XHJcbiAgICBpZiAoIWNvbXBhbnlTZXR0aW5ncyB8fCBjb21wYW55U2V0dGluZ3MgPT0gJ251bGwnIHx8IGNvbXBhbnlTZXR0aW5ncyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIHB1Ym51Yi5pbml0KHtcclxuICAgICAgICBwdWJsaXNoS2V5OiBlbnZpcm9ubWVudC5wdWJsaXNoS2V5LFxyXG4gICAgICAgIHN1YnNjcmliZUtleTogZW52aXJvbm1lbnQuc3Vic2NyaWJlS2V5XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY29tU2V0ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlTZXR0aW5ncykpO1xyXG4gICAgICB2YXIgcHVibGlzaEtleSA9IGNvbVNldC5maW5kKGkgPT4gaS5rZXkgPT0gXCJQdWJudWJQdWJsaXNoS2V5XCIpO1xyXG4gICAgICB2YXIgc3Vic2NyaWJlS2V5ID0gY29tU2V0LmZpbmQoaSA9PiBpLmtleSA9PSBcIlB1Ym51YlN1YnNjcmliZUtleVwiKVxyXG4gICAgICBpZiAoKHB1Ymxpc2hLZXkgJiYgcHVibGlzaEtleS52YWx1ZSkgJiYgKHN1YnNjcmliZUtleSAmJiBzdWJzY3JpYmVLZXkudmFsdWUpKSB7XHJcbiAgICAgICAgcHVibnViLmluaXQoe1xyXG4gICAgICAgICAgcHVibGlzaEtleTogcHVibGlzaEtleS52YWx1ZSxcclxuICAgICAgICAgIHN1YnNjcmliZUtleTogc3Vic2NyaWJlS2V5LnZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcHVibnViLmluaXQoe1xyXG4gICAgICAgICAgcHVibGlzaEtleTogZW52aXJvbm1lbnQucHVibGlzaEtleSxcclxuICAgICAgICAgIHN1YnNjcmliZUtleTogZW52aXJvbm1lbnQuc3Vic2NyaWJlS2V5XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vIENsb3NlIHNpZGVuYXYgYWZ0ZXIgcm91dGUgY2hhbmdlIGluIG1vYmlsZVxyXG4gICAgdGhpcy5yb3V0ZXJFdmVudFN1YiA9IHJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJvdXRlQ2hhbmdlOiBOYXZpZ2F0aW9uRW5kKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQuYWRqdXN0TGF5b3V0KHsgcm91dGU6IHJvdXRlQ2hhbmdlLnVybCB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gVHJhbnNsYXRvciBpbml0XHJcbiAgICBsZXQgY3VycmVudEN1bHR1cmUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ3VycmVudEN1bHR1cmUpO1xyXG5cclxuICAgIGlmIChjdXJyZW50Q3VsdHVyZSA9PT0gJ251bGwnIHx8IGN1cnJlbnRDdWx0dXJlID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBjdXJyZW50Q3VsdHVyZSA9ICdlbic7XHJcbiAgICB9XHJcbiAgICB0cmFuc2xhdGUudXNlKGN1cnJlbnRDdWx0dXJlKTtcclxuXHJcblxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xyXG4gICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ6IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsTG9hZGluZ1RpbWUgPSAwO1xyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kOiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWw6XHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcjoge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZiAobG9jYXRpb24ucGF0aCgpICE9IFwiXCIpIHtcclxuICAgICAgICBpZiAobG9jYXRpb24ucGF0aCgpLmluY2x1ZGVzKCcvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkLycpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZFBhZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5iZ2NvbG9yID0gJ25vbmUnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkUGFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5iZ2NvbG9yID0gJ2JlaWdlJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLmNvb2tpZVNlcnZpY2UuY2hlY2soTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Vc2VyTW9kZWwpKSB7XHJcbiAgICAvLyAgIGxldCBkYXRhID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSk7XHJcbiAgICAvLyAgIGlmIChkYXRhICYmIGRhdGEgIT0gJ251bGwnICYmIGRhdGEgIT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAvLyAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJMb2dpbihkYXRhKSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYgKChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlVzZXJNb2RlbCkgIT0gbnVsbCAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlVzZXJNb2RlbCkgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAmJiAhbG9jYWxTdG9yYWdlLmhhc093blByb3BlcnR5KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlclJvbGVGZWF0dXJlcykpIHtcclxuICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSk7XHJcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4oZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWN0aW9uVXBkYXRlcyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdEZXN0cm95ZWQkKSxcclxuICAgICAgICBvZlR5cGUoQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhQ29tcGxldGVkKSxcclxuICAgICAgICB0YXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb21wYW55SWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRTb2Z0TGFiZWxzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZXRTb2Z0TGFiZWxDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5sYXlvdXRDb25mID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZjtcclxuICAgIC8vIHRoaXMubGF5b3V0LmFkanVzdExheW91dCgpO1xyXG5cclxuICAgIC8vIEZPUiBNT0RVTEUgTE9BREVSIEZMQUdcclxuICAgIHRoaXMubW9kdWxlTG9hZGVyU3ViID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZFN0YXJ0IHx8XHJcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlU3RhcnRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZHVsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRFbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZHVsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbJyRldmVudCddKVxyXG5cclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5sYXlvdXQuYWRqdXN0TGF5b3V0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIE9wZW5lZChldmVudCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTb2Z0TGFiZWxDb25maWd1cmF0aW9ucygpIHtcclxuICAgIHRoaXMuc29mdExhYmVscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ1NvZnRMYWJlbHMnKSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb2Z0TGFiZWxzKCkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbCgpO1xyXG4gICAgbW9kZWwuc2VhcmNoVGV4dCA9IG51bGw7XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0U29mdExhYmVscyhtb2RlbCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnU29mdExhYmVscycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gdGhpcy5sYXlvdXRDb25mU3ViID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZiQuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XHJcbiAgICAvLyAgIC8vIHRoaXMuaW5pdEJvZHlQUyhjaGFuZ2UpXHJcbiAgICAvLyB9KVxyXG4gIH1cclxuXHJcbiAgLy8gaW5pdEJvZHlQUyhsYXlvdXRDb25mOmFueSA9IHt9KSB7XHJcbiAgLy8gICBpZihsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJyAmJiBsYXlvdXRDb25mLnRvcGJhckZpeGVkKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmJvZHlQUykgdGhpcy5ib2R5UFMuZGVzdHJveSgpO1xyXG4gIC8vICAgICBpZiAodGhpcy5oZWFkZXJGaXhlZEJvZHlQUykgdGhpcy5oZWFkZXJGaXhlZEJvZHlQUy5kZXN0cm95KCk7XHJcbiAgLy8gICAgIHRoaXMuaGVhZGVyRml4ZWRCb2R5UFMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcignLnJpZ2h0c2lkZS1jb250ZW50LWhvbGQnLCB7XHJcbiAgLy8gICAgICAgc3VwcHJlc3NTY3JvbGxYOiB0cnVlXHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgICB0aGlzLnNjcm9sbFRvVG9wKCcucmlnaHRzaWRlLWNvbnRlbnQtaG9sZCcpO1xyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgaWYgKHRoaXMuYm9keVBTKSB0aGlzLmJvZHlQUy5kZXN0cm95KCk7XHJcbiAgLy8gICAgIGlmICh0aGlzLmhlYWRlckZpeGVkQm9keVBTKSB0aGlzLmhlYWRlckZpeGVkQm9keVBTLmRlc3Ryb3koKTtcclxuICAvLyAgICAgdGhpcy5ib2R5UFMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcignLm1haW4tY29udGVudC13cmFwJywge1xyXG4gIC8vICAgICAgIHN1cHByZXNzU2Nyb2xsWDogdHJ1ZVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgICAgdGhpcy5zY3JvbGxUb1RvcCgnLm1haW4tY29udGVudC13cmFwJyk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIHNjcm9sbFRvVG9wKHNlbGVjdG9yOiBzdHJpbmcpIHtcclxuICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICBsZXQgZWxlbWVudCA9IDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLm1vZHVsZUxvYWRlclN1Yikge1xyXG4gICAgICB0aGlzLm1vZHVsZUxvYWRlclN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZlN1Yikge1xyXG4gICAgICB0aGlzLmxheW91dENvbmZTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJvdXRlckV2ZW50U3ViKSB7XHJcbiAgICAgIHRoaXMucm91dGVyRXZlbnRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZVNpZGViYXIoKSB7XHJcbiAgICB0aGlzLmxheW91dC5wdWJsaXNoTGF5b3V0Q2hhbmdlKHtcclxuICAgICAgc2lkZWJhclN0eWxlOiBcImNsb3NlZFwiXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXJ0VGltZXIoKSB7XHJcbiAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRvdGFsTG9hZGluZ1RpbWUrKztcclxuICAgIH0sIDEwMDApXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtYWRtaW4td3JhcFwiIFtkaXJdPSdsYXlvdXRDb25mLmRpcic+XHJcbiAgPCEtLSBIZWFkZXIgZm9yIHRvcCBuYXZpZ2F0aW9uIGxheW91dCAtLT5cclxuICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqVE9QKiogTkFWSUdBVElPTiBMQVlPVVQgLS0+XHJcbiAgPGFwcC1oZWFkZXItdG9wICpuZ0lmPVwibGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAndG9wJ1wiIFtub3RpZmljUGFuZWxdPVwic2lkZW5hdlwiPlxyXG4gIDwvYXBwLWhlYWRlci10b3A+XHJcbiAgPG5neC11aS1sb2FkZXIgZmdzU2l6ZT1cIjE4MFwiIFtmZ3NUeXBlXT1cInNwaW5uZXJUeXBlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9uZ3gtdWktbG9hZGVyPlxyXG4gIDwhLS0gTWFpbiBDb250YWluZXIgLS0+XHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBbZGlyXT0nbGF5b3V0Q29uZi5kaXInIGNsYXNzPVwiYXBwLWFkbWluLWNvbnRhaW5lciBhcHAtc2lkZS1uYXYtY29udGFpbmVyIG1hdC1kcmF3ZXItdHJhbnNpdGlvblwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnbmF2aWdhdGlvbi10b3AnOiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICd0b3AnLFxyXG4gICAgJ3NpZGViYXItZnVsbCc6IGxheW91dENvbmYuc2lkZWJhclN0eWxlID09PSAnZnVsbCcsXHJcbiAgICAnc2lkZWJhci1jb21wYWN0JzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjb21wYWN0JyAmJiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJyxcclxuICAgICdzaWRlYmFyLWNvbXBhY3QtYmlnJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjb21wYWN0LWJpZycgJiYgbGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZScsXHJcbiAgICAnbGF5b3V0LWludHJhbnNpdGlvbic6IGxheW91dENvbmYubGF5b3V0SW5UcmFuc2l0aW9uLFxyXG4gICAgJ3NpZGViYXItb3BlbmVkJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgIT09ICdjbG9zZWQnICYmIGxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnLFxyXG4gICAgJ3NpZGViYXItY2xvc2VkJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjbG9zZWQnLFxyXG4gICAgJ2ZpeGVkLXRvcGJhcic6IGxheW91dENvbmYudG9wYmFyRml4ZWQgJiYgbGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZSdcclxuICB9XCI+XHJcbiAgICA8IS0tIFNJREVCQVIgLS0+XHJcbiAgICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqU0lERSoqIE5BVklHQVRJT04gTEFZT1VUIC0tPlxyXG4gICAgPCEtLSA8YXBwLXNpZGViYXItc2lkZSAqbmdJZj1cImxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnXCI+PC9hcHAtc2lkZWJhci1zaWRlPiAtLT5cclxuXHJcbiAgICA8IS0tIFRvcCBuYXZpZ2F0aW9uIGxheW91dCAobmF2aWdhdGlvbiBmb3IgbW9iaWxlIHNjcmVlbikgLS0+XHJcbiAgICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqVE9QKiogTkFWSUdBVElPTiBNT0JJTEUgTEFZT1VUIC0tPlxyXG4gICAgPGFwcC1zaWRlYmFyLXRvcCAqbmdJZj1cImxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3RvcCcgJiYgbGF5b3V0Q29uZi5pc01vYmlsZVwiPjwvYXBwLXNpZGViYXItdG9wPlxyXG5cclxuICAgIDwhLS0gQXBwIGNvbnRlbnQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50LXdyYXBcIiBbcGVyZmVjdFNjcm9sbGJhcl09XCJzY3JvbGxDb25maWdcIiBbZGlzYWJsZWRdPVwibGF5b3V0Q29uZi50b3BiYXJGaXhlZFwiPlxyXG4gICAgICA8IS0tIEhlYWRlciBmb3Igc2lkZSBuYXZpZ2F0aW9uIGxheW91dCAtLT5cclxuICAgICAgPCEtLSBPTkxZIFJFUVVJUkVEIEZPUiAqKlNJREUqKiBOQVZJR0FUSU9OIExBWU9VVCAtLT5cclxuICAgICAgPGFwcC1oZWFkZXItc2lkZSAob3BlbmVkKT1cIk9wZW5lZCgkZXZlbnQpXCIgW25vdGlmaWNQYW5lbF09XCJzaWRlbmF2XCI+XHJcbiAgICAgIDwvYXBwLWhlYWRlci1zaWRlPlxyXG5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXItMVwiICpuZ0lmPVwiIWRhc2hib2FyZFBhZ2VcIj5cclxuICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgKm5nSWY9XCJ1c2VyU3RvcnlcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICBbdXNlclN0b3J5XT1cInVzZXJTdG9yeVwiIFtpc1N1YlRhc2tzUGFnZV09ZmFsc2UgW2lzTG9hZGluZ109XCIoYW55T3BlcmF0aW9uSW5Qcm9ncmVzc0ZvckF1dG9Mb2dnaW5nJHxhc3luYylcIlxyXG4gICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT1mYWxzZSAodXBkYXRlQXV0b0xvZyk9XCJMb2dBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiF1c2VyU3RvcnlcIj5cclxuICAgICAgICAgIFlvdSBhcmUgbm90IHN0YXJ0ZWQgYW55IHVzZXJzdG9yeSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMDVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiY2FyZXQtc2l6ZVwiIHN0eWxlPVwiY29sb3I6IzNkYThiNVwiIGljb249XCJjYXJldC1kb3duXCIgW3NhdFBvcG92ZXJBbmNob3JGb3JdPVwicmVjZW50VXNlclN0b3J5XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJyZWNlbnRVc2VyU3RvcnkudG9nZ2xlKClcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNhdC1wb3BvdmVyICNyZWNlbnRVc2VyU3RvcnkgaGFzQmFja2Ryb3AgIGJhY2tkcm9wQ2xhc3M9XCJ1cy1wb3BvdmVyXCI+IFxyXG4gICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VyU3Rvcnkgb2YgKHVzZXJTdG9yaWVzJCB8IGFzeW5jIHwgc2xpY2U6MDo1KVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMDAwcHg7XCIgY2xhc3M9XCJ2aWV3LXVzXCI+XHJcbiAgICAgICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgICAgICBbaXNVc2VyU3Rvcmllc1BhZ2VdPXRydWUgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIiBbaXNTaG93XT1cImZhbHNlXCIgKGNsb3NlKT1cInJlY2VudFVzZXJTdG9yeS5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodHNpZGUtY29udGVudC1ob2xkXCIgW3BlcmZlY3RTY3JvbGxiYXJdPVwic2Nyb2xsQ29uZmlnXCIgW2Rpc2FibGVkXT1cIiFsYXlvdXRDb25mLnRvcGJhckZpeGVkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2JsdXItb24tb3BlbmVkJzogZGlzcGxheX1cIiBbbmdDbGFzc109XCJ7J3Nob3ctaW4tZGFzaGJvYXJkJzpkYXNoYm9hcmRQYWdlfVwiPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJtci0xXCIgKm5nSWY9XCIhZGFzaGJvYXJkUGFnZVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiAnOTBweCd9XCIgXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IHVzZXJTdG9yeSA/ICdiZWlnZScgOiAnbm9uZScgfVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjkwcHggIWltcG9ydGFudFwiPlxyXG4gICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBmeEZsZXg9XCI5MFwiICpuZ0lmPVwidXNlclN0b3J5XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgIFtpc1VzZXJTdG9yaWVzUGFnZV09ZmFsc2UgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgIDxtYXQtY2FyZCAqbmdJZj1cIiF1c2VyU3RvcnlcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7bGVmdDogLTc1cHg7XCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICBZb3UgYXJlIG5vdCBzdGFydGVkIGFueSB7eyB1c2Vyc3RvcnkgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHN9fSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0wNVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJjYXJldC1zaXplXCIgc3R5bGU9XCJjb2xvcjojM2RhOGI1XCIgaWNvbj1cImNhcmV0LWRvd25cIiBbc2F0UG9wb3ZlckFuY2hvckZvcl09XCJyZWNlbnRVc2VyU3RvcnlcIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cInJlY2VudFVzZXJTdG9yeS50b2dnbGUoKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmNcIj5cclxuICAgICAgICA8L21hdC1wcm9ncmVzcy1iYXI+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeEZsZXggY2xhc3M9XCJtbC0wNVwiICpuZ0lmPVwidXNlclN0b3J5XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImNhcmV0LXNpemVcIiBzdHlsZT1cImNvbG9yOiMzZGE4YjVcIiBpY29uPVwiY2FyZXQtZG93blwiIFtzYXRQb3BvdmVyQW5jaG9yRm9yXT1cInJlY2VudFVzZXJTdG9yeVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwicmVjZW50VXNlclN0b3J5LnRvZ2dsZSgpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzYXQtcG9wb3ZlciAjcmVjZW50VXNlclN0b3J5IGhhc0JhY2tkcm9wICBiYWNrZHJvcENsYXNzPVwidXMtcG9wb3ZlclwiPiBcclxuICAgICAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlclN0b3J5IG9mICh1c2VyU3RvcmllcyQgfCBhc3luYyB8IHNsaWNlOjA6NSlcIiBzdHlsZT1cIm1pbi13aWR0aDogMTAwMHB4O1wiIGNsYXNzPVwidmlldy11c1wiPlxyXG4gICAgICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgICAgIFt1c2VyU3RvcnldPVwidXNlclN0b3J5XCIgW2lzU3ViVGFza3NQYWdlXT1mYWxzZSBbaXNMb2FkaW5nXT1cIihhbnlPcGVyYXRpb25JblByb2dyZXNzRm9yQXV0b0xvZ2dpbmckfGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT10cnVlICh1cGRhdGVBdXRvTG9nKT1cIkxvZ0FjdGlvbigkZXZlbnQpXCIgW2lzU2hvd109XCJmYWxzZVwiIChjbG9zZSk9XCJyZWNlbnRVc2VyU3RvcnkuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPCEtLSBWaWV3IExvYWRlciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy1sb2FkZXJcIiAqbmdJZj1cImlzTW9kdWxlTG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UxIG1hdC1iZy1hY2NlbnRcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UyIG1hdC1iZy1wcmltYXJ5XCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIFZpZXcgb3V0bGV0IC0tPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJidHJhay1wcmVsb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlbG9hZGluZy10ZXh0XCI+XHJcbiAgICAgICAgICAgIHt7ICdMT0FESU5HUExFQVNFV0FJVCcgfCB0cmFuc2xhdGUgfX0gKHt7dG90YWxMb2FkaW5nVGltZX19IHt7ICdTRUNPTkRTJyB8IHRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJidHJhay1sb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBWaWV3IG92ZXJsYXkgZm9yIG1vYmlsZSBuYXZpZ2F0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItYmFja2Ryb3BcIiBbbmdDbGFzc109XCJ7J3Zpc2libGUnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSAhPT0gJ2Nsb3NlZCcgJiYgbGF5b3V0Q29uZi5pc01vYmlsZX1cIlxyXG4gICAgICAoY2xpY2spPVwiY2xvc2VTaWRlYmFyKClcIj48L2Rpdj5cclxuXHJcbiAgICA8IS0tIE5vdGlmaWNhYXRpb24gYmFyIC0tPlxyXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJzaWRlXCIgb3BlbmVkIGNsYXNzPVwiZXhhbXBsZS1zaWRlbmF2XCIgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCIgW2ZpeGVkVG9wR2FwXT1cIjQ1XCJcclxuICAgICAgW2ZpeGVkQm90dG9tR2FwXT1cIjBcIiBjbGFzcz1cInNpZGUtbmF2LWNvbG9yXCIgaWQ9XCJzdHlsZS0xXCI+XHJcbiAgICAgIDxhcHAtc2lkZWJhcj48L2FwcC1zaWRlYmFyPlxyXG4gICAgPC9tYXQtc2lkZW5hdj5cclxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvYWRtaW4tbGF5b3V0L2FkbWluLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2FkbWluLWxheW91dC9hZG1pbi1sYXlvdXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFVLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEdBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUt4TCxvREFBb0Q7QUFDcEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQTZCLE1BQU0sNENBQTRDLENBQUM7QUFFaEosT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUkzRSxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtE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Z0RBVUc7UUFPRCw2RkFBcUc7UUFHckcsOEJBQXFHO1FBR25HLDBDQUE4RjtRQUFuRCxrSEFBVSxrQkFBYyxJQUFDO1FBQ3BFLGlCQUFrQjtRQTBCbEIsOEJBQzBGO1FBa0N4RixxRUFLTTtRQUVOLHFFQU1NO1FBQ04sdUVBRU07UUFDUixpQkFBTTtRQUNSLGlCQUFNO1FBRU4sZ0NBQzJCO1FBQXpCLCtGQUFTLGtCQUFjLElBQUM7UUFBQyxpQkFBTTtRQUdqQyw0Q0FDMkQ7UUFDekQsK0JBQTJCO1FBQzdCLGlCQUFjO1FBQ2hCLGlCQUF3QjtRQUMxQixpQkFBTTs7O1FBekhzQix3Q0FBc0I7UUFHL0IsZUFBd0M7UUFBeEMsNkRBQXdDO1FBRTVCLGVBQXVCO1FBQXZCLHlDQUF1QjtRQUU3QixlQUFzQjtRQUF0Qix3Q0FBc0IsaWhCQUFBO1FBaUJ6QixlQUErRDtRQUEvRCx3RkFBK0Q7UUFHbEQsZUFBaUM7UUFBakMsbURBQWlDLHdDQUFBO1FBR08sZUFBd0I7UUFBeEIsa0NBQXdCO1FBMkJ6RCxlQUFpQztRQUFqQyxtREFBaUMseUNBQUEscURBQUEsMkRBQUE7UUFtQ3pDLGVBQXFCO1FBQXJCLDBDQUFxQjtRQU9wQixlQUFhO1FBQWIsa0NBQWE7UUFPbEMsZUFBYztRQUFkLG1DQUFjO1FBTU0sZUFBb0Y7UUFBcEYsMEhBQW9GO1FBSWxDLGVBQXdCO1FBQXhCLHNDQUF3QixtQkFBQSxxQkFBQTs7dUZEckYvRixvQkFBb0I7Y0FMaEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7dVNBOEtDLFFBQVE7a0JBRlAsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCwgUm91dGVDb25maWdMb2FkU3RhcnQsIFJvdXRlQ29uZmlnTG9hZEVuZCwgUmVzb2x2ZVN0YXJ0LCBSZXNvbHZlRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FcnJvciwgRXZlbnQsIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXZcIjtcclxuaW1wb3J0IHsgTWVkaWFDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvZmxleC1sYXlvdXRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbi8vIGltcG9ydCBQZXJmZWN0U2Nyb2xsYmFyIGZyb20gJ3BlcmZlY3Qtc2Nyb2xsYmFyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4sIEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMsIFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQgfSBmcm9tIFwiLi4vLi4vc3RvcmUvYWN0aW9ucy9hdXRoZW50aWNhdGlvbi5hY3Rpb25zXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tIFwibmd4LWNvb2tpZS1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSB9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvZnRsYWJlbHMtbW9kZWxcIlxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU3RvcnkgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlclN0b3J5JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTW9kdWxlU3RhdGUgZnJvbSBcIi4uLy4uL3N0b3JlL3JlZHVjZXJzL2luZGV4XCI7XHJcbmltcG9ydCAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2hlbHBlcnMvZm9udGF3ZXNvbWUtaWNvbnMnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2NvbnN0YW50cy9sb2NhbHN0b3JhZ2UtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24tdXNlZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHViTnViQW5ndWxhciB9IGZyb20gJ3B1Ym51Yi1hbmd1bGFyMic7XHJcbmltcG9ydCB7IFNQSU5ORVIgfSBmcm9tICduZ3gtdWktbG9hZGVyJztcclxuaW1wb3J0IHsgU2lnbmFsclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2lnbmFsci5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtYWRtaW4tbGF5b3V0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hZG1pbi1sYXlvdXQudGVtcGxhdGUuaHRtbFwiXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQWRtaW5MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGlzTW9kdWxlTG9hZGluZzogQm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbW9kdWxlTG9hZGVyU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYXlvdXRDb25mU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByb3V0ZXJFdmVudFN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbWVkaWFTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBzb2Z0TGFiZWxzJDogT2JzZXJ2YWJsZTxTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWxbXT47XHJcbiAgc29mdExhYmVsczogU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsW107XHJcbiAgLy8gcHJpdmF0ZSBzaWRlYmFyUFM6IFBlcmZlY3RTY3JvbGxiYXI7XHJcblxyXG4gIC8vIHByaXZhdGUgYm9keVBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG4gIC8vIHByaXZhdGUgaGVhZGVyRml4ZWRCb2R5UFM6IFBlcmZlY3RTY3JvbGxiYXI7XHJcbiAgcHVibGljIHNjcm9sbENvbmZpZyA9IHt9O1xyXG4gIHB1YmxpYyBsYXlvdXRDb25mOiBhbnkgPSB7fTtcclxuICBkaXNwbGF5OiBib29sZWFuO1xyXG4gIHVzZXJTdG9yaWVzJDogT2JzZXJ2YWJsZTxVc2VyU3RvcnlbXT47XHJcbiAgc2hvdzogYm9vbGVhbjtcclxuICB1c2VyU3RvcmllczogVXNlclN0b3J5W107XHJcbiAgdXNlclN0b3J5OiBVc2VyU3Rvcnk7XHJcbiAgYW55T3BlcmF0aW9uSW5Qcm9ncmVzc0ZvckF1dG9Mb2dnaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBwdWJsaWMgbmdEZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXNoYm9hcmRQYWdlOiBib29sZWFuO1xyXG4gIGJnY29sb3I6IGFueTtcclxuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHVzZXJzdG9yeSA9ICd1c2Vyc3RvcnknO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB0b3RhbExvYWRpbmdUaW1lOiBudW1iZXIgPSAwO1xyXG4gIGludGVydmFsO1xyXG4gIHNwaW5uZXJUeXBlID0gU1BJTk5FUi5jaXJjbGU7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxTaGFyZWRNb2R1bGVTdGF0ZS5TdGF0ZT4sXHJcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblVwZGF0ZXMkOiBBY3Rpb25zLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHB1Ym51YjogUHViTnViQW5ndWxhcixcclxuICAgIHByaXZhdGUgc2lnbmFscjogU2lnbmFsclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICAvLyBsZXQgY29uSWQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdjb25lY3Rpb25JZCcpO1xyXG4gICAgLy8gaWYoIWNvbklkKSB7XHJcbiAgICAgIHRoaXMuc2lnbmFsci5pbml0aWFsaXplU2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICAgIC8vIH1cclxuICAgIGxldCBlbnZpcm9ubWVudCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5FbnZpcm9ubWVudCkpO1xyXG4gICAgbGV0IGNvbXBhbnlTZXR0aW5ncyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ29tcGFueVNldHRpbmdzKTtcclxuICAgIGlmICghY29tcGFueVNldHRpbmdzIHx8IGNvbXBhbnlTZXR0aW5ncyA9PSAnbnVsbCcgfHwgY29tcGFueVNldHRpbmdzID09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgcHVibnViLmluaXQoe1xyXG4gICAgICAgIHB1Ymxpc2hLZXk6IGVudmlyb25tZW50LnB1Ymxpc2hLZXksXHJcbiAgICAgICAgc3Vic2NyaWJlS2V5OiBlbnZpcm9ubWVudC5zdWJzY3JpYmVLZXlcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjb21TZXQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ29tcGFueVNldHRpbmdzKSk7XHJcbiAgICAgIHZhciBwdWJsaXNoS2V5ID0gY29tU2V0LmZpbmQoaSA9PiBpLmtleSA9PSBcIlB1Ym51YlB1Ymxpc2hLZXlcIik7XHJcbiAgICAgIHZhciBzdWJzY3JpYmVLZXkgPSBjb21TZXQuZmluZChpID0+IGkua2V5ID09IFwiUHVibnViU3Vic2NyaWJlS2V5XCIpXHJcbiAgICAgIGlmICgocHVibGlzaEtleSAmJiBwdWJsaXNoS2V5LnZhbHVlKSAmJiAoc3Vic2NyaWJlS2V5ICYmIHN1YnNjcmliZUtleS52YWx1ZSkpIHtcclxuICAgICAgICBwdWJudWIuaW5pdCh7XHJcbiAgICAgICAgICBwdWJsaXNoS2V5OiBwdWJsaXNoS2V5LnZhbHVlLFxyXG4gICAgICAgICAgc3Vic2NyaWJlS2V5OiBzdWJzY3JpYmVLZXkudmFsdWVcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwdWJudWIuaW5pdCh7XHJcbiAgICAgICAgICBwdWJsaXNoS2V5OiBlbnZpcm9ubWVudC5wdWJsaXNoS2V5LFxyXG4gICAgICAgICAgc3Vic2NyaWJlS2V5OiBlbnZpcm9ubWVudC5zdWJzY3JpYmVLZXlcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy8gQ2xvc2Ugc2lkZW5hdiBhZnRlciByb3V0ZSBjaGFuZ2UgaW4gbW9iaWxlXHJcbiAgICB0aGlzLnJvdXRlckV2ZW50U3ViID0gcm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgocm91dGVDaGFuZ2U6IE5hdmlnYXRpb25FbmQpID0+IHtcclxuICAgICAgICB0aGlzLmxheW91dC5hZGp1c3RMYXlvdXQoeyByb3V0ZTogcm91dGVDaGFuZ2UudXJsIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAvLyBUcmFuc2xhdG9yIGluaXRcclxuICAgIGxldCBjdXJyZW50Q3VsdHVyZSA9IHRoaXMuY29va2llU2VydmljZS5nZXQoTG9jYWxTdG9yYWdlUHJvcGVydGllcy5DdXJyZW50Q3VsdHVyZSk7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRDdWx0dXJlID09PSAnbnVsbCcgfHwgY3VycmVudEN1bHR1cmUgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGN1cnJlbnRDdWx0dXJlID0gJ2VuJztcclxuICAgIH1cclxuICAgIHRyYW5zbGF0ZS51c2UoY3VycmVudEN1bHR1cmUpO1xyXG5cclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydDoge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudG90YWxMb2FkaW5nVGltZSA9IDA7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0VGltZXIoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQ6IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbDpcclxuICAgICAgICBjYXNlIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yOiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIGlmIChsb2NhdGlvbi5wYXRoKCkgIT0gXCJcIikge1xyXG4gICAgICAgIGlmIChsb2NhdGlvbi5wYXRoKCkuaW5jbHVkZXMoJy9kYXNoYm9hcmQtbWFuYWdlbWVudC9kYXNoYm9hcmQvJykpIHtcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkUGFnZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmJnY29sb3IgPSAnbm9uZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRQYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmJnY29sb3IgPSAnYmVpZ2UnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gaWYgKHRoaXMuY29va2llU2VydmljZS5jaGVjayhMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlVzZXJNb2RlbCkpIHtcclxuICAgIC8vICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY29va2llU2VydmljZS5nZXQoTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Vc2VyTW9kZWwpKTtcclxuICAgIC8vICAgaWYgKGRhdGEgJiYgZGF0YSAhPSAnbnVsbCcgJiYgZGF0YSAhPSAndW5kZWZpbmVkJylcclxuICAgIC8vICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luKGRhdGEpKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAoKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSAhPSBudWxsICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSAhPSB1bmRlZmluZWQpXHJcbiAgICAgICYmICFsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkoTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Vc2VyUm9sZUZlYXR1cmVzKSkge1xyXG4gICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Vc2VyTW9kZWwpKTtcclxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJMb2dpbihkYXRhKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3Rpb25VcGRhdGVzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ0Rlc3Ryb3llZCQpLFxyXG4gICAgICAgIG9mVHlwZShBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQpLFxyXG4gICAgICAgIHRhcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvbXBhbnlJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldFNvZnRMYWJlbHMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFNvZnRMYWJlbENvbmZpZ3VyYXRpb25zKCk7XHJcbiAgICB0aGlzLmxheW91dENvbmYgPSB0aGlzLmxheW91dC5sYXlvdXRDb25mO1xyXG4gICAgLy8gdGhpcy5sYXlvdXQuYWRqdXN0TGF5b3V0KCk7XHJcblxyXG4gICAgLy8gRk9SIE1PRFVMRSBMT0FERVIgRkxBR1xyXG4gICAgdGhpcy5tb2R1bGVMb2FkZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGV2ZW50IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkU3RhcnQgfHxcclxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIFJlc29sdmVTdGFydFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmlzTW9kdWxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZEVuZCB8fCBldmVudCBpbnN0YW5jZW9mIFJlc29sdmVFbmQpIHtcclxuICAgICAgICB0aGlzLmlzTW9kdWxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFsnJGV2ZW50J10pXHJcblxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLmxheW91dC5hZGp1c3RMYXlvdXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgT3BlbmVkKGV2ZW50KSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBldmVudDtcclxuICB9XHJcblxyXG4gIGdldFNvZnRMYWJlbENvbmZpZ3VyYXRpb25zKCkge1xyXG4gICAgdGhpcy5zb2Z0TGFiZWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnU29mdExhYmVscycpKTtcclxuICB9XHJcblxyXG4gIGdldFNvZnRMYWJlbHMoKSB7XHJcbiAgICBsZXQgbW9kZWwgPSBuZXcgU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsKCk7XHJcbiAgICBtb2RlbC5zZWFyY2hUZXh0ID0gbnVsbDtcclxuICAgIHRoaXMuY29tbW9uU2VydmljZS5nZXRTb2Z0TGFiZWxzKG1vZGVsKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdTb2Z0TGFiZWxzJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyB0aGlzLmxheW91dENvbmZTdWIgPSB0aGlzLmxheW91dC5sYXlvdXRDb25mJC5zdWJzY3JpYmUoY2hhbmdlID0+IHtcclxuICAgIC8vICAgLy8gdGhpcy5pbml0Qm9keVBTKGNoYW5nZSlcclxuICAgIC8vIH0pXHJcbiAgfVxyXG5cclxuICAvLyBpbml0Qm9keVBTKGxheW91dENvbmY6YW55ID0ge30pIHtcclxuICAvLyAgIGlmKGxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnICYmIGxheW91dENvbmYudG9wYmFyRml4ZWQpIHtcclxuICAvLyAgICAgaWYgKHRoaXMuYm9keVBTKSB0aGlzLmJvZHlQUy5kZXN0cm95KCk7XHJcbiAgLy8gICAgIGlmICh0aGlzLmhlYWRlckZpeGVkQm9keVBTKSB0aGlzLmhlYWRlckZpeGVkQm9keVBTLmRlc3Ryb3koKTtcclxuICAvLyAgICAgdGhpcy5oZWFkZXJGaXhlZEJvZHlQUyA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyKCcucmlnaHRzaWRlLWNvbnRlbnQtaG9sZCcsIHtcclxuICAvLyAgICAgICBzdXBwcmVzc1Njcm9sbFg6IHRydWVcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gICAgIHRoaXMuc2Nyb2xsVG9Ub3AoJy5yaWdodHNpZGUtY29udGVudC1ob2xkJyk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBpZiAodGhpcy5ib2R5UFMpIHRoaXMuYm9keVBTLmRlc3Ryb3koKTtcclxuICAvLyAgICAgaWYgKHRoaXMuaGVhZGVyRml4ZWRCb2R5UFMpIHRoaXMuaGVhZGVyRml4ZWRCb2R5UFMuZGVzdHJveSgpO1xyXG4gIC8vICAgICB0aGlzLmJvZHlQUyA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyKCcubWFpbi1jb250ZW50LXdyYXAnLCB7XHJcbiAgLy8gICAgICAgc3VwcHJlc3NTY3JvbGxYOiB0cnVlXHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgICB0aGlzLnNjcm9sbFRvVG9wKCcubWFpbi1jb250ZW50LXdyYXAnKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbiAgc2Nyb2xsVG9Ub3Aoc2VsZWN0b3I6IHN0cmluZykge1xyXG4gICAgaWYgKGRvY3VtZW50KSB7XHJcbiAgICAgIGxldCBlbGVtZW50ID0gPEhUTUxFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMubW9kdWxlTG9hZGVyU3ViKSB7XHJcbiAgICAgIHRoaXMubW9kdWxlTG9hZGVyU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sYXlvdXRDb25mU3ViKSB7XHJcbiAgICAgIHRoaXMubGF5b3V0Q29uZlN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucm91dGVyRXZlbnRTdWIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXJFdmVudFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3ViKSB7XHJcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb3NlU2lkZWJhcigpIHtcclxuICAgIHRoaXMubGF5b3V0LnB1Ymxpc2hMYXlvdXRDaGFuZ2Uoe1xyXG4gICAgICBzaWRlYmFyU3R5bGU6IFwiY2xvc2VkXCJcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRUaW1lcigpIHtcclxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudG90YWxMb2FkaW5nVGltZSsrO1xyXG4gICAgfSwgMTAwMClcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1hZG1pbi13cmFwXCIgW2Rpcl09J2xheW91dENvbmYuZGlyJz5cclxuICA8IS0tIEhlYWRlciBmb3IgdG9wIG5hdmlnYXRpb24gbGF5b3V0IC0tPlxyXG4gIDwhLS0gT05MWSBSRVFVSVJFRCBGT1IgKipUT1AqKiBOQVZJR0FUSU9OIExBWU9VVCAtLT5cclxuICA8YXBwLWhlYWRlci10b3AgKm5nSWY9XCJsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICd0b3AnXCIgW25vdGlmaWNQYW5lbF09XCJzaWRlbmF2XCI+XHJcbiAgPC9hcHAtaGVhZGVyLXRvcD5cclxuICA8bmd4LXVpLWxvYWRlciBmZ3NTaXplPVwiMTgwXCIgW2Znc1R5cGVdPVwic3Bpbm5lclR5cGVcIiBjb2xvcj1cInByaW1hcnlcIj48L25neC11aS1sb2FkZXI+XHJcbiAgPCEtLSBNYWluIENvbnRhaW5lciAtLT5cclxuICA8bWF0LXNpZGVuYXYtY29udGFpbmVyIFtkaXJdPSdsYXlvdXRDb25mLmRpcicgY2xhc3M9XCJhcHAtYWRtaW4tY29udGFpbmVyIGFwcC1zaWRlLW5hdi1jb250YWluZXIgbWF0LWRyYXdlci10cmFuc2l0aW9uXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICduYXZpZ2F0aW9uLXRvcCc6IGxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3RvcCcsXHJcbiAgICAnc2lkZWJhci1mdWxsJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdmdWxsJyxcclxuICAgICdzaWRlYmFyLWNvbXBhY3QnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSA9PT0gJ2NvbXBhY3QnICYmIGxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnLFxyXG4gICAgJ3NpZGViYXItY29tcGFjdC1iaWcnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSA9PT0gJ2NvbXBhY3QtYmlnJyAmJiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJyxcclxuICAgICdsYXlvdXQtaW50cmFuc2l0aW9uJzogbGF5b3V0Q29uZi5sYXlvdXRJblRyYW5zaXRpb24sXHJcbiAgICAnc2lkZWJhci1vcGVuZWQnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSAhPT0gJ2Nsb3NlZCcgJiYgbGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZScsXHJcbiAgICAnc2lkZWJhci1jbG9zZWQnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSA9PT0gJ2Nsb3NlZCcsXHJcbiAgICAnZml4ZWQtdG9wYmFyJzogbGF5b3V0Q29uZi50b3BiYXJGaXhlZCAmJiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJ1xyXG4gIH1cIj5cclxuICAgIDwhLS0gU0lERUJBUiAtLT5cclxuICAgIDwhLS0gT05MWSBSRVFVSVJFRCBGT1IgKipTSURFKiogTkFWSUdBVElPTiBMQVlPVVQgLS0+XHJcbiAgICA8IS0tIDxhcHAtc2lkZWJhci1zaWRlICpuZ0lmPVwibGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZSdcIj48L2FwcC1zaWRlYmFyLXNpZGU+IC0tPlxyXG5cclxuICAgIDwhLS0gVG9wIG5hdmlnYXRpb24gbGF5b3V0IChuYXZpZ2F0aW9uIGZvciBtb2JpbGUgc2NyZWVuKSAtLT5cclxuICAgIDwhLS0gT05MWSBSRVFVSVJFRCBGT1IgKipUT1AqKiBOQVZJR0FUSU9OIE1PQklMRSBMQVlPVVQgLS0+XHJcbiAgICA8YXBwLXNpZGViYXItdG9wICpuZ0lmPVwibGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAndG9wJyAmJiBsYXlvdXRDb25mLmlzTW9iaWxlXCI+PC9hcHAtc2lkZWJhci10b3A+XHJcblxyXG4gICAgPCEtLSBBcHAgY29udGVudCAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQtd3JhcFwiIFtwZXJmZWN0U2Nyb2xsYmFyXT1cInNjcm9sbENvbmZpZ1wiIFtkaXNhYmxlZF09XCJsYXlvdXRDb25mLnRvcGJhckZpeGVkXCI+XHJcbiAgICAgIDwhLS0gSGVhZGVyIGZvciBzaWRlIG5hdmlnYXRpb24gbGF5b3V0IC0tPlxyXG4gICAgICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqU0lERSoqIE5BVklHQVRJT04gTEFZT1VUIC0tPlxyXG4gICAgICA8YXBwLWhlYWRlci1zaWRlIGNsYXNzPVwiY3VzdG9tLWFwcC1oZWFkZXJcIiAob3BlbmVkKT1cIk9wZW5lZCgkZXZlbnQpXCIgW25vdGlmaWNQYW5lbF09XCJzaWRlbmF2XCI+XHJcbiAgICAgIDwvYXBwLWhlYWRlci1zaWRlPlxyXG5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXItMVwiICpuZ0lmPVwiIWRhc2hib2FyZFBhZ2VcIj5cclxuICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgKm5nSWY9XCJ1c2VyU3RvcnlcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICBbdXNlclN0b3J5XT1cInVzZXJTdG9yeVwiIFtpc1N1YlRhc2tzUGFnZV09ZmFsc2UgW2lzTG9hZGluZ109XCIoYW55T3BlcmF0aW9uSW5Qcm9ncmVzc0ZvckF1dG9Mb2dnaW5nJHxhc3luYylcIlxyXG4gICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT1mYWxzZSAodXBkYXRlQXV0b0xvZyk9XCJMb2dBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiF1c2VyU3RvcnlcIj5cclxuICAgICAgICAgIFlvdSBhcmUgbm90IHN0YXJ0ZWQgYW55IHVzZXJzdG9yeSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMDVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiY2FyZXQtc2l6ZVwiIHN0eWxlPVwiY29sb3I6IzNkYThiNVwiIGljb249XCJjYXJldC1kb3duXCIgW3NhdFBvcG92ZXJBbmNob3JGb3JdPVwicmVjZW50VXNlclN0b3J5XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJyZWNlbnRVc2VyU3RvcnkudG9nZ2xlKClcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNhdC1wb3BvdmVyICNyZWNlbnRVc2VyU3RvcnkgaGFzQmFja2Ryb3AgIGJhY2tkcm9wQ2xhc3M9XCJ1cy1wb3BvdmVyXCI+IFxyXG4gICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VyU3Rvcnkgb2YgKHVzZXJTdG9yaWVzJCB8IGFzeW5jIHwgc2xpY2U6MDo1KVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMDAwcHg7XCIgY2xhc3M9XCJ2aWV3LXVzXCI+XHJcbiAgICAgICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgICAgICBbaXNVc2VyU3Rvcmllc1BhZ2VdPXRydWUgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIiBbaXNTaG93XT1cImZhbHNlXCIgKGNsb3NlKT1cInJlY2VudFVzZXJTdG9yeS5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodHNpZGUtY29udGVudC1ob2xkXCIgW3BlcmZlY3RTY3JvbGxiYXJdPVwic2Nyb2xsQ29uZmlnXCIgW2Rpc2FibGVkXT1cIiFsYXlvdXRDb25mLnRvcGJhckZpeGVkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2JsdXItb24tb3BlbmVkJzogZGlzcGxheX1cIiBbbmdDbGFzc109XCJ7J3Nob3ctaW4tZGFzaGJvYXJkJzpkYXNoYm9hcmRQYWdlfVwiPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJtci0xXCIgKm5nSWY9XCIhZGFzaGJvYXJkUGFnZVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiAnOTBweCd9XCIgXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IHVzZXJTdG9yeSA/ICdiZWlnZScgOiAnbm9uZScgfVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjkwcHggIWltcG9ydGFudFwiPlxyXG4gICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBmeEZsZXg9XCI5MFwiICpuZ0lmPVwidXNlclN0b3J5XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgIFtpc1VzZXJTdG9yaWVzUGFnZV09ZmFsc2UgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgIDxtYXQtY2FyZCAqbmdJZj1cIiF1c2VyU3RvcnlcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7bGVmdDogLTc1cHg7XCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICBZb3UgYXJlIG5vdCBzdGFydGVkIGFueSB7eyB1c2Vyc3RvcnkgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHN9fSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0wNVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJjYXJldC1zaXplXCIgc3R5bGU9XCJjb2xvcjojM2RhOGI1XCIgaWNvbj1cImNhcmV0LWRvd25cIiBbc2F0UG9wb3ZlckFuY2hvckZvcl09XCJyZWNlbnRVc2VyU3RvcnlcIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cInJlY2VudFVzZXJTdG9yeS50b2dnbGUoKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmNcIj5cclxuICAgICAgICA8L21hdC1wcm9ncmVzcy1iYXI+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeEZsZXggY2xhc3M9XCJtbC0wNVwiICpuZ0lmPVwidXNlclN0b3J5XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImNhcmV0LXNpemVcIiBzdHlsZT1cImNvbG9yOiMzZGE4YjVcIiBpY29uPVwiY2FyZXQtZG93blwiIFtzYXRQb3BvdmVyQW5jaG9yRm9yXT1cInJlY2VudFVzZXJTdG9yeVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwicmVjZW50VXNlclN0b3J5LnRvZ2dsZSgpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzYXQtcG9wb3ZlciAjcmVjZW50VXNlclN0b3J5IGhhc0JhY2tkcm9wICBiYWNrZHJvcENsYXNzPVwidXMtcG9wb3ZlclwiPiBcclxuICAgICAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlclN0b3J5IG9mICh1c2VyU3RvcmllcyQgfCBhc3luYyB8IHNsaWNlOjA6NSlcIiBzdHlsZT1cIm1pbi13aWR0aDogMTAwMHB4O1wiIGNsYXNzPVwidmlldy11c1wiPlxyXG4gICAgICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgICAgIFt1c2VyU3RvcnldPVwidXNlclN0b3J5XCIgW2lzU3ViVGFza3NQYWdlXT1mYWxzZSBbaXNMb2FkaW5nXT1cIihhbnlPcGVyYXRpb25JblByb2dyZXNzRm9yQXV0b0xvZ2dpbmckfGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT10cnVlICh1cGRhdGVBdXRvTG9nKT1cIkxvZ0FjdGlvbigkZXZlbnQpXCIgW2lzU2hvd109XCJmYWxzZVwiIChjbG9zZSk9XCJyZWNlbnRVc2VyU3RvcnkuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPCEtLSBWaWV3IExvYWRlciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy1sb2FkZXJcIiAqbmdJZj1cImlzTW9kdWxlTG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UxIG1hdC1iZy1hY2NlbnRcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UyIG1hdC1iZy1wcmltYXJ5XCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIFZpZXcgb3V0bGV0IC0tPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJidHJhay1wcmVsb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlbG9hZGluZy10ZXh0XCI+XHJcbiAgICAgICAgICAgIHt7ICdMT0FESU5HUExFQVNFV0FJVCcgfCB0cmFuc2xhdGUgfX0gKHt7dG90YWxMb2FkaW5nVGltZX19IHt7ICdTRUNPTkRTJyB8IHRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJidHJhay1sb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBWaWV3IG92ZXJsYXkgZm9yIG1vYmlsZSBuYXZpZ2F0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItYmFja2Ryb3BcIiBbbmdDbGFzc109XCJ7J3Zpc2libGUnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSAhPT0gJ2Nsb3NlZCcgJiYgbGF5b3V0Q29uZi5pc01vYmlsZX1cIlxyXG4gICAgICAoY2xpY2spPVwiY2xvc2VTaWRlYmFyKClcIj48L2Rpdj5cclxuXHJcbiAgICA8IS0tIE5vdGlmaWNhYXRpb24gYmFyIC0tPlxyXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJzaWRlXCIgb3BlbmVkIGNsYXNzPVwiZXhhbXBsZS1zaWRlbmF2IGN1c3RvbS1hcHAtbmF2XCIgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCIgW2ZpeGVkVG9wR2FwXT1cIjg4XCJcclxuICAgICAgW2ZpeGVkQm90dG9tR2FwXT1cIjBcIiBjbGFzcz1cInNpZGUtbmF2LWNvbG9yXCIgaWQ9XCJzdHlsZS0xXCI+XHJcbiAgICAgIDxhcHAtc2lkZWJhcj48L2FwcC1zaWRlYmFyPlxyXG4gICAgPC9tYXQtc2lkZW5hdj5cclxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPC9kaXY+Il19