@coreui/angular-pro 5.0.0-alpha.13 → 5.0.0-alpha.15
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/accordion/accordion/accordion.component.mjs +22 -16
- package/esm2022/lib/alert/alert.component.mjs +30 -38
- package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +7 -6
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar/calendar.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +1 -1
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +4 -9
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -4
- package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -4
- package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +7 -8
- package/esm2022/lib/collapse/collapse.directive.mjs +30 -40
- package/esm2022/lib/date-picker/date-picker.component.mjs +5 -7
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +5 -7
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +26 -34
- package/esm2022/lib/element-cover/element-cover.component.mjs +4 -4
- package/esm2022/lib/form/form-check/form-check-input.directive.mjs +10 -8
- package/esm2022/lib/loading-button/loading-button.component.mjs +15 -21
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +2 -2
- package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +8 -7
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +6 -12
- package/esm2022/lib/placeholder/placeholder.directive.mjs +11 -18
- package/esm2022/lib/shared/theme.directive.mjs +3 -2
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +34 -46
- package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +17 -18
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -11
- package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +20 -24
- package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +4 -6
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +7 -12
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +3 -5
- package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +7 -7
- package/esm2022/lib/tabs/tab-content-ref.directive.mjs +12 -9
- package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +5 -6
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +9 -8
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +9 -8
- package/esm2022/lib/time-picker/time-picker.component.mjs +5 -7
- package/esm2022/lib/time-picker/time-picker.module.mjs +2 -4
- package/esm2022/lib/toast/toast/toast.component.mjs +11 -9
- package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -4
- package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +5 -5
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +4 -4
- package/fesm2022/coreui-angular-pro.mjs +313 -363
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/accordion/accordion/accordion.component.d.ts +4 -6
- package/lib/alert/alert.component.d.ts +8 -12
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +1 -0
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +1 -2
- package/lib/collapse/collapse.directive.d.ts +13 -13
- package/lib/dropdown/dropdown/dropdown.component.d.ts +8 -12
- package/lib/form/form-check/form-check-input.directive.d.ts +4 -3
- package/lib/loading-button/loading-button.component.d.ts +4 -5
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +3 -1
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +2 -5
- package/lib/placeholder/placeholder.directive.d.ts +3 -7
- package/lib/sidebar/sidebar/sidebar.component.d.ts +13 -11
- package/lib/smart-pagination/smart-pagination.component.d.ts +4 -8
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +1 -0
- package/lib/tabs/tab-content/tab-content.component.d.ts +1 -0
- package/lib/tabs/tab-content-ref.directive.d.ts +4 -2
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +2 -0
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +2 -0
- package/lib/toast/toast/toast.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
-
import { NgClass
|
|
3
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, numberAttribute, Output } from '@angular/core';
|
|
2
|
+
import { NgClass } from '@angular/common';
|
|
4
3
|
import { PageItemDirective, PageLinkDirective } from '../pagination';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export class SmartPaginationComponent {
|
|
7
6
|
constructor() {
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Current page number. [docs]
|
|
9
|
+
* @default 1
|
|
10
|
+
* @type number
|
|
11
|
+
*/
|
|
12
|
+
this.activePage = 1;
|
|
9
13
|
/**
|
|
10
14
|
* Event triggered on activePage change.
|
|
11
15
|
* @type EventEmitter<number>
|
|
@@ -68,24 +72,13 @@ export class SmartPaginationComponent {
|
|
|
68
72
|
*/
|
|
69
73
|
this.role = 'navigation';
|
|
70
74
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Current page number. [docs]
|
|
73
|
-
* @default 1
|
|
74
|
-
* @type number
|
|
75
|
-
*/
|
|
76
|
-
set activePage(value) {
|
|
77
|
-
this._activePage = coerceNumberProperty(value);
|
|
78
|
-
}
|
|
79
|
-
get activePage() {
|
|
80
|
-
return this._activePage;
|
|
81
|
-
}
|
|
82
75
|
/**
|
|
83
76
|
* Maximum items number. [docs]
|
|
84
77
|
* @default 5
|
|
85
78
|
* @type number
|
|
86
79
|
*/
|
|
87
80
|
set limit(value) {
|
|
88
|
-
this._limit =
|
|
81
|
+
this._limit = value;
|
|
89
82
|
}
|
|
90
83
|
get limit() {
|
|
91
84
|
return this._limit;
|
|
@@ -95,7 +88,7 @@ export class SmartPaginationComponent {
|
|
|
95
88
|
* @type number
|
|
96
89
|
*/
|
|
97
90
|
set pages(value) {
|
|
98
|
-
this._pages =
|
|
91
|
+
this._pages = value;
|
|
99
92
|
}
|
|
100
93
|
get pages() {
|
|
101
94
|
return this._pages;
|
|
@@ -155,13 +148,14 @@ export class SmartPaginationComponent {
|
|
|
155
148
|
}
|
|
156
149
|
}
|
|
157
150
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SmartPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
151
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: SmartPaginationComponent, isStandalone: true, selector: "c-smart-pagination", inputs: { activePage: ["activePage", "activePage", numberAttribute], arrows: "arrows", doubleArrows: "doubleArrows", dots: "dots", limit: ["limit", "limit", numberAttribute], pages: ["pages", "pages", numberAttribute], firstButton: "firstButton", lastButton: "lastButton", nextButton: "nextButton", previousButton: "previousButton", align: "align", size: "size", role: "role" }, outputs: { activePageChange: "activePageChange" }, host: { properties: { "attr.role": "this.role" } }, exportAs: ["cSmartPagination"], ngImport: i0, template: "<ul [ngClass]=\"paginationClass\">\n @if (doubleArrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"First page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ firstButton }}</span>\n </button>\n </li>\n }\n @if (arrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(activePage - 1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"Previous page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ previousButton }}</span>\n </button>\n </li>\n }\n @if (beforeDots) {\n <li cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n }\n @for (item of items; track item; let i = $index) {\n <li [active]=\"activePage === item\" cPageItem>\n <button\n (click)=\"setPage(item)\"\n [title]=\"(activePage === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n cPageLink\n >\n {{ item }}\n </button>\n </li>\n }\n @if (afterDots) {\n <li cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n }\n @if (arrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(activePage + 1)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Next page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ nextButton }}</span>\n </button>\n </li>\n }\n @if (doubleArrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(pages)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Last page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ lastButton }}</span>\n </button>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: PageItemDirective, selector: "[cPageItem]", inputs: ["active", "disabled"] }, { kind: "directive", type: PageLinkDirective, selector: "[cPageLink]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
159
152
|
}
|
|
160
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SmartPaginationComponent, decorators: [{
|
|
161
154
|
type: Component,
|
|
162
|
-
args: [{ selector: 'c-smart-pagination', exportAs: 'cSmartPagination', standalone: true, imports: [PageItemDirective, PageLinkDirective, NgClass
|
|
163
|
-
}],
|
|
164
|
-
type: Input
|
|
155
|
+
args: [{ selector: 'c-smart-pagination', exportAs: 'cSmartPagination', standalone: true, imports: [PageItemDirective, PageLinkDirective, NgClass], template: "<ul [ngClass]=\"paginationClass\">\n @if (doubleArrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"First page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ firstButton }}</span>\n </button>\n </li>\n }\n @if (arrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(activePage - 1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"Previous page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ previousButton }}</span>\n </button>\n </li>\n }\n @if (beforeDots) {\n <li cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n }\n @for (item of items; track item; let i = $index) {\n <li [active]=\"activePage === item\" cPageItem>\n <button\n (click)=\"setPage(item)\"\n [title]=\"(activePage === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n cPageLink\n >\n {{ item }}\n </button>\n </li>\n }\n @if (afterDots) {\n <li cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n }\n @if (arrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(activePage + 1)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Next page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ nextButton }}</span>\n </button>\n </li>\n }\n @if (doubleArrows) {\n <li cPageItem>\n <button\n (click)=\"setPage(pages)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Last page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{ lastButton }}</span>\n </button>\n </li>\n }\n</ul>\n" }]
|
|
156
|
+
}], propDecorators: { activePage: [{
|
|
157
|
+
type: Input,
|
|
158
|
+
args: [{ transform: numberAttribute }]
|
|
165
159
|
}], activePageChange: [{
|
|
166
160
|
type: Output
|
|
167
161
|
}], arrows: [{
|
|
@@ -171,9 +165,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
171
165
|
}], dots: [{
|
|
172
166
|
type: Input
|
|
173
167
|
}], limit: [{
|
|
174
|
-
type: Input
|
|
168
|
+
type: Input,
|
|
169
|
+
args: [{ transform: numberAttribute }]
|
|
175
170
|
}], pages: [{
|
|
176
|
-
type: Input
|
|
171
|
+
type: Input,
|
|
172
|
+
args: [{ transform: numberAttribute }]
|
|
177
173
|
}], firstButton: [{
|
|
178
174
|
type: Input
|
|
179
175
|
}], lastButton: [{
|
|
@@ -192,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
192
188
|
}, {
|
|
193
189
|
type: Input
|
|
194
190
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXJFLE1BQU0sT0FBTyx3QkFBd0I7SUFNbkM7UUFnQlEsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7OztXQUdHO1FBQ08scUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFOUU7Ozs7V0FJRztRQUNNLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFFaEM7Ozs7V0FJRztRQUNNLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRXRDOzs7V0FHRztRQUNNLFNBQUksR0FBWSxJQUFJLENBQUM7UUFnQnRCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFlbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBK0IsR0FBRyxDQUFDO1FBQ3ZELHNEQUFzRDtRQUV0RDs7OztXQUlHO1FBQ00sZUFBVSxHQUEr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d0IsdWZDZHJDLDZtREE2REEsNENEakRZLGlCQUFpQix3RkFBRSxpQkFBaUIsd0RBQUUsT0FBTyxvRkFBRSxJQUFJLDZGQUFFLE9BQU87OzJGQUUzRCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usb0JBQW9CLFlBRXBCLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzt3REFnQm5FLFVBQVU7c0JBRGIsS0FBSztnQkFlSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0UsTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQVFGLEtBQUs7c0JBRFIsS0FBSztnQkFnQkYsS0FBSztzQkFEUixLQUFLO2dCQWdCRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsSUFBSTtzQkFEWixXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyBQYWdlSXRlbURpcmVjdGl2ZSwgUGFnZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IElTbWFydFBhZ2luYXRpb24gfSBmcm9tICcuL3NtYXJ0LXBhZ2luYXRpb24udHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc21hcnQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdjU21hcnRQYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BhZ2VJdGVtRGlyZWN0aXZlLCBQYWdlTGlua0RpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgTmdGb3JPZl1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0UGFnaW5hdGlvbiB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FjdGl2ZVBhZ2U6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcGFnZXM6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGltaXQ6IE51bWJlcklucHV0O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcGFnZSBudW1iZXIuIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2ZVBhZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2UgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZTogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIG9uIGFjdGl2ZVBhZ2UgY2hhbmdlLlxuICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8bnVtYmVyPlxuICAgKi9cbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBhcnJvd3NcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93IGRvdWJsZSBhcnJvd3MgYnV0dG9uc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGRvdWJsZUFycm93czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBkb3RzLiBbZG9jc11cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgZG90czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gaXRlbXMgbnVtYmVyLiBbZG9jc11cbiAgICogQGRlZmF1bHQgNVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGltaXQ7XG4gIH1cblxuICBwcml2YXRlIF9saW1pdDogbnVtYmVyID0gNTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHBhZ2VzLiBbZG9jc11cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcGFnZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhZ2VzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFnZXM6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdmaXJzdEJ1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZsYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ8KrJztcbiAgLy8gZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZsYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdsYXN0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJhcXVvJ1xuICAgKiB0b2RvIFRlbXBsYXRlUmVmXG4gICAqL1xuICBASW5wdXQoKSBsYXN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICfCuyc7XG4gIC8vIGxhc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZyYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICduZXh0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJmxzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgbmV4dEJ1dHRvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAn4oC6JztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgJ3ByZXZpb3VzQnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgcHJldmlvdXNCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ+KAuSc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYWxpZ25tZW50IG9mIHBhZ2luYXRpb24gY29tcG9uZW50cy5cbiAgICogQHZhbHVlcyAnc3RhcnQnLCAnY2VudGVyJywgJ2VuZCdcbiAgICovXG4gIEBJbnB1dCgpIGFsaWduPzogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCAnJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cbiAgICogQHZhbHVlcyAnc20nLCAnbGcnXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcm9sZSBmb3IgcGFnaW5hdGlvbi4gW2RvY3NdXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnbmF2aWdhdGlvbidcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgQElucHV0KCkgcm9sZSA9ICduYXZpZ2F0aW9uJztcblxuICBnZXQgcGFnaW5hdGlvbkNsYXNzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICBbYHBhZ2luYXRpb24tJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgW2BqdXN0aWZ5LWNvbnRlbnQtJHt0aGlzLmFsaWdufWBdOiAhIXRoaXMuYWxpZ25cbiAgICB9O1xuICB9XG5cbiAgZ2V0IG1heFByZXZJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigodGhpcy5fbGltaXQgLSAxKSAvIDIpO1xuICB9XG5cbiAgZ2V0IG1heE5leHRJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLl9saW1pdCAtIDEpIC8gMik7XG4gIH1cblxuICBnZXQgcmFuZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVQYWdlICsgdGhpcy5tYXhOZXh0SXRlbXM7XG4gIH1cblxuICBnZXQgbGFzdEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSA+PSB0aGlzLl9wYWdlcyA/IHRoaXMuX3BhZ2VzIDogdGhpcy5yYW5nZSAtICh0aGlzLmFmdGVyRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZExpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbWl0IC0gKHRoaXMuYWZ0ZXJEb3RzID8gMSA6IDApIC0gKHRoaXMuYmVmb3JlRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBpdGVtc0xpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzIDwgdGhpcy5jb21wdXRlZExpbWl0ID8gdGhpcy5fcGFnZXMgOiB0aGlzLmNvbXB1dGVkTGltaXQ7XG4gIH1cblxuICBnZXQgc2hvd0RvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG90cyAmJiB0aGlzLl9saW1pdCA+IDQgJiYgdGhpcy5fbGltaXQgPCB0aGlzLl9wYWdlcztcbiAgfVxuXG4gIGdldCBiZWZvcmVEb3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dEb3RzICYmIHRoaXMuYWN0aXZlUGFnZSA+IHRoaXMubWF4UHJldkl0ZW1zICsgMTtcbiAgfVxuXG4gIGdldCBhZnRlckRvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0RvdHMgJiYgdGhpcy5hY3RpdmVQYWdlIDwgdGhpcy5fcGFnZXMgLSB0aGlzLm1heE5leHRJdGVtcztcbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlIC0gdGhpcy5tYXhQcmV2SXRlbXMgPD0gMSkge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6IHRoaXMuaXRlbXNMaW1pdFxuICAgICAgICB9LFxuICAgICAgICAoX2l0ZW0sIGkpID0+IGkgKyAxXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShcbiAgICAgICAge1xuICAgICAgICAgIGxlbmd0aDogdGhpcy5pdGVtc0xpbWl0XG4gICAgICAgIH0sXG4gICAgICAgIChfaXRlbSwgaSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RJdGVtIC0gaTtcbiAgICAgICAgfVxuICAgICAgKS5yZXZlcnNlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZShwYWdlOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZSAhPT0gdGhpcy5hY3RpdmVQYWdlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5hY3RpdmVQYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gICAgfVxuICB9XG59XG4iLCI8dWwgW25nQ2xhc3NdPVwicGFnaW5hdGlvbkNsYXNzXCI+XG4gIDxsaSAqbmdJZj1cImRvdWJsZUFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZSgxKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUGFnZSA9PT0gMVwiXG4gICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgcGFnZVwiXG4gICAgICBjUGFnZUxpbmtcbiAgICA+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57e2ZpcnN0QnV0dG9ufX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShhY3RpdmVQYWdlIC0gMSlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVBhZ2UgPT09IDFcIlxuICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIlxuICAgICAgY1BhZ2VMaW5rXG4gICAgPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3twcmV2aW91c0J1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJiZWZvcmVEb3RzXCIgY1BhZ2VJdGVtPlxuICAgIDxhIGNQYWdlTGluayBkaXNhYmxlZCByb2xlPVwic2VwYXJhdG9yXCI+XG4gICAgICAuLi5cbiAgICA8L2E+XG4gIDwvbGk+XG4gIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiIFthY3RpdmVdPVwiYWN0aXZlUGFnZSA9PT0gaXRlbVwiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShpdGVtKVwiXG4gICAgICBbdGl0bGVdPVwiKGFjdGl2ZVBhZ2UgPT09IGl0ZW0gPyAnQ3VycmVudCBwYWdlICcgOiAnR28gdG8gcGFnZSAnKSArIChpdGVtKS50b1N0cmluZygpXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIHt7aXRlbX19XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFmdGVyRG90c1wiIGNQYWdlSXRlbT5cbiAgICA8YSBjUGFnZUxpbmsgZGlzYWJsZWQgcm9sZT1cInNlcGFyYXRvclwiPlxuICAgICAgLi4uXG4gICAgPC9hPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJhcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UoYWN0aXZlUGFnZSArIDEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bmV4dEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJkb3VibGVBcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTGFzdCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bGFzdEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVckUsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVNFOzs7O1dBSUc7UUFDb0MsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUU5RDs7O1dBR0c7UUFDTyxxQkFBZ0IsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU5RTs7OztXQUlHO1FBQ00sV0FBTSxHQUFZLElBQUksQ0FBQztRQUVoQzs7OztXQUlHO1FBQ00saUJBQVksR0FBWSxJQUFJLENBQUM7UUFFdEM7OztXQUdHO1FBQ00sU0FBSSxHQUFZLElBQUksQ0FBQztRQWdCdEIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQWVuQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBRTNCOzs7O1dBSUc7UUFDTSxnQkFBVyxHQUErQixHQUFHLENBQUM7UUFDdkQsc0RBQXNEO1FBRXREOzs7O1dBSUc7UUFDTSxlQUFVLEdBQStCLEdBQUcsQ0FBQztRQUN0RCxxREFBcUQ7UUFFckQ7Ozs7V0FJRztRQUNNLGVBQVUsR0FBK0IsR0FBRyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUErQixHQUFHLENBQUM7UUFFMUQ7OztXQUdHO1FBQ00sVUFBSyxHQUFxQyxPQUFPLENBQUM7UUFRM0Q7Ozs7V0FJRztRQUVNLFNBQUksR0FBRyxZQUFZLENBQUM7S0F3RTlCO0lBdkpDOzs7O09BSUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBc0RELElBQUksZUFBZTtRQUNqQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUN4QyxDQUFDLG1CQUFtQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDeEIsRUFDRCxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3BCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDeEIsRUFDRCxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FDRixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzs4R0F6TFUsd0JBQXdCO2tHQUF4Qix3QkFBd0IseUdBT2YsZUFBZSwyRkFpQ2YsZUFBZSw2QkFlZixlQUFlLGtVQ3BFckMsbXlEQTJFQSw0Q0RoRVksaUJBQWlCLHdGQUFFLGlCQUFpQix3REFBRSxPQUFPOzsyRkFFNUMsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLG9CQUFvQixZQUVwQixrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDOzhCQVNqQixVQUFVO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNM0IsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU9FLE1BQU07c0JBQWQsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQWdCakMsS0FBSztzQkFEUixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFnQjVCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFRRyxJQUFJO3NCQURaLFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBudW1iZXJBdHRyaWJ1dGUsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBQYWdlSXRlbURpcmVjdGl2ZSwgUGFnZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IElTbWFydFBhZ2luYXRpb24gfSBmcm9tICcuL3NtYXJ0LXBhZ2luYXRpb24udHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc21hcnQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdjU21hcnRQYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BhZ2VJdGVtRGlyZWN0aXZlLCBQYWdlTGlua0RpcmVjdGl2ZSwgTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0UGFnaW5hdGlvbiB7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcGFnZSBudW1iZXIuIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgYWN0aXZlUGFnZTogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIG9uIGFjdGl2ZVBhZ2UgY2hhbmdlLlxuICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8bnVtYmVyPlxuICAgKi9cbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBhcnJvd3NcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93IGRvdWJsZSBhcnJvd3MgYnV0dG9uc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGRvdWJsZUFycm93czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBkb3RzLiBbZG9jc11cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgZG90czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gaXRlbXMgbnVtYmVyLiBbZG9jc11cbiAgICogQGRlZmF1bHQgNVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNldCBsaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGltaXQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBsaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9saW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXIgPSA1O1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcGFnZXMuIFtkb2NzXVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNldCBwYWdlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZXMgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBwYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlcztcbiAgfVxuXG4gIHByaXZhdGUgX3BhZ2VzOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiAnZmlyc3RCdXR0b24nIGJ1dHRvbi4gW2RvY3NdXG4gICAqIEBkZWZhdWx0ICcmbGFxdW8nXG4gICAqIHRvZG8gVGVtcGxhdGVSZWZcbiAgICovXG4gIEBJbnB1dCgpIGZpcnN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICfCqyc7XG4gIC8vIGZpcnN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICcmbGFxdW87J1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiAnbGFzdEJ1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZyYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgbGFzdEJ1dHRvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAnwrsnO1xuICAvLyBsYXN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICcmcmFxdW87J1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiAnbmV4dEJ1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZsc2FxdW8nXG4gICAqIHRvZG8gVGVtcGxhdGVSZWZcbiAgICovXG4gIEBJbnB1dCgpIG5leHRCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ+KAuic7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdwcmV2aW91c0J1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZyc2FxdW8nXG4gICAqIHRvZG8gVGVtcGxhdGVSZWZcbiAgICovXG4gIEBJbnB1dCgpIHByZXZpb3VzQnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICfigLknO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFsaWdubWVudCBvZiBwYWdpbmF0aW9uIGNvbXBvbmVudHMuXG4gICAqIEB2YWx1ZXMgJ3N0YXJ0JywgJ2NlbnRlcicsICdlbmQnXG4gICAqL1xuICBASW5wdXQoKSBhbGlnbj86ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnIHwgJycgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB2YWx1ZXMgJ3NtJywgJ2xnJ1xuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHJvbGUgZm9yIHBhZ2luYXRpb24uIFtkb2NzXVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgJ25hdmlnYXRpb24nXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gIEBJbnB1dCgpIHJvbGUgPSAnbmF2aWdhdGlvbic7XG5cbiAgZ2V0IHBhZ2luYXRpb25DbGFzcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgW2BwYWdpbmF0aW9uLSR7dGhpcy5zaXplfWBdOiAhIXRoaXMuc2l6ZSxcbiAgICAgIFtganVzdGlmeS1jb250ZW50LSR7dGhpcy5hbGlnbn1gXTogISF0aGlzLmFsaWduXG4gICAgfTtcbiAgfVxuXG4gIGdldCBtYXhQcmV2SXRlbXMoKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKHRoaXMuX2xpbWl0IC0gMSkgLyAyKTtcbiAgfVxuXG4gIGdldCBtYXhOZXh0SXRlbXMoKSB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5fbGltaXQgLSAxKSAvIDIpO1xuICB9XG5cbiAgZ2V0IHJhbmdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUGFnZSArIHRoaXMubWF4TmV4dEl0ZW1zO1xuICB9XG5cbiAgZ2V0IGxhc3RJdGVtKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2UgPj0gdGhpcy5fcGFnZXMgPyB0aGlzLl9wYWdlcyA6IHRoaXMucmFuZ2UgLSAodGhpcy5hZnRlckRvdHMgPyAxIDogMCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9saW1pdCAtICh0aGlzLmFmdGVyRG90cyA/IDEgOiAwKSAtICh0aGlzLmJlZm9yZURvdHMgPyAxIDogMCk7XG4gIH1cblxuICBnZXQgaXRlbXNMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlcyA8IHRoaXMuY29tcHV0ZWRMaW1pdCA/IHRoaXMuX3BhZ2VzIDogdGhpcy5jb21wdXRlZExpbWl0O1xuICB9XG5cbiAgZ2V0IHNob3dEb3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvdHMgJiYgdGhpcy5fbGltaXQgPiA0ICYmIHRoaXMuX2xpbWl0IDwgdGhpcy5fcGFnZXM7XG4gIH1cblxuICBnZXQgYmVmb3JlRG90cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93RG90cyAmJiB0aGlzLmFjdGl2ZVBhZ2UgPiB0aGlzLm1heFByZXZJdGVtcyArIDE7XG4gIH1cblxuICBnZXQgYWZ0ZXJEb3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dEb3RzICYmIHRoaXMuYWN0aXZlUGFnZSA8IHRoaXMuX3BhZ2VzIC0gdGhpcy5tYXhOZXh0SXRlbXM7XG4gIH1cblxuICBnZXQgaXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZSAtIHRoaXMubWF4UHJldkl0ZW1zIDw9IDEpIHtcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgICB7XG4gICAgICAgICAgbGVuZ3RoOiB0aGlzLml0ZW1zTGltaXRcbiAgICAgICAgfSxcbiAgICAgICAgKF9pdGVtLCBpKSA9PiBpICsgMVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6IHRoaXMuaXRlbXNMaW1pdFxuICAgICAgICB9LFxuICAgICAgICAoX2l0ZW0sIGkpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXN0SXRlbSAtIGk7XG4gICAgICAgIH1cbiAgICAgICkucmV2ZXJzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2UgIT09IHRoaXMuYWN0aXZlUGFnZSkge1xuICAgICAgdGhpcy5hY3RpdmVQYWdlID0gcGFnZTtcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiPHVsIFtuZ0NsYXNzXT1cInBhZ2luYXRpb25DbGFzc1wiPlxuICBAaWYgKGRvdWJsZUFycm93cykge1xuICAgIDxsaSBjUGFnZUl0ZW0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZXRQYWdlKDEpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVBhZ2UgPT09IDFcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgcGFnZVwiXG4gICAgICAgIGNQYWdlTGlua1xuICAgICAgPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyBmaXJzdEJ1dHRvbiB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIH1cbiAgQGlmIChhcnJvd3MpIHtcbiAgICA8bGkgY1BhZ2VJdGVtPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic2V0UGFnZShhY3RpdmVQYWdlIC0gMSlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUGFnZSA9PT0gMVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBwYWdlXCJcbiAgICAgICAgY1BhZ2VMaW5rXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IHByZXZpb3VzQnV0dG9uIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgfVxuICBAaWYgKGJlZm9yZURvdHMpIHtcbiAgICA8bGkgY1BhZ2VJdGVtPlxuICAgICAgPGEgY1BhZ2VMaW5rIGRpc2FibGVkIHJvbGU9XCJzZXBhcmF0b3JcIj5cbiAgICAgICAgLi4uXG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgfVxuICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxsaSBbYWN0aXZlXT1cImFjdGl2ZVBhZ2UgPT09IGl0ZW1cIiBjUGFnZUl0ZW0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZXRQYWdlKGl0ZW0pXCJcbiAgICAgICAgW3RpdGxlXT1cIihhY3RpdmVQYWdlID09PSBpdGVtID8gJ0N1cnJlbnQgcGFnZSAnIDogJ0dvIHRvIHBhZ2UgJykgKyAoaXRlbSkudG9TdHJpbmcoKVwiXG4gICAgICAgIGNQYWdlTGlua1xuICAgICAgPlxuICAgICAgICB7eyBpdGVtIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICB9XG4gIEBpZiAoYWZ0ZXJEb3RzKSB7XG4gICAgPGxpIGNQYWdlSXRlbT5cbiAgICAgIDxhIGNQYWdlTGluayBkaXNhYmxlZCByb2xlPVwic2VwYXJhdG9yXCI+XG4gICAgICAgIC4uLlxuICAgICAgPC9hPlxuICAgIDwvbGk+XG4gIH1cbiAgQGlmIChhcnJvd3MpIHtcbiAgICA8bGkgY1BhZ2VJdGVtPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic2V0UGFnZShhY3RpdmVQYWdlICsgMSlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUGFnZSA9PT0gcGFnZXNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCJcbiAgICAgICAgY1BhZ2VMaW5rXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IG5leHRCdXR0b24gfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICB9XG4gIEBpZiAoZG91YmxlQXJyb3dzKSB7XG4gICAgPGxpIGNQYWdlSXRlbT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVBhZ2UgPT09IHBhZ2VzXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkxhc3QgcGFnZVwiXG4gICAgICAgIGNQYWdlTGlua1xuICAgICAgPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyBsYXN0QnV0dG9uIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgfVxuPC91bD5cbiJdfQ==
|