primeng 18.0.2 → 18.0.3-lts
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/api/licensemanager.d.ts +4 -0
- package/api/public_api.d.ts +1 -0
- package/datepicker/datepicker.d.ts +22 -88
- package/esm2022/api/licensemanager.mjs +114 -0
- package/esm2022/api/public_api.mjs +2 -1
- package/esm2022/basecomponent/basecomponent.mjs +3 -1
- package/esm2022/calendar/calendar.mjs +8 -9
- package/esm2022/datepicker/datepicker.mjs +8 -9
- package/esm2022/tag/tag.mjs +1 -2
- package/esm2022/tree/tree.mjs +3 -5
- package/fesm2022/primeng-api.mjs +115 -1
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -0
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +7 -8
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +7 -8
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +0 -1
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +2 -4
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/package.json +203 -203
- package/tag/tag.d.ts +0 -1
package/api/public_api.d.ts
CHANGED
@@ -761,99 +761,33 @@ export declare class DatePicker extends BaseComponent implements OnInit, AfterCo
|
|
761
761
|
ngOnDestroy(): void;
|
762
762
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePicker, never>;
|
763
763
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatePicker, "p-datePicker, p-datepicker, p-date-picker", never, { "iconDisplay": { "alias": "iconDisplay"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "inputStyle": { "alias": "inputStyle"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "inputStyleClass": { "alias": "inputStyleClass"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "iconAriaLabel": { "alias": "iconAriaLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "multipleSeparator": { "alias": "multipleSeparator"; "required": false; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "showOtherMonths": { "alias": "showOtherMonths"; "required": false; }; "selectOtherMonths": { "alias": "selectOtherMonths"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "readonlyInput": { "alias": "readonlyInput"; "required": false; }; "shortYearCutoff": { "alias": "shortYearCutoff"; "required": false; }; "monthNavigator": { "alias": "monthNavigator"; "required": false; }; "yearNavigator": { "alias": "yearNavigator"; "required": false; }; "hourFormat": { "alias": "hourFormat"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "stepHour": { "alias": "stepHour"; "required": false; }; "stepMinute": { "alias": "stepMinute"; "required": false; }; "stepSecond": { "alias": "stepSecond"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showOnFocus": { "alias": "showOnFocus"; "required": false; }; "showWeek": { "alias": "showWeek"; "required": false; }; "startWeekFromFirstDayOfYear": { "alias": "startWeekFromFirstDayOfYear"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "dataType": { "alias": "dataType"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "maxDateCount": { "alias": "maxDateCount"; "required": false; }; "showButtonBar": { "alias": "showButtonBar"; "required": false; }; "todayButtonStyleClass": { "alias": "todayButtonStyleClass"; "required": false; }; "clearButtonStyleClass": { "alias": "clearButtonStyleClass"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "panelStyleClass": { "alias": "panelStyleClass"; "required": false; }; "panelStyle": { "alias": "panelStyle"; "required": false; }; "keepInvalid": { "alias": "keepInvalid"; "required": false; }; "hideOnDateTimeSelect": { "alias": "hideOnDateTimeSelect"; "required": false; }; "touchUI": { "alias": "touchUI"; "required": false; }; "timeSeparator": { "alias": "timeSeparator"; "required": false; }; "focusTrap": { "alias": "focusTrap"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "disabledDays": { "alias": "disabledDays"; "required": false; }; "yearRange": { "alias": "yearRange"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "responsiveOptions": { "alias": "responsiveOptions"; "required": false; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "view": { "alias": "view"; "required": false; }; "defaultDate": { "alias": "defaultDate"; "required": false; }; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; "onClose": "onClose"; "onSelect": "onSelect"; "onClear": "onClear"; "onInput": "onInput"; "onTodayClick": "onTodayClick"; "onClearClick": "onClearClick"; "onMonthChange": "onMonthChange"; "onYearChange": "onYearChange"; "onClickOutside": "onClickOutside"; "onShow": "onShow"; }, ["dateTemplate", "headerTemplate", "footerTemplate", "disabledDateTemplate", "decadeTemplate", "previousIconTemplate", "nextIconTemplate", "triggerIconTemplate", "clearIconTemplate", "decrementIconTemplate", "incrementIconTemplate", "inputIconTemplate", "templates"], ["p-header", "p-footer"], true, never>;
|
764
|
-
static ngAcceptInputType_disabled: unknown
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
static
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
static
|
773
|
-
|
774
|
-
* @group Props
|
775
|
-
*/;
|
776
|
-
static ngAcceptInputType_selectOtherMonths: unknown /**
|
777
|
-
* Transition options of the show animation.
|
778
|
-
* @group Props
|
779
|
-
*/;
|
780
|
-
static ngAcceptInputType_showIcon: unknown /**
|
781
|
-
* Transition options of the show animation.
|
782
|
-
* @group Props
|
783
|
-
*/;
|
784
|
-
static ngAcceptInputType_fluid: unknown /**
|
785
|
-
* Transition options of the show animation.
|
786
|
-
* @group Props
|
787
|
-
*/;
|
788
|
-
static ngAcceptInputType_readonlyInput: unknown /**
|
789
|
-
* Transition options of the show animation.
|
790
|
-
* @group Props
|
791
|
-
*/;
|
792
|
-
static ngAcceptInputType_monthNavigator: unknown /**
|
793
|
-
* Transition options of the show animation.
|
794
|
-
* @group Props
|
795
|
-
*/;
|
796
|
-
static ngAcceptInputType_yearNavigator: unknown /**
|
797
|
-
* Transition options of the show animation.
|
798
|
-
* @group Props
|
799
|
-
*/;
|
800
|
-
static ngAcceptInputType_timeOnly: unknown /**
|
801
|
-
* Transition options of the show animation.
|
802
|
-
* @group Props
|
803
|
-
*/;
|
764
|
+
static ngAcceptInputType_disabled: unknown;
|
765
|
+
static ngAcceptInputType_inline: unknown;
|
766
|
+
static ngAcceptInputType_showOtherMonths: unknown;
|
767
|
+
static ngAcceptInputType_selectOtherMonths: unknown;
|
768
|
+
static ngAcceptInputType_showIcon: unknown;
|
769
|
+
static ngAcceptInputType_fluid: unknown;
|
770
|
+
static ngAcceptInputType_readonlyInput: unknown;
|
771
|
+
static ngAcceptInputType_monthNavigator: unknown;
|
772
|
+
static ngAcceptInputType_yearNavigator: unknown;
|
773
|
+
static ngAcceptInputType_timeOnly: unknown;
|
804
774
|
static ngAcceptInputType_stepHour: unknown;
|
805
775
|
static ngAcceptInputType_stepMinute: unknown;
|
806
776
|
static ngAcceptInputType_stepSecond: unknown;
|
807
|
-
static ngAcceptInputType_showSeconds: unknown
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
static
|
812
|
-
* Transition options of the show animation.
|
813
|
-
* @group Props
|
814
|
-
*/;
|
815
|
-
static ngAcceptInputType_showOnFocus: unknown /**
|
816
|
-
* Transition options of the show animation.
|
817
|
-
* @group Props
|
818
|
-
*/;
|
819
|
-
static ngAcceptInputType_showWeek: unknown /**
|
820
|
-
* Transition options of the show animation.
|
821
|
-
* @group Props
|
822
|
-
*/;
|
823
|
-
static ngAcceptInputType_showClear: unknown /**
|
824
|
-
* Transition options of the show animation.
|
825
|
-
* @group Props
|
826
|
-
*/;
|
777
|
+
static ngAcceptInputType_showSeconds: unknown;
|
778
|
+
static ngAcceptInputType_required: unknown;
|
779
|
+
static ngAcceptInputType_showOnFocus: unknown;
|
780
|
+
static ngAcceptInputType_showWeek: unknown;
|
781
|
+
static ngAcceptInputType_showClear: unknown;
|
827
782
|
static ngAcceptInputType_maxDateCount: unknown;
|
828
|
-
static ngAcceptInputType_showButtonBar: unknown
|
829
|
-
|
830
|
-
|
831
|
-
*/;
|
832
|
-
static ngAcceptInputType_autofocus: unknown /**
|
833
|
-
* Transition options of the show animation.
|
834
|
-
* @group Props
|
835
|
-
*/;
|
836
|
-
static ngAcceptInputType_autoZIndex: unknown /**
|
837
|
-
* Transition options of the show animation.
|
838
|
-
* @group Props
|
839
|
-
*/;
|
783
|
+
static ngAcceptInputType_showButtonBar: unknown;
|
784
|
+
static ngAcceptInputType_autofocus: unknown;
|
785
|
+
static ngAcceptInputType_autoZIndex: unknown;
|
840
786
|
static ngAcceptInputType_baseZIndex: unknown;
|
841
|
-
static ngAcceptInputType_keepInvalid: unknown
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
static ngAcceptInputType_hideOnDateTimeSelect: unknown /**
|
846
|
-
* Transition options of the show animation.
|
847
|
-
* @group Props
|
848
|
-
*/;
|
849
|
-
static ngAcceptInputType_touchUI: unknown /**
|
850
|
-
* Transition options of the show animation.
|
851
|
-
* @group Props
|
852
|
-
*/;
|
853
|
-
static ngAcceptInputType_focusTrap: unknown /**
|
854
|
-
* Transition options of the show animation.
|
855
|
-
* @group Props
|
856
|
-
*/;
|
787
|
+
static ngAcceptInputType_keepInvalid: unknown;
|
788
|
+
static ngAcceptInputType_hideOnDateTimeSelect: unknown;
|
789
|
+
static ngAcceptInputType_touchUI: unknown;
|
790
|
+
static ngAcceptInputType_focusTrap: unknown;
|
857
791
|
static ngAcceptInputType_tabindex: unknown;
|
858
792
|
}
|
859
793
|
export declare class DatePickerModule {
|
@@ -0,0 +1,114 @@
|
|
1
|
+
const LicenseManagerImp = {
|
2
|
+
licenseKey: undefined,
|
3
|
+
passKey: undefined,
|
4
|
+
debug: false,
|
5
|
+
valid: false,
|
6
|
+
verified: false,
|
7
|
+
verify: function (licenseKey, passKey, debug = false) {
|
8
|
+
[LicenseManagerImp.licenseKey, LicenseManagerImp.passKey, LicenseManagerImp.debug] = [licenseKey, passKey, debug];
|
9
|
+
LicenseManagerImp.valid = LicenseManagerImp.verified = false;
|
10
|
+
},
|
11
|
+
check: async function () {
|
12
|
+
if (!LicenseManagerImp.verified) {
|
13
|
+
const isClient = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
|
14
|
+
LicenseManagerImp.verified = isClient;
|
15
|
+
let debug = LicenseManagerImp.debug;
|
16
|
+
let valid = false;
|
17
|
+
try {
|
18
|
+
const plaintext = await LicenseManagerImp.aesGcmDecrypt(LicenseManagerImp.licenseKey, LicenseManagerImp.passKey);
|
19
|
+
const tokens = plaintext.split('_');
|
20
|
+
const licenseDate = new Date(parseInt(tokens[2]));
|
21
|
+
if (tokens.length !== 8) {
|
22
|
+
if (debug)
|
23
|
+
console.log('Error code: 1333');
|
24
|
+
valid = false;
|
25
|
+
}
|
26
|
+
else if (tokens[0].length !== 2) {
|
27
|
+
if (debug)
|
28
|
+
console.log('Error code: 1334');
|
29
|
+
valid = false;
|
30
|
+
}
|
31
|
+
else if (isNaN(parseInt(tokens[1]))) {
|
32
|
+
if (debug)
|
33
|
+
console.log('Error code: 1335');
|
34
|
+
valid = false;
|
35
|
+
}
|
36
|
+
else if (tokens[3] !== 'PRIMENG') {
|
37
|
+
if (debug)
|
38
|
+
console.log('Error code: 1336');
|
39
|
+
valid = false;
|
40
|
+
}
|
41
|
+
else if (tokens[5] === 'BASIC' && licenseDate <= new Date()) {
|
42
|
+
if (debug)
|
43
|
+
console.log('Error code: 1337');
|
44
|
+
valid = false;
|
45
|
+
}
|
46
|
+
else if (tokens[6] !== '16') {
|
47
|
+
if (debug)
|
48
|
+
console.log('Error code: 1338');
|
49
|
+
valid = false;
|
50
|
+
}
|
51
|
+
else if (tokens[7].length !== 6) {
|
52
|
+
if (debug)
|
53
|
+
console.log('Error code: 1339');
|
54
|
+
valid = false;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
valid = true;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
catch (e) {
|
61
|
+
if (debug)
|
62
|
+
console.log('Error:', e.message);
|
63
|
+
valid = false;
|
64
|
+
}
|
65
|
+
if (!valid && isClient) {
|
66
|
+
const link = document.createElement('a');
|
67
|
+
link.setAttribute('href', 'https://primeng.org/lts');
|
68
|
+
link.setAttribute('style', 'background-color: red !important; color: white !important; cursor: pointer !important; font-size: 14px !important; font-weight: bold !important; position: fixed !important; z-index: 9999999999 !important; top: 0 !important; left: 0 !important; display: inline !important; width: 100% !important; padding: 1rem !important; opacity: 1 !important; pointer-events: auto !important; visibility: visible !important;');
|
69
|
+
const msg = document.createElement('marquee');
|
70
|
+
msg.setAttribute('behavior', 'alternate');
|
71
|
+
msg.innerText = 'You are using an LTS version of PrimeNG with an invalid license, you may either switch back to a non-LTS version or purchase a license at PrimeStore.';
|
72
|
+
link.appendChild(msg);
|
73
|
+
document.body.appendChild(link);
|
74
|
+
let linkObserver, documentObserver;
|
75
|
+
const observerCallback = () => {
|
76
|
+
linkObserver.disconnect();
|
77
|
+
documentObserver.disconnect();
|
78
|
+
link && link.remove();
|
79
|
+
LicenseManagerImp.verified = false;
|
80
|
+
LicenseManagerImp.check();
|
81
|
+
};
|
82
|
+
linkObserver = new MutationObserver(() => observerCallback());
|
83
|
+
linkObserver.observe(link, { attributes: true, childList: true });
|
84
|
+
documentObserver = new MutationObserver((_) => _.forEach((mutation) => mutation.removedNodes.length > 0 && mutation.removedNodes.forEach((item) => item.isSameNode(link) && observerCallback())));
|
85
|
+
documentObserver.observe(document.body, { childList: true });
|
86
|
+
}
|
87
|
+
LicenseManagerImp.valid = valid;
|
88
|
+
}
|
89
|
+
return LicenseManagerImp.valid;
|
90
|
+
},
|
91
|
+
aesGcmDecrypt: async function (ciphertext, password) {
|
92
|
+
const pwUtf8 = new TextEncoder().encode(password);
|
93
|
+
const pwHash = await crypto.subtle.digest('SHA-256', pwUtf8);
|
94
|
+
const ivStr = atob(ciphertext).slice(0, 12);
|
95
|
+
const iv = new Uint8Array(Array.from(ivStr).map((ch) => ch.charCodeAt(0)));
|
96
|
+
const alg = { name: 'AES-GCM', iv: iv };
|
97
|
+
const key = await crypto.subtle.importKey('raw', pwHash, alg, false, ['decrypt']);
|
98
|
+
const ctStr = atob(ciphertext).slice(12);
|
99
|
+
const ctUint8 = new Uint8Array(Array.from(ctStr).map((ch) => ch.charCodeAt(0)));
|
100
|
+
try {
|
101
|
+
const plainBuffer = await crypto.subtle.decrypt(alg, key, ctUint8);
|
102
|
+
const plaintext = new TextDecoder().decode(plainBuffer);
|
103
|
+
return plaintext;
|
104
|
+
}
|
105
|
+
catch (e) {
|
106
|
+
throw new Error('Decrypt failed');
|
107
|
+
}
|
108
|
+
}
|
109
|
+
};
|
110
|
+
export const LicenseManager = Object.freeze({
|
111
|
+
verify: LicenseManagerImp.verify,
|
112
|
+
check: LicenseManagerImp.check
|
113
|
+
});
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2xpY2Vuc2VtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLFFBQVEsRUFBRSxLQUFLO0lBQ2YsTUFBTSxFQUFFLFVBQVUsVUFBa0IsRUFBRSxPQUFlLEVBQUUsUUFBaUIsS0FBSztRQUN6RSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xILGlCQUFpQixDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxLQUFLLEVBQUUsS0FBSztRQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZHLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFFdEMsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUM7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFD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Q0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixJQUFJLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkUsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDeEMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU07SUFDaEMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUs7Q0FDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTGljZW5zZU1hbmFnZXJJbXAgPSB7XG4gICAgbGljZW5zZUtleTogdW5kZWZpbmVkLFxuICAgIHBhc3NLZXk6IHVuZGVmaW5lZCxcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgdmFsaWQ6IGZhbHNlLFxuICAgIHZlcmlmaWVkOiBmYWxzZSxcbiAgICB2ZXJpZnk6IGZ1bmN0aW9uIChsaWNlbnNlS2V5OiBzdHJpbmcsIHBhc3NLZXk6IHN0cmluZywgZGVidWc6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBbTGljZW5zZU1hbmFnZXJJbXAubGljZW5zZUtleSwgTGljZW5zZU1hbmFnZXJJbXAucGFzc0tleSwgTGljZW5zZU1hbmFnZXJJbXAuZGVidWddID0gW2xpY2Vuc2VLZXksIHBhc3NLZXksIGRlYnVnXTtcbiAgICAgICAgTGljZW5zZU1hbmFnZXJJbXAudmFsaWQgPSBMaWNlbnNlTWFuYWdlckltcC52ZXJpZmllZCA9IGZhbHNlO1xuICAgIH0sXG4gICAgY2hlY2s6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFMaWNlbnNlTWFuYWdlckltcC52ZXJpZmllZCkge1xuICAgICAgICAgICAgY29uc3QgaXNDbGllbnQgPSAhISh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuICAgICAgICAgICAgTGljZW5zZU1hbmFnZXJJbXAudmVyaWZpZWQgPSBpc0NsaWVudDtcblxuICAgICAgICAgICAgbGV0IGRlYnVnID0gTGljZW5zZU1hbmFnZXJJbXAuZGVidWc7XG4gICAgICAgICAgICBsZXQgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhaW50ZXh0ID0gYXdhaXQgTGljZW5zZU1hbmFnZXJJbXAuYWVzR2NtRGVjcnlwdChMaWNlbnNlTWFuYWdlckltcC5saWNlbnNlS2V5LCBMaWNlbnNlTWFuYWdlckltcC5wYXNzS2V5KTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbnMgPSBwbGFpbnRleHQuc3BsaXQoJ18nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWNlbnNlRGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHRva2Vuc1syXSkpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoICE9PSA4KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coJ0Vycm9yIGNvZGU6IDEzMzMnKTtcblxuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5zWzBdLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvciBjb2RlOiAxMzM0Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTmFOKHBhcnNlSW50KHRva2Vuc1sxXSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coJ0Vycm9yIGNvZGU6IDEzMzUnKTtcblxuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5zWzNdICE9PSAnUFJJTUVORycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTMzNicpO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnNbNV0gPT09ICdCQVNJQycgJiYgbGljZW5zZURhdGUgPD0gbmV3IERhdGUoKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvciBjb2RlOiAxMzM3Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1s2XSAhPT0gJzE2Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvciBjb2RlOiAxMzM4Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1s3XS5sZW5ndGggIT09IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTMzOScpO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvcjonLCBlLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2YWxpZCAmJiBpc0NsaWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnaHR0cHM6Ly9wcmltZW5nLm9yZy9sdHMnKTtcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50OyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OyBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsgei1pbmRleDogOTk5OTk5OTk5OSAhaW1wb3J0YW50OyB0b3A6IDAgIWltcG9ydGFudDsgbGVmdDogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50OyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21hcnF1ZWUnKTtcbiAgICAgICAgICAgICAgICBtc2cuc2V0QXR0cmlidXRlKCdiZWhhdmlvcicsICdhbHRlcm5hdGUnKTtcbiAgICAgICAgICAgICAgICBtc2cuaW5uZXJUZXh0ID0gJ1lvdSBhcmUgdXNpbmcgYW4gTFRTIHZlcnNpb24gb2YgUHJpbWVORyB3aXRoIGFuIGludmFsaWQgbGljZW5zZSwgeW91IG1heSBlaXRoZXIgc3dpdGNoIGJhY2sgdG8gYSBub24tTFRTIHZlcnNpb24gb3IgcHVyY2hhc2UgYSBsaWNlbnNlIGF0IFByaW1lU3RvcmUuJztcblxuICAgICAgICAgICAgICAgIGxpbmsuYXBwZW5kQ2hpbGQobXNnKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAgICAgbGV0IGxpbmtPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciwgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlckNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgbGluayAmJiBsaW5rLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC52ZXJpZmllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC5jaGVjaygpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBvYnNlcnZlckNhbGxiYWNrKCkpO1xuICAgICAgICAgICAgICAgIGxpbmtPYnNlcnZlci5vYnNlcnZlKGxpbmssIHsgYXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChfKSA9PiBfLmZvckVhY2goKG11dGF0aW9uKSA9PiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCAmJiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pc1NhbWVOb2RlKGxpbmspICYmIG9ic2VydmVyQ2FsbGJhY2soKSkpKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZhbGlkID0gdmFsaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTGljZW5zZU1hbmFnZXJJbXAudmFsaWQ7XG4gICAgfSxcbiAgICBhZXNHY21EZWNyeXB0OiBhc3luYyBmdW5jdGlvbiAoY2lwaGVydGV4dDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHB3VXRmOCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShwYXNzd29yZCk7XG4gICAgICAgIGNvbnN0IHB3SGFzaCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgcHdVdGY4KTtcblxuICAgICAgICBjb25zdCBpdlN0ciA9IGF0b2IoY2lwaGVydGV4dCkuc2xpY2UoMCwgMTIpO1xuICAgICAgICBjb25zdCBpdiA9IG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oaXZTdHIpLm1hcCgoY2gpID0+IGNoLmNoYXJDb2RlQXQoMCkpKTtcblxuICAgICAgICBjb25zdCBhbGcgPSB7IG5hbWU6ICdBRVMtR0NNJywgaXY6IGl2IH07XG5cbiAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoJ3JhdycsIHB3SGFzaCwgYWxnLCBmYWxzZSwgWydkZWNyeXB0J10pO1xuXG4gICAgICAgIGNvbnN0IGN0U3RyID0gYXRvYihjaXBoZXJ0ZXh0KS5zbGljZSgxMik7XG4gICAgICAgIGNvbnN0IGN0VWludDggPSBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGN0U3RyKS5tYXAoKGNoKSA9PiBjaC5jaGFyQ29kZUF0KDApKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWluQnVmZmVyID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5kZWNyeXB0KGFsZywga2V5LCBjdFVpbnQ4KTtcbiAgICAgICAgICAgIGNvbnN0IHBsYWludGV4dCA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShwbGFpbkJ1ZmZlcik7XG4gICAgICAgICAgICByZXR1cm4gcGxhaW50ZXh0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlY3J5cHQgZmFpbGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTGljZW5zZU1hbmFnZXIgPSBPYmplY3QuZnJlZXplKHtcbiAgICB2ZXJpZnk6IExpY2Vuc2VNYW5hZ2VySW1wLnZlcmlmeSxcbiAgICBjaGVjazogTGljZW5zZU1hbmFnZXJJbXAuY2hlY2tcbn0pO1xuIl19
|
@@ -30,4 +30,5 @@ export * from './treedragdropservice';
|
|
30
30
|
export * from './treenode';
|
31
31
|
export * from './treenodedragevent';
|
32
32
|
export * from './treetablenode';
|
33
|
-
|
33
|
+
export * from './licensemanager';
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jsb2NrYWJsZXVpJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlybWFldmVudHR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtYXRpb25zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dG1lbnVzZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVybWF0Y2htb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVybWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJvcGVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXp5bG9hZGV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGF6eWxvYWRtZXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbWVnYW1lbnVpdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXlvcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmltZWljb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsZXJvcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGl0ZW1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL3NvcnRldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NvcnRtZXRhJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGVzdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0bWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXBvcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbmtleXMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlZHJhZ2Ryb3BzZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZW5vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlbm9kZWRyYWdldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWV0YWJsZW5vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWNlbnNlbWFuYWdlcic7XG4iXX0=
|
@@ -5,6 +5,7 @@ import { getKeyValue, uuid } from '@primeuix/utils';
|
|
5
5
|
import { Base, BaseStyle } from 'primeng/base';
|
6
6
|
import { PrimeNG } from 'primeng/config';
|
7
7
|
import { BaseComponentStyle } from './style/basecomponentstyle';
|
8
|
+
import { LicenseManager } from 'primeng/api';
|
8
9
|
import * as i0 from "@angular/core";
|
9
10
|
export class BaseComponent {
|
10
11
|
document = inject(DOCUMENT);
|
@@ -47,6 +48,7 @@ export class BaseComponent {
|
|
47
48
|
if (this.rootEl) {
|
48
49
|
this.rootEl?.setAttribute(this.attrSelector, '');
|
49
50
|
}
|
51
|
+
LicenseManager.check();
|
50
52
|
}
|
51
53
|
ngOnChanges(changes) {
|
52
54
|
if (this.document && !isPlatformServer(this.platformId)) {
|
@@ -157,4 +159,4 @@ export class BaseComponent {
|
|
157
159
|
}], null, { dt: [{
|
158
160
|
type: Input
|
159
161
|
}] }); })();
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdoRSxNQUFNLE9BQU8sYUFBYTtJQUNmLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsVUFBVSxHQUFRLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsRUFBRSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUzRCxRQUFRLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEMsa0JBQWtCLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FB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SUFFSixJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7dUdBekxRLGFBQWE7NkRBQWIsYUFBYSwyRUFEZ0IsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUM7O2lGQUM1RCxhQUFhO2NBRHpCLFNBQVM7ZUFBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBd0I5RCxFQUFFO2tCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcHJpbWV1aXgvc3R5bGVkJztcbmltcG9ydCB7IGdldEtleVZhbHVlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlLCBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW0Jhc2VDb21wb25lbnRTdHlsZSwgQmFzZVN0eWxlXSB9KVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHVibGljIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkcgPSBpbmplY3QoUHJpbWVORyk7XG5cbiAgICBwdWJsaWMgYmFzZUNvbXBvbmVudFN0eWxlOiBCYXNlQ29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFzZUNvbXBvbmVudFN0eWxlKTtcblxuICAgIHB1YmxpYyBiYXNlU3R5bGU6IEJhc2VTdHlsZSA9IGluamVjdChCYXNlU3R5bGUpO1xuXG4gICAgcHVibGljIHNjb3BlZFN0eWxlRWw6IGFueTtcblxuICAgIHB1YmxpYyByb290RWw6IGFueTtcblxuICAgIEBJbnB1dCgpIGR0OiBPYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgc3R5bGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4geyBub25jZTogdGhpcy5jb25maWc/LmNzcCgpLm5vbmNlIH07XG4gICAgfVxuXG4gICAgZ2V0IF9uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoL15fLywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1snX2NvbXBvbmVudFN0eWxlJ107XG4gICAgfVxuXG4gICAgYXR0clNlbGVjdG9yID0gdXVpZCgncGMnKTtcblxuICAgIF9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UgPyAodGhpc1snaG9zdE5hbWUnXSA/IChpbnN0YW5jZVsnbmFtZSddID09PSB0aGlzWydob3N0TmFtZSddID8gaW5zdGFuY2UgOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpKSA6IGluc3RhbmNlLnBhcmVudEluc3RhbmNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRPcHRpb25WYWx1ZShvcHRpb25zLCBrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKG9wdGlvbnMsIGtleSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb290RWwgPSB0aGlzLmVsPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5yb290RWwpIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEVsPy5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQgJiYgIWlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgeyBkdCB9ID0gY2hhbmdlcztcbiAgICAgICAgICAgIGlmIChkdCAmJiBkdC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyhkdC5jdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl91bmxvYWRTY29wZWRUaGVtZVN0eWxlcygpO1xuICAgIH1cblxuICAgIF9sb2FkU3R5bGVzKCkge1xuICAgICAgICBjb25zdCBfbG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2Jhc2UnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbG9hZFRoZW1lU3R5bGVzKCk7XG4gICAgICAgICAgICAvLyBAdG9kbyB1cGRhdGUgY29uZmlnLnRoZW1lKClcbiAgICAgICAgfTtcblxuICAgICAgICBfbG9hZCgpO1xuICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IF9sb2FkKCkpO1xuICAgIH1cblxuICAgIF9sb2FkQ29yZVN0eWxlcygpIHtcbiAgICAgICAgaWYgKCFCYXNlLmlzU3R5bGVOYW1lTG9hZGVkKCdiYXNlJykgJiYgdGhpcy5fbmFtZSkge1xuICAgICAgICAgICAgdGhpcy5iYXNlQ29tcG9uZW50U3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlICYmIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFRoZW1lU3R5bGVzKCkge1xuICAgICAgICAvLyBjb21tb25cbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCgnY29tbW9uJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJpbWl0aXZlLCBzZW1hbnRpYywgZ2xvYmFsLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tbW9uVGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHByaW1pdGl2ZT8uY3NzLCB7IG5hbWU6ICdwcmltaXRpdmUtdmFyaWFibGVzJywgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHNlbWFudGljPy5jc3MsIHsgbmFtZTogJ3NlbWFudGljLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChnbG9iYWw/LmNzcywgeyBuYW1lOiAnZ2xvYmFsLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZFRoZW1lKHsgbmFtZTogJ2dsb2JhbC1zdHlsZScsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0sIHN0eWxlKTtcblxuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKCdjb21tb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpICYmIHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3NzLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tcG9uZW50VGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkKGNzcywgeyBuYW1lOiBgJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfS12YXJpYWJsZXNgLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRUaGVtZSh7IG5hbWU6IGAke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9LXN0eWxlYCwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSwgc3R5bGUpO1xuXG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsYXllciBvcmRlclxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKCdsYXllci1vcmRlcicpKSB7XG4gICAgICAgICAgICBjb25zdCBsYXllck9yZGVyID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0TGF5ZXJPcmRlclRoZW1lQ1NTPy4oKTtcblxuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChsYXllck9yZGVyLCB7IG5hbWU6ICdsYXllci1vcmRlcicsIGZpcnN0OiB0cnVlLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSgnbGF5ZXItb3JkZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmR0KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXModGhpcy5kdCk7XG4gICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyh0aGlzLmR0KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHByZXNldCkge1xuICAgICAgICBjb25zdCB7IGNzcyB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0UHJlc2V0VGhlbWU/LihwcmVzZXQsIGBbJHt0aGlzLmF0dHJTZWxlY3Rvcn1dYCkgfHwge307XG4gICAgICAgIGNvbnN0IHNjb3BlZFN0eWxlID0gdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZChjc3MsIHtcbiAgICAgICAgICAgIG5hbWU6IGAke3RoaXMuYXR0clNlbGVjdG9yfS0ke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9YCxcbiAgICAgICAgICAgIC4uLnRoaXMuc3R5bGVPcHRpb25zXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbCA9IHNjb3BlZFN0eWxlPy5lbDtcbiAgICB9XG5cbiAgICBfdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKSB7XG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbD8ucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgX3RoZW1lQ2hhbmdlTGlzdGVuZXIoY2FsbGJhY2sgPSAoKSA9PiB7fSkge1xuICAgICAgICBCYXNlLmNsZWFyTG9hZGVkU3R5bGVOYW1lcygpO1xuICAgICAgICBUaGVtZVNlcnZpY2Uub24oJ3RoZW1lOmNoYW5nZScsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBjeChhcmc6IHN0cmluZywgcmVzdD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzPy5bYXJnXSA6IHRoaXMuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM/LlthcmddO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlb2YgY2xhc3NlcyA9PT0gJ3N0cmluZycgPyBjbGFzc2VzIDogYXJnO1xuICAgIH1cblxuICAgIHN4KGFyZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gdGhpcy5jb21wb25lbnRTdHlsZT8uaW5saW5lU3R5bGVzPy5bYXJnXTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHlsZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc3R5bGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0eWxlcyB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3goa2V5ID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgLy8gICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzIDogdGhpcy5jb21wb25lbnRTdHlsZT8uY2xhc3NlcztcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvblZhbHVlKGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcy5fZ2V0SG9zdEluc3RhbmNlKHRoaXMpIH0pLCBrZXksIHsgLi4ucGFyYW1zIH0pO1xuICAgIC8vIH1cblxuICAgIGdldCBwYXJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzWydwYXJlbnRJbnN0YW5jZSddO1xuICAgIH1cbn1cbiJdfQ==
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRzdDLE1BQU0sT0FBTyxhQUFhO0lBQ2YsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXRDLEVBQUUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0IsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxHQUFZLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVsQyxrQkFBa0IsR0FBdUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFcEUsU0FBUyxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV6QyxhQUFhLENBQU07SUFFbkIsTUFBTSxDQUFNO0lBRVYsRUFBRSxDQUFxQjtJQUVoQyxJQUFJLFlBQVk7UUFDWixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixnQkFBZ0IsQ0FBQyxRQUFRO1FBQ3JCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3JMLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQzFDLE9BQU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3RELE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLDhCQUE4QjtRQUNsQyxDQUFDLENBQUM7UUFFRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixTQUFTO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1lBRTdGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVoRixLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELFlBQVk7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuRixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUV4RSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDekcsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTVHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxjQUFjO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDO1lBRWxFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFNO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRTtZQUN6RCxHQUFHLElBQUksQ0FBQyxZQUFZO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxFQUFFLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0csSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELEVBQUUsQ0FBQyxHQUFXO1FBQ1YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELDhCQUE4QjtJQUM5Qix3R0FBd0c7SUFDeEcsMkdBQTJHO0lBQzNHLElBQUk7SUFFSixJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7dUdBM0xRLGFBQWE7NkRBQWIsYUFBYSwyRUFEZ0IsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUM7O2lGQUM1RCxhQUFhO2NBRHpCLFNBQVM7ZUFBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBd0I5RCxFQUFFO2tCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcHJpbWV1aXgvc3R5bGVkJztcbmltcG9ydCB7IGdldEtleVZhbHVlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlLCBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcbmltcG9ydCB7IExpY2Vuc2VNYW5hZ2VyIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgcHJvdmlkZXJzOiBbQmFzZUNvbXBvbmVudFN0eWxlLCBCYXNlU3R5bGVdIH0pXG5leHBvcnQgY2xhc3MgQmFzZUNvbXBvbmVudCB7XG4gICAgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICBwdWJsaWMgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgcHVibGljIGNvbmZpZzogUHJpbWVORyA9IGluamVjdChQcmltZU5HKTtcblxuICAgIHB1YmxpYyBiYXNlQ29tcG9uZW50U3R5bGU6IEJhc2VDb21wb25lbnRTdHlsZSA9IGluamVjdChCYXNlQ29tcG9uZW50U3R5bGUpO1xuXG4gICAgcHVibGljIGJhc2VTdHlsZTogQmFzZVN0eWxlID0gaW5qZWN0KEJhc2VTdHlsZSk7XG5cbiAgICBwdWJsaWMgc2NvcGVkU3R5bGVFbDogYW55O1xuXG4gICAgcHVibGljIHJvb3RFbDogYW55O1xuXG4gICAgQElucHV0KCkgZHQ6IE9iamVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGdldCBzdHlsZU9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB7IG5vbmNlOiB0aGlzLmNvbmZpZz8uY3NwKCkubm9uY2UgfTtcbiAgICB9XG5cbiAgICBnZXQgX25hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUucmVwbGFjZSgvXl8vLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzWydfY29tcG9uZW50U3R5bGUnXTtcbiAgICB9XG5cbiAgICBhdHRyU2VsZWN0b3IgPSB1dWlkKCdwYycpO1xuXG4gICAgX2dldEhvc3RJbnN0YW5jZShpbnN0YW5jZSkge1xuICAgICAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZSA/ICh0aGlzWydob3N0TmFtZSddID8gKGluc3RhbmNlWyduYW1lJ10gPT09IHRoaXNbJ2hvc3ROYW1lJ10gPyBpbnN0YW5jZSA6IHRoaXMuX2dldEhvc3RJbnN0YW5jZShpbnN0YW5jZS5wYXJlbnRJbnN0YW5jZSkpIDogaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2dldE9wdGlvblZhbHVlKG9wdGlvbnMsIGtleSA9ICcnLCBwYXJhbXMgPSB7fSkge1xuICAgICAgICByZXR1cm4gZ2V0S2V5VmFsdWUob3B0aW9ucywga2V5LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudCkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZFN0eWxlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJvb3RFbCA9IHRoaXMuZWw/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLnJvb3RFbCkge1xuICAgICAgICAgICAgdGhpcy5yb290RWw/LnNldEF0dHJpYnV0ZSh0aGlzLmF0dHJTZWxlY3RvciwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgTGljZW5zZU1hbmFnZXIuY2hlY2soKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50ICYmICFpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHQgfSA9IGNoYW5nZXM7XG4gICAgICAgICAgICBpZiAoZHQgJiYgZHQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKGR0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBfbG9hZFN0eWxlcygpIHtcbiAgICAgICAgY29uc3QgX2xvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUJhc2UuaXNTdHlsZU5hbWVMb2FkZWQoJ2Jhc2UnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKCdiYXNlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRUaGVtZVN0eWxlcygpO1xuICAgICAgICAgICAgLy8gQHRvZG8gdXBkYXRlIGNvbmZpZy50aGVtZSgpXG4gICAgICAgIH07XG5cbiAgICAgICAgX2xvYWQoKTtcbiAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiBfbG9hZCgpKTtcbiAgICB9XG5cbiAgICBfbG9hZENvcmVTdHlsZXMoKSB7XG4gICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpICYmIHRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYmFzZUNvbXBvbmVudFN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZSAmJiB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkQ1NTKHRoaXMuc3R5bGVPcHRpb25zKTtcbiAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRUaGVtZVN0eWxlcygpIHtcbiAgICAgICAgLy8gY29tbW9uXG4gICAgICAgIGlmICghVGhlbWUuaXNTdHlsZU5hbWVMb2FkZWQoJ2NvbW1vbicpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByaW1pdGl2ZSwgc2VtYW50aWMsIGdsb2JhbCwgc3R5bGUgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbW1vblRoZW1lPy4oKSB8fCB7fTtcblxuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChwcmltaXRpdmU/LmNzcywgeyBuYW1lOiAncHJpbWl0aXZlLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChzZW1hbnRpYz8uY3NzLCB7IG5hbWU6ICdzZW1hbnRpYy12YXJpYWJsZXMnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQoZ2xvYmFsPy5jc3MsIHsgbmFtZTogJ2dsb2JhbC12YXJpYWJsZXMnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWRUaGVtZSh7IG5hbWU6ICdnbG9iYWwtc3R5bGUnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9LCBzdHlsZSk7XG5cbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSgnY29tbW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCh0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lKSAmJiB0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNzcywgc3R5bGUgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbXBvbmVudFRoZW1lPy4oKSB8fCB7fTtcblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZChjc3MsIHsgbmFtZTogYCR7dGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZX0tdmFyaWFibGVzYCwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkVGhlbWUoeyBuYW1lOiBgJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfS1zdHlsZWAsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0sIHN0eWxlKTtcblxuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbGF5ZXIgb3JkZXJcbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCgnbGF5ZXItb3JkZXInKSkge1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPcmRlciA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldExheWVyT3JkZXJUaGVtZUNTUz8uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQobGF5ZXJPcmRlciwgeyBuYW1lOiAnbGF5ZXItb3JkZXInLCBmaXJzdDogdHJ1ZSwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2xheWVyLW9yZGVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kdCkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHRoaXMuZHQpO1xuICAgICAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXModGhpcy5kdCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRTY29wZWRUaGVtZVN0eWxlcyhwcmVzZXQpIHtcbiAgICAgICAgY29uc3QgeyBjc3MgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldFByZXNldFRoZW1lPy4ocHJlc2V0LCBgWyR7dGhpcy5hdHRyU2VsZWN0b3J9XWApIHx8IHt9O1xuICAgICAgICBjb25zdCBzY29wZWRTdHlsZSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWQoY3NzLCB7XG4gICAgICAgICAgICBuYW1lOiBgJHt0aGlzLmF0dHJTZWxlY3Rvcn0tJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfWAsXG4gICAgICAgICAgICAuLi50aGlzLnN0eWxlT3B0aW9uc1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNjb3BlZFN0eWxlRWwgPSBzY29wZWRTdHlsZT8uZWw7XG4gICAgfVxuXG4gICAgX3VubG9hZFNjb3BlZFRoZW1lU3R5bGVzKCkge1xuICAgICAgICB0aGlzLnNjb3BlZFN0eWxlRWw/LnJlbW92ZSgpO1xuICAgIH1cblxuICAgIF90aGVtZUNoYW5nZUxpc3RlbmVyKGNhbGxiYWNrID0gKCkgPT4ge30pIHtcbiAgICAgICAgQmFzZS5jbGVhckxvYWRlZFN0eWxlTmFtZXMoKTtcbiAgICAgICAgVGhlbWVTZXJ2aWNlLm9uKCd0aGVtZTpjaGFuZ2UnLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgY3goYXJnOiBzdHJpbmcsIHJlc3Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5jb21wb25lbnRTdHlsZT8uY2xhc3Nlcz8uW2FyZ10gOiB0aGlzLmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzPy5bYXJnXTtcblxuICAgICAgICBpZiAodHlwZW9mIGNsYXNzZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBjbGFzc2VzKHsgaW5zdGFuY2U6IHRoaXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZW9mIGNsYXNzZXMgPT09ICdzdHJpbmcnID8gY2xhc3NlcyA6IGFyZztcbiAgICB9XG5cbiAgICBzeChhcmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmlubGluZVN0eWxlcz8uW2FyZ107XG4gICAgICAgIGlmICh0eXBlb2Ygc3R5bGVzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzKHsgaW5zdGFuY2U6IHRoaXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHN0eWxlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdHlsZXMgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGN4KGtleSA9ICcnLCBwYXJhbXMgPSB7fSkge1xuICAgIC8vICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5jb21wb25lbnRTdHlsZT8uY2xhc3NlcyA6IHRoaXMuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb25WYWx1ZShjbGFzc2VzKHsgaW5zdGFuY2U6IHRoaXMuX2dldEhvc3RJbnN0YW5jZSh0aGlzKSB9KSwga2V5LCB7IC4uLnBhcmFtcyB9KTtcbiAgICAvLyB9XG5cbiAgICBnZXQgcGFyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpc1sncGFyZW50SW5zdGFuY2UnXTtcbiAgICB9XG59XG4iXX0=
|