@norwegian/core-components 6.1.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/accordion/accordion.component.mjs +14 -17
- package/esm2022/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.mjs +1 -1
- package/esm2022/lib/components/airport-select/airport-select.component.mjs +13 -1
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +7 -1
- package/esm2022/lib/components/backdrop/backdrop.component.mjs +3 -1
- package/esm2022/lib/components/box/box.component.mjs +4 -4
- package/esm2022/lib/components/button/button.component.mjs +5 -1
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -1
- package/esm2022/lib/components/chip/chip.component.mjs +2 -7
- package/esm2022/lib/components/container/container.component.mjs +1 -1
- package/esm2022/lib/components/continue/continue.component.mjs +6 -1
- package/esm2022/lib/components/cover/cover.component.mjs +1 -1
- package/esm2022/lib/components/datepicker/calendar/calendar.component.mjs +1 -1
- package/esm2022/lib/components/datepicker/datepicker.component.mjs +16 -1
- package/esm2022/lib/components/datepicker-combo/datepicker-combo.component.mjs +17 -1
- package/esm2022/lib/components/divider/divider.component.mjs +1 -1
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +2 -1
- package/esm2022/lib/components/filter/filter.component.mjs +36 -2
- package/esm2022/lib/components/grid/grid.component.mjs +1 -1
- package/esm2022/lib/components/icon/icon.component.mjs +1 -1
- package/esm2022/lib/components/icon-list/icon-list.component.mjs +1 -1
- package/esm2022/lib/components/info/info.component.mjs +5 -4
- package/esm2022/lib/components/input/input.component.mjs +6 -1
- package/esm2022/lib/components/journey/journey.component.mjs +5 -7
- package/esm2022/lib/components/journey-availability/journey-availability.component.mjs +7 -5
- package/esm2022/lib/components/journey-availability-list/journey-availability-list.component.mjs +22 -25
- package/esm2022/lib/components/journey-selection/journey-selection.component.mjs +12 -4
- package/esm2022/lib/components/journey-stopover/journey-stopover.component.mjs +18 -20
- package/esm2022/lib/components/list/list.component.mjs +1 -1
- package/esm2022/lib/components/modal/modal.component.mjs +5 -7
- package/esm2022/lib/components/number-field/number-field.component.mjs +4 -2
- package/esm2022/lib/components/page-footer/page-footer.component.mjs +2 -4
- package/esm2022/lib/components/page-header/page-header.component.mjs +14 -8
- package/esm2022/lib/components/passenger-select/models/passengers.model.mjs +1 -1
- package/esm2022/lib/components/passenger-select/passenger-select.component.mjs +11 -7
- package/esm2022/lib/components/phone-number/phone-number.component.mjs +11 -15
- package/esm2022/lib/components/premium-toggle/premium-toggle.component.mjs +3 -4
- package/esm2022/lib/components/radio/radio.component.mjs +4 -2
- package/esm2022/lib/components/select/select.component.mjs +11 -7
- package/esm2022/lib/components/simple-list/simple-list.component.mjs +1 -1
- package/esm2022/lib/components/slide-toggle/slide-toggle.component.mjs +9 -5
- package/esm2022/lib/components/slider/slider.component.mjs +32 -18
- package/esm2022/lib/components/sort/sort.component.mjs +11 -7
- package/esm2022/lib/components/spinner/spinner.component.mjs +13 -18
- package/esm2022/lib/components/subsidy-discount/subsidy-discount.component.mjs +13 -7
- package/esm2022/lib/components/suggestions/suggestions.component.mjs +3 -2
- package/esm2022/lib/components/tab-group/tab-group.component.mjs +3 -2
- package/esm2022/lib/components/table/table.component.mjs +1 -3
- package/esm2022/lib/components/textarea/textarea.component.mjs +6 -1
- package/esm2022/lib/components/toggle/toggle.component.mjs +5 -5
- package/esm2022/lib/components/trip-summary/trip-summary.component.mjs +26 -31
- package/esm2022/lib/components/weather-icon/weather-icon.component.mjs +3 -2
- package/fesm2022/norwegian-core-components.mjs +352 -221
- package/fesm2022/norwegian-core-components.mjs.map +1 -1
- package/lib/components/accordion/accordion.component.d.ts +65 -86
- package/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.d.ts +2 -2
- package/lib/components/airport-select/airport-select.component.d.ts +38 -2
- package/lib/components/autocomplete/autocomplete.component.d.ts +15 -2
- package/lib/components/backdrop/backdrop.component.d.ts +3 -0
- package/lib/components/box/box.component.d.ts +13 -3
- package/lib/components/button/button.component.d.ts +26 -0
- package/lib/components/checkbox/checkbox.component.d.ts +18 -2
- package/lib/components/chip/chip.component.d.ts +5 -21
- package/lib/components/container/container.component.d.ts +6 -0
- package/lib/components/continue/continue.component.d.ts +14 -0
- package/lib/components/cover/cover.component.d.ts +13 -3
- package/lib/components/datepicker/calendar/calendar.component.d.ts +2 -2
- package/lib/components/datepicker/datepicker.component.d.ts +33 -2
- package/lib/components/datepicker-combo/datepicker-combo.component.d.ts +42 -0
- package/lib/components/divider/divider.component.d.ts +9 -0
- package/lib/components/dropdown/dropdown.component.d.ts +8 -0
- package/lib/components/filter/filter.component.d.ts +108 -2
- package/lib/components/grid/grid.component.d.ts +12 -0
- package/lib/components/icon/icon.component.d.ts +5 -8
- package/lib/components/icon-list/icon-list.component.d.ts +5 -0
- package/lib/components/info/info.component.d.ts +7 -18
- package/lib/components/input/input.component.d.ts +30 -5
- package/lib/components/journey/journey.component.d.ts +9 -16
- package/lib/components/journey-availability/journey-availability.component.d.ts +8 -8
- package/lib/components/journey-availability-list/journey-availability-list.component.d.ts +29 -34
- package/lib/components/journey-selection/journey-selection.component.d.ts +14 -3
- package/lib/components/journey-stopover/journey-stopover.component.d.ts +35 -43
- package/lib/components/list/list.component.d.ts +8 -0
- package/lib/components/modal/modal.component.d.ts +16 -34
- package/lib/components/number-field/number-field.component.d.ts +26 -12
- package/lib/components/page-footer/page-footer.component.d.ts +9 -16
- package/lib/components/page-header/page-header.component.d.ts +29 -15
- package/lib/components/passenger-select/models/passengers.model.d.ts +2 -2
- package/lib/components/passenger-select/passenger-select.component.d.ts +33 -18
- package/lib/components/phone-number/phone-number.component.d.ts +80 -108
- package/lib/components/premium-toggle/premium-toggle.component.d.ts +9 -13
- package/lib/components/radio/radio.component.d.ts +35 -18
- package/lib/components/select/select.component.d.ts +47 -29
- package/lib/components/simple-list/simple-list.component.d.ts +16 -8
- package/lib/components/slide-toggle/slide-toggle.component.d.ts +16 -9
- package/lib/components/slider/slider.component.d.ts +51 -28
- package/lib/components/sort/sort.component.d.ts +12 -7
- package/lib/components/spinner/spinner.component.d.ts +24 -37
- package/lib/components/subsidy-discount/subsidy-discount.component.d.ts +14 -7
- package/lib/components/suggestions/suggestions.component.d.ts +6 -3
- package/lib/components/tab-group/tab-group.component.d.ts +6 -3
- package/lib/components/table/table.component.d.ts +3 -8
- package/lib/components/textarea/textarea.component.d.ts +42 -20
- package/lib/components/toggle/toggle.component.d.ts +44 -68
- package/lib/components/trip-summary/trip-summary.component.d.ts +68 -82
- package/lib/components/weather-icon/weather-icon.component.d.ts +12 -6
- package/package.json +1 -1
|
@@ -21,25 +21,20 @@ export class AccordionComponent extends NasComponentBase {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super('nas-accordion');
|
|
23
23
|
/**
|
|
24
|
+
* @property Input
|
|
24
25
|
* @description
|
|
25
26
|
* Property to set custom styling on accordion.
|
|
26
|
-
*
|
|
27
27
|
* @example
|
|
28
|
-
*
|
|
29
|
-
* ```html
|
|
30
28
|
* <nas-accordion [cssStyle]="{'width': '300px', 'height': '40px'}}">You can put any kind of elements and content here...</nas-accordion>
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
29
|
+
*/
|
|
34
30
|
this.cssStyle = {};
|
|
35
31
|
/**
|
|
32
|
+
* @property Output
|
|
36
33
|
* @description
|
|
37
34
|
* A boolean event that is fired on toggle.
|
|
38
35
|
* @example
|
|
39
|
-
* ```html
|
|
40
36
|
* <nas-accordion (toggleChange)="onToggleChange($event)">You can put any kind of elements and content here...</nas-accordion>
|
|
41
|
-
|
|
42
|
-
*/
|
|
37
|
+
*/
|
|
43
38
|
this.toggleChange = new EventEmitter();
|
|
44
39
|
this.animateIn = false;
|
|
45
40
|
this.animateOut = false;
|
|
@@ -67,8 +62,6 @@ export class AccordionComponent extends NasComponentBase {
|
|
|
67
62
|
this.exists(this.approve) && 'approve',
|
|
68
63
|
this.exists(this.primary) && 'primary',
|
|
69
64
|
this.exists(this.info) && 'info',
|
|
70
|
-
this.exists(this.subheaderPositive) && 'subheader--positive',
|
|
71
|
-
this.exists(this.subheaderNegative) && 'subheader--negative'
|
|
72
65
|
];
|
|
73
66
|
}
|
|
74
67
|
wrapperClass() {
|
|
@@ -101,16 +94,16 @@ export class AccordionComponent extends NasComponentBase {
|
|
|
101
94
|
this.regularHeader = !this.exists(this.small) && !this.exists(this.simple) ? true : false;
|
|
102
95
|
}
|
|
103
96
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AccordionComponent, selector: "nas-accordion", inputs: { expanded: "expanded", title: "title",
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AccordionComponent, selector: "nas-accordion", inputs: { expanded: "expanded", title: "title", badge: "badge", icon: "icon", simple: "simple", spaced: "spaced", small: "small", inverted: "inverted", containerOnToggle: "containerOnToggle", nopadding: "nopadding", transparent: "transparent", approve: "approve", primary: "primary", info: "info", badgeInfo: "badgeInfo", badgeSuccess: "badgeSuccess", badgeWarning: "badgeWarning", badgeError: "badgeError", cssClass: "cssClass", cssStyle: "cssStyle" }, outputs: { toggleChange: "toggleChange" }, usesInheritance: true, ngImport: i0, template: "<section [nasClass]=\"getClasses('', getModifiers())\" [ngStyle]=\"cssStyle\" ref=\"element\">\n <div *ngIf=\"exists(containerOnToggle); else toggleTemplate\" class=\"container\">\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\n </div>\n\n <div [nasClass]=\"wrapperClass()\">\n <div [hidden]=\"!exists(expanded)\" [nasClass]=\"getClass('content')\"\n [style.background-color]=\"exists(transparent) && 'inherit'\" [style.padding]=\"exists(transparent) && 'unset'\">\n <ng-content></ng-content>\n </div>\n </div>\n</section>\n\n<ng-template #toggleTemplate>\n <button type=\"button\" [nasClass]=\"getClass('toggle')\" (click)=\"toggle()\">\n <span [nasClass]=\"getClass('icon')\" *ngIf=\"icon\">\n <nas-icon [icon]=\"icon\"></nas-icon>\n </span>\n <div [nasClass]=\"getClass('breakdown')\">\n <h4 *ngIf=\"regularHeader\" [nasClass]=\"getClass('title')\">{{title}}</h4>\n <h5 *ngIf=\"!regularHeader\" [nasClass]=\"getClass('title')\">{{title}}</h5>\n <div *ngIf=\"badge\" [nasClass]=\"getClass('badge', exists(badgeInfo) ? 'info' :\n exists(badgeSuccess) ? 'success' : exists(badgeWarning) ? 'warning': exists(badgeError) ? 'error': '')\">\n <span>{{badge}}</span>\n </div>\n </div>\n <nas-icon type=\"chevron-down\" [nasClass]=\"getClass('indicator', exists(badge) ? 'no-margin' : '')\"></nas-icon>\n </button>\n</ng-template>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-accordion{position:relative;margin-bottom:3px}.nas-accordion__toggle{display:flex;align-items:center;text-align:left;width:100%;padding:12px 16px;background-color:#e3e3e3;outline:0}.nas-accordion__toggle:hover,.nas-accordion__toggle:focus{background-color:#fff}.nas-accordion__breakdown{display:flex;flex-direction:column;align-items:normal;width:100%}@media (min-width: 640px){.nas-accordion__breakdown{flex-direction:row;align-items:center}}.nas-accordion__wrapper--enter{perspective:1000px}.nas-accordion__wrapper--enter .nas-accordion__content{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:flip-in .55s ease both}.nas-accordion__wrapper--leave{position:absolute;width:100%;perspective:1000px}.nas-accordion__wrapper--leave .nas-accordion__content{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:flip-out .2s ease both}.nas-accordion__content{padding:9px 16px 16px;background-color:#fff}.nas-accordion__content p:last-child{margin-bottom:0}.nas-accordion__indicator{position:relative;margin-left:auto;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-accordion__indicator--no-margin,.nas-accordion__title{margin:0}.nas-accordion--simple .nas-accordion__toggle{padding:0;background-color:transparent;margin-bottom:12px}.nas-accordion--simple .nas-accordion__indicator{margin-left:9px;transform-origin:45% 55%;margin-bottom:3px}.nas-accordion--simple .nas-accordion__content{padding:16px}.nas-accordion__icon{margin:0 9px 0 0}.nas-accordion__badge{background-color:#f9f9f9;border:1px solid #EAEAEA;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge{margin-left:auto}}.nas-accordion__badge--success{background-color:#f4faf2;border:1px solid #2EB004;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--success{margin-left:auto}}.nas-accordion__badge--info{background-color:#ebf4ff;border:1px solid #003251;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--info{margin-left:auto}}.nas-accordion__badge--error{background-color:#fff5f3;border:1px solid #CC3A19;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--error{margin-left:auto}}.nas-accordion__badge--warning{background-color:#fff6ec;border:1px solid #FC9E12;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--warning{margin-left:auto}}.nas-accordion--expanded{z-index:20}.nas-accordion--expanded:not(.nas-accordion--info):not(.nas-accordion--simple) .nas-accordion__toggle{background-color:#fff}.nas-accordion--expanded .nas-accordion__indicator{transform:rotate(-180deg)}@media (min-width: 640px){.nas-accordion--spaced .nas-accordion__toggle{padding:16px 24px}}@media (min-width: 640px){.nas-accordion--spaced .nas-accordion__content{padding:12px 24px 24px}}.nas-accordion--small .nas-accordion__toggle{padding:9px 16px;background-color:#e3e3e3}.nas-accordion--small .nas-accordion__toggle:hover,.nas-accordion--small .nas-accordion__toggle:focus{background-color:#fff}.nas-accordion--small .nas-accordion__content{padding:3px 16px 24px}.nas-accordion--small .nas-accordion__indicator{transform-origin:45% 55%;margin-bottom:3px}.nas-accordion--inverted .nas-accordion__toggle{background-color:#fff}.nas-accordion--inverted .nas-accordion__toggle:hover,.nas-accordion--inverted .nas-accordion__toggle:focus{background-color:#e3e3e3}.nas-accordion--inverted .nas-accordion__content,.nas-accordion--inverted.nas-accordion--expanded .nas-accordion__toggle{background-color:#e3e3e3}.nas-accordion--nopadding{padding-bottom:25px}.nas-accordion--nopadding .nas-accordion__toggle,.nas-accordion--nopadding .nas-accordion__content{padding:0}.nas-accordion--approve .nas-accordion__toggle{color:#238e00}.nas-accordion--primary .nas-accordion__toggle{color:#d81939}.nas-accordion--info .nas-accordion__toggle,.nas-accordion--info .nas-accordion__content{background-color:#ffc;color:#003251}.nas-accordion .nas-icon-positive--light,.nas-accordion .nas-icon-negative--light{transform:scale(.85)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
105
98
|
}
|
|
106
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
107
100
|
type: Component,
|
|
108
|
-
args: [{ selector: 'nas-accordion', encapsulation: ViewEncapsulation.None, template: "<section [nasClass]=\"getClasses('', getModifiers())\" [ngStyle]=\"cssStyle\" ref=\"element\">\n <div *ngIf=\"exists(containerOnToggle); else toggleTemplate\" class=\"container\">\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\n </div>\n\n <div [nasClass]=\"wrapperClass()\">\n <div [hidden]=\"!exists(expanded)\" [nasClass]=\"getClass('content')\"
|
|
101
|
+
args: [{ selector: 'nas-accordion', encapsulation: ViewEncapsulation.None, template: "<section [nasClass]=\"getClasses('', getModifiers())\" [ngStyle]=\"cssStyle\" ref=\"element\">\n <div *ngIf=\"exists(containerOnToggle); else toggleTemplate\" class=\"container\">\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\n </div>\n\n <div [nasClass]=\"wrapperClass()\">\n <div [hidden]=\"!exists(expanded)\" [nasClass]=\"getClass('content')\"\n [style.background-color]=\"exists(transparent) && 'inherit'\" [style.padding]=\"exists(transparent) && 'unset'\">\n <ng-content></ng-content>\n </div>\n </div>\n</section>\n\n<ng-template #toggleTemplate>\n <button type=\"button\" [nasClass]=\"getClass('toggle')\" (click)=\"toggle()\">\n <span [nasClass]=\"getClass('icon')\" *ngIf=\"icon\">\n <nas-icon [icon]=\"icon\"></nas-icon>\n </span>\n <div [nasClass]=\"getClass('breakdown')\">\n <h4 *ngIf=\"regularHeader\" [nasClass]=\"getClass('title')\">{{title}}</h4>\n <h5 *ngIf=\"!regularHeader\" [nasClass]=\"getClass('title')\">{{title}}</h5>\n <div *ngIf=\"badge\" [nasClass]=\"getClass('badge', exists(badgeInfo) ? 'info' :\n exists(badgeSuccess) ? 'success' : exists(badgeWarning) ? 'warning': exists(badgeError) ? 'error': '')\">\n <span>{{badge}}</span>\n </div>\n </div>\n <nas-icon type=\"chevron-down\" [nasClass]=\"getClass('indicator', exists(badge) ? 'no-margin' : '')\"></nas-icon>\n </button>\n</ng-template>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-accordion{position:relative;margin-bottom:3px}.nas-accordion__toggle{display:flex;align-items:center;text-align:left;width:100%;padding:12px 16px;background-color:#e3e3e3;outline:0}.nas-accordion__toggle:hover,.nas-accordion__toggle:focus{background-color:#fff}.nas-accordion__breakdown{display:flex;flex-direction:column;align-items:normal;width:100%}@media (min-width: 640px){.nas-accordion__breakdown{flex-direction:row;align-items:center}}.nas-accordion__wrapper--enter{perspective:1000px}.nas-accordion__wrapper--enter .nas-accordion__content{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:flip-in .55s ease both}.nas-accordion__wrapper--leave{position:absolute;width:100%;perspective:1000px}.nas-accordion__wrapper--leave .nas-accordion__content{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:flip-out .2s ease both}.nas-accordion__content{padding:9px 16px 16px;background-color:#fff}.nas-accordion__content p:last-child{margin-bottom:0}.nas-accordion__indicator{position:relative;margin-left:auto;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-accordion__indicator--no-margin,.nas-accordion__title{margin:0}.nas-accordion--simple .nas-accordion__toggle{padding:0;background-color:transparent;margin-bottom:12px}.nas-accordion--simple .nas-accordion__indicator{margin-left:9px;transform-origin:45% 55%;margin-bottom:3px}.nas-accordion--simple .nas-accordion__content{padding:16px}.nas-accordion__icon{margin:0 9px 0 0}.nas-accordion__badge{background-color:#f9f9f9;border:1px solid #EAEAEA;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge{margin-left:auto}}.nas-accordion__badge--success{background-color:#f4faf2;border:1px solid #2EB004;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--success{margin-left:auto}}.nas-accordion__badge--info{background-color:#ebf4ff;border:1px solid #003251;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--info{margin-left:auto}}.nas-accordion__badge--error{background-color:#fff5f3;border:1px solid #CC3A19;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--error{margin-left:auto}}.nas-accordion__badge--warning{background-color:#fff6ec;border:1px solid #FC9E12;padding:4px 8px;margin:3px 24px 3px 0;font-size:14px;color:#003251;border-radius:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.nas-accordion__badge--warning{margin-left:auto}}.nas-accordion--expanded{z-index:20}.nas-accordion--expanded:not(.nas-accordion--info):not(.nas-accordion--simple) .nas-accordion__toggle{background-color:#fff}.nas-accordion--expanded .nas-accordion__indicator{transform:rotate(-180deg)}@media (min-width: 640px){.nas-accordion--spaced .nas-accordion__toggle{padding:16px 24px}}@media (min-width: 640px){.nas-accordion--spaced .nas-accordion__content{padding:12px 24px 24px}}.nas-accordion--small .nas-accordion__toggle{padding:9px 16px;background-color:#e3e3e3}.nas-accordion--small .nas-accordion__toggle:hover,.nas-accordion--small .nas-accordion__toggle:focus{background-color:#fff}.nas-accordion--small .nas-accordion__content{padding:3px 16px 24px}.nas-accordion--small .nas-accordion__indicator{transform-origin:45% 55%;margin-bottom:3px}.nas-accordion--inverted .nas-accordion__toggle{background-color:#fff}.nas-accordion--inverted .nas-accordion__toggle:hover,.nas-accordion--inverted .nas-accordion__toggle:focus{background-color:#e3e3e3}.nas-accordion--inverted .nas-accordion__content,.nas-accordion--inverted.nas-accordion--expanded .nas-accordion__toggle{background-color:#e3e3e3}.nas-accordion--nopadding{padding-bottom:25px}.nas-accordion--nopadding .nas-accordion__toggle,.nas-accordion--nopadding .nas-accordion__content{padding:0}.nas-accordion--approve .nas-accordion__toggle{color:#238e00}.nas-accordion--primary .nas-accordion__toggle{color:#d81939}.nas-accordion--info .nas-accordion__toggle,.nas-accordion--info .nas-accordion__content{background-color:#ffc;color:#003251}.nas-accordion .nas-icon-positive--light,.nas-accordion .nas-icon-negative--light{transform:scale(.85)}\n"] }]
|
|
109
102
|
}], ctorParameters: function () { return []; }, propDecorators: { expanded: [{
|
|
110
103
|
type: Input
|
|
111
104
|
}], title: [{
|
|
112
105
|
type: Input
|
|
113
|
-
}],
|
|
106
|
+
}], badge: [{
|
|
114
107
|
type: Input
|
|
115
108
|
}], icon: [{
|
|
116
109
|
type: Input
|
|
@@ -134,9 +127,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
134
127
|
type: Input
|
|
135
128
|
}], info: [{
|
|
136
129
|
type: Input
|
|
137
|
-
}],
|
|
130
|
+
}], badgeInfo: [{
|
|
138
131
|
type: Input
|
|
139
|
-
}],
|
|
132
|
+
}], badgeSuccess: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], badgeWarning: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], badgeError: [{
|
|
140
137
|
type: Input
|
|
141
138
|
}], cssClass: [{
|
|
142
139
|
type: Input
|
|
@@ -145,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
145
142
|
}], toggleChange: [{
|
|
146
143
|
type: Output
|
|
147
144
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSxZQUFZLENBQUM7Ozs7O0FBRTFEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUF1T3REOzs7O09BSUc7SUFDSDtRQUNFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQWpDekI7Ozs7Ozs7Ozs7V0FVRztRQUNNLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFFNUI7Ozs7Ozs7V0FPRztRQUNPLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7SUFTNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFnQixFQUFFLFNBQWU7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNB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R0FoVFUsa0JBQWtCO2tHQUFsQixrQkFBa0IsdWlCQ2xCL0IsZ2pEQStCQTs7MkZEYmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSTswRUFRNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFVRyxLQUFLO3NCQUFiLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFVRyxJQUFJO3NCQUFaLEtBQUs7Z0JBY0csTUFBTTtzQkFBZCxLQUFLO2dCQWNHLE1BQU07c0JBQWQsS0FBSztnQkFjRyxLQUFLO3NCQUFiLEtBQUs7Z0JBY0csUUFBUTtzQkFBaEIsS0FBSztnQkFjRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBY0csU0FBUztzQkFBakIsS0FBSztnQkFjRyxXQUFXO3NCQUFuQixLQUFLO2dCQWNHLE9BQU87c0JBQWYsS0FBSztnQkFjRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFTRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBYUcsUUFBUTtzQkFBaEIsS0FBSztnQkFhRyxRQUFRO3NCQUFoQixLQUFLO2dCQVVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlLCBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWNjb3JkaW9uIENvbXBvbmVudCB8IExheW91dFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gc2V0IGlmIGFjY29yZGlvbiBzaG91bGQgYmUgZXhwYW5kZWQgb3Igbm90LiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgQElucHV0KCkgZXhwYW5kZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHN0cmluZyBpbnB1dCB2YWx1ZSB0byBzZXQgdGl0bGUgdGV4dCBvZiBjb21wb25lbnQuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW3RpdGxlXT1cIidUaGlzIGlzIGEgdGl0bGUnXCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBzdHJpbmcgaW5wdXQgdmFsdWUgdG8gc2V0IHN1YmhlYWRlciB0ZXh0IG9mIGNvbXBvbmVudC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBbc3ViaGVhZGVyXT1cIidUaGlzIGlzIGEgc3ViaGVhZGVyJ1wiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgc3ViaGVhZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHN0cmluZyBpbnB1dCB2YWx1ZSB0byBzZXQgaWNvbiB0ZXh0IG9mIGNvbXBvbmVudC4gU3BlY2lmaWVzIHRoZSBpY29uIG5hbWUsIGRlZmF1bHRzIHRvICdzbWFsbCcuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW2ljb25dPVwiJ3NtYWxsJ1wiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzaW1wbGUgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBzaW1wbGU+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqIG9yXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW3NpbXBsZV09XCJpc1NpbXBsZVByb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBzaW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzcGFjZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBzcGFjZWQ+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqIG9yXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW3NwYWNlZF09XCJpc1NwYWNlZFByb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBzcGFjZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzbWFsbCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIHNtYWxsPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKiBvclxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtzbWFsbF09XCJpc1NtYWxsUHJvcGVydHlcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIHNtYWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgaW52ZXJ0ZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBpbnZlcnRlZD5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICogb3JcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBbaW52ZXJ0ZWRdPVwiaXNJbnZlcnRlZFByb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBpbnZlcnRlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IGEgY29udGFpbmVyIG9uIHRoZSB0b2dnbGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gY29udGFpbmVyT25Ub2dnbGU+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqIG9yXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW2NvbnRhaW5lck9uVG9nZ2xlXT1cImlzQ29udGFpbmVyT25Ub2dnbGVQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyT25Ub2dnbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHJlbW92ZSBwYWRkaW5nIG9uIGFjY29kaW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIG5vcGFkZGluZz5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICogb3JcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBbbm9wYWRkaW5nXT1cImluY2x1ZGVQYWRkaW5nUHJvcGVydHlcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIG5vcGFkZGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IHRyYW5zcGFyZW50IGJhY2tncm91bmQgY29sb3IuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gdHJhbnNwYXJlbnQ+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqIG9yXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW3RyYW5zcGFyZW50XT1cImlzVHJhbnNwYXJlbnRQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCB0aGUgYWNjb3JkaW9uIHRvIGFwcHJvdmUgc3R5bGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gYXBwcm92ZT5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICogb3JcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBbYXBwcm92ZV09XCJpc0FwcHJvdmVQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgYXBwcm92ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IHRoZSBhY2NvcmRpb24gdG8gcHJpbWFyeSBzdHlsZS5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8bmFzLWFjY29yZGlvbiBwcmltYXJ5PllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIGBgYFxuICAgKiBvclxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtwcmltYXJ5XT1cImlzUHJpbWFyeVByb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBwcmltYXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCB0aGUgYWNjb3JkaW9uIHRvIGluZm8gc3R5bGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gaW5mbz5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIGluZm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IHRoZSBhY2NvcmRpb24gdG8gc3ViaGVhZGVyIHBvc2l0aXZlIHN0eWxlLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIHN1YmhlYWRlcj1cIlRoaXMgaXMgc3ViaGVhZGVyXCIgc3ViaGVhZGVyUG9zaXRpdmU+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBzdWJoZWFkZXJQb3NpdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgdGhlIGFjY29yZGlvbiB0byBzdWJoZWFkZXIgbmVnYXRpdmUgc3R5bGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gc3ViaGVhZGVyPVwiVGhpcyBpcyBzdWJoZWFkZXJcIiBzdWJoZWFkZXJOZWdhdGl2ZT5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIHN1YmhlYWRlck5lZ2F0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgY3VzdG9tIENTUyBjbGFzcyB0byB0aGUgYWNjb3JkaW9uLiBBY2NvcmRpb24gd2lsbCBzZXR0IGFkZGl0aW9uYWwgY3VzdG9tIHN0eWxpbmcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gW2Nzc0NsYXNzXT1cIidteS1jdXN0b20tY2xhc3MnXCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjc3NDbGFzcz86IENsYXNzTW9kZWw7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcm9wZXJ0eSB0byBzZXQgY3VzdG9tIHN0eWxpbmcgb24gYWNjb3JkaW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtjc3NTdHlsZV09XCJ7J3dpZHRoJzogJzMwMHB4JywgJ2hlaWdodCc6ICc0MHB4J319XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjc3NTdHlsZTogYW55ID0ge307XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBvbiB0b2dnbGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5hcy1hY2NvcmRpb24gKHRvZ2dsZUNoYW5nZSk9XCJvblRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KCkgdG9nZ2xlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgYW5pbWF0ZUluID0gZmFsc2U7XG4gIHByaXZhdGUgYW5pbWF0ZU91dCA9IGZhbHNlO1xuICBwdWJsaWMgcmVndWxhckhlYWRlciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXByZXNlbnQgYSBhY2NvcmRpb24gY29tcG9uZW50LlxuICAgKiBXaWxsIGluaXRpYXRlIGNvcnJlY3QgYmxvY2sgc3R5bGUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbmFzLWFjY29yZGlvbicpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRIZWFkZXJUeXBlKCk7XG4gIH1cblxuICBnZXRDbGFzc2VzKGVsZW1lbnQ/OiBzdHJpbmcsIG1vZGlmaWVycz86IGFueSk6IEFycmF5PENsYXNzTW9kZWw+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gbmV3IEFycmF5PENsYXNzTW9kZWw+KCk7XG5cbiAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDbGFzcyhlbGVtZW50LCBtb2RpZmllcnMpKTtcblxuICAgIGlmICh0aGlzLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jc3NDbGFzcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXRNb2RpZmllcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICh0aGlzLmV4aXN0cyh0aGlzLmV4cGFuZGVkKSAmJiAhdGhpcy5hbmltYXRlT3V0KSAmJiAnZXhwYW5kZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zaW1wbGUpICYmICdzaW1wbGUnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWQpICYmICdzcGFjZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zbWFsbCkgJiYgJ3NtYWxsJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuaW52ZXJ0ZWQpICYmICdpbnZlcnRlZCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLm5vcGFkZGluZykgJiYgJ25vcGFkZGluZycsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmFwcHJvdmUpICYmICdhcHByb3ZlJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMucHJpbWFyeSkgJiYgJ3ByaW1hcnknLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5pbmZvKSAmJiAnaW5mbycsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnN1YmhlYWRlclBvc2l0aXZlKSAmJiAnc3ViaGVhZGVyLS1wb3NpdGl2ZScsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnN1YmhlYWRlck5lZ2F0aXZlKSAmJiAnc3ViaGVhZGVyLS1uZWdhdGl2ZSdcbiAgICBdO1xuICB9XG5cbiAgd3JhcHBlckNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIGNvbnN0IHdyYXBwZXJDbGFzcyA9IHRoaXMuZ2V0Q2xhc3MoJ3dyYXBwZXInLCBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmFuaW1hdGVJbikgJiYgJ2VudGVyJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuYW5pbWF0ZU91dCkgJiYgJ2xlYXZlJ1xuICAgIF0pO1xuXG4gICAgcmV0dXJuIHdyYXBwZXJDbGFzcztcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5leHBhbmRlZCkpIHtcbiAgICAgIHRoaXMuYW5pbWF0ZU91dCA9IHRydWU7XG4gICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KGZhbHNlKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYW5pbWF0ZU91dCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICB9LCA2MDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudG9nZ2xlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICB0aGlzLmFuaW1hdGVJbiA9IHRydWU7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFuaW1hdGVJbiA9IGZhbHNlO1xuICAgICAgfSwgNjAwKTtcbiAgICB9XG4gIH1cblxuICBzZXRIZWFkZXJUeXBlKCkge1xuICAgIHRoaXMucmVndWxhckhlYWRlciA9ICF0aGlzLmV4aXN0cyh0aGlzLnNtYWxsKSAmJiAhdGhpcy5leGlzdHModGhpcy5zaW1wbGUpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxzZWN0aW9uIFtuYXNDbGFzc109XCJnZXRDbGFzc2VzKCcnLCBnZXRNb2RpZmllcnMoKSlcIiBbbmdTdHlsZV09XCJjc3NTdHlsZVwiIHJlZj1cImVsZW1lbnRcIj5cbiAgPGRpdiAqbmdJZj1cImV4aXN0cyhjb250YWluZXJPblRvZ2dsZSk7IGVsc2UgdG9nZ2xlVGVtcGxhdGVcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b2dnbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IFtuYXNDbGFzc109XCJ3cmFwcGVyQ2xhc3MoKVwiPlxuICAgIDxkaXYgW2hpZGRlbl09XCIhZXhpc3RzKGV4cGFuZGVkKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnY29udGVudCcpXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZXhpc3RzKHRyYW5zcGFyZW50KSAmJiAnaW5oZXJpdCdcIlxuICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZXhpc3RzKHRyYW5zcGFyZW50KSAmJiAndW5zZXQnXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI3RvZ2dsZVRlbXBsYXRlPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RvZ2dsZScpXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpY29uJylcIiAqbmdJZj1cImljb25cIj5cbiAgICAgIDxuYXMtaWNvbiBbaWNvbl09XCJpY29uXCI+PC9uYXMtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdj5cbiAgICAgIDxoNCAqbmdJZj1cInJlZ3VsYXJIZWFkZXJcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RpdGxlJylcIj57e3RpdGxlfX08L2g0PlxuICAgICAgPGg1ICpuZ0lmPVwiIXJlZ3VsYXJIZWFkZXJcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RpdGxlJylcIj57e3RpdGxlfX08L2g1PlxuICAgICAgPGRpdiAqbmdJZj1cInN1YmhlYWRlclwiIFxuICAgICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3N1YmhlYWRlcicsIGV4aXN0cyhzdWJoZWFkZXJQb3NpdGl2ZSkgPyAncG9zaXRpdmUnIDogZXhpc3RzKHN1YmhlYWRlck5lZ2F0aXZlKSA/ICduZWdhdGl2ZScgOicnKVwiPlxuICAgICAgICA8bmFzLWljb24gKm5nSWY9XCJleGlzdHMoc3ViaGVhZGVyUG9zaXRpdmUpIHx8IGV4aXN0cyhzdWJoZWFkZXJOZWdhdGl2ZSlcIlxuICAgICAgICAgIFt0eXBlXT1cImV4aXN0cyhzdWJoZWFkZXJQb3NpdGl2ZSkgPyAncG9zaXRpdmUtLWxpZ2h0JyA6IGV4aXN0cyhzdWJoZWFkZXJOZWdhdGl2ZSkgPyAnbmVnYXRpdmUtLWxpZ2h0JyA6ICcnXCI+PC9uYXMtaWNvbj5cbiAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdzdWJoZWFkZXItLXRleHQnKVwiPnt7c3ViaGVhZGVyfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmFzLWljb24gdHlwZT1cImNoZXZyb24tZG93blwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5kaWNhdG9yJylcIj48L25hcy1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSxZQUFZLENBQUM7Ozs7O0FBRTFEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFvTnREOzs7O09BSUc7SUFDSDtRQUNFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQTVCekI7Ozs7OztVQU1FO1FBQ08sYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUU1Qjs7Ozs7O1VBTUU7UUFDUSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBUzVCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0IsRUFBRSxTQUFlO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFjLENBQUM7UUFFeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENB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QUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBV0csTUFBTTtzQkFBZCxLQUFLO2dCQVdHLE1BQU07c0JBQWQsS0FBSztnQkFXRyxLQUFLO3NCQUFiLEtBQUs7Z0JBV0csUUFBUTtzQkFBaEIsS0FBSztnQkFXRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBV0csU0FBUztzQkFBakIsS0FBSztnQkFXRyxXQUFXO3NCQUFuQixLQUFLO2dCQVdHLE9BQU87c0JBQWYsS0FBSztnQkFXRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsUUFBUTtzQkFBaEIsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlLCBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWNjb3JkaW9uIENvbXBvbmVudCB8IExheW91dFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCb29sZWFuIHRvIHNldCBpZiBhY2NvcmRpb24gc2hvdWxkIGJlIGV4cGFuZGVkIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgKi9cbiAgQElucHV0KCkgZXhwYW5kZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBzdHJpbmcgaW5wdXQgdmFsdWUgdG8gc2V0IHRpdGxlIHRleHQgb2YgY29tcG9uZW50LlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBbdGl0bGVdPVwiJ1RoaXMgaXMgYSB0aXRsZSdcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgc3RyaW5nIGlucHV0IHZhbHVlIHRvIHNldCB0ZXh0IHRvIHRoZSBiYWRnZSBvZiBjb21wb25lbnQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIFt0aXRsZV09XCInVGhpcyBpcyBhIHRpdGxlJ1wiIFtiYWRnZV09XCInVGV4dCB0byB0aGUgYmFkZ2UnXCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgKi9cbiAgQElucHV0KCkgYmFkZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHN0cmluZyBpbnB1dCB2YWx1ZSB0byBzZXQgaWNvbiB0ZXh0IG9mIGNvbXBvbmVudC4gU3BlY2lmaWVzIHRoZSBpY29uIG5hbWUsIGRlZmF1bHRzIHRvICdzbWFsbCcuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtpY29uXT1cIidzbWFsbCdcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzaW1wbGUgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gc2ltcGxlPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIG9yXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtzaW1wbGVdPVwiaXNTaW1wbGVQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICovXG4gIEBJbnB1dCgpIHNpbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzcGFjZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gc3BhY2VkPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIG9yXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtzcGFjZWRdPVwiaXNTcGFjZWRQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICovXG4gIEBJbnB1dCgpIHNwYWNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCBzbWFsbCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBzbWFsbD5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBvclxuICAgKiA8bmFzLWFjY29yZGlvbiBbc21hbGxdPVwiaXNTbWFsbFByb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgKi9cbiAgQElucHV0KCkgc21hbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgaW52ZXJ0ZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gaW52ZXJ0ZWQ+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogb3JcbiAgICogPG5hcy1hY2NvcmRpb24gW2ludmVydGVkXT1cImlzSW52ZXJ0ZWRQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICovXG4gIEBJbnB1dCgpIGludmVydGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IGEgY29udGFpbmVyIG9uIHRoZSB0b2dnbGUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIGNvbnRhaW5lck9uVG9nZ2xlPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIG9yXG4gICAqIDxuYXMtYWNjb3JkaW9uIFtjb250YWluZXJPblRvZ2dsZV09XCJpc0NvbnRhaW5lck9uVG9nZ2xlUHJvcGVydHlcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBjb250YWluZXJPblRvZ2dsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHJlbW92ZSBwYWRkaW5nIG9uIGFjY29kaW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBub3BhZGRpbmc+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogb3JcbiAgICogPG5hcy1hY2NvcmRpb24gW25vcGFkZGluZ109XCJpbmNsdWRlUGFkZGluZ1Byb3BlcnR5XCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgKi9cbiAgQElucHV0KCkgbm9wYWRkaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IHRyYW5zcGFyZW50IGJhY2tncm91bmQgY29sb3IuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIHRyYW5zcGFyZW50PllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICAqIG9yXG4gICAqIDxuYXMtYWNjb3JkaW9uIFt0cmFuc3BhcmVudF09XCJpc1RyYW5zcGFyZW50UHJvcGVydHlcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSB0cmFuc3BhcmVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCB0aGUgYWNjb3JkaW9uIHRvIGFwcHJvdmUgc3R5bGUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIGFwcHJvdmU+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICogb3JcbiAgICogPG5hcy1hY2NvcmRpb24gW2FwcHJvdmVdPVwiaXNBcHByb3ZlUHJvcGVydHlcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBhcHByb3ZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5wdXQgdmFsdWUgdG8gc2V0IHRoZSBhY2NvcmRpb24gdG8gcHJpbWFyeSBzdHlsZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gcHJpbWFyeT5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAgKiBvclxuICAgKiA8bmFzLWFjY29yZGlvbiBbcHJpbWFyeV09XCJpc1ByaW1hcnlQcm9wZXJ0eVwiPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICovXG4gIEBJbnB1dCgpIHByaW1hcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgdGhlIGFjY29yZGlvbiB0byBpbmZvIHN0eWxlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBpbmZvPllvdSBjYW4gcHV0IGFueSBraW5kIG9mIGVsZW1lbnRzIGFuZCBjb250ZW50IGhlcmUuLi48L25hcy1hY2NvcmRpb24+XG4gICovXG4gIEBJbnB1dCgpIGluZm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgdGhlIGFjY29yZGlvbiB0byBiYWRnZSBpbmZvIHN0eWxlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBiYWRnZT1cIkluZm9cIiBiYWRnZUluZm8+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICovXG4gIEBJbnB1dCgpIGJhZGdlSW5mbz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCB0aGUgYWNjb3JkaW9uIHRvIGJhZGdlIHN1Y2Nlc3Mgc3R5bGUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtYWNjb3JkaW9uIGJhZGdlPVwiU3VjY2Vzc1wiIGJhZGdlU3VjY2Vzcz5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBiYWRnZVN1Y2Nlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbnB1dCB2YWx1ZSB0byBzZXQgdGhlIGFjY29yZGlvbiB0byBiYWRnZSB3YXJuaW5nIHN0eWxlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBiYWRnZT1cIldhcm5pbmdcIiBiYWRnZVdhcm5pbmc+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgICovXG4gIEBJbnB1dCgpIGJhZGdlV2FybmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGlucHV0IHZhbHVlIHRvIHNldCB0aGUgYWNjb3JkaW9uIHRvIGJhZGdlIGVycm9yIHN0eWxlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBiYWRnZT1cIkVycm9yXCIgYmFkZ2VFcnJvcj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBiYWRnZUVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIGN1c3RvbSBDU1MgY2xhc3MgdG8gdGhlIGFjY29yZGlvbi4gQWNjb3JkaW9uIHdpbGwgc2V0dCBhZGRpdGlvbmFsIGN1c3RvbSBzdHlsaW5nLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWFjY29yZGlvbiBbY3NzQ2xhc3NdPVwiJ215LWN1c3RvbS1jbGFzcydcIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBjc3NDbGFzcz86IENsYXNzTW9kZWw7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUHJvcGVydHkgdG8gc2V0IGN1c3RvbSBzdHlsaW5nIG9uIGFjY29yZGlvbi5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gW2Nzc1N0eWxlXT1cInsnd2lkdGgnOiAnMzAwcHgnLCAnaGVpZ2h0JzogJzQwcHgnfX1cIj5Zb3UgY2FuIHB1dCBhbnkga2luZCBvZiBlbGVtZW50cyBhbmQgY29udGVudCBoZXJlLi4uPC9uYXMtYWNjb3JkaW9uPlxuICAqL1xuICBASW5wdXQoKSBjc3NTdHlsZTogYW55ID0ge307XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBldmVudCB0aGF0IGlzIGZpcmVkIG9uIHRvZ2dsZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hY2NvcmRpb24gKHRvZ2dsZUNoYW5nZSk9XCJvblRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+WW91IGNhbiBwdXQgYW55IGtpbmQgb2YgZWxlbWVudHMgYW5kIGNvbnRlbnQgaGVyZS4uLjwvbmFzLWFjY29yZGlvbj5cbiAgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIGFuaW1hdGVJbiA9IGZhbHNlO1xuICBwcml2YXRlIGFuaW1hdGVPdXQgPSBmYWxzZTtcbiAgcHVibGljIHJlZ3VsYXJIZWFkZXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVwcmVzZW50IGEgYWNjb3JkaW9uIGNvbXBvbmVudC5cbiAgICogV2lsbCBpbml0aWF0ZSBjb3JyZWN0IGJsb2NrIHN0eWxlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1hY2NvcmRpb24nKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGVhZGVyVHlwZSgpO1xuICB9XG5cbiAgZ2V0Q2xhc3NlcyhlbGVtZW50Pzogc3RyaW5nLCBtb2RpZmllcnM/OiBhbnkpOiBBcnJheTxDbGFzc01vZGVsPiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IG5ldyBBcnJheTxDbGFzc01vZGVsPigpO1xuXG4gICAgY2xhc3Nlcy5wdXNoKHRoaXMuZ2V0Q2xhc3MoZWxlbWVudCwgbW9kaWZpZXJzKSk7XG5cbiAgICBpZiAodGhpcy5jc3NDbGFzcykge1xuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuY3NzQ2xhc3MpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0TW9kaWZpZXJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXG4gICAgICAodGhpcy5leGlzdHModGhpcy5leHBhbmRlZCkgJiYgIXRoaXMuYW5pbWF0ZU91dCkgJiYgJ2V4cGFuZGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc2ltcGxlKSAmJiAnc2ltcGxlJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VkKSAmJiAnc3BhY2VkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc21hbGwpICYmICdzbWFsbCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmludmVydGVkKSAmJiAnaW52ZXJ0ZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5ub3BhZGRpbmcpICYmICdub3BhZGRpbmcnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5hcHByb3ZlKSAmJiAnYXBwcm92ZScsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnByaW1hcnkpICYmICdwcmltYXJ5JyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuaW5mbykgJiYgJ2luZm8nLFxuICAgIF07XG4gIH1cblxuICB3cmFwcGVyQ2xhc3MoKTogQ2xhc3NNb2RlbCB7XG4gICAgY29uc3Qgd3JhcHBlckNsYXNzID0gdGhpcy5nZXRDbGFzcygnd3JhcHBlcicsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuYW5pbWF0ZUluKSAmJiAnZW50ZXInLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5hbmltYXRlT3V0KSAmJiAnbGVhdmUnXG4gICAgXSk7XG5cbiAgICByZXR1cm4gd3JhcHBlckNsYXNzO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmV4cGFuZGVkKSkge1xuICAgICAgdGhpcy5hbmltYXRlT3V0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMudG9nZ2xlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRlT3V0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgIH0sIDYwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgdGhpcy50b2dnbGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgIHRoaXMuYW5pbWF0ZUluID0gdHJ1ZTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYW5pbWF0ZUluID0gZmFsc2U7XG4gICAgICB9LCA2MDApO1xuICAgIH1cbiAgfVxuXG4gIHNldEhlYWRlclR5cGUoKSB7XG4gICAgdGhpcy5yZWd1bGFySGVhZGVyID0gIXRoaXMuZXhpc3RzKHRoaXMuc21hbGwpICYmICF0aGlzLmV4aXN0cyh0aGlzLnNpbXBsZSkgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxufVxuIiwiPHNlY3Rpb24gW25hc0NsYXNzXT1cImdldENsYXNzZXMoJycsIGdldE1vZGlmaWVycygpKVwiIFtuZ1N0eWxlXT1cImNzc1N0eWxlXCIgcmVmPVwiZWxlbWVudFwiPlxuICA8ZGl2ICpuZ0lmPVwiZXhpc3RzKGNvbnRhaW5lck9uVG9nZ2xlKTsgZWxzZSB0b2dnbGVUZW1wbGF0ZVwiIGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvZ2dsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgW25hc0NsYXNzXT1cIndyYXBwZXJDbGFzcygpXCI+XG4gICAgPGRpdiBbaGlkZGVuXT1cIiFleGlzdHMoZXhwYW5kZWQpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdjb250ZW50JylcIlxuICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZXhpc3RzKHRyYW5zcGFyZW50KSAmJiAnaW5oZXJpdCdcIiBbc3R5bGUucGFkZGluZ109XCJleGlzdHModHJhbnNwYXJlbnQpICYmICd1bnNldCdcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjdG9nZ2xlVGVtcGxhdGU+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndG9nZ2xlJylcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiICpuZ0lmPVwiaWNvblwiPlxuICAgICAgPG5hcy1pY29uIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnYnJlYWtkb3duJylcIj5cbiAgICAgIDxoNCAqbmdJZj1cInJlZ3VsYXJIZWFkZXJcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RpdGxlJylcIj57e3RpdGxlfX08L2g0PlxuICAgICAgPGg1ICpuZ0lmPVwiIXJlZ3VsYXJIZWFkZXJcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RpdGxlJylcIj57e3RpdGxlfX08L2g1PlxuICAgICAgPGRpdiAqbmdJZj1cImJhZGdlXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdiYWRnZScsIGV4aXN0cyhiYWRnZUluZm8pID8gJ2luZm8nIDpcbiAgICAgIGV4aXN0cyhiYWRnZVN1Y2Nlc3MpID8gJ3N1Y2Nlc3MnIDogZXhpc3RzKGJhZGdlV2FybmluZykgPyAnd2FybmluZyc6IGV4aXN0cyhiYWRnZUVycm9yKSA/ICdlcnJvcic6ICcnKVwiPlxuICAgICAgICA8c3Bhbj57e2JhZGdlfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmFzLWljb24gdHlwZT1cImNoZXZyb24tZG93blwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5kaWNhdG9yJywgZXhpc3RzKGJhZGdlKSA/ICduby1tYXJnaW4nIDogJycpXCI+PC9uYXMtaWNvbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -607,4 +607,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
607
607
|
}], positionChange: [{
|
|
608
608
|
type: Output
|
|
609
609
|
}] } });
|
|
610
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9haXJwb3J0LXNlbGVjdC9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0L2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7Ozs7Ozs7O0FBRTdGLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVFmLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxnQkFBZ0I7SUFvQ2xFLElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsUUFBNkI7UUFDL0MsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFH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OEdBM29CVSw4QkFBOEIsa0JBZ0ovQixRQUFRO2tHQWhKUCw4QkFBOEIsb21DQ2pDM0MsZ2hRQStMNEI7OzJGRDlKZiw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGlCQUd4QixpQkFBaUIsQ0FBQyxJQUFJOzswQkFrSmxDLE1BQU07MkJBQUMsUUFBUTsySkEvSFUsS0FBSztzQkFBaEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNKLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFWCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRixlQUFlO3NCQURsQixLQUFLO2dCQWNGLE9BQU87c0JBRFYsS0FBSztnQkFlRixJQUFJO3NCQURQLEtBQUs7Z0JBb0JGLFFBQVE7c0JBRFgsS0FBSztnQkFTSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFpcnBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9haXJwb3J0Lm1vZGVsJztcbmltcG9ydCB7IFJlc3VsdHNMYWJlbHNNb2RlbCB9IGZyb20gJy4uL21vZGVscy9yZXN1bHRzLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBBaXJwb3J0U2VsZWN0RHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWlycG9ydC1zZWxlY3QtZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQgeyBBaXJwb3J0U2VsZWN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FpcnBvcnQtc2VsZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvZ2VvbG9jYXRpb24vZ2VvbG9jYXRpb24tc3RhdGUuZW51bSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWlycG9ydC1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFpcnBvcnRTZWxlY3REcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGFpcnBvcnRWYWx1ZTogQWlycG9ydE1vZGVsO1xuICBhaXJwb3J0c1ZhbHVlOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBmb2N1c2VkQWlycG9ydEluZGV4ID0gLTE7XG4gIGZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID0gLTE7XG4gIGZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4ID0gLTE7XG4gIGZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGU6IHN0cmluZztcbiAgZm9jdXNlZEFpcnBvcnRDb2RlOiBzdHJpbmc7XG4gIGZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlOiBzdHJpbmc7XG4gIGZpbHRlcmVkQWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD4gPSB0aGlzLmFpcnBvcnRzO1xuICBkaXNwbGF5QWxsQWlycG9ydHNMYWJlbCA9IHRydWU7XG4gIHNlbGVjdGVkTGFiZWw6IHN0cmluZztcbiAgb3BlblZhbHVlOiBib29sZWFuO1xuICBmb2N1c09uR2VvbG9jYXRpb246IGJvb2xlYW47XG4gIGdlb2xvY2F0aW9uU3RhdGU6IEdlb2xvY2F0aW9uU3RhdGUgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2FpcnBvcnRTZWxlY3QnKSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVzdWx0cycpIHJlc3VsdHM6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZGlzcGxheUxhdGVzdFNlYXJjaGVzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzcGxheUNsb3Nlc3RBaXJwb3J0cz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBASW5wdXQoKSByZXN1bHRzTGFiZWxzOiBSZXN1bHRzTGFiZWxzTW9kZWw7XG4gIEBJbnB1dCgpIGFpcnBvcnRTZWxlY3RMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBhaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgYWlycG9ydFNlbGVjdEljb25Nb2RpZmllcjogc3RyaW5nO1xuICBASW5wdXQoKSBrZWVwU2VsZWN0aW9uOiBib29sZWFuO1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBASW5wdXQoKSBlbmFibGVHZW9sb2NhdGlvbj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFyaWFMYWJlbENsZWFyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzVmFsaWQgPSB0cnVlO1xuICBASW5wdXQoKSBpbnZhbGlkVGV4dDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjbG9zZXN0QWlycG9ydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvc2VzdEFpcnBvcnRzVmFsdWU7XG4gIH1cbiAgc2V0IGNsb3Nlc3RBaXJwb3J0cyhhaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPikge1xuICAgIGlmICghYWlycG9ydHMgfHwgIWFpcnBvcnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VzdEFpcnBvcnRzVmFsdWUgPSBhaXJwb3J0cztcbiAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgPSBHZW9sb2NhdGlvblN0YXRlLmdyYW50ZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYWlycG9ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5haXJwb3J0VmFsdWU7XG4gIH1cbiAgc2V0IGFpcnBvcnQoYWlycG9ydDogQWlycG9ydE1vZGVsKSB7XG4gICAgaWYgKCFhaXJwb3J0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5haXJwb3J0VmFsdWUgPSBhaXJwb3J0O1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IGFpcnBvcnQubmFtZTtcbiAgICB0aGlzLmZpbHRlcmVkQWlycG9ydHMgPSB0aGlzLnNlbGVjdFNlcnZpY2UuZmlsdGVyKHRoaXMuYWlycG9ydHMsIHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5vcGVuVmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRTZWxlY3Rpb25UaW1lb3V0KTtcbiAgICB0aGlzLm9wZW5WYWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0U2VsZWN0aW9uVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhaXJwb3J0cygpIHtcbiAgICByZXR1cm4gdGhpcy5haXJwb3J0c1ZhbHVlO1xuICB9XG4gIHNldCBhaXJwb3J0cyhhaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPikge1xuICAgIHRoaXMuYWlycG9ydHNWYWx1ZSA9IGFpcnBvcnRzO1xuICAgIHRoaXMuZmlsdGVyZWRBaXJwb3J0cyA9IHRoaXMuc2VsZWN0U2VydmljZS5maWx0ZXIodGhpcy5haXJwb3J0cywgdGhpcy5zZWxlY3RlZE1vZGVsKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QWlycG9ydE1vZGVsPigpO1xuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGZvY3VzT25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgZm9jdXNPblByZXZpb3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcG9zaXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdlb2xvY2F0aW9uUG9zaXRpb24+KCk7XG5cbiAgZ2V0IHNlbGVjdGVkTW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNb2RlbFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZE1vZGVsKG1vZGVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxWYWx1ZSA9IG1vZGVsO1xuXG4gICAgaWYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09IG1vZGVsKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUobW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZXN1bHRzSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bi1yZXN1bHRzLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IGxhYmVsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bi1sYWJlbC0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24taW5wdXQtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgZ2VvbG9jYXRpb25JY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uICYmIHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSAhPT0gR2VvbG9jYXRpb25TdGF0ZS5kZW5pZWQpIHtcbiAgICAgIHJldHVybiAnZ2VvbG9jYXRpb24tLWxpZ2h0JztcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSA9PT0gR2VvbG9jYXRpb25TdGF0ZS5kZW5pZWQpIHtcbiAgICAgIHJldHVybiAnZ2VvbG9jYXRpb24tLWRpc2FibGVkJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ2dlb2xvY2F0aW9uJztcbiAgfVxuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkTW9kZWw6IHN0cmluZztcbiAgcHJpdmF0ZSBzZWxlY3RlZE1vZGVsVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBpbnB1dFNlbGVjdGlvblRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBjbG9zZXN0QWlycG9ydHNWYWx1ZTogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHNlbGVjdFNlcnZpY2U6IEFpcnBvcnRTZWxlY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZTogQWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZSxcbiAgICBwcml2YXRlIGdlb2xvY2F0aW9uU2VydmljZTogR2VvbG9jYXRpb25TZXJ2aWNlKSB7XG4gICAgc3VwZXIoJ25hcy1haXJwb3J0LXNlbGVjdCcpO1xuICAgIHRoaXMuY29tcG9uZW50SWQgPSBuZXh0SWQrKztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hcmlhTGFiZWxDbGVhcikge1xuICAgICAgdGhpcy53YXJuTWlzc2luZ0FjY2Vzc2liaWx0eUlucHV0KCdhcmlhTGFiZWxDbGVhcicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQmFja2Ryb3AnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSB0aGlzLmFpcnBvcnQgPyB0aGlzLmFpcnBvcnQubmFtZSA6ICcnO1xuXG4gICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuZGlzcGxheUNsb3Nlc3RBaXJwb3J0cykpIHtcbiAgICAgIHRoaXMuZ2VvbG9jYXRpb25TZXJ2aWNlLmdldFN0YXRlKCkuc3Vic2NyaWJlKChzdGF0ZTogR2VvbG9jYXRpb25TdGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICBpZiAoc3RhdGUgPT09IEdlb2xvY2F0aW9uU3RhdGUuZ3JhbnRlZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zZWxlY3RlZE1vZGVsKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkQWlycG9ydHMgPSB0aGlzLnNlbGVjdFNlcnZpY2UuZmlsdGVyKHRoaXMuYWlycG9ydHMsIHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5TGF0ZXN0U2VhcmNoZXMgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlDbG9zZXN0QWlycG9ydHMgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlBbGxBaXJwb3J0c0xhYmVsID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuZmlsdGVyZWRBaXJwb3J0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHMuZmluZCh4ID0+IHgubmFtZSA9PT0gdGhpcy5zZWxlY3RlZE1vZGVsKTtcblxuICAgIGlmIChhaXJwb3J0KSB7XG4gICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZTtcbiAgICB9XG4gIH1cblxuICBnZXRBbGxBaXJwb3J0c0FpcnBvcnRJZChhaXJwb3J0Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bi1haXJwb3J0LSR7dGhpcy5jb21wb25lbnRJZH0tYWxsLWFpcnBvcnRzLSR7YWlycG9ydENvZGV9YDtcbiAgfVxuXG4gIGdldENsb3Nlc3RBaXJwb3J0c0FpcnBvcnRJZChhaXJwb3J0Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bi1haXJwb3J0LSR7dGhpcy5jb21wb25lbnRJZH0tY2xvc2VzdC1haXJwb3J0cy0ke2FpcnBvcnRDb2RlfWA7XG4gIH1cblxuICBnZXRMYXRlc3RTZWFyY2hlc0FpcnBvcnRJZChhaXJwb3J0Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bi1haXJwb3J0LSR7dGhpcy5jb21wb25lbnRJZH0tbGF0ZXN0LXNlYXJjaGVzLSR7YWlycG9ydENvZGV9YDtcbiAgfVxuXG4gIHVwZGF0ZUN1cnJlbnRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nZW9sb2NhdGlvblN0YXRlID09PSBHZW9sb2NhdGlvblN0YXRlLmRlbmllZFxuICAgICAgfHwgdGhpcy5nZW9sb2NhdGlvblN0YXRlID09PSBHZW9sb2NhdGlvblN0YXRlLnVua25vd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdlb2xvY2F0aW9uU2VydmljZS5nZXRDdXJyZW50UG9zaXRpb24oKS5zdWJzY3JpYmUoKHg6IEdlb2xvY2F0aW9uUG9zaXRpb24pID0+IHtcbiAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh4KTtcbiAgICB9LCAoZXJyb3I6IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yLlBFUk1JU1NJT05fREVOSUVEKSB7XG4gICAgICAgIHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSA9IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG9uR2VvbG9jYXRpb25Ib3Zlcihob3ZlcjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChob3ZlciAmJiB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKSB7XG4gICAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5rZWVwU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSB0aGlzLmxhc3RTZWxlY3RlZE1vZGVsO1xuICAgIH1cblxuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kZWwgPT09IHRoaXMubGFzdFNlbGVjdGVkTW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGVsKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXJlZEFpcnBvcnRzKSB7XG4gICAgICAgIGxldCBhaXJwb3J0ID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG4gICAgICAgIGlmICghYWlycG9ydCkge1xuICAgICAgICAgIGFpcnBvcnQgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZChhaXJwb3J0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZCh7XG4gICAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgICAgY29kZTogJycsXG4gICAgICAgIGNvdW50cnlOYW1lOiAnJyxcbiAgICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiAnJ1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyKCk6IHZvaWQge1xuICAgIGxldCBpc0VtcHR5ID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMubmFzRm9ybUdyb3VwIHx8ICF0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTW9kZWwpIHtcbiAgICAgICAgdGhpcy5yZXNldEZpbHRlcigpO1xuICAgICAgICBpc0VtcHR5ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRBaXJwb3J0cyA9IHRoaXMuc2VsZWN0U2VydmljZS5maWx0ZXIodGhpcy5haXJwb3J0cywgdGhpcy5zZWxlY3RlZE1vZGVsKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHNbMF0uY29kZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSk7XG5cbiAgICAgIGlmICghY29udHJvbCB8fCAhY29udHJvbC52YWx1ZSkge1xuICAgICAgICB0aGlzLnJlc2V0RmlsdGVyKCk7XG4gICAgICAgIGlzRW1wdHkgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEFpcnBvcnRzID0gdGhpcy5zZWxlY3RTZXJ2aWNlLmZpbHRlcih0aGlzLmFpcnBvcnRzLCBjb250cm9sLnZhbHVlKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHNbMF0uY29kZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlMYXRlc3RTZWFyY2hlcyA9IGlzRW1wdHk7XG4gICAgdGhpcy5kaXNwbGF5Q2xvc2VzdEFpcnBvcnRzID0gaXNFbXB0eTtcbiAgICB0aGlzLmRpc3BsYXlBbGxBaXJwb3J0c0xhYmVsID0gaXNFbXB0eTtcbiAgfVxuXG4gIGNsZWFyU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMubGFzdFNlbGVjdGVkTW9kZWwgPSB0aGlzLmFpcnBvcnQubmFtZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSAnJztcblxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoe1xuICAgICAgbmFtZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcblxuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4ID0gLTE7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5maWx0ZXJlZEFpcnBvcnRzID0gdGhpcy5haXJwb3J0cztcblxuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5kaXNwbGF5TGF0ZXN0U2VhcmNoZXMgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheUNsb3Nlc3RBaXJwb3J0cyA9IHRydWU7XG4gICAgdGhpcy5kaXNwbGF5QWxsQWlycG9ydHNMYWJlbCA9IHRydWU7XG4gIH1cblxuICBmb2N1c0Rvd24oKTogdm9pZCB7XG4gICAgY29uc3QgaGFzTGF0ZXN0U2VhcmNoZXMgPSB0aGlzLmFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2VcbiAgICAgIC5oYXNMYXRlc3RTZWFyY2hlcyh0aGlzLmV4aXN0cyh0aGlzLmRpc3BsYXlMYXRlc3RTZWFyY2hlcyksIHRoaXMubGF0ZXN0U2VhcmNoZXMpO1xuXG4gICAgY29uc3QgaGFzQ2xvc2VzdEFpcnBvcnRzID0gdGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25TZXJ2aWNlXG4gICAgICAuaGFzQ2xvc2VzdEFpcnBvcnRzKHRoaXMuZXhpc3RzKHRoaXMuZGlzcGxheUNsb3Nlc3RBaXJwb3J0cyksIHRoaXMuY2xvc2VzdEFpcnBvcnRzKTtcblxuICAgIGlmICh0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSAhPT0gR2VvbG9jYXRpb25TdGF0ZS5ncmFudGVkICYmXG4gICAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkICYmXG4gICAgICAhdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gJiZcbiAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9PT0gLTEgJiZcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPT09IC0xKSB7XG4gICAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChoYXNMYXRlc3RTZWFyY2hlcyAmJiB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4IDwgdGhpcy5sYXRlc3RTZWFyY2hlcy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLmZvY3VzRG93bkxhdGVzdFNlYXJjaGVzKCk7XG4gICAgfSBlbHNlIGlmIChoYXNDbG9zZXN0QWlycG9ydHNcbiAgICAgICYmIHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZS5pc0luZGV4SW5DbG9zZXN0QWlycG9ydHModGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCwgdGhpcy5jbG9zZXN0QWlycG9ydHMpKSB7XG4gICAgICB0aGlzLmZvY3VzRG93bkNsb3Nlc3RBaXJwb3J0cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzRG93bkFpcnBvcnRzKGhhc0Nsb3Nlc3RBaXJwb3J0cywgaGFzTGF0ZXN0U2VhcmNoZXMpO1xuICAgIH1cblxuICAgIHRoaXMuYXV0b1Njcm9sbCg2Nik7XG4gIH1cblxuICBmb2N1c1VwKCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc0xhdGVzdFNlYXJjaGVzID0gdGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25TZXJ2aWNlXG4gICAgICAuaGFzTGF0ZXN0U2VhcmNoZXModGhpcy5leGlzdHModGhpcy5kaXNwbGF5TGF0ZXN0U2VhcmNoZXMpLCB0aGlzLmxhdGVzdFNlYXJjaGVzKTtcblxuICAgIGNvbnN0IGhhc0Nsb3Nlc3RBaXJwb3J0cyA9IHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZVxuICAgICAgLmhhc0Nsb3Nlc3RBaXJwb3J0cyh0aGlzLmV4aXN0cyh0aGlzLmRpc3BsYXlDbG9zZXN0QWlycG9ydHMpLCB0aGlzLmNsb3Nlc3RBaXJwb3J0cyk7XG5cbiAgICBjb25zdCBoYXNHZW9sb2NhdGlvbiA9IHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5nZW9sb2NhdGlvblN0YXRlICE9PSBHZW9sb2NhdGlvblN0YXRlLmdyYW50ZWQgJiZcbiAgICAgIHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSAhPT0gR2VvbG9jYXRpb25TdGF0ZS5kZW5pZWQgJiZcbiAgICAgICF0aGlzLmZvY3VzT25HZW9sb2NhdGlvbjtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPiAwKSB7XG4gICAgICB0aGlzLmZvY3VzVXBBaXJwb3J0cyhoYXNDbG9zZXN0QWlycG9ydHMsIGhhc0xhdGVzdFNlYXJjaGVzKTtcbiAgICB9IGVsc2UgaWYgKGhhc0Nsb3Nlc3RBaXJwb3J0cyAmJiB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPD0gMCAmJiB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4ID4gMCkge1xuICAgICAgdGhpcy5mb2N1c1VwQ2xvc2VzdEFpcnBvcnRzKGhhc0xhdGVzdFNlYXJjaGVzKTtcbiAgICB9IGVsc2UgaWYgKGhhc0xhdGVzdFNlYXJjaGVzICYmIGhhc0Nsb3Nlc3RBaXJwb3J0cyAmJiB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4IDw9IDBcbiAgICAgIHx8IGhhc0xhdGVzdFNlYXJjaGVzICYmICFoYXNDbG9zZXN0QWlycG9ydHMgJiYgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4IDw9IDApIHtcbiAgICAgIHRoaXMuZm9jdXNVcExhdGVzdFNlYXJjaGVzKCk7XG4gICAgfSBlbHNlIGlmIChoYXNHZW9sb2NhdGlvbiAmJiBoYXNMYXRlc3RTZWFyY2hlcyAmJiB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4IDw9IDBcbiAgICAgIHx8IGhhc0dlb2xvY2F0aW9uICYmICFoYXNMYXRlc3RTZWFyY2hlcyAmJiB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPD0gMCkge1xuICAgICAgdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSAnJztcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICB9XG5cbiAgICB0aGlzLmF1dG9TY3JvbGwoNjYpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWQoYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZChhaXJwb3J0KTtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24gJiYgIXRoaXMuYWlycG9ydC5uYW1lKSB7XG4gICAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBpZiAodGhpcy5maWx0ZXJlZEFpcnBvcnRzKSB7XG4gICAgICAgICAgY29uc3QgYWlycG9ydCA9IHRoaXMuZmlsdGVyZWRBaXJwb3J0cy5maW5kKHggPT4geC5jb2RlID09PSB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSkgfHwgdGhpcy5maWx0ZXJlZEFpcnBvcnRzWzBdO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IGFpcnBvcnQubmFtZSB8fCAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzT25HZW9sb2NhdGlvbikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50UG9zaXRpb24oKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPbk5leHQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPblByZXZpb3VzLmVtaXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkTW9kZWwgPSB0aGlzLmFpcnBvcnQubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gLTE7XG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IC0xO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkQWlycG9ydHMgPSB0aGlzLmFpcnBvcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZChhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBhaXJwb3J0Lm5hbWU7XG4gICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbiAmJiBhaXJwb3J0Lm5hbWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZE1vZGVsID0gYWlycG9ydC5uYW1lO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoYWlycG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzRG93bkxhdGVzdFNlYXJjaGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gZmFsc2U7XG5cbiAgICBsZXQgaW5kZXggPSB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4O1xuXG4gICAgaW5kZXggPSBpbmRleCArIDE7XG5cbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5sYXRlc3RTZWFyY2hlc1tpbmRleF07XG5cbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZTtcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoYWlycG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzRG93bkNsb3Nlc3RBaXJwb3J0cygpOiB2b2lkIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4O1xuXG4gICAgaW5kZXggPSBpbmRleCArIDE7XG5cbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5jbG9zZXN0QWlycG9ydHNbaW5kZXhdO1xuXG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZSB8fCAnJztcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGFpcnBvcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0Rvd25BaXJwb3J0cyhoYXNDbG9zZXN0QWlycG9ydHM6IGJvb2xlYW4sIGhhc0xhdGVzdFNlYXJjaGVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4O1xuICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gZmFsc2U7XG5cbiAgICBpbmRleCA9IGluZGV4ICsgMTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkQWlycG9ydHMgJiYgaW5kZXggPiB0aGlzLmZpbHRlcmVkQWlycG9ydHMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IC0xO1xuICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IC0xO1xuICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gLTE7XG5cbiAgICAgIGlmICh0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZ3JhbnRlZCkge1xuICAgICAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gJyc7XG4gICAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoaGFzTGF0ZXN0U2VhcmNoZXMpIHtcbiAgICAgICAgdGhpcy5mb2N1c0Rvd25MYXRlc3RTZWFyY2hlcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKGhhc0Nsb3Nlc3RBaXJwb3J0cykge1xuICAgICAgICB0aGlzLmZvY3VzRG93bkNsb3Nlc3RBaXJwb3J0cygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gaW5kZXg7XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEFpcnBvcnRzKSB7XG4gICAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzW2luZGV4XTtcblxuICAgICAgaWYgKGFpcnBvcnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSBhaXJwb3J0LmNvZGU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IGFpcnBvcnQubmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gJyc7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVXBBaXJwb3J0cyhoYXNDbG9zZXN0QWlycG9ydHM6IGJvb2xlYW4sIGhhc0xhdGVzdFNlYXJjaGVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4O1xuICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoaW5kZXggLSAxIDwgMCkge1xuICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gLTE7XG4gICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgdGhpcy5ibHVyKCk7XG5cbiAgICAgIGlmICghaGFzQ2xvc2VzdEFpcnBvcnRzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgfVxuICAgICAgaWYgKCFoYXNMYXRlc3RTZWFyY2hlcykge1xuICAgICAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGluZGV4ID0gaW5kZXggLSAxO1xuXG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRBaXJwb3J0cykge1xuICAgICAgY29uc3QgYWlycG9ydCA9IHRoaXMuZmlsdGVyZWRBaXJwb3J0c1tpbmRleF07XG5cbiAgICAgIGlmIChhaXJwb3J0KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gYWlycG9ydC5jb2RlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBhaXJwb3J0Lm5hbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYWlycG9ydC1zZWxlY3RfX2xpc3QtaXRlbS0tZm9jdXMnKTtcblxuICAgIGlmIChmb2N1c2VkSXRlbSkge1xuICAgICAgcmVzdWx0cy5zY3JvbGxUbygwLCAwKTtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgZm9jdXNlZEl0ZW0ub2Zmc2V0VG9wICsgZXh0cmFPZmZzZXQgLSByZXN1bHRzLmNsaWVudEhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwTGF0ZXN0U2VhcmNoZXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gPSBmYWxzZTtcblxuICAgIGxldCBsYXRlc3RTZWFyY2hlc0luZGV4ID0gdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleDtcblxuICAgIGlmIChsYXRlc3RTZWFyY2hlc0luZGV4IDwgMCkge1xuICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IC0xO1xuICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xvc2VzdEFpcnBvcnRJbmRleCA9IHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXg7XG4gICAgY29uc3QgYWlycG9ydHNJbmRleCA9IHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleDtcblxuICAgIGlmIChjbG9zZXN0QWlycG9ydEluZGV4IDwgMCAmJiBhaXJwb3J0c0luZGV4IDwgMCkge1xuICAgICAgbGF0ZXN0U2VhcmNoZXNJbmRleCA9IGxhdGVzdFNlYXJjaGVzSW5kZXggLSAxO1xuXG4gICAgICBpZiAobGF0ZXN0U2VhcmNoZXNJbmRleCA8IDApIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IC0xO1xuICAgICAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMubGF0ZXN0U2VhcmNoZXNbbGF0ZXN0U2VhcmNoZXNJbmRleF07XG5cbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID0gbGF0ZXN0U2VhcmNoZXNJbmRleDtcbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoYWlycG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVXBDbG9zZXN0QWlycG9ydHMoaGFzTGF0ZXN0U2VhcmNoZXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBsZXQgY2xvc2VzdEFpcnBvcnRJbmRleCA9IHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXg7XG5cbiAgICBpZiAoIWhhc0xhdGVzdFNlYXJjaGVzICYmIGNsb3Nlc3RBaXJwb3J0SW5kZXggPD0gMCkge1xuICAgICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IC0xO1xuICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNsb3Nlc3RBaXJwb3J0SW5kZXggLSAxIDwgMCkge1xuICAgICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IC0xO1xuICAgICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA8IDApIHtcbiAgICAgIGNsb3Nlc3RBaXJwb3J0SW5kZXggPSBjbG9zZXN0QWlycG9ydEluZGV4IC0gMTtcbiAgICB9XG5cbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5jbG9zZXN0QWlycG9ydHNbY2xvc2VzdEFpcnBvcnRJbmRleF07XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IGNsb3Nlc3RBaXJwb3J0SW5kZXg7XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID0gLTE7XG5cbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGFpcnBvcnQpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtpZF09XCJsYWJlbElkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFpcnBvcnRTZWxlY3RMYWJlbFwiXG4gICAgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgb3BlbiAmJiAnYWN0aXZlJylcIj5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhaXJwb3J0U2VsZWN0TGFiZWw7IGVsc2UgZW1wdHlMYWJlbFwiPnt7YWlycG9ydFNlbGVjdExhYmVsfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMYWJlbD4mbmJzcDs8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgICA8aW5wdXQgI2FpcnBvcnRTZWxlY3RcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwicmVzdWx0c0lkXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cInJlc3VsdHNJZFwiXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImFpcnBvcnRTZWxlY3RQbGFjZWhvbGRlclwiXG4gICAgICAoZm9jdXMpPVwic2V0T3BlbigpXCJcbiAgICAgIChtb3VzZWRvd24pPVwic2V0T3BlbigpXCJcbiAgICAgIChpbnB1dCk9XCJmaWx0ZXIoKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTW9kZWxcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRNb2RlbDsgZWxzZSBpc0VtcHR5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxDbGVhclwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cIidyZW1vdmUnXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW2ljb25dPVwiYWlycG9ydFNlbGVjdEljb25Nb2RpZmllclwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gIDxsYWJlbCBbaWRdPVwibGFiZWxJZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhaXJwb3J0U2VsZWN0TGFiZWxcIlxuICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicsIG9wZW4gJiYgJ2FjdGl2ZScpXCJcbiAgICBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGFiZWwnKVwiXG4gICAgICAqbmdJZj1cImFpcnBvcnRTZWxlY3RMYWJlbFwiPnt7YWlycG9ydFNlbGVjdExhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNhaXJwb3J0U2VsZWN0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiXG4gICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInJlc3VsdHNJZFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJyZXN1bHRzSWRcIlxuICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJhaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXJcIlxuICAgICAgKG1vdXNlZG93bik9XCJzZXRPcGVuKClcIlxuICAgICAgKGZvY3VzKT1cInNldE9wZW4oKVwiXG4gICAgICAoaW5wdXQpPVwiZmlsdGVyKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRNb2RlbDsgZWxzZSBpc0VtcHR5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxDbGVhclwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cIidyZW1vdmUnXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW2ljb25dPVwiYWlycG9ydFNlbGVjdEljb25Nb2RpZmllclwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG48ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVzdWx0cy13cmFwcGVyJylcIlxuICBbaWRdPVwicmVzdWx0c0lkXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiPlxuICA8dWwgI3Jlc3VsdHNcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgKm5nSWY9XCJvcGVuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZFwiXG4gICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZXN1bHRzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhpc3RzKGVuYWJsZUdlb2xvY2F0aW9uKSAmJiBnZW9sb2NhdGlvblN0YXRlICE9PSBudWxsICYmIGdlb2xvY2F0aW9uU3RhdGUgIT09IDAgJiYgaXNWYWxpZFwiPlxuICAgICAgPGxpIHJvbGU9XCJvcHRpb25cIj5cbiAgICAgICAgPG5hcy1idXR0b24gbGlua1xuICAgICAgICAgIHNlY29uZGFyeVxuICAgICAgICAgIFtkaXNhYmxlZF09XCJnZW9sb2NhdGlvblN0YXRlID09PSAyXCJcbiAgICAgICAgICBbY3NzU3R5bGVdPVwieydoZWlnaHQnOiAnNjZweCcsICd0ZXh0LWRlY29yYXRpb24nOiAndW5kZXJsaW5lJywgJ2Rpc3BsYXknOiAnZmxleCcsICdqdXN0aWZ5LWNvbnRlbnQnOiAnc3BhY2UtYmV0d2Vlbid9XCJcbiAgICAgICAgICBbY3NzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2l0ZW0nLCBbJ2dlb2xvY2F0aW9uJywgZm9jdXNPbkdlb2xvY2F0aW9uICYmIGdlb2xvY2F0aW9uU3RhdGUgIT09IDIgJiYgJ2ZvY3VzJywgZ2VvbG9jYXRpb25TdGF0ZSA9PT0gMiAmJiAnZGlzYWJsZWQnXSlcIlxuICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgKGNsaWNrQ2hhbmdlKT1cInVwZGF0ZUN1cnJlbnRQb3NpdGlvbigpXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJvbkdlb2xvY2F0aW9uSG92ZXIodHJ1ZSlcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uR2VvbG9jYXRpb25Ib3ZlcihmYWxzZSlcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImdlb2xvY2F0aW9uU3RhdGUgPT09IDE7IGVsc2UgZ2VvbG9jYXRpb25EZW5pZWRcIlxuICAgICAgICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdnZW9sb2NhdGlvbicsICdsYWJlbCcpXCI+e3tyZXN1bHRzTGFiZWxzPy5nZW9sb2NhdGlvbn19PC9zcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VvbG9jYXRpb25EZW5pZWQ+XG4gICAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2dlb2xvY2F0aW9uJywgJ2xhYmVsJylcIj57e3Jlc3VsdHNMYWJlbHM/Lmdlb2xvY2F0aW9uRGVuaWVkfX08L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmFzLWljb24gW25hc0NsYXNzXT1cImdldENsYXNzKCdnZW9sb2NhdGlvbicsICdpY29uJylcIlxuICAgICAgICAgICAgW3R5cGVdPVwiZ2VvbG9jYXRpb25JY29uXCI+PC9uYXMtaWNvbj5cbiAgICAgICAgPC9uYXMtYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bGkgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xpc3Qtc2VjdGlvbi1sYWJlbCcpXCJcbiAgICAgICpuZ0lmPVwibGF0ZXN0U2VhcmNoZXM/Lmxlbmd0aCA+IDBcbiAgICAgICYmIGV4aXN0cyhkaXNwbGF5TGF0ZXN0U2VhcmNoZXMpXG4gICAgICAmJiByZXN1bHRzTGFiZWxzPy5sYXRlc3RTZWFyY2hlc1xuICAgICAgJiYgaXNWYWxpZFwiPlxuICAgICAgPHNwYW4+e3tyZXN1bHRzTGFiZWxzPy5sYXRlc3RTZWFyY2hlc319PC9zcGFuPlxuICAgIDwvbGk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4aXN0cyhkaXNwbGF5TGF0ZXN0U2VhcmNoZXMpICYmIGlzVmFsaWRcIj5cbiAgICAgIDxsaSByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGFpcnBvcnQgb2YgbGF0ZXN0U2VhcmNoZXNcIlxuICAgICAgICBbaWRdPVwiZ2V0TGF0ZXN0U2VhcmNoZXNBaXJwb3J0SWQoYWlycG9ydC5jb2RlKVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYWlycG9ydC5jb2RlID09PSBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZVwiXG4gICAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgYWlycG9ydC5jb2RlID09PSBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSAmJiAnZm9jdXMnKVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgJiYgJ2ZvY3VzJylcIlxuICAgICAgICAgIChjbGljayk9XCJzZXRTZWxlY3RlZChhaXJwb3J0KVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbmFtZScpXCI+e3thaXJwb3J0Lm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvZGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvdW50cnknKVwiPnt7YWlycG9ydC5jb3VudHJ5TmFtZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpIHJvbGU9XCJzZXBhcmF0b3JcIlxuICAgICAgKm5nSWY9XCJleGlzdHMoZGlzcGxheUNsb3Nlc3RBaXJwb3J0cylcbiAgICAgICAmJiBnZW9sb2NhdGlvblN0YXRlICE9PSBudWxsXG4gICAgICAgJiYgZ2VvbG9jYXRpb25TdGF0ZSA9PT0gMFxuICAgICAgICYmIGNsb3Nlc3RBaXJwb3J0cz8ubGVuZ3RoID4gMFxuICAgICAgICYmIHJlc3VsdHNMYWJlbHM/LmNsb3Nlc3RBaXJwb3J0c1xuICAgICAgICYmIGlzVmFsaWRcIlxuICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsaXN0LXNlY3Rpb24tbGFiZWwnKVwiPlxuICAgICAgPHNwYW4+e3tyZXN1bHRzTGFiZWxzPy5jbG9zZXN0QWlycG9ydHN9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGlzdHMoZGlzcGxheUNsb3Nlc3RBaXJwb3J0cykgJiYgZ2VvbG9jYXRpb25TdGF0ZSA9PT0gMCAmJiBpc1ZhbGlkXCI+XG4gICAgICA8bGkgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBhaXJwb3J0IG9mIGNsb3Nlc3RBaXJwb3J0c1wiXG4gICAgICAgIFtpZF09XCJnZXRDbG9zZXN0QWlycG9ydHNBaXJwb3J0SWQoYWlycG9ydC5jb2RlKVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYWlycG9ydC5jb2RlID09PSBmb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlXCJcbiAgICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsaXN0LWl0ZW0nLCBhaXJwb3J0LmNvZGUgPT09IGZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgJiYgJ2ZvY3VzJylcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2l0ZW0nLCBhaXJwb3J0LmNvZGUgPT09IGZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgJiYgJ2ZvY3VzJylcIlxuICAgICAgICAgIChjbGljayk9XCJzZXRTZWxlY3RlZChhaXJwb3J0KVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbmFtZScpXCI+e3thaXJwb3J0Lm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvZGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvdW50cnknKVwiPnt7YWlycG9ydC5jb3VudHJ5TmFtZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpIHJvbGU9XCJzZXBhcmF0b3JcIlxuICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsaXN0LXNlY3Rpb24tbGFiZWwnKVwiXG4gICAgICAqbmdJZj1cImRpc3BsYXlBbGxBaXJwb3J0c0xhYmVsICYmIHJlc3VsdHNMYWJlbHM/LmFsbEFpcnBvcnRzICYmIGlzVmFsaWRcIj5cbiAgICAgIDxzcGFuPnt7cmVzdWx0c0xhYmVscz8uYWxsQWlycG9ydHN9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1ZhbGlkXCI+XG4gICAgICA8bGkgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBhaXJwb3J0IG9mIGZpbHRlcmVkQWlycG9ydHNcIlxuICAgICAgICBbaWRdPVwiZ2V0QWxsQWlycG9ydHNBaXJwb3J0SWQoYWlycG9ydC5jb2RlKVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYWlycG9ydC5jb2RlID09PSBmb2N1c2VkQWlycG9ydENvZGVcIlxuICAgICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xpc3QtaXRlbScsIGFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZEFpcnBvcnRDb2RlICYmICdmb2N1cycpXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdpdGVtJywgYWlycG9ydC5jb2RlID09PSBmb2N1c2VkQWlycG9ydENvZGUgJiYgJ2ZvY3VzJylcIlxuICAgICAgICAgIChjbGljayk9XCJzZXRTZWxlY3RlZChhaXJwb3J0KVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbmFtZScpXCI+e3thaXJwb3J0Lm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvZGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvdW50cnknKVwiPnt7YWlycG9ydC5jb3VudHJ5TmFtZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpICpuZ0lmPVwiIWlzVmFsaWRcIlxuICAgICAgcm9sZT1cImxpc3RpdGVtXCI+XG4gICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ25hbWUnLCAnaW52YWxpZCcpXCI+e3tpbnZhbGlkVGV4dH19PC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbjxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gIHRhYmluZGV4PVwiMFwiXG4gICpuZ0lmPVwib3BlblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2JhY2tkcm9wJylcIlxuICAoY2xpY2spPVwiYmx1cigpXCI+PC9idXR0b24+Il19
|
|
610
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9haXJwb3J0LXNlbGVjdC9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0L2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7Ozs7Ozs7O0FBRTdGLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVFmLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxnQkFBZ0I7SUFvQ2xFLElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsUUFBNkI7UUFDL0MsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFH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OEdBM29CVSw4QkFBOEIsa0JBZ0ovQixRQUFRO2tHQWhKUCw4QkFBOEIsb21DQ2pDM0MsZ2hRQStMNEI7OzJGRDlKZiw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGlCQUd4QixpQkFBaUIsQ0FBQyxJQUFJOzswQkFrSmxDLE1BQU07MkJBQUMsUUFBUTsySkEvSFUsS0FBSztzQkFBaEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNKLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFWCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRixlQUFlO3NCQURsQixLQUFLO2dCQWNGLE9BQU87c0JBRFYsS0FBSztnQkFlRixJQUFJO3NCQURQLEtBQUs7Z0JBb0JGLFFBQVE7c0JBRFgsS0FBSztnQkFTSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9iYXNlL25hcy1jb21wb25lbnQuYmFzZSc7XG5pbXBvcnQgeyBHZW9sb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2dlb2xvY2F0aW9uL2dlb2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWlycG9ydE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2FpcnBvcnQubW9kZWwnO1xuaW1wb3J0IHsgUmVzdWx0c0xhYmVsc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3VsdHMtbGFiZWxzLm1vZGVsJztcbmltcG9ydCB7IEFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7IEFpcnBvcnRTZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWlycG9ydC1zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBHZW9sb2NhdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi1zdGF0ZS5lbnVtJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWlycG9ydFNlbGVjdERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgYWlycG9ydFZhbHVlOiBBaXJwb3J0TW9kZWw7XG4gIGFpcnBvcnRzVmFsdWU6IEFycmF5PEFpcnBvcnRNb2RlbD47XG4gIGZvY3VzZWRBaXJwb3J0SW5kZXggPSAtMTtcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZTogc3RyaW5nO1xuICBmb2N1c2VkQWlycG9ydENvZGU6IHN0cmluZztcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGU6IHN0cmluZztcbiAgZmlsdGVyZWRBaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPiA9IHRoaXMuYWlycG9ydHM7XG4gIGRpc3BsYXlBbGxBaXJwb3J0c0xhYmVsID0gdHJ1ZTtcbiAgc2VsZWN0ZWRMYWJlbDogc3RyaW5nO1xuICBvcGVuVmFsdWU6IGJvb2xlYW47XG4gIGZvY3VzT25HZW9sb2NhdGlvbjogYm9vbGVhbjtcbiAgZ2VvbG9jYXRpb25TdGF0ZTogR2VvbG9jYXRpb25TdGF0ZSA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnYWlycG9ydFNlbGVjdCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBkaXNwbGF5TGF0ZXN0U2VhcmNoZXM/OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG4gIEBJbnB1dCgpIHJlc3VsdHNMYWJlbHM6IFJlc3VsdHNMYWJlbHNNb2RlbDtcbiAgQElucHV0KCkgYWlycG9ydFNlbGVjdExhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFpcnBvcnRTZWxlY3RQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBhaXJwb3J0U2VsZWN0SWNvbk1vZGlmaWVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGtlZXBTZWxlY3Rpb246IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZW5hYmxlR2VvbG9jYXRpb24/OiBib29sZWFuO1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuICBASW5wdXQoKSBpc1ZhbGlkID0gdHJ1ZTtcbiAgQElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgY2xvc2VzdEFpcnBvcnRzKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3Nlc3RBaXJwb3J0c1ZhbHVlO1xuICB9XG4gIHNldCBjbG9zZXN0QWlycG9ydHMoYWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD4pIHtcbiAgICBpZiAoIWFpcnBvcnRzIHx8ICFhaXJwb3J0cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNsb3Nlc3RBaXJwb3J0c1ZhbHVlID0gYWlycG9ydHM7XG4gICAgdGhpcy5nZW9sb2NhdGlvblN0YXRlID0gR2VvbG9jYXRpb25TdGF0ZS5ncmFudGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGFpcnBvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWlycG9ydFZhbHVlO1xuICB9XG4gIHNldCBhaXJwb3J0KGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCkge1xuICAgIGlmICghYWlycG9ydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWlycG9ydFZhbHVlID0gYWlycG9ydDtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBhaXJwb3J0Lm5hbWU7XG4gICAgdGhpcy5maWx0ZXJlZEFpcnBvcnRzID0gdGhpcy5zZWxlY3RTZXJ2aWNlLmZpbHRlcih0aGlzLmFpcnBvcnRzLCB0aGlzLnNlbGVjdGVkTW9kZWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IG9wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMub3BlblZhbHVlO1xuICB9XG4gIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMub3BlblZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0U2VsZWN0aW9uVGltZW91dCk7XG4gICAgdGhpcy5vcGVuVmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFNlbGVjdGlvblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYWlycG9ydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWlycG9ydHNWYWx1ZTtcbiAgfVxuICBzZXQgYWlycG9ydHMoYWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD4pIHtcbiAgICB0aGlzLmFpcnBvcnRzVmFsdWUgPSBhaXJwb3J0cztcbiAgICB0aGlzLmZpbHRlcmVkQWlycG9ydHMgPSB0aGlzLnNlbGVjdFNlcnZpY2UuZmlsdGVyKHRoaXMuYWlycG9ydHMsIHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFpcnBvcnRNb2RlbD4oKTtcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c09uTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcbiAgQE91dHB1dCgpIGZvY3VzT25QcmV2aW91cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBvc2l0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHZW9sb2NhdGlvblBvc2l0aW9uPigpO1xuXG4gIGdldCBzZWxlY3RlZE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTW9kZWxWYWx1ZTtcbiAgfVxuICBzZXQgc2VsZWN0ZWRNb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmICghdGhpcy5uYXNGb3JtR3JvdXAgfHwgIXRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSk7XG5cbiAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlICE9PSBtb2RlbCkge1xuICAgICAgY29udHJvbC5wYXRjaFZhbHVlKG1vZGVsKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVzdWx0c0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24tcmVzdWx0cy0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldCBsYWJlbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24tbGFiZWwtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgbmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IGdlb2xvY2F0aW9uSWNvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiAmJiB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKSB7XG4gICAgICByZXR1cm4gJ2dlb2xvY2F0aW9uLS1saWdodCc7XG4gICAgfVxuICAgIGlmICh0aGlzLmdlb2xvY2F0aW9uU3RhdGUgPT09IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKSB7XG4gICAgICByZXR1cm4gJ2dlb2xvY2F0aW9uLS1kaXNhYmxlZCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdnZW9sb2NhdGlvbic7XG4gIH1cblxuICBwcml2YXRlIGxhc3RTZWxlY3RlZE1vZGVsOiBzdHJpbmc7XG4gIHByaXZhdGUgc2VsZWN0ZWRNb2RlbFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5wdXRTZWxlY3Rpb25UaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgY2xvc2VzdEFpcnBvcnRzVmFsdWU6IEFycmF5PEFpcnBvcnRNb2RlbD47XG4gIHByaXZhdGUgY29tcG9uZW50SWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSBzZWxlY3RTZXJ2aWNlOiBBaXJwb3J0U2VsZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2U6IEFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnZW9sb2NhdGlvblNlcnZpY2U6IEdlb2xvY2F0aW9uU2VydmljZSkge1xuICAgIHN1cGVyKCduYXMtYWlycG9ydC1zZWxlY3QnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQ2xlYXIpIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQ2xlYXInKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbEJhY2tkcm9wKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbEJhY2tkcm9wJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gdGhpcy5haXJwb3J0ID8gdGhpcy5haXJwb3J0Lm5hbWUgOiAnJztcblxuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc3BsYXlDbG9zZXN0QWlycG9ydHMpKSB7XG4gICAgICB0aGlzLmdlb2xvY2F0aW9uU2VydmljZS5nZXRTdGF0ZSgpLnN1YnNjcmliZSgoc3RhdGU6IEdlb2xvY2F0aW9uU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5nZW9sb2NhdGlvblN0YXRlID0gc3RhdGU7XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSBHZW9sb2NhdGlvblN0YXRlLmdyYW50ZWQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRNb2RlbCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEFpcnBvcnRzID0gdGhpcy5zZWxlY3RTZXJ2aWNlLmZpbHRlcih0aGlzLmFpcnBvcnRzLCB0aGlzLnNlbGVjdGVkTW9kZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheUxhdGVzdFNlYXJjaGVzID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwbGF5Q2xvc2VzdEFpcnBvcnRzID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwbGF5QWxsQWlycG9ydHNMYWJlbCA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLmZpbHRlcmVkQWlycG9ydHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG5cbiAgICBpZiAoYWlycG9ydCkge1xuICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSBhaXJwb3J0LmNvZGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsQWlycG9ydHNBaXJwb3J0SWQoYWlycG9ydENvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24tYWlycG9ydC0ke3RoaXMuY29tcG9uZW50SWR9LWFsbC1haXJwb3J0cy0ke2FpcnBvcnRDb2RlfWA7XG4gIH1cblxuICBnZXRDbG9zZXN0QWlycG9ydHNBaXJwb3J0SWQoYWlycG9ydENvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24tYWlycG9ydC0ke3RoaXMuY29tcG9uZW50SWR9LWNsb3Nlc3QtYWlycG9ydHMtJHthaXJwb3J0Q29kZX1gO1xuICB9XG5cbiAgZ2V0TGF0ZXN0U2VhcmNoZXNBaXJwb3J0SWQoYWlycG9ydENvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24tYWlycG9ydC0ke3RoaXMuY29tcG9uZW50SWR9LWxhdGVzdC1zZWFyY2hlcy0ke2FpcnBvcnRDb2RlfWA7XG4gIH1cblxuICB1cGRhdGVDdXJyZW50UG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSA9PT0gR2VvbG9jYXRpb25TdGF0ZS5kZW5pZWRcbiAgICAgIHx8IHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSA9PT0gR2VvbG9jYXRpb25TdGF0ZS51bmtub3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZW9sb2NhdGlvblNlcnZpY2UuZ2V0Q3VycmVudFBvc2l0aW9uKCkuc3Vic2NyaWJlKCh4OiBHZW9sb2NhdGlvblBvc2l0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLmVtaXQoeCk7XG4gICAgfSwgKGVycm9yOiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvci5QRVJNSVNTSU9OX0RFTklFRCkge1xuICAgICAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgPSBHZW9sb2NhdGlvblN0YXRlLmRlbmllZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldE9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBvbkdlb2xvY2F0aW9uSG92ZXIoaG92ZXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaG92ZXIgJiYgdGhpcy5nZW9sb2NhdGlvblN0YXRlICE9PSBHZW9sb2NhdGlvblN0YXRlLmRlbmllZCkge1xuICAgICAgdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gdGhpcy5sYXN0U2VsZWN0ZWRNb2RlbDtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGVsID09PSB0aGlzLmxhc3RTZWxlY3RlZE1vZGVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlbCkge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyZWRBaXJwb3J0cykge1xuICAgICAgICBsZXQgYWlycG9ydCA9IHRoaXMuZmlsdGVyZWRBaXJwb3J0cy5maW5kKHggPT4geC5uYW1lID09PSB0aGlzLnNlbGVjdGVkTW9kZWwpO1xuICAgICAgICBpZiAoIWFpcnBvcnQpIHtcbiAgICAgICAgICBhaXJwb3J0ID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzWzBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoYWlycG9ydCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoe1xuICAgICAgICBhaXJwb3J0TmFtZTogJycsXG4gICAgICAgIGNvZGU6ICcnLFxuICAgICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBsZXQgaXNFbXB0eSA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZE1vZGVsKSB7XG4gICAgICAgIHRoaXMucmVzZXRGaWx0ZXIoKTtcbiAgICAgICAgaXNFbXB0eSA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPSAwO1xuICAgICAgICB0aGlzLmZpbHRlcmVkQWlycG9ydHMgPSB0aGlzLnNlbGVjdFNlcnZpY2UuZmlsdGVyKHRoaXMuYWlycG9ydHMsIHRoaXMuc2VsZWN0ZWRNb2RlbCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzWzBdLmNvZGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuXG4gICAgICBpZiAoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZXNldEZpbHRlcigpO1xuICAgICAgICBpc0VtcHR5ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRBaXJwb3J0cyA9IHRoaXMuc2VsZWN0U2VydmljZS5maWx0ZXIodGhpcy5haXJwb3J0cywgY29udHJvbC52YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gdGhpcy5maWx0ZXJlZEFpcnBvcnRzWzBdLmNvZGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5TGF0ZXN0U2VhcmNoZXMgPSBpc0VtcHR5O1xuICAgIHRoaXMuZGlzcGxheUNsb3Nlc3RBaXJwb3J0cyA9IGlzRW1wdHk7XG4gICAgdGhpcy5kaXNwbGF5QWxsQWlycG9ydHNMYWJlbCA9IGlzRW1wdHk7XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAodGhpcy5rZWVwU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZE1vZGVsID0gdGhpcy5haXJwb3J0Lm5hbWU7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gJyc7XG5cbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgY291bnRyeU5hbWU6ICcnLFxuICAgICAgY29kZTogJycsXG4gICAgICBkaXNwbGF5TmFtZTogJycsXG4gICAgICBhaXJwb3J0TmFtZTogJycsXG4gICAgICBub3JtYWxpemVkQWlycG9ydE5hbWU6ICcnXG4gICAgfSk7XG5cbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPSAtMTtcbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID0gLTE7XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA9IC0xO1xuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZmlsdGVyZWRBaXJwb3J0cyA9IHRoaXMuYWlycG9ydHM7XG5cbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheUxhdGVzdFNlYXJjaGVzID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlDbG9zZXN0QWlycG9ydHMgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheUFsbEFpcnBvcnRzTGFiZWwgPSB0cnVlO1xuICB9XG5cbiAgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc0xhdGVzdFNlYXJjaGVzID0gdGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25TZXJ2aWNlXG4gICAgICAuaGFzTGF0ZXN0U2VhcmNoZXModGhpcy5leGlzdHModGhpcy5kaXNwbGF5TGF0ZXN0U2VhcmNoZXMpLCB0aGlzLmxhdGVzdFNlYXJjaGVzKTtcblxuICAgIGNvbnN0IGhhc0Nsb3Nlc3RBaXJwb3J0cyA9IHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZVxuICAgICAgLmhhc0Nsb3Nlc3RBaXJwb3J0cyh0aGlzLmV4aXN0cyh0aGlzLmRpc3BsYXlDbG9zZXN0QWlycG9ydHMpLCB0aGlzLmNsb3Nlc3RBaXJwb3J0cyk7XG5cbiAgICBpZiAodGhpcy5nZW9sb2NhdGlvblN0YXRlICE9PSBudWxsICYmXG4gICAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZ3JhbnRlZCAmJlxuICAgICAgdGhpcy5nZW9sb2NhdGlvblN0YXRlICE9PSBHZW9sb2NhdGlvblN0YXRlLmRlbmllZCAmJlxuICAgICAgIXRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uICYmXG4gICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPT09IC0xICYmXG4gICAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID09PSAtMSkge1xuICAgICAgdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaGFzTGF0ZXN0U2VhcmNoZXMgJiYgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA8IHRoaXMubGF0ZXN0U2VhcmNoZXMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5mb2N1c0Rvd25MYXRlc3RTZWFyY2hlcygpO1xuICAgIH0gZWxzZSBpZiAoaGFzQ2xvc2VzdEFpcnBvcnRzXG4gICAgICAmJiB0aGlzLmFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2UuaXNJbmRleEluQ2xvc2VzdEFpcnBvcnRzKHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXgsIHRoaXMuY2xvc2VzdEFpcnBvcnRzKSkge1xuICAgICAgdGhpcy5mb2N1c0Rvd25DbG9zZXN0QWlycG9ydHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c0Rvd25BaXJwb3J0cyhoYXNDbG9zZXN0QWlycG9ydHMsIGhhc0xhdGVzdFNlYXJjaGVzKTtcbiAgICB9XG5cbiAgICB0aGlzLmF1dG9TY3JvbGwoNjYpO1xuICB9XG5cbiAgZm9jdXNVcCgpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNMYXRlc3RTZWFyY2hlcyA9IHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duU2VydmljZVxuICAgICAgLmhhc0xhdGVzdFNlYXJjaGVzKHRoaXMuZXhpc3RzKHRoaXMuZGlzcGxheUxhdGVzdFNlYXJjaGVzKSwgdGhpcy5sYXRlc3RTZWFyY2hlcyk7XG5cbiAgICBjb25zdCBoYXNDbG9zZXN0QWlycG9ydHMgPSB0aGlzLmFpcnBvcnRTZWxlY3REcm9wZG93blNlcnZpY2VcbiAgICAgIC5oYXNDbG9zZXN0QWlycG9ydHModGhpcy5leGlzdHModGhpcy5kaXNwbGF5Q2xvc2VzdEFpcnBvcnRzKSwgdGhpcy5jbG9zZXN0QWlycG9ydHMpO1xuXG4gICAgY29uc3QgaGFzR2VvbG9jYXRpb24gPSB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuZ2VvbG9jYXRpb25TdGF0ZSAhPT0gR2VvbG9jYXRpb25TdGF0ZS5ncmFudGVkICYmXG4gICAgICB0aGlzLmdlb2xvY2F0aW9uU3RhdGUgIT09IEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkICYmXG4gICAgICAhdGhpcy5mb2N1c09uR2VvbG9jYXRpb247XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkQWlycG9ydEluZGV4ID4gMCkge1xuICAgICAgdGhpcy5mb2N1c1VwQWlycG9ydHMoaGFzQ2xvc2VzdEFpcnBvcnRzLCBoYXNMYXRlc3RTZWFyY2hlcyk7XG4gICAgfSBlbHNlIGlmIChoYXNDbG9zZXN0QWlycG9ydHMgJiYgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4IDw9IDAgJiYgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA+IDApIHtcbiAgICAgIHRoaXMuZm9jdXNVcENsb3Nlc3RBaXJwb3J0cyhoYXNMYXRlc3RTZWFyY2hlcyk7XG4gICAgfSBlbHNlIGlmIChoYXNMYXRlc3RTZWFyY2hlcyAmJiBoYXNDbG9zZXN0QWlycG9ydHMgJiYgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleCA8PSAwXG4gICAgICB8fCBoYXNMYXRlc3RTZWFyY2hlcyAmJiAhaGFzQ2xvc2VzdEFpcnBvcnRzICYmIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA8PSAwKSB7XG4gICAgICB0aGlzLmZvY3VzVXBMYXRlc3RTZWFyY2hlcygpO1xuICAgIH0gZWxzZSBpZiAoaGFzR2VvbG9jYXRpb24gJiYgaGFzTGF0ZXN0U2VhcmNoZXMgJiYgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA8PSAwXG4gICAgICB8fCBoYXNHZW9sb2NhdGlvbiAmJiAhaGFzTGF0ZXN0U2VhcmNoZXMgJiYgdGhpcy5mb2N1c2VkQWlycG9ydEluZGV4IDw9IDApIHtcbiAgICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gJyc7XG4gICAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4ID0gLTE7XG4gICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ibHVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDY2KTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWQoYWlycG9ydCk7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5rZWVwU2VsZWN0aW9uICYmICF0aGlzLmFpcnBvcnQubmFtZSkge1xuICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyZWRBaXJwb3J0cykge1xuICAgICAgICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHMuZmluZCh4ID0+IHguY29kZSA9PT0gdGhpcy5mb2N1c2VkQWlycG9ydENvZGUpIHx8IHRoaXMuZmlsdGVyZWRBaXJwb3J0c1swXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBhaXJwb3J0Lm5hbWUgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb2N1c09uR2VvbG9jYXRpb24pIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFBvc2l0aW9uKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25QcmV2aW91cy5lbWl0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdEb3duJzpcbiAgICAgICAgdGhpcy5mb2N1c0Rvd24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ1VwJzpcbiAgICAgICAgdGhpcy5mb2N1c1VwKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZE1vZGVsID0gdGhpcy5haXJwb3J0Lm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4ID0gLTE7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy5maWx0ZXJlZEFpcnBvcnRzID0gdGhpcy5haXJwb3J0cztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWQoYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gYWlycG9ydC5uYW1lO1xuICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24gJiYgYWlycG9ydC5uYW1lLmxlbmd0aCkge1xuICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRNb2RlbCA9IGFpcnBvcnQubmFtZTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KGFpcnBvcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0Rvd25MYXRlc3RTZWFyY2hlcygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IGZhbHNlO1xuXG4gICAgbGV0IGluZGV4ID0gdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleDtcblxuICAgIGluZGV4ID0gaW5kZXggKyAxO1xuXG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMubGF0ZXN0U2VhcmNoZXNbaW5kZXhdO1xuXG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSBhaXJwb3J0LmNvZGU7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGFpcnBvcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0Rvd25DbG9zZXN0QWlycG9ydHMoKTogdm9pZCB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRJbmRleDtcblxuICAgIGluZGV4ID0gaW5kZXggKyAxO1xuXG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMuY2xvc2VzdEFpcnBvcnRzW2luZGV4XTtcblxuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSBpbmRleDtcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSBhaXJwb3J0LmNvZGUgfHwgJyc7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlID0gJyc7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZChhaXJwb3J0KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duQWlycG9ydHMoaGFzQ2xvc2VzdEFpcnBvcnRzOiBib29sZWFuLCBoYXNMYXRlc3RTZWFyY2hlczogYm9vbGVhbik6IHZvaWQge1xuICAgIGxldCBpbmRleCA9IHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleDtcbiAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IGZhbHNlO1xuXG4gICAgaW5kZXggPSBpbmRleCArIDE7XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEFpcnBvcnRzICYmIGluZGV4ID4gdGhpcy5maWx0ZXJlZEFpcnBvcnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuXG4gICAgICBpZiAodGhpcy5nZW9sb2NhdGlvblN0YXRlICE9PSBHZW9sb2NhdGlvblN0YXRlLmdyYW50ZWQpIHtcbiAgICAgICAgdGhpcy5mb2N1c09uR2VvbG9jYXRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKGhhc0xhdGVzdFNlYXJjaGVzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNEb3duTGF0ZXN0U2VhcmNoZXMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChoYXNDbG9zZXN0QWlycG9ydHMpIHtcbiAgICAgICAgdGhpcy5mb2N1c0Rvd25DbG9zZXN0QWlycG9ydHMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IGluZGV4O1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRBaXJwb3J0cykge1xuICAgICAgY29uc3QgYWlycG9ydCA9IHRoaXMuZmlsdGVyZWRBaXJwb3J0c1tpbmRleF07XG5cbiAgICAgIGlmIChhaXJwb3J0KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRDb2RlID0gYWlycG9ydC5jb2RlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBhaXJwb3J0Lm5hbWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwQWlycG9ydHMoaGFzQ2xvc2VzdEFpcnBvcnRzOiBib29sZWFuLCBoYXNMYXRlc3RTZWFyY2hlczogYm9vbGVhbik6IHZvaWQge1xuICAgIGxldCBpbmRleCA9IHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleDtcbiAgICB0aGlzLmZvY3VzT25HZW9sb2NhdGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKGluZGV4IC0gMSA8IDApIHtcbiAgICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuICAgICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICAgIHRoaXMuYmx1cigpO1xuXG4gICAgICBpZiAoIWhhc0Nsb3Nlc3RBaXJwb3J0cykge1xuICAgICAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICAgIH1cbiAgICAgIGlmICghaGFzTGF0ZXN0U2VhcmNoZXMpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlID0gJyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbmRleCA9IGluZGV4IC0gMTtcblxuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkQWlycG9ydHMpIHtcbiAgICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmZpbHRlcmVkQWlycG9ydHNbaW5kZXhdO1xuXG4gICAgICBpZiAoYWlycG9ydCkge1xuICAgICAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gYWlycG9ydC5uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b1Njcm9sbChleHRyYU9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0cyA9IHRoaXMucmVzdWx0cy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubmFzLWFpcnBvcnQtc2VsZWN0X19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNVcExhdGVzdFNlYXJjaGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNPbkdlb2xvY2F0aW9uID0gZmFsc2U7XG5cbiAgICBsZXQgbGF0ZXN0U2VhcmNoZXNJbmRleCA9IHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXg7XG5cbiAgICBpZiAobGF0ZXN0U2VhcmNoZXNJbmRleCA8IDApIHtcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgPSAnJztcbiAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb3Nlc3RBaXJwb3J0SW5kZXggPSB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4O1xuICAgIGNvbnN0IGFpcnBvcnRzSW5kZXggPSB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXg7XG5cbiAgICBpZiAoY2xvc2VzdEFpcnBvcnRJbmRleCA8IDAgJiYgYWlycG9ydHNJbmRleCA8IDApIHtcbiAgICAgIGxhdGVzdFNlYXJjaGVzSW5kZXggPSBsYXRlc3RTZWFyY2hlc0luZGV4IC0gMTtcblxuICAgICAgaWYgKGxhdGVzdFNlYXJjaGVzSW5kZXggPCAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZExhdGVzdFNlYXJjaGVzSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmxhdGVzdFNlYXJjaGVzW2xhdGVzdFNlYXJjaGVzSW5kZXhdO1xuXG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleCA9IGxhdGVzdFNlYXJjaGVzSW5kZXg7XG4gICAgdGhpcy5mb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZTtcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4ID0gLTE7XG4gICAgdGhpcy5mb2N1c2VkQWlycG9ydENvZGUgPSAnJztcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPSAtMTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGFpcnBvcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwQ2xvc2VzdEFpcnBvcnRzKGhhc0xhdGVzdFNlYXJjaGVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgbGV0IGNsb3Nlc3RBaXJwb3J0SW5kZXggPSB0aGlzLmZvY3VzZWRDbG9zZXN0QWlycG9ydEluZGV4O1xuXG4gICAgaWYgKCFoYXNMYXRlc3RTZWFyY2hlcyAmJiBjbG9zZXN0QWlycG9ydEluZGV4IDw9IDApIHtcbiAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjbG9zZXN0QWlycG9ydEluZGV4IC0gMSA8IDApIHtcbiAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSAtMTtcbiAgICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvY3VzZWRBaXJwb3J0SW5kZXggPCAwKSB7XG4gICAgICBjbG9zZXN0QWlycG9ydEluZGV4ID0gY2xvc2VzdEFpcnBvcnRJbmRleCAtIDE7XG4gICAgfVxuXG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMuY2xvc2VzdEFpcnBvcnRzW2Nsb3Nlc3RBaXJwb3J0SW5kZXhdO1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0SW5kZXggPSBjbG9zZXN0QWlycG9ydEluZGV4O1xuICAgIHRoaXMuZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZSA9IGFpcnBvcnQuY29kZTtcbiAgICB0aGlzLmZvY3VzZWRBaXJwb3J0Q29kZSA9ICcnO1xuICAgIHRoaXMuZm9jdXNlZEFpcnBvcnRJbmRleCA9IC0xO1xuXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZChhaXJwb3J0KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuYXNGb3JtQ29udHJvbE5hbWU7IGVsc2UgcmVhY3RpdmVGb3JtXCI+XG4gIDxsYWJlbCBbaWRdPVwibGFiZWxJZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhaXJwb3J0U2VsZWN0TGFiZWxcIlxuICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicsIG9wZW4gJiYgJ2FjdGl2ZScpXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWlycG9ydFNlbGVjdExhYmVsOyBlbHNlIGVtcHR5TGFiZWxcIj57e2FpcnBvcnRTZWxlY3RMYWJlbH19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGFiZWw+Jm5ic3A7PC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gICAgPGlucHV0ICNhaXJwb3J0U2VsZWN0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiXG4gICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInJlc3VsdHNJZFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJyZXN1bHRzSWRcIlxuICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJhaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXJcIlxuICAgICAgKGZvY3VzKT1cInNldE9wZW4oKVwiXG4gICAgICAobW91c2Vkb3duKT1cInNldE9wZW4oKVwiXG4gICAgICAoaW5wdXQpPVwiZmlsdGVyKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGVsXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkTW9kZWw7IGVsc2UgaXNFbXB0eVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCIncmVtb3ZlJ1wiPjwvbmFzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbXB0eT5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cIidzbWFsbCdcIlxuICAgICAgICAgIFtpY29uXT1cImFpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJcIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICA8bGFiZWwgW2lkXT1cImxhYmVsSWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWlycG9ydFNlbGVjdExhYmVsXCJcbiAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3dyYXBwZXInLCBvcGVuICYmICdhY3RpdmUnKVwiXG4gICAgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIlxuICAgICAgKm5nSWY9XCJhaXJwb3J0U2VsZWN0TGFiZWxcIj57e2FpcnBvcnRTZWxlY3RMYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjYWlycG9ydFNlbGVjdFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIlxuICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJyZXN1bHRzSWRcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwicmVzdWx0c0lkXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQnKVwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXCJcbiAgICAgIChtb3VzZWRvd24pPVwic2V0T3BlbigpXCJcbiAgICAgIChmb2N1cyk9XCJzZXRPcGVuKClcIlxuICAgICAgKGlucHV0KT1cImZpbHRlcigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkTW9kZWw7IGVsc2UgaXNFbXB0eVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCIncmVtb3ZlJ1wiPjwvbmFzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbXB0eT5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cIidzbWFsbCdcIlxuICAgICAgICAgIFtpY29uXT1cImFpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJcIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMtd3JhcHBlcicpXCJcbiAgW2lkXT1cInJlc3VsdHNJZFwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIj5cbiAgPHVsICNyZXN1bHRzXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICpuZ0lmPVwib3BlblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWRcIlxuICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVzdWx0cycpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4aXN0cyhlbmFibGVHZW9sb2NhdGlvbikgJiYgZ2VvbG9jYXRpb25TdGF0ZSAhPT0gbnVsbCAmJiBnZW9sb2NhdGlvblN0YXRlICE9PSAwICYmIGlzVmFsaWRcIj5cbiAgICAgIDxsaSByb2xlPVwib3B0aW9uXCI+XG4gICAgICAgIDxuYXMtYnV0dG9uIGxpbmtcbiAgICAgICAgICBzZWNvbmRhcnlcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2VvbG9jYXRpb25TdGF0ZSA9PT0gMlwiXG4gICAgICAgICAgW2Nzc1N0eWxlXT1cInsnaGVpZ2h0JzogJzY2cHgnLCAndGV4dC1kZWNvcmF0aW9uJzogJ3VuZGVybGluZScsICdkaXNwbGF5JzogJ2ZsZXgnLCAnanVzdGlmeS1jb250ZW50JzogJ3NwYWNlLWJldHdlZW4nfVwiXG4gICAgICAgICAgW2Nzc0NsYXNzXT1cImdldENsYXNzKCdpdGVtJywgWydnZW9sb2NhdGlvbicsIGZvY3VzT25HZW9sb2NhdGlvbiAmJiBnZW9sb2NhdGlvblN0YXRlICE9PSAyICYmICdmb2N1cycsIGdlb2xvY2F0aW9uU3RhdGUgPT09IDIgJiYgJ2Rpc2FibGVkJ10pXCJcbiAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgIChjbGlja0NoYW5nZSk9XCJ1cGRhdGVDdXJyZW50UG9zaXRpb24oKVwiXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25HZW9sb2NhdGlvbkhvdmVyKHRydWUpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbkdlb2xvY2F0aW9uSG92ZXIoZmFsc2UpXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJnZW9sb2NhdGlvblN0YXRlID09PSAxOyBlbHNlIGdlb2xvY2F0aW9uRGVuaWVkXCJcbiAgICAgICAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnZ2VvbG9jYXRpb24nLCAnbGFiZWwnKVwiPnt7cmVzdWx0c0xhYmVscz8uZ2VvbG9jYXRpb259fTwvc3Bhbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlb2xvY2F0aW9uRGVuaWVkPlxuICAgICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdnZW9sb2NhdGlvbicsICdsYWJlbCcpXCI+e3tyZXN1bHRzTGFiZWxzPy5nZW9sb2NhdGlvbkRlbmllZH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5hcy1pY29uIFtuYXNDbGFzc109XCJnZXRDbGFzcygnZ2VvbG9jYXRpb24nLCAnaWNvbicpXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImdlb2xvY2F0aW9uSWNvblwiPjwvbmFzLWljb24+XG4gICAgICAgIDwvbmFzLWJ1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpIHJvbGU9XCJzZXBhcmF0b3JcIlxuICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsaXN0LXNlY3Rpb24tbGFiZWwnKVwiXG4gICAgICAqbmdJZj1cImxhdGVzdFNlYXJjaGVzPy5sZW5ndGggPiAwXG4gICAgICAmJiBleGlzdHMoZGlzcGxheUxhdGVzdFNlYXJjaGVzKVxuICAgICAgJiYgcmVzdWx0c0xhYmVscz8ubGF0ZXN0U2VhcmNoZXNcbiAgICAgICYmIGlzVmFsaWRcIj5cbiAgICAgIDxzcGFuPnt7cmVzdWx0c0xhYmVscz8ubGF0ZXN0U2VhcmNoZXN9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGlzdHMoZGlzcGxheUxhdGVzdFNlYXJjaGVzKSAmJiBpc1ZhbGlkXCI+XG4gICAgICA8bGkgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBhaXJwb3J0IG9mIGxhdGVzdFNlYXJjaGVzXCJcbiAgICAgICAgW2lkXT1cImdldExhdGVzdFNlYXJjaGVzQWlycG9ydElkKGFpcnBvcnQuY29kZSlcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGVcIlxuICAgICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xpc3QtaXRlbScsIGFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGUgJiYgJ2ZvY3VzJylcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2l0ZW0nLCBhaXJwb3J0LmNvZGUgPT09IGZvY3VzZWRMYXRlc3RTZWFyY2hlc0FpcnBvcnRDb2RlICYmICdmb2N1cycpXCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0U2VsZWN0ZWQoYWlycG9ydClcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ25hbWUnKVwiPnt7YWlycG9ydC5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb2RlJylcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb3VudHJ5JylcIj57e2FpcnBvcnQuY291bnRyeU5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxsaSByb2xlPVwic2VwYXJhdG9yXCJcbiAgICAgICpuZ0lmPVwiZXhpc3RzKGRpc3BsYXlDbG9zZXN0QWlycG9ydHMpXG4gICAgICAgJiYgZ2VvbG9jYXRpb25TdGF0ZSAhPT0gbnVsbFxuICAgICAgICYmIGdlb2xvY2F0aW9uU3RhdGUgPT09IDBcbiAgICAgICAmJiBjbG9zZXN0QWlycG9ydHM/Lmxlbmd0aCA+IDBcbiAgICAgICAmJiByZXN1bHRzTGFiZWxzPy5jbG9zZXN0QWlycG9ydHNcbiAgICAgICAmJiBpc1ZhbGlkXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1zZWN0aW9uLWxhYmVsJylcIj5cbiAgICAgIDxzcGFuPnt7cmVzdWx0c0xhYmVscz8uY2xvc2VzdEFpcnBvcnRzfX08L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhpc3RzKGRpc3BsYXlDbG9zZXN0QWlycG9ydHMpICYmIGdlb2xvY2F0aW9uU3RhdGUgPT09IDAgJiYgaXNWYWxpZFwiPlxuICAgICAgPGxpIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgYWlycG9ydCBvZiBjbG9zZXN0QWlycG9ydHNcIlxuICAgICAgICBbaWRdPVwiZ2V0Q2xvc2VzdEFpcnBvcnRzQWlycG9ydElkKGFpcnBvcnQuY29kZSlcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZENsb3Nlc3RBaXJwb3J0Q29kZVwiXG4gICAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgYWlycG9ydC5jb2RlID09PSBmb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlICYmICdmb2N1cycpXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdpdGVtJywgYWlycG9ydC5jb2RlID09PSBmb2N1c2VkQ2xvc2VzdEFpcnBvcnRDb2RlICYmICdmb2N1cycpXCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0U2VsZWN0ZWQoYWlycG9ydClcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ25hbWUnKVwiPnt7YWlycG9ydC5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb2RlJylcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb3VudHJ5JylcIj57e2FpcnBvcnQuY291bnRyeU5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxsaSByb2xlPVwic2VwYXJhdG9yXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1zZWN0aW9uLWxhYmVsJylcIlxuICAgICAgKm5nSWY9XCJkaXNwbGF5QWxsQWlycG9ydHNMYWJlbCAmJiByZXN1bHRzTGFiZWxzPy5hbGxBaXJwb3J0cyAmJiBpc1ZhbGlkXCI+XG4gICAgICA8c3Bhbj57e3Jlc3VsdHNMYWJlbHM/LmFsbEFpcnBvcnRzfX08L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWYWxpZFwiPlxuICAgICAgPGxpIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgYWlycG9ydCBvZiBmaWx0ZXJlZEFpcnBvcnRzXCJcbiAgICAgICAgW2lkXT1cImdldEFsbEFpcnBvcnRzQWlycG9ydElkKGFpcnBvcnQuY29kZSlcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZEFpcnBvcnRDb2RlXCJcbiAgICAgICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsaXN0LWl0ZW0nLCBhaXJwb3J0LmNvZGUgPT09IGZvY3VzZWRBaXJwb3J0Q29kZSAmJiAnZm9jdXMnKVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGFpcnBvcnQuY29kZSA9PT0gZm9jdXNlZEFpcnBvcnRDb2RlICYmICdmb2N1cycpXCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0U2VsZWN0ZWQoYWlycG9ydClcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ25hbWUnKVwiPnt7YWlycG9ydC5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb2RlJylcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdjb3VudHJ5JylcIj57e2FpcnBvcnQuY291bnRyeU5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxsaSAqbmdJZj1cIiFpc1ZhbGlkXCJcbiAgICAgIHJvbGU9XCJsaXN0aXRlbVwiPlxuICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCduYW1lJywgJ2ludmFsaWQnKVwiPnt7aW52YWxpZFRleHR9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG48YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICB0YWJpbmRleD1cIjBcIlxuICAqbmdJZj1cIm9wZW5cIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbEJhY2tkcm9wXCJcbiAgW25hc0NsYXNzXT1cImdldENsYXNzKCdiYWNrZHJvcCcpXCJcbiAgKGNsaWNrKT1cImJsdXIoKVwiPjwvYnV0dG9uPiJdfQ==
|