@wizco/fenixds-ngx 17.0.19 → 17.0.22

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.
@@ -0,0 +1,22 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class TimelineComponent {
6
+ timelineItems = [];
7
+ statusToIcon = {
8
+ finalized: 'check',
9
+ current: '',
10
+ waiting: '',
11
+ error: 'priority_high'
12
+ };
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimelineComponent, isStandalone: true, selector: "wco-timeline", inputs: { timelineItems: "timelineItems" }, ngImport: i0, template: "<div class=\"wco-timeline\">\n <div class=\"wco-timeline-item\" *ngFor=\"let item of timelineItems; let i = index\">\n <div class=\"wco-timeline-item-dot-container\">\n <div class=\"wco-timeline-item-dot-container-inner\">\n <span class=\"wco-timeline-item-dot-number\">\n {{ timelineItems.length - i }}\n </span>\n <div class=\"wco-timeline-item-dot-line-container\">\n <div [className]=\"'wco-timeline-item-dot wco-timeline-item-dot-' + item.status\">\n <span [className]=\"'material-icons wco-timeline-item-dot-icon wco-timeline-item-dot-icon-' + item.status\"> {{ statusToIcon[item.status] }} </span>\n </div>\n <hr class=\"wco-timeline-item-dot-line\" />\n </div>\n </div>\n </div>\n <div class=\"wco-timeline-item-content-container\">\n <div class=\"wco-timeline-item-content\">\n <h4 [className]=\"'wco-timeline-item-content-title wco-timeline-item-content-title-' + item.status\"> {{ item.title }} </h4>\n <p [className]=\"'wco-timeline-item-content-description wco-timeline-item-content-description-' + item.status\"> {{ item.description }} </p>\n <button class=\"wco-btn btn-primary btn-link\" *ngIf=\"item.action\" (click)=\"item.action.handler()\" [disabled]=\"item.status === 'waiting'\"> {{item.action.label}} </button>\n </div>\n <span [className]=\"'wco-timeline-item-content-date wco-timeline-item-content-date-' + item.status\"> {{ item.date }} </span>\n </div>\n </div>\n</div>\n", styles: [".wco-timeline{display:flex;flex-wrap:wrap;flex-direction:column;align-items:center;margin:20px 0;--wco-timeline-dot-color: var(--wco-color-neutral-300)}.wco-timeline .wco-timeline-item{width:100%;display:flex;flex-direction:row;gap:10px}.wco-timeline .wco-timeline-item-dot-container{display:flex;flex-direction:column;align-items:center;gap:5px}.wco-timeline .wco-timeline-item-dot-container-inner{height:100%;display:flex;flex-direction:row;gap:5px}.wco-timeline .wco-timeline-item-dot-line-container{display:flex;flex-direction:column;align-items:center}.wco-timeline .wco-timeline-item-dot-line{width:var(--wco-borderwidth-thin);height:100%;background-color:var(--wco-color-neutral-500)}.wco-timeline .wco-timeline-item-dot{min-width:20px;min-height:20px;max-width:20px;max-height:20px;justify-content:center;align-items:center;display:flex;border-radius:var(--wco-radius-circular);background-color:var(--wco-timeline-dot-color)}.wco-timeline .wco-timeline-item-dot-finalized{--wco-timeline-dot-color: var(--wco-color-success-500)}.wco-timeline .wco-timeline-item-dot-current{--wco-timeline-dot-color: var(--wco-color-primary-600)}.wco-timeline .wco-timeline-item-dot-waiting{--wco-timeline-dot-color: var(--wco-color-neutral-300)}.wco-timeline .wco-timeline-item-dot-error{--wco-timeline-dot-color: var(--wco-color-danger-100)}.wco-timeline .wco-timeline-item-content{flex-direction:column;display:flex;margin-bottom:var(--wco-spacing-xl)}@media (max-width: 900px){.wco-timeline .wco-timeline-item-content{margin-bottom:var(--wco-spacing-xs)}}.wco-timeline .wco-timeline-item-content-container{width:100%;display:flex;justify-content:space-between;flex-direction:row;gap:2rem}.wco-timeline .wco-timeline-item-content-title{font-size:var(--wco-font-size-sm);font-weight:var(--wco-timeline-item-content-title-font-weight);color:var(--wco-timeline-item-content-title-font-color);margin-bottom:var(--wco-spacing-quark)}.wco-timeline .wco-timeline-item-content-title-finalized{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-900)}.wco-timeline .wco-timeline-item-content-title-current{--wco-timeline-item-content-title-font-weight: 700;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-900)}.wco-timeline .wco-timeline-item-content-title-waiting{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-600)}.wco-timeline .wco-timeline-item-content-title-error{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-danger-600)}.wco-timeline .wco-timeline-item-content-description{font-size:var(--wco-font-size-sm);font-weight:var(--wco-timeline-item-content-description-font-weight);color:var(--wco-timeline-item-content-description-font-color);margin-bottom:var(--wco-spacing-quark)}.wco-timeline .wco-timeline-item-content-description-finalized,.wco-timeline .wco-timeline-item-content-description-current{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-content-description-waiting{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-600)}.wco-timeline .wco-timeline-item-content-description-error{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-content-date{font-size:1rem;color:var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-dot-icon{font-size:.8rem;color:var(--wco-timeline-dot-icon-color)}.wco-timeline .wco-timeline-item-dot-icon-finalized{--wco-timeline-dot-icon-color: var(--wco-color-neutral-50)}.wco-timeline .wco-timeline-item-dot-icon-error{--wco-timeline-dot-icon-color: var(--wco-color-danger-600)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'wco-timeline', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"wco-timeline\">\n <div class=\"wco-timeline-item\" *ngFor=\"let item of timelineItems; let i = index\">\n <div class=\"wco-timeline-item-dot-container\">\n <div class=\"wco-timeline-item-dot-container-inner\">\n <span class=\"wco-timeline-item-dot-number\">\n {{ timelineItems.length - i }}\n </span>\n <div class=\"wco-timeline-item-dot-line-container\">\n <div [className]=\"'wco-timeline-item-dot wco-timeline-item-dot-' + item.status\">\n <span [className]=\"'material-icons wco-timeline-item-dot-icon wco-timeline-item-dot-icon-' + item.status\"> {{ statusToIcon[item.status] }} </span>\n </div>\n <hr class=\"wco-timeline-item-dot-line\" />\n </div>\n </div>\n </div>\n <div class=\"wco-timeline-item-content-container\">\n <div class=\"wco-timeline-item-content\">\n <h4 [className]=\"'wco-timeline-item-content-title wco-timeline-item-content-title-' + item.status\"> {{ item.title }} </h4>\n <p [className]=\"'wco-timeline-item-content-description wco-timeline-item-content-description-' + item.status\"> {{ item.description }} </p>\n <button class=\"wco-btn btn-primary btn-link\" *ngIf=\"item.action\" (click)=\"item.action.handler()\" [disabled]=\"item.status === 'waiting'\"> {{item.action.label}} </button>\n </div>\n <span [className]=\"'wco-timeline-item-content-date wco-timeline-item-content-date-' + item.status\"> {{ item.date }} </span>\n </div>\n </div>\n</div>\n", styles: [".wco-timeline{display:flex;flex-wrap:wrap;flex-direction:column;align-items:center;margin:20px 0;--wco-timeline-dot-color: var(--wco-color-neutral-300)}.wco-timeline .wco-timeline-item{width:100%;display:flex;flex-direction:row;gap:10px}.wco-timeline .wco-timeline-item-dot-container{display:flex;flex-direction:column;align-items:center;gap:5px}.wco-timeline .wco-timeline-item-dot-container-inner{height:100%;display:flex;flex-direction:row;gap:5px}.wco-timeline .wco-timeline-item-dot-line-container{display:flex;flex-direction:column;align-items:center}.wco-timeline .wco-timeline-item-dot-line{width:var(--wco-borderwidth-thin);height:100%;background-color:var(--wco-color-neutral-500)}.wco-timeline .wco-timeline-item-dot{min-width:20px;min-height:20px;max-width:20px;max-height:20px;justify-content:center;align-items:center;display:flex;border-radius:var(--wco-radius-circular);background-color:var(--wco-timeline-dot-color)}.wco-timeline .wco-timeline-item-dot-finalized{--wco-timeline-dot-color: var(--wco-color-success-500)}.wco-timeline .wco-timeline-item-dot-current{--wco-timeline-dot-color: var(--wco-color-primary-600)}.wco-timeline .wco-timeline-item-dot-waiting{--wco-timeline-dot-color: var(--wco-color-neutral-300)}.wco-timeline .wco-timeline-item-dot-error{--wco-timeline-dot-color: var(--wco-color-danger-100)}.wco-timeline .wco-timeline-item-content{flex-direction:column;display:flex;margin-bottom:var(--wco-spacing-xl)}@media (max-width: 900px){.wco-timeline .wco-timeline-item-content{margin-bottom:var(--wco-spacing-xs)}}.wco-timeline .wco-timeline-item-content-container{width:100%;display:flex;justify-content:space-between;flex-direction:row;gap:2rem}.wco-timeline .wco-timeline-item-content-title{font-size:var(--wco-font-size-sm);font-weight:var(--wco-timeline-item-content-title-font-weight);color:var(--wco-timeline-item-content-title-font-color);margin-bottom:var(--wco-spacing-quark)}.wco-timeline .wco-timeline-item-content-title-finalized{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-900)}.wco-timeline .wco-timeline-item-content-title-current{--wco-timeline-item-content-title-font-weight: 700;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-900)}.wco-timeline .wco-timeline-item-content-title-waiting{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-neutral-600)}.wco-timeline .wco-timeline-item-content-title-error{--wco-timeline-item-content-title-font-weight: 400;--wco-timeline-item-content-title-font-color: var(--wco-color-danger-600)}.wco-timeline .wco-timeline-item-content-description{font-size:var(--wco-font-size-sm);font-weight:var(--wco-timeline-item-content-description-font-weight);color:var(--wco-timeline-item-content-description-font-color);margin-bottom:var(--wco-spacing-quark)}.wco-timeline .wco-timeline-item-content-description-finalized,.wco-timeline .wco-timeline-item-content-description-current{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-content-description-waiting{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-600)}.wco-timeline .wco-timeline-item-content-description-error{--wco-timeline-item-content-description-font-weight: 400;--wco-timeline-item-content-description-font-color: var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-content-date{font-size:1rem;color:var(--wco-color-neutral-700)}.wco-timeline .wco-timeline-item-dot-icon{font-size:.8rem;color:var(--wco-timeline-dot-icon-color)}.wco-timeline .wco-timeline-item-dot-icon-finalized{--wco-timeline-dot-icon-color: var(--wco-color-neutral-50)}.wco-timeline .wco-timeline-item-dot-icon-error{--wco-timeline-dot-icon-color: var(--wco-color-danger-600)}\n"] }]
19
+ }], propDecorators: { timelineItems: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBc0IvQyxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRTVDLFlBQVksR0FBRztRQUNiLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsZUFBZTtLQUN2QixDQUFBO3dHQVJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLG9IQ3ZCOUIsKy9DQXlCQSw4N0hEUFksWUFBWTs7NEZBS1gsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsaUJBR1IsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5leHBvcnQgdHlwZSBUaW1lbGluZUl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgc3RhdHVzOiAnZmluYWxpemVkJyB8ICdjdXJyZW50JyB8ICd3YWl0aW5nJyB8ICdlcnJvcic7XG4gIGFjdGlvbj86IHtcbiAgICBoYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXRpbWVsaW5lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVsaW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQge1xuICBASW5wdXQoKSB0aW1lbGluZUl0ZW1zOiBUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gIHN0YXR1c1RvSWNvbiA9IHtcbiAgICBmaW5hbGl6ZWQ6ICdjaGVjaycsXG4gICAgY3VycmVudDogJycsXG4gICAgd2FpdGluZzogJycsXG4gICAgZXJyb3I6ICdwcmlvcml0eV9oaWdoJ1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2NvLXRpbWVsaW5lXCI+XG4gIDxkaXYgY2xhc3M9XCJ3Y28tdGltZWxpbmUtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRpbWVsaW5lSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwid2NvLXRpbWVsaW5lLWl0ZW0tZG90LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndjby10aW1lbGluZS1pdGVtLWRvdC1jb250YWluZXItaW5uZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tdGltZWxpbmUtaXRlbS1kb3QtbnVtYmVyXCI+XG4gICAgICAgICAge3sgdGltZWxpbmVJdGVtcy5sZW5ndGggLSBpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndjby10aW1lbGluZS1pdGVtLWRvdC1saW5lLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzTmFtZV09XCInd2NvLXRpbWVsaW5lLWl0ZW0tZG90IHdjby10aW1lbGluZS1pdGVtLWRvdC0nICsgaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc05hbWVdPVwiJ21hdGVyaWFsLWljb25zIHdjby10aW1lbGluZS1pdGVtLWRvdC1pY29uIHdjby10aW1lbGluZS1pdGVtLWRvdC1pY29uLScgKyBpdGVtLnN0YXR1c1wiPiB7eyBzdGF0dXNUb0ljb25baXRlbS5zdGF0dXNdIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aHIgY2xhc3M9XCJ3Y28tdGltZWxpbmUtaXRlbS1kb3QtbGluZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndjby10aW1lbGluZS1pdGVtLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid2NvLXRpbWVsaW5lLWl0ZW0tY29udGVudFwiPlxuICAgICAgICA8aDQgW2NsYXNzTmFtZV09XCInd2NvLXRpbWVsaW5lLWl0ZW0tY29udGVudC10aXRsZSB3Y28tdGltZWxpbmUtaXRlbS1jb250ZW50LXRpdGxlLScgKyBpdGVtLnN0YXR1c1wiPiB7eyBpdGVtLnRpdGxlIH19IDwvaDQ+XG4gICAgICAgIDxwIFtjbGFzc05hbWVdPVwiJ3djby10aW1lbGluZS1pdGVtLWNvbnRlbnQtZGVzY3JpcHRpb24gd2NvLXRpbWVsaW5lLWl0ZW0tY29udGVudC1kZXNjcmlwdGlvbi0nICsgaXRlbS5zdGF0dXNcIj4ge3sgaXRlbS5kZXNjcmlwdGlvbiB9fSA8L3A+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ3Y28tYnRuIGJ0bi1wcmltYXJ5IGJ0bi1saW5rXCIgKm5nSWY9XCJpdGVtLmFjdGlvblwiIChjbGljayk9XCJpdGVtLmFjdGlvbi5oYW5kbGVyKClcIiBbZGlzYWJsZWRdPVwiaXRlbS5zdGF0dXMgPT09ICd3YWl0aW5nJ1wiPiB7e2l0ZW0uYWN0aW9uLmxhYmVsfX0gPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIFtjbGFzc05hbWVdPVwiJ3djby10aW1lbGluZS1pdGVtLWNvbnRlbnQtZGF0ZSB3Y28tdGltZWxpbmUtaXRlbS1jb250ZW50LWRhdGUtJyArIGl0ZW0uc3RhdHVzXCI+IHt7IGl0ZW0uZGF0ZSB9fSA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { Component, EventEmitter, Input, Output, SkipSelf } from '@angular/core';
2
- import { HttpClientModule, HttpEventType } from '@angular/common/http';
1
+ import { Component, EventEmitter, Input, Output, SkipSelf, } from '@angular/core';
2
+ import { HttpClientModule, HttpEventType, } from '@angular/common/http';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common/http";
@@ -7,7 +7,7 @@ import * as i2 from "@angular/common";
7
7
  export class UploadComponent {
8
8
  http;
9
9
  /* Texto de descrição do arquivo */
10
- description = "(XX MB de tamanho máximo e é permitido qualquer tipo de arquivos)";
10
+ description = '(XX MB de tamanho máximo e é permitido qualquer tipo de arquivos)';
11
11
  /* config <AngularFileUploaderConfig> configuração do componente principais parâmetros */
12
12
  config = {
13
13
  uploadAPI: {
@@ -18,127 +18,127 @@ export class UploadComponent {
18
18
  },
19
19
  responseType: 'json',
20
20
  withCredentials: false,
21
- }
21
+ },
22
22
  };
23
23
  /*
24
- * Opção de resetar o componente
25
- */
24
+ * Opção de resetar o componente
25
+ */
26
26
  resetUpload = false;
27
27
  /*
28
- * Evento Resposta da requisição sendo sucesso ou erro
29
- */
28
+ * Evento Resposta da requisição sendo sucesso ou erro
29
+ */
30
30
  ApiResponse = new EventEmitter();
31
31
  /*
32
- * Evento javascript puro para retorno do arquivo
33
- */
32
+ * Evento javascript puro para retorno do arquivo
33
+ */
34
34
  fileSelected = new EventEmitter();
35
35
  /**
36
- * @ignore
37
- */
36
+ * @ignore
37
+ */
38
38
  theme = '';
39
39
  /**
40
- * @ignore
41
- */
40
+ * @ignore
41
+ */
42
42
  id = 0;
43
43
  /**
44
- * @ignore
45
- */
44
+ * @ignore
45
+ */
46
46
  hideProgressBar = false;
47
47
  /**
48
- * @ignore
49
- */
48
+ * @ignore
49
+ */
50
50
  maxSize = 20 * 1024000; // mb to bytes.
51
51
  /**
52
- * @ignore
53
- */
52
+ * @ignore
53
+ */
54
54
  uploadAPI = '';
55
55
  /**
56
- * @ignore
57
- */
56
+ * @ignore
57
+ */
58
58
  method = 'POST';
59
59
  /**
60
- * @ignore
61
- */
60
+ * @ignore
61
+ */
62
62
  formatsAllowed = '*';
63
63
  /**
64
- * @ignore
65
- */
64
+ * @ignore
65
+ */
66
66
  formatsAllowedText = '';
67
67
  /**
68
- * @ignore
69
- */
68
+ * @ignore
69
+ */
70
70
  multiple = false;
71
71
  /**
72
- * @ignore
73
- */
72
+ * @ignore
73
+ */
74
74
  headers = {};
75
75
  /**
76
- * @ignore
77
- */
76
+ * @ignore
77
+ */
78
78
  params = {};
79
79
  /**
80
- * @ignore
81
- */
80
+ * @ignore
81
+ */
82
82
  responseType = 'blob';
83
83
  /**
84
- * @ignore
85
- */
84
+ * @ignore
85
+ */
86
86
  hideResetBtn = false;
87
87
  /**
88
- * @ignore
89
- */
88
+ * @ignore
89
+ */
90
90
  hideSelectBtn = false;
91
91
  /**
92
- * @ignore
93
- */
92
+ * @ignore
93
+ */
94
94
  allowedFiles = [];
95
95
  /**
96
- * @ignore
97
- */
96
+ * @ignore
97
+ */
98
98
  notAllowedFiles = [];
99
99
  /**
100
- * @ignore
101
- */
100
+ * @ignore
101
+ */
102
102
  Caption = [];
103
103
  /**
104
- * @ignore
105
- */
104
+ * @ignore
105
+ */
106
106
  isAllowedFileSingle = true;
107
107
  /**
108
- * @ignore
109
- */
108
+ * @ignore
109
+ */
110
110
  progressBarShow = false;
111
111
  /**
112
- * @ignore
113
- */
112
+ * @ignore
113
+ */
114
114
  enableUploadBtn = false;
115
115
  /**
116
- * @ignore
117
- */
116
+ * @ignore
117
+ */
118
118
  uploadMsg = false;
119
119
  /**
120
- * @ignore
121
- */
120
+ * @ignore
121
+ */
122
122
  afterUpload = false;
123
123
  /**
124
- * @ignore
125
- */
124
+ * @ignore
125
+ */
126
126
  uploadStarted = false;
127
127
  /**
128
- * @ignore
129
- */
130
- uploadMsgText = "";
128
+ * @ignore
129
+ */
130
+ uploadMsgText = '';
131
131
  /**
132
- * @ignore
133
- */
132
+ * @ignore
133
+ */
134
134
  uploadMsgClass = 'text-success';
135
135
  /**
136
- * @ignore
137
- */
136
+ * @ignore
137
+ */
138
138
  uploadPercent = 0;
139
139
  /**
140
- * @ignore
141
- */
140
+ * @ignore
141
+ */
142
142
  replaceTexts = {
143
143
  selectFileBtn: 'Selecionar Arquivo',
144
144
  resetBtn: 'Resetar',
@@ -150,31 +150,31 @@ export class UploadComponent {
150
150
  sizeLimit: 'Tamanho máximo',
151
151
  };
152
152
  /**
153
- * @ignore
154
- */
153
+ * @ignore
154
+ */
155
155
  currentUploads = [];
156
156
  /**
157
- * @ignore
158
- */
157
+ * @ignore
158
+ */
159
159
  fileNameIndex = true;
160
160
  /**
161
- * @ignore
162
- */
161
+ * @ignore
162
+ */
163
163
  withCredentials = false;
164
164
  /**
165
- * @ignore
166
- */
165
+ * @ignore
166
+ */
167
167
  autoUpload = true;
168
168
  /**
169
- * @ignore
170
- */
169
+ * @ignore
170
+ */
171
171
  idDate = +new Date();
172
172
  constructor(http) {
173
173
  this.http = http;
174
174
  }
175
175
  /**
176
- * @ignore
177
- */
176
+ * @ignore
177
+ */
178
178
  ngOnChanges(changes) {
179
179
  // Track changes in Configuration and see if user has even provided Configuration.
180
180
  if (changes.config && this.config) {
@@ -198,7 +198,8 @@ export class UploadComponent {
198
198
  this.responseType = this.config.uploadAPI.responseType || 'json';
199
199
  this.withCredentials = this.config.uploadAPI.withCredentials || false;
200
200
  }
201
- this.formatsAllowedText = this.formatsAllowed === '*' ? '' : '(' + this.formatsAllowed + ')';
201
+ this.formatsAllowedText =
202
+ this.formatsAllowed === '*' ? '' : '(' + this.formatsAllowed + ')';
202
203
  this.fileNameIndex = this.config.fileNameIndex === false ? false : true;
203
204
  this.autoUpload = this.config.autoUpload || false;
204
205
  if (this.config.replaceTexts) {
@@ -244,7 +245,9 @@ export class UploadComponent {
244
245
  // tslint:disable-next-line: for-of
245
246
  for (let i = 0; i < fileList.length; i++) {
246
247
  const _currentFileExt = fileExtRegExp.exec(fileList[i].name);
247
- const currentFileExt = typeof _currentFileExt[1] === 'string' ? _currentFileExt[1].toLowerCase() : '';
248
+ const currentFileExt = typeof _currentFileExt[1] === 'string'
249
+ ? _currentFileExt[1].toLowerCase()
250
+ : '';
248
251
  const isFormatValid = this.formatsAllowed.includes('*')
249
252
  ? true
250
253
  : this.formatsAllowed.includes(currentFileExt);
@@ -314,7 +317,9 @@ export class UploadComponent {
314
317
  this.uploadMsg = true;
315
318
  this.afterUpload = true;
316
319
  if (!isError) {
317
- this.uploadMsgText = this.replaceTexts.afterUploadMsg_success || 'Successfully Uploaded !';
320
+ this.uploadMsgText =
321
+ this.replaceTexts.afterUploadMsg_success ||
322
+ 'Successfully Uploaded !';
318
323
  this.uploadMsgClass = 'text-success lead';
319
324
  }
320
325
  }
@@ -340,7 +345,8 @@ export class UploadComponent {
340
345
  this.enableUploadBtn = false;
341
346
  this.uploadMsg = true;
342
347
  this.afterUpload = true;
343
- this.uploadMsgText = this.replaceTexts.afterUploadMsg_error || 'Error in uploading files';
348
+ this.uploadMsgText =
349
+ this.replaceTexts.afterUploadMsg_error || 'Error in uploading files';
344
350
  this.uploadMsgClass = 'text-danger lead';
345
351
  }
346
352
  removeFile(i, sf_na) {
@@ -377,11 +383,11 @@ export class UploadComponent {
377
383
  event.dataTransfer.dropEffect = 'copy';
378
384
  }
379
385
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UploadComponent, deps: [{ token: i1.HttpClient, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
380
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UploadComponent, isStandalone: true, selector: "wco-file-upload", inputs: { description: "description", config: "config", resetUpload: "resetUpload" }, outputs: { ApiResponse: "apiResponse", fileSelected: "fileSelected" }, usesOnChanges: true, ngImport: i0, template: "<label for=\"sel{{id}}\" class=\"wco-file-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"upload__drop-info\">\n <span>Arraste-os aqui ou</span>\n <div class=\"upload__button\">\n <span class=\"material-icons\">cloud_upload</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </div>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input class=\"upload__file\" type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>\n", styles: [".wco-file-upload{--color-button: var(--wco-color-primary-600);--color-button-hover: var(--wco-color-primary-700);border:2px dashed #c1c3c5;border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}.wco-file-upload .upload__drop-info{display:inherit;justify-content:center;align-items:center;gap:16px}.wco-file-upload .upload__button{display:inherit;justify-content:center;gap:8px;padding:10px 0}.wco-file-upload .upload__button span,.wco-file-upload .upload__button label{color:var(--color-button);cursor:pointer}.wco-file-upload .upload__file{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: HttpClientModule }] });
386
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UploadComponent, isStandalone: true, selector: "wco-file-upload", inputs: { description: "description", config: "config", resetUpload: "resetUpload" }, outputs: { ApiResponse: "apiResponse", fileSelected: "fileSelected" }, usesOnChanges: true, ngImport: i0, template: "<label for=\"sel{{id}}\" class=\"wco-file-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"upload__drop-info\">\n <span>Arraste-os aqui ou</span>\n <div class=\"upload__button\">\n <span class=\"material-icons\">cloud_upload</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </div>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input class=\"upload__file\" type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>", styles: [".wco-file-upload{--color-button: var(--wco-color-primary-600);--color-button-hover: var(--wco-color-primary-700);border:2px dashed #c1c3c5;border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}.wco-file-upload .upload__drop-info{display:inherit;justify-content:center;align-items:center;gap:16px}.wco-file-upload .upload__button{display:inherit;justify-content:center;gap:8px;padding:10px 0}.wco-file-upload .upload__button span,.wco-file-upload .upload__button label{color:var(--color-button);cursor:pointer}.wco-file-upload .upload__file{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: HttpClientModule }] });
381
387
  }
382
388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UploadComponent, decorators: [{
383
389
  type: Component,
384
- args: [{ selector: "wco-file-upload", standalone: true, imports: [CommonModule, HttpClientModule], template: "<label for=\"sel{{id}}\" class=\"wco-file-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"upload__drop-info\">\n <span>Arraste-os aqui ou</span>\n <div class=\"upload__button\">\n <span class=\"material-icons\">cloud_upload</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </div>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input class=\"upload__file\" type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>\n", styles: [".wco-file-upload{--color-button: var(--wco-color-primary-600);--color-button-hover: var(--wco-color-primary-700);border:2px dashed #c1c3c5;border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}.wco-file-upload .upload__drop-info{display:inherit;justify-content:center;align-items:center;gap:16px}.wco-file-upload .upload__button{display:inherit;justify-content:center;gap:8px;padding:10px 0}.wco-file-upload .upload__button span,.wco-file-upload .upload__button label{color:var(--color-button);cursor:pointer}.wco-file-upload .upload__file{display:none}\n"] }]
390
+ args: [{ selector: 'wco-file-upload', standalone: true, imports: [CommonModule, HttpClientModule], template: "<label for=\"sel{{id}}\" class=\"wco-file-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"upload__drop-info\">\n <span>Arraste-os aqui ou</span>\n <div class=\"upload__button\">\n <span class=\"material-icons\">cloud_upload</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </div>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input class=\"upload__file\" type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>", styles: [".wco-file-upload{--color-button: var(--wco-color-primary-600);--color-button-hover: var(--wco-color-primary-700);border:2px dashed #c1c3c5;border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}.wco-file-upload .upload__drop-info{display:inherit;justify-content:center;align-items:center;gap:16px}.wco-file-upload .upload__button{display:inherit;justify-content:center;gap:8px;padding:10px 0}.wco-file-upload .upload__button span,.wco-file-upload .upload__button label{color:var(--color-button);cursor:pointer}.wco-file-upload .upload__file{display:none}\n"] }]
385
391
  }], ctorParameters: function () { return [{ type: i1.HttpClient, decorators: [{
386
392
  type: SkipSelf
387
393
  }] }]; }, propDecorators: { description: [{
@@ -396,4 +402,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
396
402
  }], fileSelected: [{
397
403
  type: Output
398
404
  }] } });
399
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUFhLE1BQU0sRUFBRSxRQUFRLEVBQ25DLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUVkLE1BQU0sc0JBQXNCLENBQUM7QUFJOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVy9DLE1BQU0sT0FBTyxlQUFlO0lBNktNO0lBNUtoQyxtQ0FBbUM7SUFDMUIsV0FBVyxHQUFXLG1FQUFtRSxDQUFBO0lBQ2xHLHlGQUF5RjtJQUNoRixNQUFNLEdBQThCO1FBQzNDLFNBQVMsRUFBRTtZQUNULEdBQUcsRUFBRSxFQUFFO1lBQ1AsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLDBCQUEwQjthQUMzQztZQUNELFlBQVksRUFBRSxNQUFNO1lBQ3BCLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO0tBQ0YsQ0FBQztJQUdGOztNQUVFO0lBQ08sV0FBVyxHQUFHLEtBQUssQ0FBQztJQUU3Qjs7TUFFRTtJQUNxQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN4RDs7TUFFRTtJQUNRLFlBQVksR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFFaEc7O01BRUU7SUFDRixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25COztNQUVFO0lBQ0YsRUFBRSxHQUFXLENBQUMsQ0FBQztJQUNmOztN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RyxLQUFLO1lBQ3RDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVTtRQUNiLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVU7UUFDbEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDekMsQ0FBQzt3R0EvWVUsZUFBZTs0RkFBZixlQUFlLDZQQzFCNUIsdzRCQWlCQSw0cEJESVksWUFBWSwrUEFBRSxnQkFBZ0I7OzRGQUs3QixlQUFlO2tCQVIzQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzs7MEJBa0w1QixRQUFROzRDQTNLWixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFnQkcsV0FBVztzQkFBbkIsS0FBSztnQkFLaUIsV0FBVztzQkFBakMsTUFBTTt1QkFBQyxhQUFhO2dCQUlYLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cENsaWVudE1vZHVsZSxcbiAgSHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnMsXG4gIEh0dHBQYXJhbXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJGaWxlVXBsb2FkZXJDb25maWcsIFJlcGxhY2VUZXh0cywgVXBsb2FkSW5mb1R5cGVzIH0gZnJvbSBcIi4vdXBsb2FkLnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJ3Y28tZmlsZS11cGxvYWRcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSHR0cENsaWVudE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi91cGxvYWQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLyogVGV4dG8gZGUgZGVzY3Jpw6fDo28gZG8gYXJxdWl2byAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nID0gXCIoWFggTUIgZGUgdGFtYW5obyBtw6F4aW1vIGUgw6kgcGVybWl0aWRvIHF1YWxxdWVyIHRpcG8gZGUgYXJxdWl2b3MpXCJcbiAgLyogY29uZmlnIDxBbmd1bGFyRmlsZVVwbG9hZGVyQ29uZmlnPiBjb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlIHByaW5jaXBhaXMgcGFyw6JtZXRyb3MgKi9cbiAgQElucHV0KCkgY29uZmlnOiBBbmd1bGFyRmlsZVVwbG9hZGVyQ29uZmlnID0ge1xuICAgIHVwbG9hZEFQSToge1xuICAgICAgdXJsOiAnJyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcsXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH1cbiAgfTtcblxuXG4gIC8qXG4gICogT3DDp8OjbyBkZSByZXNldGFyIG8gY29tcG9uZW50ZVxuICAqL1xuICBASW5wdXQoKSByZXNldFVwbG9hZCA9IGZhbHNlO1xuXG4gIC8qXG4gICogRXZlbnRvIFJlc3Bvc3RhIGRhIHJlcXVpc2nDp8OjbyBzZW5kbyBzdWNlc3NvIG91IGVycm9cbiAgKi9cbiAgQE91dHB1dCgnYXBpUmVzcG9uc2UnKSBBcGlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLypcbiAgKiBFdmVudG8gamF2YXNjcmlwdCBwdXJvIHBhcmEgcmV0b3JubyBkbyBhcnF1aXZvXG4gICovXG4gIEBPdXRwdXQoKSBmaWxlU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxVcGxvYWRJbmZvVHlwZXNbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFVwbG9hZEluZm9UeXBlc1tdPigpO1xuXG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgdGhlbWU6IHN0cmluZyA9ICcnO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGlkOiBudW1iZXIgPSAwO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGhpZGVQcm9ncmVzc0JhcjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIG1heFNpemU6IG51bWJlciA9IDIwICogMTAyNDAwMDsgLy8gbWIgdG8gYnl0ZXMuXG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgdXBsb2FkQVBJOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBtZXRob2Q6IHN0cmluZyA9ICdQT1NUJztcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBmb3JtYXRzQWxsb3dlZDogc3RyaW5nID0gJyonO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGZvcm1hdHNBbGxvd2VkVGV4dDogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSA9IHt9XG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgcGFyYW1zOiBIdHRwUGFyYW1zIHwgeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gPSB7fVxuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIHJlc3BvbnNlVHlwZTogJ2pzb24nIHwgJ2FycmF5YnVmZmVyJyB8ICdibG9iJyB8ICd0ZXh0JyA9ICdibG9iJztcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBoaWRlUmVzZXRCdG46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBoaWRlU2VsZWN0QnRuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgYWxsb3dlZEZpbGVzOiBGaWxlW10gPSBbXTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBub3RBbGxvd2VkRmlsZXM6IHtcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuICAgIGZpbGVTaXplOiBzdHJpbmc7XG4gICAgZXJyb3JNc2c6IHN0cmluZztcbiAgfVtdID0gW107XG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgQ2FwdGlvbjogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBpc0FsbG93ZWRGaWxlU2luZ2xlID0gdHJ1ZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBwcm9ncmVzc0JhclNob3cgPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBlbmFibGVVcGxvYWRCdG4gPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICB1cGxvYWRNc2cgPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBhZnRlclVwbG9hZCA9IGZhbHNlO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIHVwbG9hZFN0YXJ0ZWQgPSBmYWxzZTtcbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICB1cGxvYWRNc2dUZXh0OiBzdHJpbmcgPSBcIlwiXG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgdXBsb2FkTXNnQ2xhc3M6IHN0cmluZyA9ICd0ZXh0LXN1Y2Nlc3MnO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIHVwbG9hZFBlcmNlbnQ6IG51bWJlciA9IDA7XG4gIC8qKlxuICAqIEBpZ25vcmVcbiAgKi9cbiAgcmVwbGFjZVRleHRzOiBSZXBsYWNlVGV4dHMgPSB7XG4gICAgc2VsZWN0RmlsZUJ0bjogJ1NlbGVjaW9uYXIgQXJxdWl2bycsXG4gICAgcmVzZXRCdG46ICdSZXNldGFyJyxcbiAgICB1cGxvYWRCdG46ICdFbnZpYXInLFxuICAgIGRyYWdORHJvcEJveDogJ0FycmFzdGUgZSBzb2x0ZScsXG4gICAgYXR0YWNoUGluQnRuOiAnQW5leGFyIEFycXVpdm8uLi4nLFxuICAgIGFmdGVyVXBsb2FkTXNnX3N1Y2Nlc3M6ICdFbnZpYWRvIGNvbSBzdWNlc3NvICEnLFxuICAgIGFmdGVyVXBsb2FkTXNnX2Vycm9yOiAnRmFsaGEgbm8gZW52aW8gIScsXG4gICAgc2l6ZUxpbWl0OiAnVGFtYW5obyBtw6F4aW1vJyxcbiAgfVxuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGN1cnJlbnRVcGxvYWRzOiBhbnlbXSA9IFtdO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGZpbGVOYW1lSW5kZXggPSB0cnVlO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIHdpdGhDcmVkZW50aWFscyA9IGZhbHNlO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIGF1dG9VcGxvYWQgPSB0cnVlO1xuICAvKipcbiAgKiBAaWdub3JlXG4gICovXG4gIHByaXZhdGUgaWREYXRlOiBudW1iZXIgPSArbmV3IERhdGUoKTtcblxuICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICogQGlnbm9yZVxuICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpIHtcbiAgICAvLyBUcmFjayBjaGFuZ2VzIGluIENvbmZpZ3VyYXRpb24gYW5kIHNlZSBpZiB1c2VyIGhhcyBldmVuIHByb3ZpZGVkIENvbmZpZ3VyYXRpb24uXG4gICAgaWYgKGNoYW5nZXMuY29uZmlnICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICAvLyBBc3NpZ24gVXNlciBDb25maWd1cmF0aW9ucyB0byBMaWJyYXJ5IFByb3BlcnRpZXMuXG4gICAgICB0aGlzLnRoZW1lID0gdGhpcy5jb25maWcudGhlbWUgfHwgJyc7XG4gICAgICB0aGlzLmlkID1cbiAgICAgICAgdGhpcy5jb25maWcuaWQgfHxcbiAgICAgICAgcGFyc2VJbnQoKHRoaXMuaWREYXRlIC8gMTAwMDApLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXSwgMTApICtcbiAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgKiAxMDAwMDtcbiAgICAgIHRoaXMuaGlkZVByb2dyZXNzQmFyID0gdGhpcy5jb25maWcuaGlkZVByb2dyZXNzQmFyIHx8IGZhbHNlO1xuICAgICAgdGhpcy5oaWRlUmVzZXRCdG4gPSB0aGlzLmNvbmZpZy5oaWRlUmVzZXRCdG4gfHwgZmFsc2U7XG4gICAgICB0aGlzLmhpZGVTZWxlY3RCdG4gPSB0aGlzLmNvbmZpZy5oaWRlU2VsZWN0QnRuIHx8IGZhbHNlO1xuICAgICAgdGhpcy5tYXhTaXplID0gKHRoaXMuY29uZmlnLm1heFNpemUgfHwgMjApICogMTAyNDAwMDsgLy8gbWIgdG8gYnl0ZXMuXG4gICAgICBpZih0aGlzLmNvbmZpZy51cGxvYWRBUEkpIHtcbiAgICAgICAgdGhpcy51cGxvYWRBUEkgPSB0aGlzLmNvbmZpZy51cGxvYWRBUEkudXJsIDtcbiAgICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLmNvbmZpZy51cGxvYWRBUEkubWV0aG9kIHx8ICdQT1NUJztcbiAgICAgICAgdGhpcy5mb3JtYXRzQWxsb3dlZCA9IHRoaXMuY29uZmlnLmZvcm1hdHNBbGxvd2VkIHx8ICcqJztcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IHRoaXMuY29uZmlnLm11bHRpcGxlIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSB0aGlzLmNvbmZpZy51cGxvYWRBUEkuaGVhZGVycyB8fCB7fTtcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB0aGlzLmNvbmZpZy51cGxvYWRBUEkucGFyYW1zIHx8IHt9O1xuICAgICAgICB0aGlzLnJlc3BvbnNlVHlwZSA9IHRoaXMuY29uZmlnLnVwbG9hZEFQSS5yZXNwb25zZVR5cGUgfHwgJ2pzb24nO1xuICAgICAgICB0aGlzLndpdGhDcmVkZW50aWFscyA9IHRoaXMuY29uZmlnLnVwbG9hZEFQSS53aXRoQ3JlZGVudGlhbHMgfHwgZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm1hdHNBbGxvd2VkVGV4dCA9IHRoaXMuZm9ybWF0c0FsbG93ZWQgPT09ICcqJyA/ICcnIDogJygnICsgdGhpcy5mb3JtYXRzQWxsb3dlZCArICcpJztcbiAgICAgIHRoaXMuZmlsZU5hbWVJbmRleCA9IHRoaXMuY29uZmlnLmZpbGVOYW1lSW5kZXggPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgdGhpcy5hdXRvVXBsb2FkID0gdGhpcy5jb25maWcuYXV0b1VwbG9hZCB8fCBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXBsYWNlVGV4dHMpIHtcbiAgICAgICAgdGhpcy5yZXBsYWNlVGV4dHMgPSB7XG4gICAgICAgICAgLi4udGhpcy5yZXBsYWNlVGV4dHMsXG4gICAgICAgICAgLi4udGhpcy5jb25maWcucmVwbGFjZVRleHRzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc2V0IHdoZW4gcmVzZXRVcGxvYWQgdmFsdWUgY2hhbmdlcyBmcm9tIGZhbHNlIHRvIHRydWUuXG4gICAgaWYgKGNoYW5nZXMucmVzZXRVcGxvYWQpIHtcbiAgICAgIGlmIChjaGFuZ2VzLnJlc2V0VXBsb2FkLmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnJlc2V0RmlsZVVwbG9hZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEZ1bsOnw6NvIHJlc2V0YXIgY29tcG9uZW50ZSAqL1xuICByZXNldEZpbGVVcGxvYWQoKSB7XG4gICAgdGhpcy5hbGxvd2VkRmlsZXMgPSBbXTtcbiAgICB0aGlzLkNhcHRpb24gPSBbXTtcbiAgICB0aGlzLm5vdEFsbG93ZWRGaWxlcyA9IFtdO1xuICAgIHRoaXMudXBsb2FkTXNnID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVVcGxvYWRCdG4gPSBmYWxzZTtcbiAgfVxuXG4gIC8qIERldGVjdGFyIG11ZGFuw6dhICAqL1xuICBvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdChldmVudCk7XG4gICAgdGhpcy5ub3RBbGxvd2VkRmlsZXMgPSBbXTtcbiAgICBjb25zdCBmaWxlRXh0UmVnRXhwOiBSZWdFeHAgPSAvKD86XFwuKFteLl0rKSk/JC87XG4gICAgbGV0IGZpbGVMaXN0OiBGaWxlTGlzdDtcblxuICAgIGlmICh0aGlzLmFmdGVyVXBsb2FkIHx8ICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmFsbG93ZWRGaWxlcyA9IFtdO1xuICAgICAgdGhpcy5DYXB0aW9uID0gW107XG4gICAgICB0aGlzLmFmdGVyVXBsb2FkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdkcm9wJykge1xuICAgICAgZmlsZUxpc3QgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVMaXN0ID0gZXZlbnQudGFyZ2V0LmZpbGVzIHx8IGV2ZW50LnNyY0VsZW1lbnQuZmlsZXM7XG4gICAgfVxuXG4gICAgLy8gJ2ZvckVhY2gnIGRvZXMgbm90IGV4aXN0IG9uICdmaWxlbGlzdCcgdGhhdCdzIHdoeSB0aGlzIGdvb2Qgb2xkICdmb3InIGlzIHVzZWQuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBmb3Itb2ZcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBfY3VycmVudEZpbGVFeHQ6IGFueSA9IGZpbGVFeHRSZWdFeHAuZXhlYyhmaWxlTGlzdFtpXS5uYW1lKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWxlRXh0ID0gdHlwZW9mIF9jdXJyZW50RmlsZUV4dFsxXSA9PT0gJ3N0cmluZycgPyBfY3VycmVudEZpbGVFeHRbMV0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgICAgY29uc3QgaXNGb3JtYXRWYWxpZCA9IHRoaXMuZm9ybWF0c0FsbG93ZWQuaW5jbHVkZXMoJyonKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiB0aGlzLmZvcm1hdHNBbGxvd2VkLmluY2x1ZGVzKGN1cnJlbnRGaWxlRXh0KTtcblxuICAgICAgY29uc3QgaXNTaXplVmFsaWQgPSBmaWxlTGlzdFtpXS5zaXplIDw9IHRoaXMubWF4U2l6ZTtcblxuICAgICAgLy8gQ2hlY2sgd2hldGhlciBjdXJyZW50IGZpbGUgZm9ybWF0IGFuZCBzaXplIGlzIGNvcnJlY3QgYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9ucy5cbiAgICAgIGlmIChpc0Zvcm1hdFZhbGlkICYmIGlzU2l6ZVZhbGlkKSB7XG4gICAgICAgIHRoaXMuYWxsb3dlZEZpbGVzLnB1c2goZmlsZUxpc3RbaV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RBbGxvd2VkRmlsZXMucHVzaCh7XG4gICAgICAgICAgZmlsZU5hbWU6IGZpbGVMaXN0W2ldLm5hbWUsXG4gICAgICAgICAgZmlsZVNpemU6IHRoaXMuY29udmVydFNpemUoZmlsZUxpc3RbaV0uc2l6ZSksXG4gICAgICAgICAgZXJyb3JNc2c6ICFpc0Zvcm1hdFZhbGlkID8gJ0ludmFsaWQgZm9ybWF0JyA6ICdJbnZhbGlkIHNpemUnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIElmIHRoZXJlJ3MgYW55IGFsbG93ZWRGaWxlcy5cbiAgICBpZiAodGhpcy5hbGxvd2VkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5lbmFibGVVcGxvYWRCdG4gPSB0cnVlO1xuICAgICAgLy8gVXBsb2FkIHRoZSBmaWxlcyBkaXJlY3RseSBpZiB0aGVtZSBpcyBhdHRhY2ggcGluIChhcyB1cGxvYWQgYnRuIGlzIG5vdCB0aGVyZSBmb3IgdGhpcyB0aGVtZSkgb3IgYXV0b1VwbG9hZCBpcyB0cnVlLlxuICAgICAgaWYgKHRoaXMudGhlbWUgPT09ICdhdHRhY2hQaW4nIHx8IHRoaXMuYXV0b1VwbG9hZCkge1xuICAgICAgICB0aGlzLnVwbG9hZEZpbGVzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5hYmxlVXBsb2FkQnRuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRNc2cgPSBmYWxzZTtcbiAgICB0aGlzLnVwbG9hZFN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnVwbG9hZFBlcmNlbnQgPSAwO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG51bGw7XG4gIH1cblxuICAvKiBGdW7Dp8OjbyBwYXJhIGVudmlhciBhcnF1aXZvIHBhcmEgc2Vydmlkb3IgKi9cbiAgdXBsb2FkRmlsZXMoKSB7XG4gICAgdGhpcy5wcm9ncmVzc0JhclNob3cgPSB0cnVlO1xuICAgIHRoaXMudXBsb2FkU3RhcnRlZCA9IHRydWU7XG4gICAgdGhpcy5ub3RBbGxvd2VkRmlsZXMgPSBbXTtcbiAgICBsZXQgaXNFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvd2VkRmlsZVNpbmdsZSA9IHRoaXMuYWxsb3dlZEZpbGVzLmxlbmd0aCA8PSAxO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAvLyBBZGQgZGF0YSB0byBiZSBzZW50IGluIHRoaXMgcmVxdWVzdFxuICAgIHRoaXMuYWxsb3dlZEZpbGVzLmZvckVhY2goKGZpbGUsIGkpID0+IHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgdGhpcy5DYXB0aW9uW2ldIHx8ICdmaWxlJyArICh0aGlzLmZpbGVOYW1lSW5kZXggPyBpIDogJycpLFxuICAgICAgICB0aGlzLmFsbG93ZWRGaWxlc1tpXVxuICAgICAgKTtcbiAgICB9KTtcblxuXG4gICAgdGhpcy5odHRwXG4gICAgICAucmVxdWVzdCh0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCB0aGlzLnVwbG9hZEFQSSwge1xuICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxuICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogdGhpcy5yZXNwb25zZVR5cGUsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy53aXRoQ3JlZGVudGlhbHMsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gVXBsb2FkIFByb2dyZXNzXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlVXBsb2FkQnRuID0gZmFsc2U7IC8vIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgaWYgcHJvY2VzcyB1cGxvYWRpbmdcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREb25lID0gZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWw7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFBlcmNlbnQgPSBNYXRoLnJvdW5kKChldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCkgKiAxMDApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PT0gMjAwIHx8IGV2ZW50LnN0YXR1cyA9PT0gMjAxKSB7XG4gICAgICAgICAgICAgIC8vIFN1Y2Nlc3NcbiAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzc0JhclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5lbmFibGVVcGxvYWRCdG4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy51cGxvYWRNc2cgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFmdGVyVXBsb2FkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaWYgKCFpc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRNc2dUZXh0ID0gdGhpcy5yZXBsYWNlVGV4dHMuYWZ0ZXJVcGxvYWRNc2dfc3VjY2VzcyB8fCAnU3VjY2Vzc2Z1bGx5IFVwbG9hZGVkICEnO1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkTXNnQ2xhc3MgPSAndGV4dC1zdWNjZXNzIGxlYWQnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBGYWlsdXJlXG4gICAgICAgICAgICAgIGlzRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5BcGlSZXNwb25zZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnRXZlbnQgT3RoZXI6ICcsIGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIC8vIEZhaWx1cmVcbiAgICAgICAgICBpc0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xuICAgICAgICAgIHRoaXMuQXBpUmVzcG9uc2UuZW1pdChlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBoYW5kbGVFcnJvcnMoKSB7XG4gICAgdGhpcy5wcm9ncmVzc0JhclNob3cgPSBmYWxzZTtcbiAgICB0aGlzLmVuYWJsZVVwbG9hZEJ0biA9IGZhbHNlO1xuICAgIHRoaXMudXBsb2FkTXNnID0gdHJ1ZTtcbiAgICB0aGlzLmFmdGVyVXBsb2FkID0gdHJ1ZTtcbiAgICB0aGlzLnVwbG9hZE1zZ1RleHQgPSB0aGlzLnJlcGxhY2VUZXh0cy5hZnRlclVwbG9hZE1zZ19lcnJvciB8fCAnRXJyb3IgaW4gdXBsb2FkaW5nIGZpbGVzJztcbiAgICB0aGlzLnVwbG9hZE1zZ0NsYXNzID0gJ3RleHQtZGFuZ2VyIGxlYWQnO1xuICB9XG5cbiAgcmVtb3ZlRmlsZShpOiBhbnksIHNmX25hOiBhbnkpIHtcbiAgICBpZiAoc2ZfbmEgPT09ICdzZicpIHtcbiAgICAgIHRoaXMuYWxsb3dlZEZpbGVzLnNwbGljZShpLCAxKTtcbiAgICAgIHRoaXMuQ2FwdGlvbi5zcGxpY2UoaSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90QWxsb3dlZEZpbGVzLnNwbGljZShpLCAxKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbGxvd2VkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVuYWJsZVVwbG9hZEJ0biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnZlcnRTaXplKGZpbGVTaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBmaWxlU2l6ZSA8IDEwMjQwMDBcbiAgICAgID8gKGZpbGVTaXplIC8gMTAyNCkudG9GaXhlZCgyKSArICcgS0InXG4gICAgICA6IChmaWxlU2l6ZSAvIDEwMjQwMDApLnRvRml4ZWQoMikgKyAnIE1CJztcbiAgfVxuXG4gIGF0dGFjaHBpbk9uY2xpY2soKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWwnICsgdGhpcy5pZCk7XG4gICAgaWYgKGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMub25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgYWxsb3dEcm9wKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICB9XG59XG4iLCI8bGFiZWwgZm9yPVwic2Vse3tpZH19XCIgY2xhc3M9XCJ3Y28tZmlsZS11cGxvYWRcIiAoZHJvcCk9XCJkcm9wKCRldmVudClcIiAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZF9fZHJvcC1pbmZvXCI+XG4gICAgPHNwYW4+QXJyYXN0ZS1vcyBhcXVpIG91PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRfX2J1dHRvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmNsb3VkX3VwbG9hZDwvc3Bhbj5cbiAgICAgIDxzcGFuPnt7cmVwbGFjZVRleHRzLnNlbGVjdEZpbGVCdG59fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwidXBsb2FkX19pbmZvXCIgKm5nSWY9XCIhYWxsb3dlZEZpbGVzLmxlbmd0aFwiID57e2Rlc2NyaXB0aW9ufX08L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd2VkRmlsZXMubGVuZ3RoXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRfX2luZm9cIiAqbmdGb3I9XCJsZXQgc2Ygb2YgYWxsb3dlZEZpbGVzO2xldCBpPWluZGV4XCI+XG4gICAgICB7e3NmLm5hbWV9fSA8c21hbGw+KHt7Y29udmVydFNpemUoc2Yuc2l6ZSl9fSk8L3NtYWxsPlxuICAgIDwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxpbnB1dCBjbGFzcz1cInVwbG9hZF9fZmlsZVwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJzZWx7e2lkfX1cIiAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0aXRsZT1cIlNlbGVjdCBmaWxlXCJcbiAgbmFtZT1cImZpbGVzW11cIiBbYWNjZXB0XT1cImZvcm1hdHNBbGxvd2VkXCIgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGUgPyAnJyA6IG51bGxcIiAvPlxuPC9sYWJlbD5cbiJdfQ==
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixhQUFhLEdBR2QsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFjL0MsTUFBTSxPQUFPLGVBQWU7SUErS007SUE5S2hDLG1DQUFtQztJQUMxQixXQUFXLEdBQ2xCLG1FQUFtRSxDQUFDO0lBQ3RFLHlGQUF5RjtJQUNoRixNQUFNLEdBQThCO1FBQzNDLFNBQVMsRUFBRTtZQUNULEdBQUcsRUFBRSxFQUFFO1lBQ1AsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLDBCQUEwQjthQUMzQztZQUNELFlBQVksRUFBRSxNQUFNO1lBQ3BCLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO0tBQ0YsQ0FBQztJQUVGOztPQUVHO0lBQ00sV0FBVyxHQUFHLEtBQUssQ0FBQztJQUU3Qjs7T0FFRztJQUNvQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN4RDs7T0FFRztJQUNPLFlBQVksR0FBb0MsSUFBSSxZQUFZLEVBRXZFLENBQUM7SUFFSjs7T0FFRztJQUNILEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkI7O09BRUc7SUFDSCxFQUFFLEdBQVcsQ0FBQyxDQUFDO0lBQ2Y7O09B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XG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTa2lwU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIEh0dHBDbGllbnRNb2R1bGUsXG4gIEh0dHBFdmVudFR5cGUsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBbmd1bGFyRmlsZVVwbG9hZGVyQ29uZmlnLFxuICBSZXBsYWNlVGV4dHMsXG4gIFVwbG9hZEluZm9UeXBlcyxcbn0gZnJvbSAnLi91cGxvYWQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Y28tZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiBUZXh0byBkZSBkZXNjcmnDp8OjbyBkbyBhcnF1aXZvICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmcgPVxuICAgICcoWFggTUIgZGUgdGFtYW5obyBtw6F4aW1vIGUgw6kgcGVybWl0aWRvIHF1YWxxdWVyIHRpcG8gZGUgYXJxdWl2b3MpJztcbiAgLyogY29uZmlnIDxBbmd1bGFyRmlsZVVwbG9hZGVyQ29uZmlnPiBjb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlIHByaW5jaXBhaXMgcGFyw6JtZXRyb3MgKi9cbiAgQElucHV0KCkgY29uZmlnOiBBbmd1bGFyRmlsZVVwbG9hZGVyQ29uZmlnID0ge1xuICAgIHVwbG9hZEFQSToge1xuICAgICAgdXJsOiAnJyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcsXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0sXG4gIH07XG5cbiAgLypcbiAgICogT3DDp8OjbyBkZSByZXNldGFyIG8gY29tcG9uZW50ZVxuICAgKi9cbiAgQElucHV0KCkgcmVzZXRVcGxvYWQgPSBmYWxzZTtcblxuICAvKlxuICAgKiBFdmVudG8gUmVzcG9zdGEgZGEgcmVxdWlzacOnw6NvIHNlbmRvIHN1Y2Vzc28gb3UgZXJyb1xuICAgKi9cbiAgQE91dHB1dCgnYXBpUmVzcG9uc2UnKSBBcGlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLypcbiAgICogRXZlbnRvIGphdmFzY3JpcHQgcHVybyBwYXJhIHJldG9ybm8gZG8gYXJxdWl2b1xuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFVwbG9hZEluZm9UeXBlc1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgVXBsb2FkSW5mb1R5cGVzW11cbiAgPigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICB0aGVtZTogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpZDogbnVtYmVyID0gMDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhpZGVQcm9ncmVzc0JhcjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbWF4U2l6ZTogbnVtYmVyID0gMjAgKiAxMDI0MDAwOyAvLyBtYiB0byBieXRlcy5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVwbG9hZEFQSTogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBtZXRob2Q6IHN0cmluZyA9ICdQT1NUJztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGZvcm1hdHNBbGxvd2VkOiBzdHJpbmcgPSAnKic7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBmb3JtYXRzQWxsb3dlZFRleHQ6IHN0cmluZyA9ICcnO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhlYWRlcnM6IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9ID0ge307XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwYXJhbXM6IEh0dHBQYXJhbXMgfCB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSA9IHt9O1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlOiAnanNvbicgfCAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ3RleHQnID0gJ2Jsb2InO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGlkZVJlc2V0QnRuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoaWRlU2VsZWN0QnRuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBhbGxvd2VkRmlsZXM6IEZpbGVbXSA9IFtdO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbm90QWxsb3dlZEZpbGVzOiB7XG4gICAgZmlsZU5hbWU6IHN0cmluZztcbiAgICBmaWxlU2l6ZTogc3RyaW5nO1xuICAgIGVycm9yTXNnOiBzdHJpbmc7XG4gIH1bXSA9IFtdO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQ2FwdGlvbjogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlzQWxsb3dlZEZpbGVTaW5nbGUgPSB0cnVlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJvZ3Jlc3NCYXJTaG93ID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBlbmFibGVVcGxvYWRCdG4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVwbG9hZE1zZyA9IGZhbHNlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgYWZ0ZXJVcGxvYWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVwbG9hZFN0YXJ0ZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVwbG9hZE1zZ1RleHQ6IHN0cmluZyA9ICcnO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgdXBsb2FkTXNnQ2xhc3M6IHN0cmluZyA9ICd0ZXh0LXN1Y2Nlc3MnO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgdXBsb2FkUGVyY2VudDogbnVtYmVyID0gMDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHJlcGxhY2VUZXh0czogUmVwbGFjZVRleHRzID0ge1xuICAgIHNlbGVjdEZpbGVCdG46ICdTZWxlY2lvbmFyIEFycXVpdm8nLFxuICAgIHJlc2V0QnRuOiAnUmVzZXRhcicsXG4gICAgdXBsb2FkQnRuOiAnRW52aWFyJyxcbiAgICBkcmFnTkRyb3BCb3g6ICdBcnJhc3RlIGUgc29sdGUnLFxuICAgIGF0dGFjaFBpbkJ0bjogJ0FuZXhhciBBcnF1aXZvLi4uJyxcbiAgICBhZnRlclVwbG9hZE1zZ19zdWNjZXNzOiAnRW52aWFkbyBjb20gc3VjZXNzbyAhJyxcbiAgICBhZnRlclVwbG9hZE1zZ19lcnJvcjogJ0ZhbGhhIG5vIGVudmlvICEnLFxuICAgIHNpemVMaW1pdDogJ1RhbWFuaG8gbcOheGltbycsXG4gIH07XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjdXJyZW50VXBsb2FkczogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGZpbGVOYW1lSW5kZXggPSB0cnVlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgd2l0aENyZWRlbnRpYWxzID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBhdXRvVXBsb2FkID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgaWREYXRlOiBudW1iZXIgPSArbmV3IERhdGUoKTtcblxuICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSkge1xuICAgIC8vIFRyYWNrIGNoYW5nZXMgaW4gQ29uZmlndXJhdGlvbiBhbmQgc2VlIGlmIHVzZXIgaGFzIGV2ZW4gcHJvdmlkZWQgQ29uZmlndXJhdGlvbi5cbiAgICBpZiAoY2hhbmdlcy5jb25maWcgJiYgdGhpcy5jb25maWcpIHtcbiAgICAgIC8vIEFzc2lnbiBVc2VyIENvbmZpZ3VyYXRpb25zIHRvIExpYnJhcnkgUHJvcGVydGllcy5cbiAgICAgIHRoaXMudGhlbWUgPSB0aGlzLmNvbmZpZy50aGVtZSB8fCAnJztcbiAgICAgIHRoaXMuaWQgPVxuICAgICAgICB0aGlzLmNvbmZpZy5pZCB8fFxuICAgICAgICBwYXJzZUludCgodGhpcy5pZERhdGUgLyAxMDAwMCkudG9TdHJpbmcoKS5zcGxpdCgnLicpWzFdLCAxMCkgK1xuICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSAqIDEwMDAwO1xuICAgICAgdGhpcy5oaWRlUHJvZ3Jlc3NCYXIgPSB0aGlzLmNvbmZpZy5oaWRlUHJvZ3Jlc3NCYXIgfHwgZmFsc2U7XG4gICAgICB0aGlzLmhpZGVSZXNldEJ0biA9IHRoaXMuY29uZmlnLmhpZGVSZXNldEJ0biB8fCBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVNlbGVjdEJ0biA9IHRoaXMuY29uZmlnLmhpZGVTZWxlY3RCdG4gfHwgZmFsc2U7XG4gICAgICB0aGlzLm1heFNpemUgPSAodGhpcy5jb25maWcubWF4U2l6ZSB8fCAyMCkgKiAxMDI0MDAwOyAvLyBtYiB0byBieXRlcy5cbiAgICAgIGlmICh0aGlzLmNvbmZpZy51cGxvYWRBUEkpIHtcbiAgICAgICAgdGhpcy51cGxvYWRBUEkgPSB0aGlzLmNvbmZpZy51cGxvYWRBUEkudXJsO1xuICAgICAgICB0aGlzLm1ldGhvZCA9IHRoaXMuY29uZmlnLnVwbG9hZEFQSS5tZXRob2QgfHwgJ1BPU1QnO1xuICAgICAgICB0aGlzLmZvcm1hdHNBbGxvd2VkID0gdGhpcy5jb25maWcuZm9ybWF0c0FsbG93ZWQgfHwgJyonO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gdGhpcy5jb25maWcubXVsdGlwbGUgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuY29uZmlnLnVwbG9hZEFQSS5oZWFkZXJzIHx8IHt9O1xuICAgICAgICB0aGlzLnBhcmFtcyA9IHRoaXMuY29uZmlnLnVwbG9hZEFQSS5wYXJhbXMgfHwge307XG4gICAgICAgIHRoaXMucmVzcG9uc2VUeXBlID0gdGhpcy5jb25maWcudXBsb2FkQVBJLnJlc3BvbnNlVHlwZSB8fCAnanNvbic7XG4gICAgICAgIHRoaXMud2l0aENyZWRlbnRpYWxzID0gdGhpcy5jb25maWcudXBsb2FkQVBJLndpdGhDcmVkZW50aWFscyB8fCBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybWF0c0FsbG93ZWRUZXh0ID1cbiAgICAgICAgdGhpcy5mb3JtYXRzQWxsb3dlZCA9PT0gJyonID8gJycgOiAnKCcgKyB0aGlzLmZvcm1hdHNBbGxvd2VkICsgJyknO1xuICAgICAgdGhpcy5maWxlTmFtZUluZGV4ID0gdGhpcy5jb25maWcuZmlsZU5hbWVJbmRleCA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWU7XG4gICAgICB0aGlzLmF1dG9VcGxvYWQgPSB0aGlzLmNvbmZpZy5hdXRvVXBsb2FkIHx8IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuY29uZmlnLnJlcGxhY2VUZXh0cykge1xuICAgICAgICB0aGlzLnJlcGxhY2VUZXh0cyA9IHtcbiAgICAgICAgICAuLi50aGlzLnJlcGxhY2VUZXh0cyxcbiAgICAgICAgICAuLi50aGlzLmNvbmZpZy5yZXBsYWNlVGV4dHMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgd2hlbiByZXNldFVwbG9hZCB2YWx1ZSBjaGFuZ2VzIGZyb20gZmFsc2UgdG8gdHJ1ZS5cbiAgICBpZiAoY2hhbmdlcy5yZXNldFVwbG9hZCkge1xuICAgICAgaWYgKGNoYW5nZXMucmVzZXRVcGxvYWQuY3VycmVudFZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMucmVzZXRGaWxlVXBsb2FkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogRnVuw6fDo28gcmVzZXRhciBjb21wb25lbnRlICovXG4gIHJlc2V0RmlsZVVwbG9hZCgpIHtcbiAgICB0aGlzLmFsbG93ZWRGaWxlcyA9IFtdO1xuICAgIHRoaXMuQ2FwdGlvbiA9IFtdO1xuICAgIHRoaXMubm90QWxsb3dlZEZpbGVzID0gW107XG4gICAgdGhpcy51cGxvYWRNc2cgPSBmYWxzZTtcbiAgICB0aGlzLmVuYWJsZVVwbG9hZEJ0biA9IGZhbHNlO1xuICB9XG5cbiAgLyogRGV0ZWN0YXIgbXVkYW7Dp2EgICovXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpbGVTZWxlY3RlZC5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLm5vdEFsbG93ZWRGaWxlcyA9IFtdO1xuICAgIGNvbnN0IGZpbGVFeHRSZWdFeHA6IFJlZ0V4cCA9IC8oPzpcXC4oW14uXSspKT8kLztcbiAgICBsZXQgZmlsZUxpc3Q6IEZpbGVMaXN0O1xuXG4gICAgaWYgKHRoaXMuYWZ0ZXJVcGxvYWQgfHwgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuYWxsb3dlZEZpbGVzID0gW107XG4gICAgICB0aGlzLkNhcHRpb24gPSBbXTtcbiAgICAgIHRoaXMuYWZ0ZXJVcGxvYWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2Ryb3AnKSB7XG4gICAgICBmaWxlTGlzdCA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcztcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXMgfHwgZXZlbnQuc3JjRWxlbWVudC5maWxlcztcbiAgICB9XG5cbiAgICAvLyAnZm9yRWFjaCcgZG9lcyBub3QgZXhpc3Qgb24gJ2ZpbGVsaXN0JyB0aGF0J3Mgd2h5IHRoaXMgZ29vZCBvbGQgJ2ZvcicgaXMgdXNlZC5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGZvci1vZlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IF9jdXJyZW50RmlsZUV4dDogYW55ID0gZmlsZUV4dFJlZ0V4cC5leGVjKGZpbGVMaXN0W2ldLm5hbWUpO1xuICAgICAgY29uc3QgY3VycmVudEZpbGVFeHQgPVxuICAgICAgICB0eXBlb2YgX2N1cnJlbnRGaWxlRXh0WzFdID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gX2N1cnJlbnRGaWxlRXh0WzFdLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICA6ICcnO1xuICAgICAgY29uc3QgaXNGb3JtYXRWYWxpZCA9IHRoaXMuZm9ybWF0c0FsbG93ZWQuaW5jbHVkZXMoJyonKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiB0aGlzLmZvcm1hdHNBbGxvd2VkLmluY2x1ZGVzKGN1cnJlbnRGaWxlRXh0KTtcblxuICAgICAgY29uc3QgaXNTaXplVmFsaWQgPSBmaWxlTGlzdFtpXS5zaXplIDw9IHRoaXMubWF4U2l6ZTtcblxuICAgICAgLy8gQ2hlY2sgd2hldGhlciBjdXJyZW50IGZpbGUgZm9ybWF0IGFuZCBzaXplIGlzIGNvcnJlY3QgYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9ucy5cbiAgICAgIGlmIChpc0Zvcm1hdFZhbGlkICYmIGlzU2l6ZVZhbGlkKSB7XG4gICAgICAgIHRoaXMuYWxsb3dlZEZpbGVzLnB1c2goZmlsZUxpc3RbaV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RBbGxvd2VkRmlsZXMucHVzaCh7XG4gICAgICAgICAgZmlsZU5hbWU6IGZpbGVMaXN0W2ldLm5hbWUsXG4gICAgICAgICAgZmlsZVNpemU6IHRoaXMuY29udmVydFNpemUoZmlsZUxpc3RbaV0uc2l6ZSksXG4gICAgICAgICAgZXJyb3JNc2c6ICFpc0Zvcm1hdFZhbGlkID8gJ0ludmFsaWQgZm9ybWF0JyA6ICdJbnZhbGlkIHNpemUnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSdzIGFueSBhbGxvd2VkRmlsZXMuXG4gICAgaWYgKHRoaXMuYWxsb3dlZEZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZW5hYmxlVXBsb2FkQnRuID0gdHJ1ZTtcbiAgICAgIC8vIFVwbG9hZCB0aGUgZmlsZXMgZGlyZWN0bHkgaWYgdGhlbWUgaXMgYXR0YWNoIHBpbiAoYXMgdXBsb2FkIGJ0biBpcyBub3QgdGhlcmUgZm9yIHRoaXMgdGhlbWUpIG9yIGF1dG9VcGxvYWQgaXMgdHJ1ZS5cbiAgICAgIGlmICh0aGlzLnRoZW1lID09PSAnYXR0YWNoUGluJyB8fCB0aGlzLmF1dG9VcGxvYWQpIHtcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlcygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuYWJsZVVwbG9hZEJ0biA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkTXNnID0gZmFsc2U7XG4gICAgdGhpcy51cGxvYWRTdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy51cGxvYWRQZXJjZW50ID0gMDtcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgLyogRnVuw6fDo28gcGFyYSBlbnZpYXIgYXJxdWl2byBwYXJhIHNlcnZpZG9yICovXG4gIHVwbG9hZEZpbGVzKCkge1xuICAgIHRoaXMucHJvZ3Jlc3NCYXJTaG93ID0gdHJ1ZTtcbiAgICB0aGlzLnVwbG9hZFN0YXJ0ZWQgPSB0cnVlO1xuICAgIHRoaXMubm90QWxsb3dlZEZpbGVzID0gW107XG4gICAgbGV0IGlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmlzQWxsb3dlZEZpbGVTaW5nbGUgPSB0aGlzLmFsbG93ZWRGaWxlcy5sZW5ndGggPD0gMTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgLy8gQWRkIGRhdGEgdG8gYmUgc2VudCBpbiB0aGlzIHJlcXVlc3RcbiAgICB0aGlzLmFsbG93ZWRGaWxlcy5mb3JFYWNoKChmaWxlLCBpKSA9PiB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgIHRoaXMuQ2FwdGlvbltpXSB8fCAnZmlsZScgKyAodGhpcy5maWxlTmFtZUluZGV4ID8gaSA6ICcnKSxcbiAgICAgICAgdGhpcy5hbGxvd2VkRmlsZXNbaV1cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmh0dHBcbiAgICAgIC5yZXF1ZXN0KHRoaXMubWV0aG9kLnRvVXBwZXJDYXNlKCksIHRoaXMudXBsb2FkQVBJLCB7XG4gICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiB0aGlzLnJlc3BvbnNlVHlwZSxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLndpdGhDcmVkZW50aWFscyxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBVcGxvYWQgUHJvZ3Jlc3NcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVVcGxvYWRCdG4gPSBmYWxzZTsgLy8gYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpZiBwcm9jZXNzIHVwbG9hZGluZ1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERvbmUgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUGVyY2VudCA9IE1hdGgucm91bmQoKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKSAqIDEwMCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09PSAyMDAgfHwgZXZlbnQuc3RhdHVzID09PSAyMDEpIHtcbiAgICAgICAgICAgICAgLy8gU3VjY2Vzc1xuICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzQmFyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmVuYWJsZVVwbG9hZEJ0biA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLnVwbG9hZE1zZyA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuYWZ0ZXJVcGxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgICBpZiAoIWlzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZE1zZ1RleHQgPVxuICAgICAgICAgICAgICAgICAgdGhpcy5yZXBsYWNlVGV4dHMuYWZ0ZXJVcGxvYWRNc2dfc3VjY2VzcyB8fFxuICAgICAgICAgICAgICAgICAgJ1N1Y2Nlc3NmdWxseSBVcGxvYWRlZCAhJztcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZE1zZ0NsYXNzID0gJ3RleHQtc3VjY2VzcyBsZWFkJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gRmFpbHVyZVxuICAgICAgICAgICAgICBpc0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuQXBpUmVzcG9uc2UuZW1pdChldmVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ0V2ZW50IE90aGVyOiAnLCBldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBGYWlsdXJlXG4gICAgICAgICAgaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgICAgICAgICB0aGlzLkFwaVJlc3BvbnNlLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgaGFuZGxlRXJyb3JzKCkge1xuICAgIHRoaXMucHJvZ3Jlc3NCYXJTaG93ID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVVcGxvYWRCdG4gPSBmYWxzZTtcbiAgICB0aGlzLnVwbG9hZE1zZyA9IHRydWU7XG4gICAgdGhpcy5hZnRlclVwbG9hZCA9IHRydWU7XG4gICAgdGhpcy51cGxvYWRNc2dUZXh0ID1cbiAgICAgIHRoaXMucmVwbGFjZVRleHRzLmFmdGVyVXBsb2FkTXNnX2Vycm9yIHx8ICdFcnJvciBpbiB1cGxvYWRpbmcgZmlsZXMnO1xuICAgIHRoaXMudXBsb2FkTXNnQ2xhc3MgPSAndGV4dC1kYW5nZXIgbGVhZCc7XG4gIH1cblxuICByZW1vdmVGaWxlKGk6IGFueSwgc2ZfbmE6IGFueSkge1xuICAgIGlmIChzZl9uYSA9PT0gJ3NmJykge1xuICAgICAgdGhpcy5hbGxvd2VkRmlsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgdGhpcy5DYXB0aW9uLnNwbGljZShpLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RBbGxvd2VkRmlsZXMuc3BsaWNlKGksIDEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFsbG93ZWRGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZW5hYmxlVXBsb2FkQnRuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29udmVydFNpemUoZmlsZVNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZpbGVTaXplIDwgMTAyNDAwMFxuICAgICAgPyAoZmlsZVNpemUgLyAxMDI0KS50b0ZpeGVkKDIpICsgJyBLQidcbiAgICAgIDogKGZpbGVTaXplIC8gMTAyNDAwMCkudG9GaXhlZCgyKSArICcgTUInO1xuICB9XG5cbiAgYXR0YWNocGluT25jbGljaygpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbCcgKyB0aGlzLmlkKTtcbiAgICBpZiAoZWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vbkNoYW5nZShldmVudCk7XG4gIH1cblxuICBhbGxvd0Ryb3AoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gIH1cbn1cbiIsIjxsYWJlbCBmb3I9XCJzZWx7e2lkfX1cIiBjbGFzcz1cIndjby1maWxlLXVwbG9hZFwiIChkcm9wKT1cImRyb3AoJGV2ZW50KVwiIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwidXBsb2FkX19kcm9wLWluZm9cIj5cbiAgICA8c3Bhbj5BcnJhc3RlLW9zIGFxdWkgb3U8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZF9fYnV0dG9uXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+Y2xvdWRfdXBsb2FkPC9zcGFuPlxuICAgICAgPHNwYW4+e3tyZXBsYWNlVGV4dHMuc2VsZWN0RmlsZUJ0bn19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRfX2luZm9cIiAqbmdJZj1cIiFhbGxvd2VkRmlsZXMubGVuZ3RoXCIgPnt7ZGVzY3JpcHRpb259fTwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93ZWRGaWxlcy5sZW5ndGhcIj5cbiAgICA8c3BhbiBjbGFzcz1cInVwbG9hZF9faW5mb1wiICpuZ0Zvcj1cImxldCBzZiBvZiBhbGxvd2VkRmlsZXM7bGV0IGk9aW5kZXhcIj5cbiAgICAgIHt7c2YubmFtZX19IDxzbWFsbD4oe3tjb252ZXJ0U2l6ZShzZi5zaXplKX19KTwvc21hbGw+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGlucHV0IGNsYXNzPVwidXBsb2FkX19maWxlXCIgdHlwZT1cImZpbGVcIiBpZD1cInNlbHt7aWR9fVwiIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRpdGxlPVwiU2VsZWN0IGZpbGVcIlxuICBuYW1lPVwiZmlsZXNbXVwiIFthY2NlcHRdPVwiZm9ybWF0c0FsbG93ZWRcIiBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aXBsZSA/ICcnIDogbnVsbFwiIC8+XG48L2xhYmVsPiJdfQ==
@@ -18,4 +18,6 @@ export * from './lib/user-avatar/user-avatar.component';
18
18
  // Smart Select
19
19
  export * from './lib/smart-select/smart-select.component';
20
20
  export * from './lib/smart-select/smart-select-options.component';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUcxQyxtQkFBbUI7QUFDbkIsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhDQUE4QyxDQUFDO0FBSTdELGFBQWE7QUFDYixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFHdEMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsU0FBUztBQUNULGNBQWMseUNBQXlDLENBQUE7QUFHdkQsZUFBZTtBQUNmLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlbml4ZHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwL3N0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC50eXBlcyc7XG5cblxuLy8gbXNnIGJveCBmZWVkYmFja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXNnLWJveC1mZWVkYmFjay9tc2ctYm94LWZlZWRiYWNrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tc2ctYm94LWZlZWRiYWNrL21zZy1ib3gtZmVlYmFjay50eXBlcyc7XG5cblxuXG4vL21zZyBuYXZ0YWJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMvdGFicy50eXBlcyc7XG5cblxuLy9QYWdpbmF0aW9uIFxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbi8vIEF2YXRhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50J1xuXG5cbi8vIFNtYXJ0IFNlbGVjdFxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7Il19
21
+ // Timeline
22
+ export * from './lib/timeline/timeline.component';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUcxQyxtQkFBbUI7QUFDbkIsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhDQUE4QyxDQUFDO0FBSTdELGFBQWE7QUFDYixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFHdEMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsU0FBUztBQUNULGNBQWMseUNBQXlDLENBQUE7QUFHdkQsZUFBZTtBQUNmLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSxXQUFXO0FBQ1gsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlbml4ZHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwL3N0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC50eXBlcyc7XG5cblxuLy8gbXNnIGJveCBmZWVkYmFja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXNnLWJveC1mZWVkYmFjay9tc2ctYm94LWZlZWRiYWNrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tc2ctYm94LWZlZWRiYWNrL21zZy1ib3gtZmVlYmFjay50eXBlcyc7XG5cblxuXG4vL21zZyBuYXZ0YWJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMvdGFicy50eXBlcyc7XG5cblxuLy9QYWdpbmF0aW9uIFxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbi8vIEF2YXRhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50J1xuXG5cbi8vIFNtYXJ0IFNlbGVjdFxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7XG5cbi8vIFRpbWVsaW5lXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQnOyJdfQ==