@acorex/components 5.2.1 → 5.2.2
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.
- package/esm2020/lib/base/mixin/base-menu-mixin.class.mjs +4 -3
- package/esm2020/lib/base/mixin/textbox-mixin.class.mjs +2 -2
- package/esm2020/lib/calendar/calendar.component.mjs +60 -7
- package/esm2020/lib/calendar/calendar.module.mjs +3 -4
- package/esm2020/lib/calendar/index.mjs +1 -2
- package/esm2020/lib/datepicker/datepicker.component.mjs +2 -2
- package/esm2020/lib/menu/menu.component.mjs +62 -11
- package/esm2020/lib/number-box/number-box.component.mjs +2 -2
- package/esm2020/lib/password-box/password-box.component.mjs +2 -2
- package/esm2020/lib/picker/picker.component.mjs +23 -20
- package/esm2020/lib/radio/index.mjs +1 -1
- package/esm2020/lib/radio/radio.component.mjs +3 -3
- package/esm2020/lib/radio/radio.module.mjs +1 -1
- package/esm2020/lib/selectbox/selectbox.component.mjs +2 -2
- package/esm2020/lib/textarea/textarea.component.mjs +2 -2
- package/esm2020/lib/textbox/textbox.component.mjs +3 -3
- package/esm2020/lib/time-box/time-box.component.mjs +2 -2
- package/fesm2015/acorex-components.mjs +180 -105
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +178 -105
- package/fesm2020/acorex-components.mjs.map +1 -1
- package/lib/base/mixin/base-menu-mixin.class.d.ts +2 -1
- package/lib/base/mixin/mixin.class.d.ts +2 -1
- package/lib/calendar/calendar.component.d.ts +10 -1
- package/lib/calendar/calendar.module.d.ts +7 -8
- package/lib/calendar/index.d.ts +0 -1
- package/lib/datepicker/datepicker.component.d.ts +1 -1
- package/lib/menu/menu.component.d.ts +9 -6
- package/lib/number-box/number-box.component.d.ts +1 -1
- package/lib/password-box/password-box.component.d.ts +1 -1
- package/lib/picker/picker.component.d.ts +10 -14
- package/lib/selectbox/selectbox.component.d.ts +1 -1
- package/lib/textarea/textarea.component.d.ts +1 -1
- package/lib/textbox/textbox.component.d.ts +1 -1
- package/lib/time-box/time-box.component.d.ts +1 -1
- package/package.json +1 -1
- package/acorex-components.d.ts.map +0 -1
- package/esm2020/lib/calendar/inline-calendar.component.mjs +0 -39
- package/lib/action-sheet/action-sheet-item.component.d.ts.map +0 -1
- package/lib/action-sheet/action-sheet.component.d.ts.map +0 -1
- package/lib/action-sheet/action-sheet.module.d.ts.map +0 -1
- package/lib/action-sheet/index.d.ts.map +0 -1
- package/lib/alert/alert-button.component.d.ts.map +0 -1
- package/lib/alert/alert-content.component.d.ts.map +0 -1
- package/lib/alert/alert-footer.component.d.ts.map +0 -1
- package/lib/alert/alert-suffix.component.d.ts.map +0 -1
- package/lib/alert/alert-title.component.d.ts.map +0 -1
- package/lib/alert/alert.component.d.ts.map +0 -1
- package/lib/alert/alert.module.d.ts.map +0 -1
- package/lib/alert/index.d.ts.map +0 -1
- package/lib/avatar/avatar-group.component.d.ts.map +0 -1
- package/lib/avatar/avatar.component.d.ts.map +0 -1
- package/lib/avatar/avatar.module.d.ts.map +0 -1
- package/lib/avatar/index.d.ts.map +0 -1
- package/lib/badge/badge.component.d.ts.map +0 -1
- package/lib/badge/badge.module.d.ts.map +0 -1
- package/lib/badge/index.d.ts.map +0 -1
- package/lib/base/common.module.d.ts.map +0 -1
- package/lib/base/custom-cdk-overlay.service.d.ts.map +0 -1
- package/lib/base/drawing.class.d.ts.map +0 -1
- package/lib/base/events.class.d.ts.map +0 -1
- package/lib/base/index.d.ts.map +0 -1
- package/lib/base/infinite-scroll.directive.d.ts.map +0 -1
- package/lib/base/mixin/base-components.class.d.ts.map +0 -1
- package/lib/base/mixin/base-menu-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/button-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/clickable-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/color-look-mixing.class.d.ts.map +0 -1
- package/lib/base/mixin/constratctor.d.ts.map +0 -1
- package/lib/base/mixin/datalist-component.class.d.ts.map +0 -1
- package/lib/base/mixin/datalist.class.d.ts.map +0 -1
- package/lib/base/mixin/dropdown-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/index.d.ts.map +0 -1
- package/lib/base/mixin/interactive-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/loading-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/selection-component.class.d.ts.map +0 -1
- package/lib/base/mixin/sizable-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/textbox-mixin.class.d.ts.map +0 -1
- package/lib/base/mixin/value-mixin.class.d.ts.map +0 -1
- package/lib/base/overlay.service.d.ts.map +0 -1
- package/lib/base/responsive.directive.d.ts.map +0 -1
- package/lib/base/styles.class.d.ts.map +0 -1
- package/lib/breadcrumbs/breadcrumbs-item.class.d.ts.map +0 -1
- package/lib/breadcrumbs/breadcrumbs-item.component.d.ts.map +0 -1
- package/lib/breadcrumbs/breadcrumbs.component.d.ts.map +0 -1
- package/lib/breadcrumbs/breadcrumbs.module.d.ts.map +0 -1
- package/lib/breadcrumbs/index.d.ts.map +0 -1
- package/lib/button/button-group.component.d.ts.map +0 -1
- package/lib/button/button-item.class.d.ts.map +0 -1
- package/lib/button/button-item.component.d.ts.map +0 -1
- package/lib/button/button.component.d.ts.map +0 -1
- package/lib/button/button.module.d.ts.map +0 -1
- package/lib/button/index.d.ts.map +0 -1
- package/lib/calendar/calendar.class.d.ts.map +0 -1
- package/lib/calendar/calendar.component.d.ts.map +0 -1
- package/lib/calendar/calendar.module.d.ts.map +0 -1
- package/lib/calendar/index.d.ts.map +0 -1
- package/lib/calendar/inline-calendar.component.d.ts +0 -14
- package/lib/calendar/inline-calendar.component.d.ts.map +0 -1
- package/lib/carousel/carousel-arrows.component.d.ts.map +0 -1
- package/lib/carousel/carousel-item.component.d.ts.map +0 -1
- package/lib/carousel/carousel-pager.component.d.ts.map +0 -1
- package/lib/carousel/carousel-splidejs.class.d.ts.map +0 -1
- package/lib/carousel/carousel.class.d.ts.map +0 -1
- package/lib/carousel/carousel.component.d.ts.map +0 -1
- package/lib/carousel/carousel.module.d.ts.map +0 -1
- package/lib/carousel/index.d.ts.map +0 -1
- package/lib/checkbox/checkbox.component.d.ts.map +0 -1
- package/lib/checkbox/checkbox.module.d.ts.map +0 -1
- package/lib/checkbox/index.d.ts.map +0 -1
- package/lib/collapse/collapse-group.component.d.ts.map +0 -1
- package/lib/collapse/collapse.component.d.ts.map +0 -1
- package/lib/collapse/collapse.module.d.ts.map +0 -1
- package/lib/collapse/index.d.ts.map +0 -1
- package/lib/datalist/datalist.component.d.ts.map +0 -1
- package/lib/datalist/datalist.module.d.ts.map +0 -1
- package/lib/datalist/index.d.ts.map +0 -1
- package/lib/datepicker/datepicker.component.d.ts.map +0 -1
- package/lib/datepicker/datepicker.module.d.ts.map +0 -1
- package/lib/datepicker/index.d.ts.map +0 -1
- package/lib/decorators/addon.component.d.ts.map +0 -1
- package/lib/decorators/content.component.d.ts.map +0 -1
- package/lib/decorators/decorators.module.d.ts.map +0 -1
- package/lib/decorators/header.component.d.ts.map +0 -1
- package/lib/decorators/index.d.ts.map +0 -1
- package/lib/decorators/prefix.component.d.ts.map +0 -1
- package/lib/decorators/suffix.component.d.ts.map +0 -1
- package/lib/dialog/dialog.class.d.ts.map +0 -1
- package/lib/dialog/dialog.component.d.ts.map +0 -1
- package/lib/dialog/dialog.module.d.ts.map +0 -1
- package/lib/dialog/dialog.service.d.ts.map +0 -1
- package/lib/dialog/index.d.ts.map +0 -1
- package/lib/drawer/drawer-container.component.d.ts.map +0 -1
- package/lib/drawer/drawer-content.component.d.ts.map +0 -1
- package/lib/drawer/drawer.component.d.ts.map +0 -1
- package/lib/drawer/drawer.module.d.ts.map +0 -1
- package/lib/drawer/index.d.ts.map +0 -1
- package/lib/dropdown/dropdown-panel.component.d.ts.map +0 -1
- package/lib/dropdown/dropdown.module.d.ts.map +0 -1
- package/lib/dropdown/index.d.ts.map +0 -1
- package/lib/form/form-field.component.d.ts.map +0 -1
- package/lib/form/form-field.module.d.ts.map +0 -1
- package/lib/form/form-hint.component.d.ts.map +0 -1
- package/lib/form/form.component.d.ts.map +0 -1
- package/lib/form/index.d.ts.map +0 -1
- package/lib/icon/icon.component.d.ts.map +0 -1
- package/lib/icon/icon.module.d.ts.map +0 -1
- package/lib/icon/index.d.ts.map +0 -1
- package/lib/input-mask/index.d.ts.map +0 -1
- package/lib/input-mask/input-mask.component.d.ts.map +0 -1
- package/lib/input-mask/input-mask.module.d.ts.map +0 -1
- package/lib/label/index.d.ts.map +0 -1
- package/lib/label/label.component.d.ts.map +0 -1
- package/lib/label/label.module.d.ts.map +0 -1
- package/lib/loading/index.d.ts.map +0 -1
- package/lib/loading/loading-spinner.component.d.ts.map +0 -1
- package/lib/loading/loading.component.d.ts.map +0 -1
- package/lib/loading/loading.directive.d.ts.map +0 -1
- package/lib/loading/loading.module.d.ts.map +0 -1
- package/lib/loading/loading.service.d.ts.map +0 -1
- package/lib/menu/index.d.ts.map +0 -1
- package/lib/menu/menu.component.d.ts.map +0 -1
- package/lib/menu/menu.module.d.ts.map +0 -1
- package/lib/number-box/index.d.ts.map +0 -1
- package/lib/number-box/number-box.component.d.ts.map +0 -1
- package/lib/number-box/number-box.module.d.ts.map +0 -1
- package/lib/page/base-page.class.d.ts.map +0 -1
- package/lib/page/index.d.ts.map +0 -1
- package/lib/page/page-footer.component.d.ts.map +0 -1
- package/lib/page/page-header.component.d.ts.map +0 -1
- package/lib/page/page.component.d.ts.map +0 -1
- package/lib/page/page.module.d.ts.map +0 -1
- package/lib/password-box/index.d.ts.map +0 -1
- package/lib/password-box/password-box.component.d.ts.map +0 -1
- package/lib/password-box/password-box.module.d.ts.map +0 -1
- package/lib/picker/index.d.ts.map +0 -1
- package/lib/picker/picker.component.d.ts.map +0 -1
- package/lib/picker/picker.module.d.ts.map +0 -1
- package/lib/popover/index.d.ts.map +0 -1
- package/lib/popover/popover.component.d.ts.map +0 -1
- package/lib/popover/popover.module.d.ts.map +0 -1
- package/lib/popup/index.d.ts.map +0 -1
- package/lib/popup/popup.component.d.ts.map +0 -1
- package/lib/popup/popup.module.d.ts.map +0 -1
- package/lib/popup/popup.service.d.ts.map +0 -1
- package/lib/progress-bar/index.d.ts.map +0 -1
- package/lib/progress-bar/progress-bar.component.d.ts.map +0 -1
- package/lib/progress-bar/progress-bar.module.d.ts.map +0 -1
- package/lib/radio/index.d.ts.map +0 -1
- package/lib/radio/radio.component.d.ts.map +0 -1
- package/lib/radio/radio.module.d.ts.map +0 -1
- package/lib/range-slider/index.d.ts.map +0 -1
- package/lib/range-slider/range-slider.component.d.ts.map +0 -1
- package/lib/range-slider/range-slider.module.d.ts.map +0 -1
- package/lib/rating/index.d.ts.map +0 -1
- package/lib/rating/rating.component.d.ts.map +0 -1
- package/lib/rating/rating.component.module.d.ts.map +0 -1
- package/lib/result/index.d.ts.map +0 -1
- package/lib/result/result.component.d.ts.map +0 -1
- package/lib/result/result.module.d.ts.map +0 -1
- package/lib/selectbox/index.d.ts.map +0 -1
- package/lib/selectbox/selectbox.component.d.ts.map +0 -1
- package/lib/selectbox/selectbox.module.d.ts.map +0 -1
- package/lib/selection-list/index.d.ts.map +0 -1
- package/lib/selection-list/selection-list.component.d.ts.map +0 -1
- package/lib/selection-list/selection-list.module.d.ts.map +0 -1
- package/lib/switch/index.d.ts.map +0 -1
- package/lib/switch/switch.component.d.ts.map +0 -1
- package/lib/switch/switch.module.d.ts.map +0 -1
- package/lib/tabs/index.d.ts.map +0 -1
- package/lib/tabs/tab-content.directive.d.ts.map +0 -1
- package/lib/tabs/tab-item.component.d.ts.map +0 -1
- package/lib/tabs/tabs.class.d.ts.map +0 -1
- package/lib/tabs/tabs.component.d.ts.map +0 -1
- package/lib/tabs/tabs.module.d.ts.map +0 -1
- package/lib/textarea/index.d.ts.map +0 -1
- package/lib/textarea/textarea.component.d.ts.map +0 -1
- package/lib/textarea/textarea.module.d.ts.map +0 -1
- package/lib/textbox/index.d.ts.map +0 -1
- package/lib/textbox/textbox.component.d.ts.map +0 -1
- package/lib/textbox/textbox.module.d.ts.map +0 -1
- package/lib/time-box/index.d.ts.map +0 -1
- package/lib/time-box/time-box.component.d.ts.map +0 -1
- package/lib/time-box/time-box.module.d.ts.map +0 -1
- package/lib/toast/index.d.ts.map +0 -1
- package/lib/toast/toast.class.d.ts.map +0 -1
- package/lib/toast/toast.component.d.ts.map +0 -1
- package/lib/toast/toast.module.d.ts.map +0 -1
- package/lib/toast/toast.service.d.ts.map +0 -1
- package/lib/tooltip/index.d.ts.map +0 -1
- package/lib/tooltip/tooltip.component.d.ts.map +0 -1
- package/lib/tooltip/tooltip.directive.d.ts.map +0 -1
- package/lib/tooltip/tooltip.module.d.ts.map +0 -1
- package/lib/treeview/index.d.ts.map +0 -1
- package/lib/treeview/tree-view.component.d.ts.map +0 -1
- package/lib/treeview/tree-view.module.d.ts.map +0 -1
- package/lib/validation/index.d.ts.map +0 -1
- package/lib/validation/validation-rule.widget.d.ts.map +0 -1
- package/lib/validation/validation.class.d.ts.map +0 -1
- package/lib/validation/validation.module.d.ts.map +0 -1
- package/public-api.d.ts.map +0 -1
|
@@ -239,7 +239,7 @@ export class AXTimeBoxComponent extends AXBaseTextBoxMixin {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
AXTimeBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
-
AXTimeBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", directives: [{ type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
242
|
+
AXTimeBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", directives: [{ type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
243
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTimeBoxComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
245
245
|
args: [{ selector: 'ax-time-box', inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', ...TEXTBOX_INPUTS], outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus', ...TEXTBOX_OUTPUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
|
|
@@ -259,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
259
259
|
type: ViewChild,
|
|
260
260
|
args: [IMaskDirective]
|
|
261
261
|
}] } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi90aW1lLWJveC90aW1lLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3RpbWUtYm94L3RpbWUtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQWlDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0sU0FBUyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFJbkY7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUErRHhEOztNQUVFO0lBQ0EsWUFDSSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDbEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWxDLFlBQU8sR0FBbUIsT0FBTyxDQUFDO1FBZW5DLHNCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO0lBNkJsQyxDQUFDO0lBbkVE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RSxrQ0FBa0MsRUFBRTtpSUFPeEMsUUFBUTtzQkFEbEIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLO2dCQVdOLFlBQVk7c0JBRFgsTUFBTTtnQkFLSSxNQUFNO3NCQURoQixLQUFLO2dCQWNDLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFLSSxXQUFXO3NCQURyQixLQUFLO2dCQWlCRSxjQUFjO3NCQURyQixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGVUaW1lLCBBWFN0cmluZ1V0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCwgSG9zdEJpbmRpbmcsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgSU1hc2sgZnJvbSAnaW1hc2snO1xyXG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Qm94TWl4aW4sIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBURVhUQk9YX0lOUFVUUywgVEVYVEJPWF9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nIHwgJ0hIOm1tOnNzJztcclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC10aW1lLWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3NpemUnLCAndmFsdWUnLCAuLi5URVhUQk9YX0lOUFVUU10sXHJcbiAgICBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJywgJ29uQmx1cicsICdvbkZvY3VzJywgLi4uVEVYVEJPWF9PVVRQVVRdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXIgYXgtZHJvcC1kb3duJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbWluVmFsdWU6IERhdGU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IERhdGUpIHtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbWF4VmFsdWU6IERhdGU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IERhdGUpIHtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIHByaXZhdGUgX2Zvcm1hdDogQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0KCk6IEFYX1RJTUVfRk9STUFUIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBmb3JtYXQodjogQVhfVElNRV9GT1JNQVQpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAnZm9ybWF0JyxcclxuICAgICAgICAgICAgdmFsdWU6IHZcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGRpc3BsYXlUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBfZGlzcGxheVRleHQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBkaXNwbGF5VGV4dCh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5VGV4dCA9IHY7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dENoYW5nZS5lbWl0KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiAgQGlnbm9yZVxyXG4gICAgKi9cclxuICAgIF9tYXNrT2JqOiBJTWFzay5NYXNrZWRQYXR0ZXJuXHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgICBwcml2YXRlIF9tYXNrRGlyZWN0aXZlOiBJTWFza0RpcmVjdGl2ZTxJTWFzay5NYXNrZWROdW1iZXI+O1xyXG5cclxuICAvKipcclxuICAqICBAaWdub3JlXHJcbiAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVRleHQoKTtcclxuICAgICAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgX3VwZGF0ZVRleHQoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMudmFsdWUgPyBBWERhdGVUaW1lLmNvbnZlcnQodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlTWFzaygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hc2tPYmopIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFza09iaiA9IElNYXNrLmNyZWF0ZU1hc2soe1xyXG4gICAgICAgICAgICAgICAgbWFzazogdGhpcy5mb3JtYXQsXHJcbiAgICAgICAgICAgICAgICBsYXp5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJsb2Nrczoge1xyXG4gICAgICAgICAgICAgICAgICAgIEhIOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bzogMjMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtbToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG86IDU5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJzAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvZml4OiAncGFkJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCdcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICAgICAgICAgIG1hc2s6IHRoaXMuZm9ybWF0LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgICAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuXHJcbiAgICAgICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMCkuZmlsbCgwKS5tYXAoKHYsIGkpID0+IGkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgY29uc3QgY2hhcnM6IHN0cmluZ1tdID0gWydCYWNrc3BhY2UnLCAnQXJyb3dEb3duJywgJ0Fycm93VXAnLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnVGFiJywgJ0VudGVyJ107XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gKGUua2V5KTtcclxuICAgICAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcclxuICAgICAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBjb25zdCBzRW5kID0gaW5wdXQuc2VsZWN0aW9uRW5kO1xyXG4gICAgICAgIGNvbnN0IGRhdGVWYWwgPSBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAvL1xyXG4gICAgICAgIGNvbnN0IHJlID0gL1thLXpBLVowLTldKy9pZztcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IEFycmF5LmZyb20odGhpcy5mb3JtYXQubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICBjb25zdCB3b3JkID0gdmFsU3RyLnN1YnN0cmluZyhzU3RhcnQsIHNFbmQpO1xyXG4gICAgICAgIGNvbnN0IHBhcnQgPSBwYXJ0cy5maW5kKGMgPT4gYy5pbmRleCA+PSBzU3RhcnQpO1xyXG4gICAgICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHIoc0VuZCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICBjb25zdCBwcmV2ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyaW5nKDAsIHNTdGFydCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICAvL2NvbnN0IHBhcnQgPSBwYXJ0c1tBcnJheS5mcm9tKHZhbFN0ci5tYXRjaEFsbChyZSkpLmZpbmRJbmRleChjID0+IGNbMF0gPT0gd29yZCldO1xyXG4gICAgICAgIC8vXHJcblxyXG4gICAgICAgIGNvbnN0IGdvTmV4dCA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgKHNFbmQgKyAobmV4dFswXT8uaW5kZXggfHwgMCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCAocHJldltwcmV2Lmxlbmd0aCAtIDFdPy5pbmRleCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcclxuICAgICAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgICAgIGUua2V5ID09PSAnQXJyb3dSaWdodCcgPyBnb05leHQoKSA6IGdvUHJldigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICBpZiAoZS5jdHJsS2V5ICYmIGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ24gPSBlLmtleSA9PT0gJ0Fycm93VXAnID8gKzEgOiAtMTtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ2hvdXInLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnbWludXRlJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzcyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1NTJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnc2Vjb25kJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc1N0YXJ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBNYXRoLm1heCgxMCwgdGhpcy5kZWJvdW5jZVRpbWUpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAvLyBpZ25vcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT0gJ1RhYicpIHtcclxuICAgICAgICAgICAgaWYgKHNFbmQgPCB2YWxTdHIubGVuZ3RoICYmICFlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgICAgICAgICBnb05leHQoKTtcclxuICAgICAgICAgICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHNTdGFydCAhPSAwICYmIGUuc2hpZnRLZXkpIHtcclxuICAgICAgICAgICAgICAgIGdvUHJldigpO1xyXG4gICAgICAgICAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGtleXMgPSB7XHJcbiAgICAgICAgICAgIC8vICAgICBoOiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxXVswLTJdJC8sXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgcDogJzAnXHJcbiAgICAgICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgICAgICAvLyAgICAgSDoge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF4xWzAtOV0kfDJbMC0zXSQvLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIG06IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeWzEtNV1bMC05XSQvLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAvLyAvLyBjb25zdCByZSA9IG5ldyBSZWdFeHAoXy5vcmRlckJ5KE9iamVjdC5rZXlzKGtleXMpLCBjID0+IGMubGVuZ3RoLCBbJ2Rlc2MnXSkuam9pbihcInxcIiksIFwiZ2lcIik7XHJcbiAgICAgICAgICAgIC8vIC8vIHJldHVybiBmb3JtYXQucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoZWQpIHtcclxuICAgICAgICAgICAgLy8gLy8gICByZXR1cm4ga2V5c1ttYXRjaGVkXSgpO1xyXG4gICAgICAgICAgICAvLyAvLyB9KTtcclxuICAgICAgICAgICAgLy8gY29uc3QgdCA9IGtleXNbcGFydFswXV07XHJcbiAgICAgICAgICAgIC8vIGlmICghdC52LnRlc3Qoa2V5KSkge1xyXG4gICAgICAgICAgICAvLyAgICAgaWdub3JlKCk7XHJcblxyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5fdXBkYXRlVGV4dCgpXHJcbiAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHN1cGVyLl9lbWl0T25LZXlkb3duRXZlbnQoZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICAvLyBjb25zdCBpbnB1dCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KTtcclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgLy8gfSwgNzAwKTtcclxuICAgIH1cclxuXHJcbiAgICBfZW1pdE9uRm9jdXNFdmVudChlOiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgc3VwZXIuX2VtaXRPbkZvY3VzRXZlbnQoZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9oYW5kbGVPbklucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKGlucHV0LnZhbHVlLCBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0KTtcclxuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48aW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiZmFsc2VcIiAgdHlwZT1cInRleHRcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgW25nTW9kZWxdPVwiZGlzcGxheVRleHRcIiBcclxuICAgIChtb3VzZXVwKT1cIl9oYW5kbGVPbklucHV0Q2xpY2tFdmVudCgkZXZlbnQpXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoa2V5dXApPVwiX2hhbmRsZUtleVVwRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiBcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi90aW1lLWJveC90aW1lLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3RpbWUtYm94L3RpbWUtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQWlDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0sU0FBUyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFJbkY7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUErRHhEOztNQUVFO0lBQ0EsWUFDSSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDbEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWxDLFlBQU8sR0FBbUIsT0FBTyxDQUFDO1FBZW5DLHNCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO0lBNkJsQyxDQUFDO0lBbkVE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RSxrQ0FBa0MsRUFBRTtpSUFPeEMsUUFBUTtzQkFEbEIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLO2dCQVdOLFlBQVk7c0JBRFgsTUFBTTtnQkFLSSxNQUFNO3NCQURoQixLQUFLO2dCQWNDLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFLSSxXQUFXO3NCQURyQixLQUFLO2dCQWlCRSxjQUFjO3NCQURyQixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGVUaW1lLCBBWFN0cmluZ1V0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCwgSG9zdEJpbmRpbmcsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgSU1hc2sgZnJvbSAnaW1hc2snO1xyXG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Qm94TWl4aW4sIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBURVhUQk9YX0lOUFVUUywgVEVYVEJPWF9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nIHwgJ0hIOm1tOnNzJztcclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC10aW1lLWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3NpemUnLCAndmFsdWUnLCAuLi5URVhUQk9YX0lOUFVUU10sXHJcbiAgICBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJywgJ29uQmx1cicsICdvbkZvY3VzJywgLi4uVEVYVEJPWF9PVVRQVVRdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXIgYXgtZHJvcC1kb3duJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbWluVmFsdWU6IERhdGU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IERhdGUpIHtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbWF4VmFsdWU6IERhdGU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IERhdGUpIHtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIHByaXZhdGUgX2Zvcm1hdDogQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0KCk6IEFYX1RJTUVfRk9STUFUIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBmb3JtYXQodjogQVhfVElNRV9GT1JNQVQpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAnZm9ybWF0JyxcclxuICAgICAgICAgICAgdmFsdWU6IHZcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGRpc3BsYXlUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBfZGlzcGxheVRleHQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBkaXNwbGF5VGV4dCh2OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5VGV4dCA9IHY7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dENoYW5nZS5lbWl0KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiAgQGlnbm9yZVxyXG4gICAgKi9cclxuICAgIF9tYXNrT2JqOiBJTWFzay5NYXNrZWRQYXR0ZXJuXHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgICBwcml2YXRlIF9tYXNrRGlyZWN0aXZlOiBJTWFza0RpcmVjdGl2ZTxJTWFzay5NYXNrZWROdW1iZXI+O1xyXG5cclxuICAvKipcclxuICAqICBAaWdub3JlXHJcbiAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVRleHQoKTtcclxuICAgICAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgX3VwZGF0ZVRleHQoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMudmFsdWUgPyBBWERhdGVUaW1lLmNvbnZlcnQodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlTWFzaygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hc2tPYmopIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFza09iaiA9IElNYXNrLmNyZWF0ZU1hc2soe1xyXG4gICAgICAgICAgICAgICAgbWFzazogdGhpcy5mb3JtYXQsXHJcbiAgICAgICAgICAgICAgICBsYXp5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJsb2Nrczoge1xyXG4gICAgICAgICAgICAgICAgICAgIEhIOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bzogMjMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtbToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG86IDU5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJzAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvZml4OiAncGFkJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCdcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICAgICAgICAgIG1hc2s6IHRoaXMuZm9ybWF0LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgICAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuXHJcbiAgICAgICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMCkuZmlsbCgwKS5tYXAoKHYsIGkpID0+IGkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgY29uc3QgY2hhcnM6IHN0cmluZ1tdID0gWydCYWNrc3BhY2UnLCAnQXJyb3dEb3duJywgJ0Fycm93VXAnLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnVGFiJywgJ0VudGVyJ107XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gKGUua2V5KTtcclxuICAgICAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcclxuICAgICAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBjb25zdCBzRW5kID0gaW5wdXQuc2VsZWN0aW9uRW5kO1xyXG4gICAgICAgIGNvbnN0IGRhdGVWYWwgPSBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAvL1xyXG4gICAgICAgIGNvbnN0IHJlID0gL1thLXpBLVowLTldKy9pZztcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IEFycmF5LmZyb20odGhpcy5mb3JtYXQubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICBjb25zdCB3b3JkID0gdmFsU3RyLnN1YnN0cmluZyhzU3RhcnQsIHNFbmQpO1xyXG4gICAgICAgIGNvbnN0IHBhcnQgPSBwYXJ0cy5maW5kKGMgPT4gYy5pbmRleCA+PSBzU3RhcnQpO1xyXG4gICAgICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHIoc0VuZCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICBjb25zdCBwcmV2ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyaW5nKDAsIHNTdGFydCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgICAvL2NvbnN0IHBhcnQgPSBwYXJ0c1tBcnJheS5mcm9tKHZhbFN0ci5tYXRjaEFsbChyZSkpLmZpbmRJbmRleChjID0+IGNbMF0gPT0gd29yZCldO1xyXG4gICAgICAgIC8vXHJcblxyXG4gICAgICAgIGNvbnN0IGdvTmV4dCA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgKHNFbmQgKyAobmV4dFswXT8uaW5kZXggfHwgMCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCAocHJldltwcmV2Lmxlbmd0aCAtIDFdPy5pbmRleCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcclxuICAgICAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgICAgIGUua2V5ID09PSAnQXJyb3dSaWdodCcgPyBnb05leHQoKSA6IGdvUHJldigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICBpZiAoZS5jdHJsS2V5ICYmIGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ24gPSBlLmtleSA9PT0gJ0Fycm93VXAnID8gKzEgOiAtMTtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ2hvdXInLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnbWludXRlJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzcyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1NTJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnc2Vjb25kJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc1N0YXJ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBNYXRoLm1heCgxMCwgdGhpcy5kZWJvdW5jZVRpbWUpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAvLyBpZ25vcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT0gJ1RhYicpIHtcclxuICAgICAgICAgICAgaWYgKHNFbmQgPCB2YWxTdHIubGVuZ3RoICYmICFlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgICAgICAgICBnb05leHQoKTtcclxuICAgICAgICAgICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHNTdGFydCAhPSAwICYmIGUuc2hpZnRLZXkpIHtcclxuICAgICAgICAgICAgICAgIGdvUHJldigpO1xyXG4gICAgICAgICAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGtleXMgPSB7XHJcbiAgICAgICAgICAgIC8vICAgICBoOiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxXVswLTJdJC8sXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgcDogJzAnXHJcbiAgICAgICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgICAgICAvLyAgICAgSDoge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF4xWzAtOV0kfDJbMC0zXSQvLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAgICAgLy8gICAgIG06IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeWzEtNV1bMC05XSQvLFxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAvLyAvLyBjb25zdCByZSA9IG5ldyBSZWdFeHAoXy5vcmRlckJ5KE9iamVjdC5rZXlzKGtleXMpLCBjID0+IGMubGVuZ3RoLCBbJ2Rlc2MnXSkuam9pbihcInxcIiksIFwiZ2lcIik7XHJcbiAgICAgICAgICAgIC8vIC8vIHJldHVybiBmb3JtYXQucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoZWQpIHtcclxuICAgICAgICAgICAgLy8gLy8gICByZXR1cm4ga2V5c1ttYXRjaGVkXSgpO1xyXG4gICAgICAgICAgICAvLyAvLyB9KTtcclxuICAgICAgICAgICAgLy8gY29uc3QgdCA9IGtleXNbcGFydFswXV07XHJcbiAgICAgICAgICAgIC8vIGlmICghdC52LnRlc3Qoa2V5KSkge1xyXG4gICAgICAgICAgICAvLyAgICAgaWdub3JlKCk7XHJcblxyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5fdXBkYXRlVGV4dCgpXHJcbiAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHN1cGVyLl9lbWl0T25LZXlkb3duRXZlbnQoZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICAvLyBjb25zdCBpbnB1dCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KTtcclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgLy8gfSwgNzAwKTtcclxuICAgIH1cclxuXHJcbiAgICBfZW1pdE9uRm9jdXNFdmVudChlOiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgc3VwZXIuX2VtaXRPbkZvY3VzRXZlbnQoZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9oYW5kbGVPbklucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKGlucHV0LnZhbHVlLCBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0KTtcclxuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48aW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiZmFsc2VcIiAgdHlwZT1cInRleHRcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgW25nTW9kZWxdPVwiZGlzcGxheVRleHRcIiBcclxuICAgIChtb3VzZXVwKT1cIl9oYW5kbGVPbklucHV0Q2xpY2tFdmVudCgkZXZlbnQpXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoa2V5dXApPVwiX2hhbmRsZUtleVVwRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiBcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
|