riverty-angular-wrappers
Version:
Set of Angular component wrappers for Riverty Design System web-components.
615 lines • 95 kB
JavaScript
import { __decorate } from "tslib";
/* tslint:disable */
/* auto-generated angular directive proxies */
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
import * as i0 from "@angular/core";
let RAccordion = class RAccordion {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RAccordion, selector: "r-accordion", inputs: { multiple: "multiple" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RAccordion = __decorate([
ProxyCmp({
inputs: ['multiple']
})
], RAccordion);
export { RAccordion };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordion, decorators: [{
type: Component,
args: [{
selector: 'r-accordion',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['multiple'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RAccordionItem = class RAccordionItem {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RAccordionItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RAccordionItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RAccordionItem, selector: "r-accordion-item", inputs: { expanded: "expanded", header: "header" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RAccordionItem = __decorate([
ProxyCmp({
inputs: ['expanded', 'header']
})
], RAccordionItem);
export { RAccordionItem };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionItem, decorators: [{
type: Component,
args: [{
selector: 'r-accordion-item',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['expanded', 'header'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RAccordionPanel = class RAccordionPanel {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RAccordionPanel, selector: "r-accordion-panel", inputs: { disabled: "disabled", expanded: "expanded", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RAccordionPanel = __decorate([
ProxyCmp({
inputs: ['disabled', 'expanded', 'trigger']
})
], RAccordionPanel);
export { RAccordionPanel };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionPanel, decorators: [{
type: Component,
args: [{
selector: 'r-accordion-panel',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'expanded', 'trigger'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RAccordionSection = class RAccordionSection {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChangeExpanded']);
}
};
RAccordionSection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionSection, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RAccordionSection.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RAccordionSection, selector: "r-accordion-section", inputs: { disabled: "disabled", expanded: "expanded" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RAccordionSection = __decorate([
ProxyCmp({
inputs: ['disabled', 'expanded']
})
], RAccordionSection);
export { RAccordionSection };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionSection, decorators: [{
type: Component,
args: [{
selector: 'r-accordion-section',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'expanded'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RAccordionTrigger = class RAccordionTrigger {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rClickTrigger', 'rKeyupTrigger']);
}
};
RAccordionTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionTrigger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RAccordionTrigger.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RAccordionTrigger, selector: "r-accordion-trigger", inputs: { disabled: "disabled", expanded: "expanded", icon: "icon", iconCollapsed: "iconCollapsed", iconExpanded: "iconExpanded", iconPosition: "iconPosition", panel: "panel", splitted: "splitted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RAccordionTrigger = __decorate([
ProxyCmp({
inputs: ['disabled', 'expanded', 'icon', 'iconCollapsed', 'iconExpanded', 'iconPosition', 'panel', 'splitted']
})
], RAccordionTrigger);
export { RAccordionTrigger };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RAccordionTrigger, decorators: [{
type: Component,
args: [{
selector: 'r-accordion-trigger',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'expanded', 'icon', 'iconCollapsed', 'iconExpanded', 'iconPosition', 'panel', 'splitted'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RBadge = class RBadge {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RBadge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RBadge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RBadge, selector: "r-badge", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RBadge = __decorate([
ProxyCmp({
inputs: ['variant']
})
], RBadge);
export { RBadge };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RBadge, decorators: [{
type: Component,
args: [{
selector: 'r-badge',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['variant'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RButton = class RButton {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RButton, selector: "r-button", inputs: { disabled: "disabled", expanded: "expanded", form: "form", href: "href", icon: "icon", iconColor: "iconColor", iconPosition: "iconPosition", mode: "mode", size: "size", target: "target", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RButton = __decorate([
ProxyCmp({
inputs: ['disabled', 'expanded', 'form', 'href', 'icon', 'iconColor', 'iconPosition', 'mode', 'size', 'target', 'type', 'variant']
})
], RButton);
export { RButton };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RButton, decorators: [{
type: Component,
args: [{
selector: 'r-button',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'expanded', 'form', 'href', 'icon', 'iconColor', 'iconPosition', 'mode', 'size', 'target', 'type', 'variant'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RCheckbox = class RCheckbox {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChange', 'rReset']);
}
};
RCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RCheckbox, selector: "r-checkbox", inputs: { checked: "checked", disabled: "disabled", error: "error", hint: "hint", invalid: "invalid", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RCheckbox = __decorate([
ProxyCmp({
inputs: ['checked', 'disabled', 'error', 'hint', 'invalid', 'name', 'required', 'value']
})
], RCheckbox);
export { RCheckbox };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RCheckbox, decorators: [{
type: Component,
args: [{
selector: 'r-checkbox',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['checked', 'disabled', 'error', 'hint', 'invalid', 'name', 'required', 'value'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RDesignSystemDevtools = class RDesignSystemDevtools {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RDesignSystemDevtools.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RDesignSystemDevtools, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RDesignSystemDevtools.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RDesignSystemDevtools, selector: "r-design-system-devtools", inputs: { designTokens: "designTokens" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RDesignSystemDevtools = __decorate([
ProxyCmp({
inputs: ['designTokens']
})
], RDesignSystemDevtools);
export { RDesignSystemDevtools };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RDesignSystemDevtools, decorators: [{
type: Component,
args: [{
selector: 'r-design-system-devtools',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['designTokens'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RIcon = class RIcon {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RIcon, selector: "r-icon", inputs: { color: "color", kit: "kit", name: "name", size: "size", src: "src", viewBox: "viewBox" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RIcon = __decorate([
ProxyCmp({
inputs: ['color', 'kit', 'name', 'size', 'src', 'viewBox']
})
], RIcon);
export { RIcon };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RIcon, decorators: [{
type: Component,
args: [{
selector: 'r-icon',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['color', 'kit', 'name', 'size', 'src', 'viewBox'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RInput = class RInput {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rClickIcon', 'rValidate', 'rInput', 'rChange', 'rReset']);
}
};
RInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RInput, selector: "r-input", inputs: { badInputMessage: "badInputMessage", customErrorMessage: "customErrorMessage", disabled: "disabled", error: "error", expanded: "expanded", form: "form", hint: "hint", icon: "icon", iconColor: "iconColor", iconPosition: "iconPosition", iconSubmit: "iconSubmit", invalid: "invalid", label: "label", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", optional: "optional", optionalText: "optionalText", pattern: "pattern", patternMismatchMessage: "patternMismatchMessage", placeholder: "placeholder", rangeOverflowMessage: "rangeOverflowMessage", rangeUnderflowMessage: "rangeUnderflowMessage", required: "required", step: "step", stepMismatchMessage: "stepMismatchMessage", tooLongMessage: "tooLongMessage", tooShortMessage: "tooShortMessage", tooltip: "tooltip", tooltipIcon: "tooltipIcon", tooltipIconColor: "tooltipIconColor", type: "type", typeMismatchMessage: "typeMismatchMessage", valid: "valid", validMarker: "validMarker", validMessage: "validMessage", value: "value", valueMissingMessage: "valueMissingMessage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RInput = __decorate([
ProxyCmp({
inputs: ['badInputMessage', 'customErrorMessage', 'disabled', 'error', 'expanded', 'form', 'hint', 'icon', 'iconColor', 'iconPosition', 'iconSubmit', 'invalid', 'label', 'max', 'maxlength', 'min', 'minlength', 'name', 'optional', 'optionalText', 'pattern', 'patternMismatchMessage', 'placeholder', 'rangeOverflowMessage', 'rangeUnderflowMessage', 'required', 'step', 'stepMismatchMessage', 'tooLongMessage', 'tooShortMessage', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'type', 'typeMismatchMessage', 'valid', 'validMarker', 'validMessage', 'value', 'valueMissingMessage']
})
], RInput);
export { RInput };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RInput, decorators: [{
type: Component,
args: [{
selector: 'r-input',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['badInputMessage', 'customErrorMessage', 'disabled', 'error', 'expanded', 'form', 'hint', 'icon', 'iconColor', 'iconPosition', 'iconSubmit', 'invalid', 'label', 'max', 'maxlength', 'min', 'minlength', 'name', 'optional', 'optionalText', 'pattern', 'patternMismatchMessage', 'placeholder', 'rangeOverflowMessage', 'rangeUnderflowMessage', 'required', 'step', 'stepMismatchMessage', 'tooLongMessage', 'tooShortMessage', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'type', 'typeMismatchMessage', 'valid', 'validMarker', 'validMessage', 'value', 'valueMissingMessage'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RLabel = class RLabel {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RLabel, selector: "r-label", inputs: { optional: "optional", optionalText: "optionalText", tooltip: "tooltip", tooltipIcon: "tooltipIcon", tooltipIconColor: "tooltipIconColor", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RLabel = __decorate([
ProxyCmp({
inputs: ['optional', 'optionalText', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'tooltipPosition']
})
], RLabel);
export { RLabel };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RLabel, decorators: [{
type: Component,
args: [{
selector: 'r-label',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['optional', 'optionalText', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'tooltipPosition'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RPagination = class RPagination {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChange', 'rNumberClick', 'rArrowClick']);
}
};
RPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RPagination, selector: "r-pagination", inputs: { arrows: "arrows", pageActive: "pageActive", pagesTotal: "pagesTotal", reveal: "reveal" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RPagination = __decorate([
ProxyCmp({
inputs: ['arrows', 'pageActive', 'pagesTotal', 'reveal']
})
], RPagination);
export { RPagination };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RPagination, decorators: [{
type: Component,
args: [{
selector: 'r-pagination',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['arrows', 'pageActive', 'pagesTotal', 'reveal'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RProgressBar = class RProgressBar {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RProgressBar, selector: "r-progress-bar", inputs: { progress: "progress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RProgressBar = __decorate([
ProxyCmp({
inputs: ['progress']
})
], RProgressBar);
export { RProgressBar };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RProgressBar, decorators: [{
type: Component,
args: [{
selector: 'r-progress-bar',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['progress'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RProgressSteps = class RProgressSteps {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RProgressSteps.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RProgressSteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RProgressSteps.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RProgressSteps, selector: "r-progress-steps", inputs: { activeStep: "activeStep", icon: "icon", steps: "steps" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RProgressSteps = __decorate([
ProxyCmp({
inputs: ['activeStep', 'icon', 'steps']
})
], RProgressSteps);
export { RProgressSteps };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RProgressSteps, decorators: [{
type: Component,
args: [{
selector: 'r-progress-steps',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['activeStep', 'icon', 'steps'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RRadioButton = class RRadioButton {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChange', 'rReset']);
}
};
RRadioButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RRadioButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RRadioButton, selector: "r-radio-button", inputs: { checked: "checked", disabled: "disabled", error: "error", hint: "hint", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RRadioButton = __decorate([
ProxyCmp({
inputs: ['checked', 'disabled', 'error', 'hint', 'name', 'value']
})
], RRadioButton);
export { RRadioButton };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RRadioButton, decorators: [{
type: Component,
args: [{
selector: 'r-radio-button',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['checked', 'disabled', 'error', 'hint', 'name', 'value'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RSelect = class RSelect {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rValidate', 'rChange', 'rReset', 'rChangeFilter', 'rInputFilter']);
}
};
RSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RSelect, selector: "r-select", inputs: { customErrorMessage: "customErrorMessage", disabled: "disabled", error: "error", filter: "filter", filterIcon: "filterIcon", filterIconColor: "filterIconColor", filterIconPosition: "filterIconPosition", filterValue: "filterValue", hint: "hint", invalid: "invalid", label: "label", name: "name", optional: "optional", optionalText: "optionalText", placeholder: "placeholder", required: "required", tooltip: "tooltip", tooltipIcon: "tooltipIcon", tooltipIconColor: "tooltipIconColor", valid: "valid", validMessage: "validMessage", value: "value", valueMissingMessage: "valueMissingMessage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RSelect = __decorate([
ProxyCmp({
inputs: ['customErrorMessage', 'disabled', 'error', 'filter', 'filterIcon', 'filterIconColor', 'filterIconPosition', 'filterValue', 'hint', 'invalid', 'label', 'name', 'optional', 'optionalText', 'placeholder', 'required', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'valid', 'validMessage', 'value', 'valueMissingMessage']
})
], RSelect);
export { RSelect };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RSelect, decorators: [{
type: Component,
args: [{
selector: 'r-select',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['customErrorMessage', 'disabled', 'error', 'filter', 'filterIcon', 'filterIconColor', 'filterIconPosition', 'filterValue', 'hint', 'invalid', 'label', 'name', 'optional', 'optionalText', 'placeholder', 'required', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'valid', 'validMessage', 'value', 'valueMissingMessage'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RSelectOption = class RSelectOption {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['optionClick', 'optionKeyup']);
}
};
RSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RSelectOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RSelectOption, selector: "r-select-option", inputs: { disabled: "disabled", icon: "icon", iconColor: "iconColor", iconPosition: "iconPosition", iconSize: "iconSize", label: "label", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RSelectOption = __decorate([
ProxyCmp({
inputs: ['disabled', 'icon', 'iconColor', 'iconPosition', 'iconSize', 'label', 'selected', 'value']
})
], RSelectOption);
export { RSelectOption };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RSelectOption, decorators: [{
type: Component,
args: [{
selector: 'r-select-option',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'icon', 'iconColor', 'iconPosition', 'iconSize', 'label', 'selected', 'value'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTab = class RTab {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['tabChange']);
}
};
RTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTab, selector: "r-tab", inputs: { active: "active", disabled: "disabled", panelId: "panelId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTab = __decorate([
ProxyCmp({
inputs: ['active', 'disabled', 'panelId']
})
], RTab);
export { RTab };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTab, decorators: [{
type: Component,
args: [{
selector: 'r-tab',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['active', 'disabled', 'panelId'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTabPanel = class RTabPanel {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RTabPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTabPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTabPanel, selector: "r-tab-panel", inputs: { active: "active", tabId: "tabId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTabPanel = __decorate([
ProxyCmp({
inputs: ['active', 'tabId']
})
], RTabPanel);
export { RTabPanel };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabPanel, decorators: [{
type: Component,
args: [{
selector: 'r-tab-panel',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['active', 'tabId'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTabs = class RTabs {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChange']);
}
};
RTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTabs, selector: "r-tabs", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTabs = __decorate([
ProxyCmp({})
], RTabs);
export { RTabs };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabs, decorators: [{
type: Component,
args: [{
selector: 'r-tabs',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: [],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTabsList = class RTabsList {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
}
};
RTabsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabsList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTabsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTabsList, selector: "r-tabs-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTabsList = __decorate([
ProxyCmp({})
], RTabsList);
export { RTabsList };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTabsList, decorators: [{
type: Component,
args: [{
selector: 'r-tabs-list',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: [],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTextarea = class RTextarea {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rChange', 'rInput', 'rReset', 'rValidate']);
}
};
RTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTextarea, selector: "r-textarea", inputs: { cols: "cols", customErrorMessage: "customErrorMessage", disabled: "disabled", error: "error", form: "form", hint: "hint", invalid: "invalid", label: "label", maxlength: "maxlength", minlength: "minlength", name: "name", optional: "optional", optionalText: "optionalText", placeholder: "placeholder", required: "required", resize: "resize", rows: "rows", tooLongMessage: "tooLongMessage", tooShortMessage: "tooShortMessage", tooltip: "tooltip", tooltipIcon: "tooltipIcon", tooltipIconColor: "tooltipIconColor", valid: "valid", validMarker: "validMarker", validMessage: "validMessage", value: "value", valueMissingMessage: "valueMissingMessage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTextarea = __decorate([
ProxyCmp({
inputs: ['cols', 'customErrorMessage', 'disabled', 'error', 'form', 'hint', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'optional', 'optionalText', 'placeholder', 'required', 'resize', 'rows', 'tooLongMessage', 'tooShortMessage', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'valid', 'validMarker', 'validMessage', 'value', 'valueMissingMessage']
})
], RTextarea);
export { RTextarea };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTextarea, decorators: [{
type: Component,
args: [{
selector: 'r-textarea',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['cols', 'customErrorMessage', 'disabled', 'error', 'form', 'hint', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'optional', 'optionalText', 'placeholder', 'required', 'resize', 'rows', 'tooLongMessage', 'tooShortMessage', 'tooltip', 'tooltipIcon', 'tooltipIconColor', 'valid', 'validMarker', 'validMessage', 'value', 'valueMissingMessage'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
let RTooltip = class RTooltip {
constructor(c, r, z) {
this.z = z;
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['rTooltipFocus']);
}
};
RTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RTooltip, selector: "r-tooltip", inputs: { position: "position", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
RTooltip = __decorate([
ProxyCmp({
inputs: ['position', 'text']
})
], RTooltip);
export { RTooltip };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RTooltip, decorators: [{
type: Component,
args: [{
selector: 'r-tooltip',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['position', 'text'],
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dyYXBwZXJzL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt3R0FMVSxVQUFVOzRGQUFWLFVBQVUscUZBSlgsMkJBQTJCO0FBSTFCLFVBQVU7SUFWdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ3JCLENBQUM7R0FRVyxVQUFVLENBTXRCO1NBTlksVUFBVTs0RkFBVixVQUFVO2tCQVB0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCOztBQXVCTSxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBRXpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gs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WUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOztzR0FOVSxRQUFROzBGQUFSLFFBQVEsaUdBSlQsMkJBQTJCO0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztLQUM3QixDQUFDO0dBUVcsUUFBUSxDQU9wQjtTQVBZLFFBQVE7NEZBQVIsUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAcml2ZXJ0eS93ZWItY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ211bHRpcGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbXVsdGlwbGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUkFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlJBY2NvcmRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaGVhZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHBhbmRlZCcsICdoZWFkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgUkFjY29yZGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSQWNjb3JkaW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuUkFjY29yZGlvbkl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAndHJpZ2dlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1hY2NvcmRpb24tcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ3RyaWdnZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgUkFjY29yZGlvblBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUkFjY29yZGlvblBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5SQWNjb3JkaW9uUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXhwYW5kZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItYWNjb3JkaW9uLXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJBY2NvcmRpb25TZWN0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnckNoYW5nZUV4cGFuZGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJBY2NvcmRpb25TZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5SQWNjb3JkaW9uU2VjdGlvbiB7XG4gIC8qKlxuICAgKiBFbWl0IGNsaWNrIG9uIHRyaWdnZXJcbiAgICovXG4gIHJDaGFuZ2VFeHBhbmRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJBY2NvcmRpb25TZWN0aW9uRWxlbWVudCwgZXhwYW5kZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdleHBhbmRlZCcsICdpY29uJywgJ2ljb25Db2xsYXBzZWQnLCAnaWNvbkV4cGFuZGVkJywgJ2ljb25Qb3NpdGlvbicsICdwYW5lbCcsICdzcGxpdHRlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1hY2NvcmRpb24tdHJpZ2dlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaWNvbicsICdpY29uQ29sbGFwc2VkJywgJ2ljb25FeHBhbmRlZCcsICdpY29uUG9zaXRpb24nLCAncGFuZWwnLCAnc3BsaXR0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUkFjY29yZGlvblRyaWdnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydyQ2xpY2tUcmlnZ2VyJywgJ3JLZXl1cFRyaWdnZXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUkFjY29yZGlvblRyaWdnZXIgZXh0ZW5kcyBDb21wb25lbnRzLlJBY2NvcmRpb25UcmlnZ2VyIHtcbiAgLyoqXG4gICAqIEVtaXQgY2xpY2sgb24gdHJpZ2dlclxuICAgKi9cbiAgckNsaWNrVHJpZ2dlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJBY2NvcmRpb25UcmlnZ2VyRWxlbWVudCwgcGFuZWxJZDogc3RyaW5nLCBleHBhbmRlZDogYm9vbGVhbiwgfT4+O1xuICAvKipcbiAgICogRW1pdCBrZXl1cCBvbiB0cmlnZ2VyXG4gICAqL1xuICByS2V5dXBUcmlnZ2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUkFjY29yZGlvblRyaWdnZXJFbGVtZW50LCBwYW5lbElkOiBzdHJpbmcsIGV4cGFuZGVkOiBib29sZWFuLCB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUkJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUkJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5SQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnZm9ybScsICdocmVmJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2ljb25Qb3NpdGlvbicsICdtb2RlJywgJ3NpemUnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2Zvcm0nLCAnaHJlZicsICdpY29uJywgJ2ljb25Db2xvcicsICdpY29uUG9zaXRpb24nLCAnbW9kZScsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlJCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaW50JywgJ2ludmFsaWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaW50JywgJ2ludmFsaWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBSQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydyQ2hhbmdlJywgJ3JSZXNldCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlJDaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbSBgckNoYW5nZWAgZXZlbnQgd2hlbiBjaGVja2JveCBvbkNoYW5nZSBldmVudCBlbWl0dGVkLlxuRW1pdHRlZCBgZXZlbnQuZGV0YWlsc2AgY29udGFpbiBjaGVja2JveCB2YWx1ZSBhbmQgY2hlY2tlZCBzdGF0ZS5cbiAgICovXG4gIHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGVsZW1lbnQ6IEhUTUxSQ2hlY2tib3hFbGVtZW50LCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGByUmVzZXRgIHdoZW4gY29tcG9uZW50IHdhcyByZXNldCB0byBpbml0aWFsIHN0YXRlIGJ5IGZvcm0gcmVzZXRcbiAgICovXG4gIHJSZXNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJDaGVja2JveEVsZW1lbnQsIHZhbHVlOiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNpZ25Ub2tlbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItZGVzaWduLXN5c3RlbS1kZXZ0b29scycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzaWduVG9rZW5zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJEZXNpZ25TeXN0ZW1EZXZ0b29scyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJEZXNpZ25TeXN0ZW1EZXZ0b29scyBleHRlbmRzIENvbXBvbmVudHMuUkRlc2lnblN5c3RlbURldnRvb2xzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2tpdCcsICduYW1lJywgJ3NpemUnLCAnc3JjJywgJ3ZpZXdCb3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAna2l0JywgJ25hbWUnLCAnc2l6ZScsICdzcmMnLCAndmlld0JveCddLFxufSlcbmV4cG9ydCBjbGFzcyBSSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5SSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWRJbnB1dE1lc3NhZ2UnLCAnY3VzdG9tRXJyb3JNZXNzYWdlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2V4cGFuZGVkJywgJ2Zvcm0nLCAnaGludCcsICdpY29uJywgJ2ljb25Db2xvcicsICdpY29uUG9zaXRpb24nLCAnaWNvblN1Ym1pdCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ29wdGlvbmFsJywgJ29wdGlvbmFsVGV4dCcsICdwYXR0ZXJuJywgJ3BhdHRlcm5NaXNtYXRjaE1lc3NhZ2UnLCAncGxhY2Vob2xkZXInLCAncmFuZ2VPdmVyZmxvd01lc3NhZ2UnLCAncmFuZ2VVbmRlcmZsb3dNZXNzYWdlJywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAnc3RlcE1pc21hdGNoTWVzc2FnZScsICd0b29Mb25nTWVzc2FnZScsICd0b29TaG9ydE1lc3NhZ2UnLCAndG9vbHRpcCcsICd0b29sdGlwSWNvbicsICd0b29sdGlwSWNvbkNvbG9yJywgJ3R5cGUnLCAndHlwZU1pc21hdGNoTWVzc2FnZScsICd2YWxpZCcsICd2YWxpZE1hcmtlcicsICd2YWxpZE1lc3NhZ2UnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTWVzc2FnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFkSW5wdXRNZXNzYWdlJywgJ2N1c3RvbUVycm9yTWVzc2FnZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdleHBhbmRlZCcsICdmb3JtJywgJ2hpbnQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnaWNvblBvc2l0aW9uJywgJ2ljb25TdWJtaXQnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbmFtZScsICdvcHRpb25hbCcsICdvcHRpb25hbFRleHQnLCAncGF0dGVybicsICdwYXR0ZXJuTWlzbWF0Y2hNZXNzYWdlJywgJ3BsYWNlaG9sZGVyJywgJ3JhbmdlT3ZlcmZsb3dNZXNzYWdlJywgJ3JhbmdlVW5kZXJmbG93TWVzc2FnZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3N0ZXBNaXNtYXRjaE1lc3NhZ2UnLCAndG9vTG9uZ01lc3NhZ2UnLCAndG9vU2hvcnRNZXNzYWdlJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEljb24nLCAndG9vbHRpcEljb25Db2xvcicsICd0eXBlJywgJ3R5cGVNaXNtYXRjaE1lc3NhZ2UnLCAndmFsaWQnLCAndmFsaWRNYXJrZXInLCAndmFsaWRNZXNzYWdlJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ01lc3NhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgUklucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnckNsaWNrSWNvbicsICdyVmFsaWRhdGUnLCAncklucHV0JywgJ3JDaGFuZ2UnLCAnclJlc2V0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuUklucHV0IHtcbiAgLyoqXG4gICAqIEVtaXRzIGByQ2xpY2tJY29uYCBldmVudCBvbiB0aGUgYDxyLWljb24+YCBkaXNwbGF5ZWQgd2l0aCBcImljb25cIiBhdHRyaWJ1dGUgcHJvdmlkZWRcbiAgICovXG4gIHJDbGlja0ljb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IGFmdGVyIGVhY2ggdmFsaWRhdGlvblxuICAgKi9cbiAgclZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGF0ZTogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzICdySW5wdXQnIGV2ZW50IHdoZW4gdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2luZ1xuICAgKi9cbiAgcklucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUklucHV0RWxlbWVudCwgdmFsdWU6IGFueSB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyAnckNoYW5nZScgZXZlbnQgd2hlbiB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGNoYW5nZWRcbiAgICovXG4gIHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGVsZW1lbnQ6IEhUTUxSSW5wdXRFbGVtZW50LCB2YWx1ZTogYW55IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzICdyUmVzZXQnIGV2ZW50IHdoZW4gZm9ybSBjb250YWluaW5nIHRoZSBjb21wb25lbnQgd2FzIHJlc2V0XG4gICAqL1xuICByUmVzZXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGVsZW1lbnQ6IEhUTUxSSW5wdXRFbGVtZW50LCB2YWx1ZTogYW55IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnb3B0aW9uYWwnLCAnb3B0aW9uYWxUZXh0JywgJ3Rvb2x0aXAnLCAndG9vbHRpcEljb24nLCAndG9vbHRpcEljb25Db2xvcicsICd0b29sdGlwUG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wdGlvbmFsJywgJ29wdGlvbmFsVGV4dCcsICd0b29sdGlwJywgJ3Rvb2x0aXBJY29uJywgJ3Rvb2x0aXBJY29uQ29sb3InLCAndG9vbHRpcFBvc2l0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuUkxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fycm93cycsICdwYWdlQWN0aXZlJywgJ3BhZ2VzVG90YWwnLCAncmV2ZWFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fycm93cycsICdwYWdlQWN0aXZlJywgJ3BhZ2VzVG90YWwnLCAncmV2ZWFsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnckNoYW5nZScsICdyTnVtYmVyQ2xpY2snLCAnckFycm93Q2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUlBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlJQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFNpZ25pZmllcyB0aGF0IGN1cnJlbnRseSBhY3RpdmUgcGFnZSB3YXMgY2hhbmdlZC5cblxuUGFnaW5hdGlvbiBzdGF0ZSBpcyBwYXNzZWQgYXMgcGFydCBvZiBldmVudCBgZGV0YWlsYCBwcm9wZXJ0eS4gQGV4YW1wbGUgY29uc3QgbXlQYWdpbmF0aW9uRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdyLXBhZ2luYXRpb24nKTtcbm15UGFnaW5hdGlvbkVsLmFkZEV2ZW50TGlzdGVuZXIoJ3JDaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgY29uc29sZS5sb2coYFBhZ2UgJHtldmVudC5kZXRhaWx9IHdhcyBzZWxlY3RlZGApXG59KTtcbiAgICovXG4gIHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvdGFsOiBudW1iZXIsIGFjdGl2ZTogbnVtYmVyLCBwcmV2aW91czogbnVtYmVyLCBuZXh0OiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogU2lnbmlmaWVzIHRoYXQgb25lIG9mIHRoZSBwYWdpbmF0aW9uIG51bWJlciBidXR0b25zIHdhcyBjbGlrZWQuXG5cblBhZ2luYXRpb24gc3RhdGUgaXMgcGFzc2VkIGFzIHBhcnQgb2YgZXZlbnQgYGRldGFpbGAgcHJvcGVydHkuIEBleGFtcGxlIGNvbnN0IG15UGFnaW5hdGlvbkVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignci1wYWdpbmF0aW9uJyk7XG5teVBhZ2luYXRpb25FbC5hZGRFdmVudExpc3RlbmVyKCdyTnVtYmVyQ2xpY2snLCAoZXZlbnQpID0+IHtcbiAgY29uc29sZS5sb2coYFBhZ2UgJHtldmVudC5kZXRhaWx9IHdhcyBzZWxlY3RlZGApXG59KTtcbiAgICovXG4gIHJOdW1iZXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdG90YWw6IG51bWJlciwgYWN0aXZlOiBudW1iZXIsIHByZXZpb3VzOiBudW1iZXIsIG5leHQ6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBTaWduaWZpZXMgdGhhdCBvbmUgb2YgdGhlIHBhZ2luYXRpb24gYXJyb3cgYnV0dG9ucyB3YXMgY2xpa2VkLlxuXG5QYWdpbmF0aW9uIHN0YXRlIGFuZCBgZGlyZWN0aW9uYCBhcmUgcGFzc2VkIGFzIHBhcnQgb2YgZXZlbnQgYGRldGFpbGAgcHJvcGVydHkuIEBleGFtcGxlIGNvbnN0IG15UGFnaW5hdGlvbkVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignci1wYWdpbmF0aW9uJyk7XG5teVBhZ2luYXRpb25FbC5hZGRFdmVudExpc3RlbmVyKCdyQXJyb3dDbGljaycsIChldmVudCkgPT4ge1xuICBjb25zb2xlLmxvZyhgUGFnZSAke2V2ZW50LmRldGFpbH0gd2FzIHNlbGVjdGVkYClcbn0pO1xuICAgKi9cbiAgckFycm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvdGFsOiBudW1iZXIsIGFjdGl2ZTogbnVtYmVyLCBwcmV2aW91czogbnVtYmVyLCBuZXh0OiBudW1iZXIsIGRpcmVjdGlvbjogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJvZ3Jlc3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItcHJvZ3Jlc3MtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwcm9ncmVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSUHJvZ3Jlc3NCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSUHJvZ3Jlc3NCYXIgZXh0ZW5kcyBDb21wb25lbnRzLlJQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmVTdGVwJywgJ2ljb24nLCAnc3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItcHJvZ3Jlc3Mtc3RlcHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVN0ZXAnLCAnaWNvbicsICdzdGVwcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSUHJvZ3Jlc3NTdGVwcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJQcm9ncmVzc1N0ZXBzIGV4dGVuZHMgQ29tcG9uZW50cy5SUHJvZ3Jlc3NTdGVwcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpbnQnLCAnbmFtZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci1yYWRpby1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGludCcsICduYW1lJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJSYWRpb0J1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3JDaGFuZ2UnLCAnclJlc2V0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJSYWRpb0J1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuUlJhZGlvQnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXRzIGByQ2hhbmdlYCBldmVudCBvbiB0aGUgYDxyLXJhZGlvLWJ1dHRvbj5gIHdoZW4gc3RhdHVzIGNoYW5nZXNcbiAgICovXG4gIHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGVsZW1lbnQ6IEhUTUxSUmFkaW9CdXR0b25FbGVtZW50LCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGByUmVzZXRgIGV2ZW50IG9uIHRoZSBgPHItcmFkaW8tYnV0dG9uPmAgb25SZXNldCBjaGFuZ2VzIGl0cyBzdGF0dXNcbiAgICovXG4gIHJSZXNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJSYWRpb0J1dHRvbkVsZW1lbnQsIHZhbHVlOiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21FcnJvck1lc3NhZ2UnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZmlsdGVyJywgJ2ZpbHRlckljb24nLCAnZmlsdGVySWNvbkNvbG9yJywgJ2ZpbHRlckljb25Qb3NpdGlvbicsICdmaWx0ZXJWYWx1ZScsICdoaW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdvcHRpb25hbCcsICdvcHRpb25hbFRleHQnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAndG9vbHRpcCcsICd0b29sdGlwSWNvbicsICd0b29sdGlwSWNvbkNvbG9yJywgJ3ZhbGlkJywgJ3ZhbGlkTWVzc2FnZScsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdNZXNzYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tRXJyb3JNZXNzYWdlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ZpbHRlcicsICdmaWx0ZXJJY29uJywgJ2ZpbHRlckljb25Db2xvcicsICdmaWx0ZXJJY29uUG9zaXRpb24nLCAnZmlsdGVyVmFsdWUnLCAnaGludCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAnb3B0aW9uYWwnLCAnb3B0aW9uYWxUZXh0JywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEljb24nLCAndG9vbHRpcEljb25Db2xvcicsICd2YWxpZCcsICd2YWxpZE1lc3NhZ2UnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTWVzc2FnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBSU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnclZhbGlkYXRlJywgJ3JDaGFuZ2UnLCAnclJlc2V0JywgJ3JDaGFuZ2VGaWx0ZXInLCAncklucHV0RmlsdGVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLlJTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHMgZXZlbnQgYWZ0ZXIgZWFjaCB2YWxpZGF0aW9uXG4gICAqL1xuICByVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGludmFsaWQ6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyBgckNoYW5nZWAgZXZlbnQgd2hlbiBgPHItc2VsZWN0PmAgdmFsdWUgcHJvcGVydHkgY2hhbmdlc1xuICAgKi9cbiAgckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJTZWxlY3RFbGVtZW50LCB2YWx1ZTogYW55IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGByUmVzZXRgIGV2ZW50IHdoZW4gYDxyLXNlbGVjdD5gIG9uUmVzZXQgZXZlbnQgaGFwcGVuc1xuICAgKi9cbiAgclJlc2V0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUlNlbGVjdEVsZW1lbnQsIHZhbHVlOiBhbnkgfT4+O1xuICAvKipcbiAgICogRW1pdHMgYHJDaGFuZ2VGaWx0ZXJgIGV2ZW50IHdoZW4gYDxyLXNlbGVjdD5gIGZpbHRlciBpbnB1dCB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICByQ2hhbmdlRmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogYW55IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGBySW5wdXRGaWx0ZXJgIGV2ZW50IG9uIHRoZSBgPHItc2VsZWN0PmAgZmlsdGVyIGlucHV0IG9uSW5wdXQgZXZlbnQgaGFwcGVuc1xuICAgKi9cbiAgcklucHV0RmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogYW55IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnaWNvblBvc2l0aW9uJywgJ2ljb25TaXplJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLXNlbGVjdC1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2ljb25Qb3NpdGlvbicsICdpY29uU2l6ZScsICdsYWJlbCcsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBSU2VsZWN0T3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnb3B0aW9uQ2xpY2snLCAnb3B0aW9uS2V5dXAnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUlNlbGVjdE9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuUlNlbGVjdE9wdGlvbiB7XG4gIC8qKlxuICAgKiBFbWl0IGNsaWNrIG9uIHRoZSBvcHRpb25cbiAgICovXG4gIG9wdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUlNlbGVjdE9wdGlvbkVsZW1lbnQsIHZhbHVlOiBhbnkgfT4+O1xuICAvKipcbiAgICogRW1pdCBrZXl1cCBvbiB0aGUgb3B0aW9uXG4gICAqL1xuICBvcHRpb25LZXl1cDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsga2V5OiBzdHJpbmcsIGVsZW1lbnQ6IEhUTUxSU2VsZWN0T3B0aW9uRWxlbWVudCwgdmFsdWU6IGFueSB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCcsICdwYW5lbElkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVkJywgJ3BhbmVsSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUlRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5SVGFiIHtcbiAgLyoqXG4gICAqIEVtaXRzIGBjbGlja2AgZXZlbnQgb24gdGhlIGA8ci10YWI+YFxuICAgKi9cbiAgdGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUlRhYkVsZW1lbnQgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAndGFiSWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItdGFiLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAndGFiSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUlRhYlBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUlRhYlBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5SVGFiUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItdGFicycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBSVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3JDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUlRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlJUYWJzIHtcbiAgLyoqXG4gICAqIEVtaXRzIGByQ2hhbmdlYCBldmVudCB3aGVuIGFjdGl2ZSBgPHItdGFiPmAgY2hhbmdlc1xuICAgKi9cbiAgckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJUYWJFbGVtZW50IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ItdGFicy1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFJUYWJzTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJUYWJzTGlzdCBleHRlbmRzIENvbXBvbmVudHMuUlRhYnNMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHMnLCAnY3VzdG9tRXJyb3JNZXNzYWdlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Zvcm0nLCAnaGludCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbmFtZScsICdvcHRpb25hbCcsICdvcHRpb25hbFRleHQnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAndG9vTG9uZ01lc3NhZ2UnLCAndG9vU2hvcnRNZXNzYWdlJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEljb24nLCAndG9vbHRpcEljb25Db2xvcicsICd2YWxpZCcsICd2YWxpZE1hcmtlcicsICd2YWxpZE1lc3NhZ2UnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTWVzc2FnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnci10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29scycsICdjdXN0b21FcnJvck1lc3NhZ2UnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZm9ybScsICdoaW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ29wdGlvbmFsJywgJ29wdGlvbmFsVGV4dCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICd0b29Mb25nTWVzc2FnZScsICd0b29TaG9ydE1lc3NhZ2UnLCAndG9vbHRpcCcsICd0b29sdGlwSWNvbicsICd0b29sdGlwSWNvbkNvbG9yJywgJ3ZhbGlkJywgJ3ZhbGlkTWFya2VyJywgJ3ZhbGlkTWVzc2FnZScsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdNZXNzYWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJUZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3JDaGFuZ2UnLCAncklucHV0JywgJ3JSZXNldCcsICdyVmFsaWRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUlRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5SVGV4dGFyZWEge1xuICAvKipcbiAgICogRW1pdHMgYHJDaGFuZ2VgIHdoZW4gY29tcG9uZW50J3MgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZFxuICAgKi9cbiAgckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZWxlbWVudDogSFRNTFJUZXh0YXJlYUVsZW1lbnQsIHZhbHVlOiBhbnkgfT4+O1xuICAvKipcbiAgICogRW1pdHMgYHJJbnB1dGAgd2hlbiBjb21wb25lbnQncyB2YWx1ZSBpcyBjaGFuZ2luZ1xuICAgKi9cbiAgcklucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUlRleHRhcmVhRWxlbWVudCwgdmFsdWU6IGFueSB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyBgclJlc2V0YCB3aGVuIGNvbXBvbmVudCB3YXMgcmVzZXQgdG8gaW5pdGlhbCBzdGF0ZSBieSBmb3JtIHJlc2V0XG4gICAqL1xuICByUmVzZXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGVsZW1lbnQ6IEhUTUxSVGV4dGFyZWFFbGVtZW50LCB2YWx1ZTogYW55IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IGFmdGVyIGVhY2ggdmFsaWRhdGlvblxuICAgKi9cbiAgclZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGF0ZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwb3NpdGlvbicsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Bvc2l0aW9uJywgJ3RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUlRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydyVG9vbHRpcEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5SVG9vbHRpcCB7XG4gIC8qKlxuICAgKiBUb29sdGlwIGZvY3VzIGV2ZW50XG4gICAqL1xuICByVG9vbHRpcEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBlbGVtZW50OiBIVE1MUlRvb2x0aXBFbGVtZW50IH0+Pjtcbn1cblxuXG4iXX0=