@adobe/helix-rum-enhancer 2.36.5 → 2.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/eslint.config.js +34 -0
- package/modules/fflags.js +1 -0
- package/modules/index.js +20 -22
- package/package.json +14 -12
- package/plugins/a11y.js +232 -0
- package/src/index.js +31 -32
- package/src/index.md5 +1 -1
- package/src/index.sri +1 -1
- package/src/plugins/a11y.js +181 -0
- package/src/plugins/a11y.map.js +182 -0
- package/src/plugins/a11y.md5 +1 -0
- package/src/plugins/cwv.js +3 -1
- package/src/plugins/cwv.map.js +4 -2
- package/src/plugins/cwv.md5 +1 -1
- package/src/plugins/form.map.js +1 -1
- package/src/plugins/martech.map.js +1 -1
- package/src/plugins/martech.md5 +1 -1
- package/src/plugins/onetrust.map.js +1 -1
- package/src/plugins/onetrust.md5 +1 -1
- package/src/plugins/video.map.js +1 -1
- package/src/plugins/video.md5 +1 -1
- package/src/plugins/webcomponent.map.js +1 -1
- package/.eslintrc.cjs +0 -32
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-color-scheme: dark)', '(prefers-reduced-transparency: reduce)'];
|
|
13
|
+
const KEYBOARD_RELEVANT_KEYS = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Escape'];
|
|
14
|
+
const HIGH_ZOOM_LEVEL = 200;
|
|
15
|
+
const MEDIUM_ZOOM_LEVEL = 125;
|
|
16
|
+
const BEHAVIORAL_MIN_EVENTS = 10;
|
|
17
|
+
const FOCUSTRAP_MAX_HISTORY = 25;
|
|
18
|
+
const FOCUS_TRAP_MIN_HISTORY = 4;
|
|
19
|
+
const FOCUS_TRAP_PING_PONG_DURATION = 3000;
|
|
20
|
+
const FOCUS_TRAP_MIN_REPEATS = 3;
|
|
21
|
+
function getZoom() {
|
|
22
|
+
if (window.visualViewport && window.visualViewport.width > 0) {
|
|
23
|
+
return Math.round(window.innerWidth / window.visualViewport.width * 100);
|
|
24
|
+
}
|
|
25
|
+
return 100;
|
|
26
|
+
}
|
|
27
|
+
function addAccessibilityAudienceTracking({
|
|
28
|
+
sampleRUM,
|
|
29
|
+
sourceSelector
|
|
30
|
+
}) {
|
|
31
|
+
const focusHistory = [];
|
|
32
|
+
let score = 0;
|
|
33
|
+
let reported = false;
|
|
34
|
+
let focusTrapDetected = false;
|
|
35
|
+
let keyboardCount = 0;
|
|
36
|
+
let totalCount = 0;
|
|
37
|
+
let lastFocusTime = 0;
|
|
38
|
+
let hadMeaningfulFocus = false;
|
|
39
|
+
const reportAudience = () => {
|
|
40
|
+
if (reported) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
reported = true;
|
|
44
|
+
const audience = score >= 1 ? 'on' : 'off';
|
|
45
|
+
sampleRUM('a11y', {
|
|
46
|
+
source: audience,
|
|
47
|
+
target: 'on:off'
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const reportFocusTrap = (trapType, elements) => {
|
|
51
|
+
if (focusTrapDetected) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
focusTrapDetected = true;
|
|
55
|
+
const elementDescriptions = elements.slice(0, 3).map(sourceSelector);
|
|
56
|
+
sampleRUM('error', {
|
|
57
|
+
source: `focus-trap:${trapType}`,
|
|
58
|
+
target: elementDescriptions.join(', ')
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const detectRepeatingSequence = (elements, seqLength) => {
|
|
62
|
+
const totalLength = seqLength * FOCUS_TRAP_MIN_REPEATS;
|
|
63
|
+
if (elements.length < totalLength) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const recent = elements.slice(-totalLength);
|
|
67
|
+
const baseSequence = recent.slice(0, seqLength);
|
|
68
|
+
for (let i = 1; i < FOCUS_TRAP_MIN_REPEATS; i += 1) {
|
|
69
|
+
const nextSequence = recent.slice(i * seqLength, (i + 1) * seqLength);
|
|
70
|
+
if (nextSequence.length !== seqLength || !nextSequence.every((el, j) => el === baseSequence[j])) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
reportFocusTrap('sequence', baseSequence);
|
|
75
|
+
return true;
|
|
76
|
+
};
|
|
77
|
+
const detectFocusTrap = () => {
|
|
78
|
+
if (focusHistory.length < FOCUS_TRAP_MIN_HISTORY || focusTrapDetected) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const elements = focusHistory.map(h => h.element);
|
|
82
|
+
const timestamps = focusHistory.map(h => h.timestamp);
|
|
83
|
+
if (elements.slice(-3).every(el => el === elements[elements.length - 1])) {
|
|
84
|
+
reportFocusTrap('single', [elements[elements.length - 1]]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const recent4 = elements.slice(-4);
|
|
88
|
+
const unique = [...new Set(recent4)];
|
|
89
|
+
const timeDiff = timestamps[timestamps.length - 1] - timestamps[timestamps.length - 4];
|
|
90
|
+
if (unique.length === 2 && timeDiff < FOCUS_TRAP_PING_PONG_DURATION) {
|
|
91
|
+
reportFocusTrap('ping-pong', unique);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const minSeqLength = 2 * FOCUS_TRAP_MIN_HISTORY + 1;
|
|
95
|
+
if (focusHistory.length >= minSeqLength) {
|
|
96
|
+
for (let seqLength = 2; seqLength <= 4; seqLength += 1) {
|
|
97
|
+
if (detectRepeatingSequence(elements, seqLength)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const trackFocusForTrap = event => {
|
|
104
|
+
setTimeout(() => {
|
|
105
|
+
const {
|
|
106
|
+
activeElement
|
|
107
|
+
} = document;
|
|
108
|
+
if (!activeElement || activeElement === document.body) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
focusHistory.push({
|
|
112
|
+
element: activeElement,
|
|
113
|
+
timestamp: performance.now(),
|
|
114
|
+
shiftKey: event.shiftKey
|
|
115
|
+
});
|
|
116
|
+
if (focusHistory.length > FOCUSTRAP_MAX_HISTORY) {
|
|
117
|
+
focusHistory.shift();
|
|
118
|
+
}
|
|
119
|
+
detectFocusTrap();
|
|
120
|
+
}, 0);
|
|
121
|
+
};
|
|
122
|
+
const checkBehavioralScore = () => {
|
|
123
|
+
if (totalCount >= BEHAVIORAL_MIN_EVENTS && !reported) {
|
|
124
|
+
if (keyboardCount / totalCount > 0.7) {
|
|
125
|
+
score += 2;
|
|
126
|
+
}
|
|
127
|
+
reportAudience();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
score += MEDIA_QUERY_PREFERENCES.filter(q => window.matchMedia(q).matches).length;
|
|
131
|
+
const zoom = getZoom();
|
|
132
|
+
if (zoom >= HIGH_ZOOM_LEVEL) {
|
|
133
|
+
score += 3;
|
|
134
|
+
} else if (zoom >= MEDIUM_ZOOM_LEVEL) {
|
|
135
|
+
score += 2;
|
|
136
|
+
}
|
|
137
|
+
if (navigator.maxTouchPoints === 0 && !window.matchMedia('(pointer: coarse)').matches) {
|
|
138
|
+
score += 2;
|
|
139
|
+
}
|
|
140
|
+
document.addEventListener('keydown', event => {
|
|
141
|
+
if (KEYBOARD_RELEVANT_KEYS.includes(event.key)) {
|
|
142
|
+
keyboardCount += 1;
|
|
143
|
+
totalCount += 1;
|
|
144
|
+
if (event.key === 'Tab') {
|
|
145
|
+
trackFocusForTrap(event);
|
|
146
|
+
}
|
|
147
|
+
checkBehavioralScore();
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
document.addEventListener('click', () => {
|
|
151
|
+
totalCount += 1;
|
|
152
|
+
checkBehavioralScore();
|
|
153
|
+
});
|
|
154
|
+
document.addEventListener('focusin', event => {
|
|
155
|
+
if (event.target !== document.body) {
|
|
156
|
+
lastFocusTime = performance.now();
|
|
157
|
+
hadMeaningfulFocus = true;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
const focusLossObserver = new MutationObserver(mutations => {
|
|
161
|
+
if (hadMeaningfulFocus && document.activeElement === document.body && performance.now() - lastFocusTime > 100) {
|
|
162
|
+
const mutation = mutations.find(m => m.type === 'childList' && (m.addedNodes.length > 0 || m.removedNodes.length > 0));
|
|
163
|
+
sampleRUM('error', {
|
|
164
|
+
source: 'focus-loss',
|
|
165
|
+
target: sourceSelector(mutation?.target)
|
|
166
|
+
});
|
|
167
|
+
hadMeaningfulFocus = false;
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
focusLossObserver.observe(document, {
|
|
171
|
+
childList: true,
|
|
172
|
+
subtree: true
|
|
173
|
+
});
|
|
174
|
+
if (score >= 1) {
|
|
175
|
+
reportAudience();
|
|
176
|
+
} else {
|
|
177
|
+
setTimeout(() => reportAudience(), window.hlx.A11Y_REPORT_DELAY || 10_000);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export { addAccessibilityAudienceTracking as default };
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-color-scheme: dark)', '(prefers-reduced-transparency: reduce)'];
|
|
13
|
+
const KEYBOARD_RELEVANT_KEYS = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Escape'];
|
|
14
|
+
const HIGH_ZOOM_LEVEL = 200;
|
|
15
|
+
const MEDIUM_ZOOM_LEVEL = 125;
|
|
16
|
+
const BEHAVIORAL_MIN_EVENTS = 10;
|
|
17
|
+
const FOCUSTRAP_MAX_HISTORY = 25;
|
|
18
|
+
const FOCUS_TRAP_MIN_HISTORY = 4;
|
|
19
|
+
const FOCUS_TRAP_PING_PONG_DURATION = 3000;
|
|
20
|
+
const FOCUS_TRAP_MIN_REPEATS = 3;
|
|
21
|
+
function getZoom() {
|
|
22
|
+
if (window.visualViewport && window.visualViewport.width > 0) {
|
|
23
|
+
return Math.round(window.innerWidth / window.visualViewport.width * 100);
|
|
24
|
+
}
|
|
25
|
+
return 100;
|
|
26
|
+
}
|
|
27
|
+
function addAccessibilityAudienceTracking({
|
|
28
|
+
sampleRUM,
|
|
29
|
+
sourceSelector
|
|
30
|
+
}) {
|
|
31
|
+
const focusHistory = [];
|
|
32
|
+
let score = 0;
|
|
33
|
+
let reported = false;
|
|
34
|
+
let focusTrapDetected = false;
|
|
35
|
+
let keyboardCount = 0;
|
|
36
|
+
let totalCount = 0;
|
|
37
|
+
let lastFocusTime = 0;
|
|
38
|
+
let hadMeaningfulFocus = false;
|
|
39
|
+
const reportAudience = () => {
|
|
40
|
+
if (reported) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
reported = true;
|
|
44
|
+
const audience = score >= 1 ? 'on' : 'off';
|
|
45
|
+
sampleRUM('a11y', {
|
|
46
|
+
source: audience,
|
|
47
|
+
target: 'on:off'
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const reportFocusTrap = (trapType, elements) => {
|
|
51
|
+
if (focusTrapDetected) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
focusTrapDetected = true;
|
|
55
|
+
const elementDescriptions = elements.slice(0, 3).map(sourceSelector);
|
|
56
|
+
sampleRUM('error', {
|
|
57
|
+
source: `focus-trap:${trapType}`,
|
|
58
|
+
target: elementDescriptions.join(', ')
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const detectRepeatingSequence = (elements, seqLength) => {
|
|
62
|
+
const totalLength = seqLength * FOCUS_TRAP_MIN_REPEATS;
|
|
63
|
+
if (elements.length < totalLength) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const recent = elements.slice(-totalLength);
|
|
67
|
+
const baseSequence = recent.slice(0, seqLength);
|
|
68
|
+
for (let i = 1; i < FOCUS_TRAP_MIN_REPEATS; i += 1) {
|
|
69
|
+
const nextSequence = recent.slice(i * seqLength, (i + 1) * seqLength);
|
|
70
|
+
if (nextSequence.length !== seqLength || !nextSequence.every((el, j) => el === baseSequence[j])) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
reportFocusTrap('sequence', baseSequence);
|
|
75
|
+
return true;
|
|
76
|
+
};
|
|
77
|
+
const detectFocusTrap = () => {
|
|
78
|
+
if (focusHistory.length < FOCUS_TRAP_MIN_HISTORY || focusTrapDetected) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const elements = focusHistory.map(h => h.element);
|
|
82
|
+
const timestamps = focusHistory.map(h => h.timestamp);
|
|
83
|
+
if (elements.slice(-3).every(el => el === elements[elements.length - 1])) {
|
|
84
|
+
reportFocusTrap('single', [elements[elements.length - 1]]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const recent4 = elements.slice(-4);
|
|
88
|
+
const unique = [...new Set(recent4)];
|
|
89
|
+
const timeDiff = timestamps[timestamps.length - 1] - timestamps[timestamps.length - 4];
|
|
90
|
+
if (unique.length === 2 && timeDiff < FOCUS_TRAP_PING_PONG_DURATION) {
|
|
91
|
+
reportFocusTrap('ping-pong', unique);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const minSeqLength = 2 * FOCUS_TRAP_MIN_HISTORY + 1;
|
|
95
|
+
if (focusHistory.length >= minSeqLength) {
|
|
96
|
+
for (let seqLength = 2; seqLength <= 4; seqLength += 1) {
|
|
97
|
+
if (detectRepeatingSequence(elements, seqLength)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const trackFocusForTrap = event => {
|
|
104
|
+
setTimeout(() => {
|
|
105
|
+
const {
|
|
106
|
+
activeElement
|
|
107
|
+
} = document;
|
|
108
|
+
if (!activeElement || activeElement === document.body) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
focusHistory.push({
|
|
112
|
+
element: activeElement,
|
|
113
|
+
timestamp: performance.now(),
|
|
114
|
+
shiftKey: event.shiftKey
|
|
115
|
+
});
|
|
116
|
+
if (focusHistory.length > FOCUSTRAP_MAX_HISTORY) {
|
|
117
|
+
focusHistory.shift();
|
|
118
|
+
}
|
|
119
|
+
detectFocusTrap();
|
|
120
|
+
}, 0);
|
|
121
|
+
};
|
|
122
|
+
const checkBehavioralScore = () => {
|
|
123
|
+
if (totalCount >= BEHAVIORAL_MIN_EVENTS && !reported) {
|
|
124
|
+
if (keyboardCount / totalCount > 0.7) {
|
|
125
|
+
score += 2;
|
|
126
|
+
}
|
|
127
|
+
reportAudience();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
score += MEDIA_QUERY_PREFERENCES.filter(q => window.matchMedia(q).matches).length;
|
|
131
|
+
const zoom = getZoom();
|
|
132
|
+
if (zoom >= HIGH_ZOOM_LEVEL) {
|
|
133
|
+
score += 3;
|
|
134
|
+
} else if (zoom >= MEDIUM_ZOOM_LEVEL) {
|
|
135
|
+
score += 2;
|
|
136
|
+
}
|
|
137
|
+
if (navigator.maxTouchPoints === 0 && !window.matchMedia('(pointer: coarse)').matches) {
|
|
138
|
+
score += 2;
|
|
139
|
+
}
|
|
140
|
+
document.addEventListener('keydown', event => {
|
|
141
|
+
if (KEYBOARD_RELEVANT_KEYS.includes(event.key)) {
|
|
142
|
+
keyboardCount += 1;
|
|
143
|
+
totalCount += 1;
|
|
144
|
+
if (event.key === 'Tab') {
|
|
145
|
+
trackFocusForTrap(event);
|
|
146
|
+
}
|
|
147
|
+
checkBehavioralScore();
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
document.addEventListener('click', () => {
|
|
151
|
+
totalCount += 1;
|
|
152
|
+
checkBehavioralScore();
|
|
153
|
+
});
|
|
154
|
+
document.addEventListener('focusin', event => {
|
|
155
|
+
if (event.target !== document.body) {
|
|
156
|
+
lastFocusTime = performance.now();
|
|
157
|
+
hadMeaningfulFocus = true;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
const focusLossObserver = new MutationObserver(mutations => {
|
|
161
|
+
if (hadMeaningfulFocus && document.activeElement === document.body && performance.now() - lastFocusTime > 100) {
|
|
162
|
+
const mutation = mutations.find(m => m.type === 'childList' && (m.addedNodes.length > 0 || m.removedNodes.length > 0));
|
|
163
|
+
sampleRUM('error', {
|
|
164
|
+
source: 'focus-loss',
|
|
165
|
+
target: sourceSelector(mutation?.target)
|
|
166
|
+
});
|
|
167
|
+
hadMeaningfulFocus = false;
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
focusLossObserver.observe(document, {
|
|
171
|
+
childList: true,
|
|
172
|
+
subtree: true
|
|
173
|
+
});
|
|
174
|
+
if (score >= 1) {
|
|
175
|
+
reportAudience();
|
|
176
|
+
} else {
|
|
177
|
+
setTimeout(() => reportAudience(), window.hlx.A11Y_REPORT_DELAY || 10_000);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export { addAccessibilityAudienceTracking as default };
|
|
182
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvYTExeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuY29uc3QgTUVESUFfUVVFUllfUFJFRkVSRU5DRVMgPSBbXG4gICcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScsXG4gICcocHJlZmVycy1jb250cmFzdDogaGlnaCknLFxuICAnKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpJyxcbiAgJyhmb3JjZWQtY29sb3JzOiBhY3RpdmUpJyxcbiAgJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknLFxuICAnKHByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3k6IHJlZHVjZSknLFxuXTtcblxuY29uc3QgS0VZQk9BUkRfUkVMRVZBTlRfS0VZUyA9IFtcbiAgJ1RhYicsICdBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdFbnRlcicsICcgJywgJ0VzY2FwZScsXG5dO1xuXG5jb25zdCBISUdIX1pPT01fTEVWRUwgPSAyMDA7XG5jb25zdCBNRURJVU1fWk9PTV9MRVZFTCA9IDEyNTtcblxuY29uc3QgQkVIQVZJT1JBTF9NSU5fRVZFTlRTID0gMTA7XG5cbmNvbnN0IEZPQ1VTVFJBUF9NQVhfSElTVE9SWSA9IDI1O1xuY29uc3QgRk9DVVNfVFJBUF9NSU5fSElTVE9SWSA9IDQ7XG5jb25zdCBGT0NVU19UUkFQX1BJTkdfUE9OR19EVVJBVElPTiA9IDMwMDA7XG5jb25zdCBGT0NVU19UUkFQX01JTl9SRVBFQVRTID0gMztcblxuLyoqXG4gKiBEZXRlY3RzIGFwcHJveGltYXRlIHpvb20gbGV2ZWwgdXNpbmcgdGhlIFZpc3VhbCBWaWV3cG9ydCBBUEkuXG4gKiBUaGlzIGlzIGEgcHVyZSB1dGlsaXR5IGZ1bmN0aW9uLlxuICogQHJldHVybnMge051bWJlcn0gRXN0aW1hdGVkIHpvb20gcGVyY2VudGFnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0Wm9vbSgpIHtcbiAgaWYgKHdpbmRvdy52aXN1YWxWaWV3cG9ydCAmJiB3aW5kb3cudmlzdWFsVmlld3BvcnQud2lkdGggPiAwKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKHdpbmRvdy5pbm5lcldpZHRoIC8gd2luZG93LnZpc3VhbFZpZXdwb3J0LndpZHRoKSAqIDEwMCk7XG4gIH1cbiAgLyogYzggaWdub3JlIG5leHQgMSAqL1xuICByZXR1cm4gMTAwO1xufVxuXG4vKipcbiAqIE1pbmltYWwgYWNjZXNzaWJpbGl0eSBhdWRpZW5jZSBkZXRlY3Rpb24gcGx1Z2luIGZvciBoZWxpeC1ydW0tZW5oYW5jZXIuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFBsdWdpbiBwYXJhbWV0ZXJzIGZyb20gZW5oYW5jZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMuc2FtcGxlUlVNIFJVTSB0cmFja2luZyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtcy5zb3VyY2VTZWxlY3RvciBGdW5jdGlvbiB0byBnZW5lcmF0ZSBhIHNlbGVjdG9yIGZvciBhbiBlbGVtZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRBY2Nlc3NpYmlsaXR5QXVkaWVuY2VUcmFja2luZyh7IHNhbXBsZVJVTSwgc291cmNlU2VsZWN0b3IgfSkge1xuICBjb25zdCBmb2N1c0hpc3RvcnkgPSBbXTtcbiAgbGV0IHNjb3JlID0gMDtcbiAgbGV0IHJlcG9ydGVkID0gZmFsc2U7XG4gIGxldCBmb2N1c1RyYXBEZXRlY3RlZCA9IGZhbHNlO1xuICBsZXQga2V5Ym9hcmRDb3VudCA9IDA7XG4gIGxldCB0b3RhbENvdW50ID0gMDtcbiAgbGV0IGxhc3RGb2N1c1RpbWUgPSAwO1xuICBsZXQgaGFkTWVhbmluZ2Z1bEZvY3VzID0gZmFsc2U7XG5cbiAgY29uc3QgcmVwb3J0QXVkaWVuY2UgPSAoKSA9PiB7XG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIGlmIChyZXBvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXBvcnRlZCA9IHRydWU7XG4gICAgY29uc3QgYXVkaWVuY2UgPSBzY29yZSA+PSAxID8gJ29uJyA6ICdvZmYnO1xuICAgIHNhbXBsZVJVTSgnYTExeScsIHsgc291cmNlOiBhdWRpZW5jZSwgdGFyZ2V0OiAnb246b2ZmJyB9KTtcbiAgfTtcblxuICBjb25zdCByZXBvcnRGb2N1c1RyYXAgPSAodHJhcFR5cGUsIGVsZW1lbnRzKSA9PiB7XG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIGlmIChmb2N1c1RyYXBEZXRlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb2N1c1RyYXBEZXRlY3RlZCA9IHRydWU7XG4gICAgY29uc3QgZWxlbWVudERlc2NyaXB0aW9ucyA9IGVsZW1lbnRzLnNsaWNlKDAsIDMpLm1hcChzb3VyY2VTZWxlY3Rvcik7XG4gICAgc2FtcGxlUlVNKCdlcnJvcicsIHtcbiAgICAgIHNvdXJjZTogYGZvY3VzLXRyYXA6JHt0cmFwVHlwZX1gLFxuICAgICAgdGFyZ2V0OiBlbGVtZW50RGVzY3JpcHRpb25zLmpvaW4oJywgJyksXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGV0ZWN0UmVwZWF0aW5nU2VxdWVuY2UgPSAoZWxlbWVudHMsIHNlcUxlbmd0aCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gc2VxTGVuZ3RoICogRk9DVVNfVFJBUF9NSU5fUkVQRUFUUztcbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA8IHRvdGFsTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlY2VudCA9IGVsZW1lbnRzLnNsaWNlKC10b3RhbExlbmd0aCk7XG4gICAgY29uc3QgYmFzZVNlcXVlbmNlID0gcmVjZW50LnNsaWNlKDAsIHNlcUxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBGT0NVU19UUkFQX01JTl9SRVBFQVRTOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IG5leHRTZXF1ZW5jZSA9IHJlY2VudC5zbGljZShpICogc2VxTGVuZ3RoLCAoaSArIDEpICogc2VxTGVuZ3RoKTtcbiAgICAgIGlmIChuZXh0U2VxdWVuY2UubGVuZ3RoICE9PSBzZXFMZW5ndGhcbiAgICAgICAgfHwgIW5leHRTZXF1ZW5jZS5ldmVyeSgoZWwsIGopID0+IGVsID09PSBiYXNlU2VxdWVuY2Vbal0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVwb3J0Rm9jdXNUcmFwKCdzZXF1ZW5jZScsIGJhc2VTZXF1ZW5jZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgZGV0ZWN0Rm9jdXNUcmFwID0gKCkgPT4ge1xuICAgIGlmIChmb2N1c0hpc3RvcnkubGVuZ3RoIDwgRk9DVVNfVFJBUF9NSU5fSElTVE9SWSB8fCBmb2N1c1RyYXBEZXRlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IGZvY3VzSGlzdG9yeS5tYXAoKGgpID0+IGguZWxlbWVudCk7XG4gICAgY29uc3QgdGltZXN0YW1wcyA9IGZvY3VzSGlzdG9yeS5tYXAoKGgpID0+IGgudGltZXN0YW1wKTtcblxuICAgIGlmIChlbGVtZW50cy5zbGljZSgtMykuZXZlcnkoKGVsKSA9PiBlbCA9PT0gZWxlbWVudHNbZWxlbWVudHMubGVuZ3RoIC0gMV0pKSB7XG4gICAgICByZXBvcnRGb2N1c1RyYXAoJ3NpbmdsZScsIFtlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXV0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY2VudDQgPSBlbGVtZW50cy5zbGljZSgtNCk7XG4gICAgY29uc3QgdW5pcXVlID0gWy4uLm5ldyBTZXQocmVjZW50NCldO1xuICAgIGNvbnN0IHRpbWVEaWZmID0gdGltZXN0YW1wc1t0aW1lc3RhbXBzLmxlbmd0aCAtIDFdIC0gdGltZXN0YW1wc1t0aW1lc3RhbXBzLmxlbmd0aCAtIDRdO1xuICAgIGlmICh1bmlxdWUubGVuZ3RoID09PSAyICYmIHRpbWVEaWZmIDwgRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04pIHtcbiAgICAgIHJlcG9ydEZvY3VzVHJhcCgncGluZy1wb25nJywgdW5pcXVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtaW5TZXFMZW5ndGggPSAyICogRk9DVVNfVFJBUF9NSU5fSElTVE9SWSArIDE7XG4gICAgaWYgKGZvY3VzSGlzdG9yeS5sZW5ndGggPj0gbWluU2VxTGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBzZXFMZW5ndGggPSAyOyBzZXFMZW5ndGggPD0gNDsgc2VxTGVuZ3RoICs9IDEpIHtcbiAgICAgICAgaWYgKGRldGVjdFJlcGVhdGluZ1NlcXVlbmNlKGVsZW1lbnRzLCBzZXFMZW5ndGgpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyYWNrRm9jdXNGb3JUcmFwID0gKGV2ZW50KSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50O1xuICAgICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgICAgaWYgKCFhY3RpdmVFbGVtZW50IHx8IGFjdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9jdXNIaXN0b3J5LnB1c2goe1xuICAgICAgICBlbGVtZW50OiBhY3RpdmVFbGVtZW50LFxuICAgICAgICB0aW1lc3RhbXA6IHBlcmZvcm1hbmNlLm5vdygpLFxuICAgICAgICBzaGlmdEtleTogZXZlbnQuc2hpZnRLZXksXG4gICAgICB9KTtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICAgIGlmIChmb2N1c0hpc3RvcnkubGVuZ3RoID4gRk9DVVNUUkFQX01BWF9ISVNUT1JZKSB7XG4gICAgICAgIGZvY3VzSGlzdG9yeS5zaGlmdCgpO1xuICAgICAgfVxuICAgICAgZGV0ZWN0Rm9jdXNUcmFwKCk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgY29uc3QgY2hlY2tCZWhhdmlvcmFsU2NvcmUgPSAoKSA9PiB7XG4gICAgaWYgKHRvdGFsQ291bnQgPj0gQkVIQVZJT1JBTF9NSU5fRVZFTlRTICYmICFyZXBvcnRlZCkge1xuICAgICAgaWYgKGtleWJvYXJkQ291bnQgLyB0b3RhbENvdW50ID4gMC43KSB7XG4gICAgICAgIHNjb3JlICs9IDI7XG4gICAgICB9XG4gICAgICByZXBvcnRBdWRpZW5jZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyAtLS0gU3RhdGljIFNjb3JpbmcgLS0tXG4gIHNjb3JlICs9IE1FRElBX1FVRVJZX1BSRUZFUkVOQ0VTLmZpbHRlcigocSkgPT4gd2luZG93Lm1hdGNoTWVkaWEocSkubWF0Y2hlcykubGVuZ3RoO1xuXG4gIGNvbnN0IHpvb20gPSBnZXRab29tKCk7XG4gIGlmICh6b29tID49IEhJR0hfWk9PTV9MRVZFTCkge1xuICAgIHNjb3JlICs9IDM7XG4gIH0gZWxzZSBpZiAoem9vbSA+PSBNRURJVU1fWk9PTV9MRVZFTCkge1xuICAgIHNjb3JlICs9IDI7XG4gIH1cblxuICBpZiAobmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID09PSAwICYmICF3aW5kb3cubWF0Y2hNZWRpYSgnKHBvaW50ZXI6IGNvYXJzZSknKS5tYXRjaGVzKSB7XG4gICAgc2NvcmUgKz0gMjtcbiAgfVxuXG4gIC8vIC0tLSBFdmVudCBMaXN0ZW5lcnMgJiBPYnNlcnZlcnMgLS0tXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoS0VZQk9BUkRfUkVMRVZBTlRfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBrZXlib2FyZENvdW50ICs9IDE7XG4gICAgICB0b3RhbENvdW50ICs9IDE7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICB0cmFja0ZvY3VzRm9yVHJhcChldmVudCk7XG4gICAgICB9XG4gICAgICBjaGVja0JlaGF2aW9yYWxTY29yZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgdG90YWxDb3VudCArPSAxO1xuICAgIGNoZWNrQmVoYXZpb3JhbFNjb3JlKCk7XG4gIH0pO1xuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBsYXN0Rm9jdXNUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZm9jdXNMb3NzT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgaWYgKGhhZE1lYW5pbmdmdWxGb2N1c1xuICAgICAgICAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5XG4gICAgICAgICYmIChwZXJmb3JtYW5jZS5ub3coKSAtIGxhc3RGb2N1c1RpbWUgPiAxMDApKSB7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCA5ICovXG4gICAgICBjb25zdCBtdXRhdGlvbiA9IG11dGF0aW9ucy5maW5kKChtKSA9PiAoXG4gICAgICAgIG0udHlwZSA9PT0gJ2NoaWxkTGlzdCcgJiYgKG0uYWRkZWROb2Rlcy5sZW5ndGggPiAwIHx8IG0ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApXG4gICAgICApKTtcbiAgICAgIHNhbXBsZVJVTSgnZXJyb3InLCB7XG4gICAgICAgIHNvdXJjZTogJ2ZvY3VzLWxvc3MnLFxuICAgICAgICB0YXJnZXQ6IHNvdXJjZVNlbGVjdG9yKG11dGF0aW9uPy50YXJnZXQpLFxuICAgICAgfSk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSBmYWxzZTsgLy8gUHJldmVudCBzcGFtXG4gICAgfVxuICB9KTtcblxuICBmb2N1c0xvc3NPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAvLyAtLS0gRmluYWwgUmVwb3J0aW5nIC0tLVxuICBpZiAoc2NvcmUgPj0gMSkge1xuICAgIHJlcG9ydEF1ZGllbmNlKCk7XG4gIH0gZWxzZSB7XG4gICAgc2V0VGltZW91dChcbiAgICAgICgpID0+IHJlcG9ydEF1ZGllbmNlKCksXG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAxICovXG4gICAgICB3aW5kb3cuaGx4LkExMVlfUkVQT1JUX0RFTEFZIHx8IDEwXzAwMCxcbiAgICApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTUVESUFfUVVFUllfUFJFRkVSRU5DRVMiLCJLRVlCT0FSRF9SRUxFVkFOVF9LRVlTIiwiSElHSF9aT09NX0xFVkVMIiwiTUVESVVNX1pPT01fTEVWRUwiLCJCRUhBVklPUkFMX01JTl9FVkVOVFMiLCJGT0NVU1RSQVBfTUFYX0hJU1RPUlkiLCJGT0NVU19UUkFQX01JTl9ISVNUT1JZIiwiRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04iLCJGT0NVU19UUkFQX01JTl9SRVBFQVRTIiwiZ2V0Wm9vbSIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0Iiwid2lkdGgiLCJNYXRoIiwicm91bmQiLCJpbm5lcldpZHRoIiwiYWRkQWNjZXNzaWJpbGl0eUF1ZGllbmNlVHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2VTZWxlY3RvciIsImZvY3VzSGlzdG9yeSIsInNjb3JlIiwicmVwb3J0ZWQiLCJmb2N1c1RyYXBEZXRlY3RlZCIsImtleWJvYXJkQ291bnQiLCJ0b3RhbENvdW50IiwibGFzdEZvY3VzVGltZSIsImhhZE1lYW5pbmdmdWxGb2N1cyIsInJlcG9ydEF1ZGllbmNlIiwiYXVkaWVuY2UiLCJzb3VyY2UiLCJ0YXJnZXQiLCJyZXBvcnRGb2N1c1RyYXAiLCJ0cmFwVHlwZSIsImVsZW1lbnRzIiwiZWxlbWVudERlc2NyaXB0aW9ucyIsInNsaWNlIiwibWFwIiwiam9pbiIsImRldGVjdFJlcGVhdGluZ1NlcXVlbmNlIiwic2VxTGVuZ3RoIiwidG90YWxMZW5ndGgiLCJsZW5ndGgiLCJyZWNlbnQiLCJiYXNlU2VxdWVuY2UiLCJpIiwibmV4dFNlcXVlbmNlIiwiZXZlcnkiLCJlbCIsImoiLCJkZXRlY3RGb2N1c1RyYXAiLCJoIiwiZWxlbWVudCIsInRpbWVzdGFtcHMiLCJ0aW1lc3RhbXAiLCJyZWNlbnQ0IiwidW5pcXVlIiwiU2V0IiwidGltZURpZmYiLCJtaW5TZXFMZW5ndGgiLCJ0cmFja0ZvY3VzRm9yVHJhcCIsImV2ZW50Iiwic2V0VGltZW91dCIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJwdXNoIiwicGVyZm9ybWFuY2UiLCJub3ciLCJzaGlmdEtleSIsInNoaWZ0IiwiY2hlY2tCZWhhdmlvcmFsU2NvcmUiLCJmaWx0ZXIiLCJxIiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJ6b29tIiwibmF2aWdhdG9yIiwibWF4VG91Y2hQb2ludHMiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5jbHVkZXMiLCJrZXkiLCJmb2N1c0xvc3NPYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJtdXRhdGlvbiIsImZpbmQiLCJtIiwidHlwZSIsImFkZGVkTm9kZXMiLCJyZW1vdmVkTm9kZXMiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhseCIsIkExMVlfUkVQT1JUX0RFTEFZIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVlBLE1BQU1BLHVCQUF1QixHQUFHLENBQzlCLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsd0NBQXdDLENBQ3pDO0FBRUQsTUFBTUMsc0JBQXNCLEdBQUcsQ0FDN0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FDakY7QUFFRCxNQUFNQyxlQUFlLEdBQUcsR0FBRztBQUMzQixNQUFNQyxpQkFBaUIsR0FBRyxHQUFHO0FBRTdCLE1BQU1DLHFCQUFxQixHQUFHLEVBQUU7QUFFaEMsTUFBTUMscUJBQXFCLEdBQUcsRUFBRTtBQUNoQyxNQUFNQyxzQkFBc0IsR0FBRyxDQUFDO0FBQ2hDLE1BQU1DLDZCQUE2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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
476a5c7c6184ac68bb4b668dd7fd6d7a
|
package/src/plugins/cwv.js
CHANGED
|
@@ -179,8 +179,10 @@
|
|
|
179
179
|
}
|
|
180
180
|
const B = e => {
|
|
181
181
|
const t = globalThis.requestIdleCallback || setTimeout;
|
|
182
|
-
"hidden" === document.visibilityState ? e() : (
|
|
182
|
+
"hidden" === document.visibilityState ? e() : (e = u(e), document.addEventListener("visibilitychange", e, {
|
|
183
183
|
once: true
|
|
184
|
+
}), t(() => {
|
|
185
|
+
e(), document.removeEventListener("visibilitychange", e);
|
|
184
186
|
}));
|
|
185
187
|
},
|
|
186
188
|
N = [200, 500];
|
package/src/plugins/cwv.map.js
CHANGED
|
@@ -179,8 +179,10 @@
|
|
|
179
179
|
}
|
|
180
180
|
const B = e => {
|
|
181
181
|
const t = globalThis.requestIdleCallback || setTimeout;
|
|
182
|
-
"hidden" === document.visibilityState ? e() : (
|
|
182
|
+
"hidden" === document.visibilityState ? e() : (e = u(e), document.addEventListener("visibilitychange", e, {
|
|
183
183
|
once: true
|
|
184
|
+
}), t(() => {
|
|
185
|
+
e(), document.removeEventListener("visibilitychange", e);
|
|
184
186
|
}));
|
|
185
187
|
},
|
|
186
188
|
N = [200, 500];
|
|
@@ -324,4 +326,4 @@ function addCWVTracking({
|
|
|
324
326
|
}
|
|
325
327
|
|
|
326
328
|
export { addCWVTracking as default };
|
|
327
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3d2Lm1hcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3dlYi12aXRhbHMvZGlzdC93ZWItdml0YWxzLmlpZmUuanMiLCIuLi8uLi9wbHVnaW5zL2N3di5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgd2ViVml0YWxzPWZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2xldCB0PS0xO2NvbnN0IG49ZT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLChuPT57bi5wZXJzaXN0ZWQmJih0PW4udGltZVN0YW1wLGUobikpfSksITApfSxpPShlLHQsbixpKT0+e2xldCBvLHM7cmV0dXJuIHI9Pnt0LnZhbHVlPj0wJiYocnx8aSkmJihzPXQudmFsdWUtKG8/PzApLChzfHx2b2lkIDA9PT1vKSYmKG89dC52YWx1ZSx0LmRlbHRhPXMsdC5yYXRpbmc9KChlLHQpPT5lPnRbMV0/XCJwb29yXCI6ZT50WzBdP1wibmVlZHMtaW1wcm92ZW1lbnRcIjpcImdvb2RcIikodC52YWx1ZSxuKSxlKHQpKSl9fSxvPWU9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5lKCkpKSkpfSxzPSgpPT57Y29uc3QgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVswXTtpZihlJiZlLnJlc3BvbnNlU3RhcnQ+MCYmZS5yZXNwb25zZVN0YXJ0PHBlcmZvcm1hbmNlLm5vdygpKXJldHVybiBlfSxyPSgpPT57Y29uc3QgZT1zKCk7cmV0dXJuIGU/LmFjdGl2YXRpb25TdGFydD8/MH0sYz0oZSxuPS0xKT0+e2NvbnN0IGk9cygpO2xldCBvPVwibmF2aWdhdGVcIjt0Pj0wP289XCJiYWNrLWZvcndhcmQtY2FjaGVcIjppJiYoZG9jdW1lbnQucHJlcmVuZGVyaW5nfHxyKCk+MD9vPVwicHJlcmVuZGVyXCI6ZG9jdW1lbnQud2FzRGlzY2FyZGVkP289XCJyZXN0b3JlXCI6aS50eXBlJiYobz1pLnR5cGUucmVwbGFjZSgvXy9nLFwiLVwiKSkpO3JldHVybntuYW1lOmUsdmFsdWU6bixyYXRpbmc6XCJnb29kXCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2NS0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTJ9YCxuYXZpZ2F0aW9uVHlwZTpvfX0sYT1uZXcgV2Vha01hcDtmdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGEuZ2V0KGUpfHxhLnNldChlLG5ldyB0KSxhLmdldChlKX1jbGFzcyBoe3Q7aT0wO289W107aChlKXtpZihlLmhhZFJlY2VudElucHV0KXJldHVybjtjb25zdCB0PXRoaXMub1swXSxuPXRoaXMuby5hdCgtMSk7dGhpcy5pJiZ0JiZuJiZlLnN0YXJ0VGltZS1uLnN0YXJ0VGltZTwxZTMmJmUuc3RhcnRUaW1lLXQuc3RhcnRUaW1lPDVlMz8odGhpcy5pKz1lLnZhbHVlLHRoaXMuby5wdXNoKGUpKToodGhpcy5pPWUudmFsdWUsdGhpcy5vPVtlXSksdGhpcy50Py4oZSl9fWNvbnN0IGY9KGUsdCxuPXt9KT0+e3RyeXtpZihQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZSkpe2NvbnN0IGk9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGU9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3QoZS5nZXRFbnRyaWVzKCkpfSkpfSkpO3JldHVybiBpLm9ic2VydmUoe3R5cGU6ZSxidWZmZXJlZDohMCwuLi5ufSksaX19Y2F0Y2h7fX0sdT1lPT57bGV0IHQ9ITE7cmV0dXJuKCk9Pnt0fHwoZSgpLHQ9ITApfX07bGV0IGw9LTE7Y29uc3QgbT0oKT0+XCJoaWRkZW5cIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8ZG9jdW1lbnQucHJlcmVuZGVyaW5nPzEvMDowLGc9ZT0+e1wiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJmw+LTEmJihsPVwidmlzaWJpbGl0eWNoYW5nZVwiPT09ZS50eXBlP2UudGltZVN0YW1wOjAscCgpKX0sdj0oKT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZywhMCksYWRkRXZlbnRMaXN0ZW5lcihcInByZXJlbmRlcmluZ2NoYW5nZVwiLGcsITApfSxwPSgpPT57cmVtb3ZlRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIixnLCEwKSxyZW1vdmVFdmVudExpc3RlbmVyKFwicHJlcmVuZGVyaW5nY2hhbmdlXCIsZywhMCl9LHk9KCk9PntpZihsPDApe2NvbnN0IGU9cigpLHQ9ZG9jdW1lbnQucHJlcmVuZGVyaW5nP3ZvaWQgMDpnbG9iYWxUaGlzLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJ2aXNpYmlsaXR5LXN0YXRlXCIpLmZpbHRlcigodD0+XCJoaWRkZW5cIj09PXQubmFtZSYmdC5zdGFydFRpbWU+ZSkpWzBdPy5zdGFydFRpbWU7bD10Pz9tKCksdigpLG4oKCgpPT57c2V0VGltZW91dCgoKCk9PntsPW0oKSx2KCl9KSl9KSl9cmV0dXJue2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gbH19fSxiPWU9Pntkb2N1bWVudC5wcmVyZW5kZXJpbmc/YWRkRXZlbnRMaXN0ZW5lcihcInByZXJlbmRlcmluZ2NoYW5nZVwiLCgoKT0+ZSgpKSwhMCk6ZSgpfSxQPVsxODAwLDNlM10sVD0oZSx0PXt9KT0+e2IoKCgpPT57Y29uc3Qgcz15KCk7bGV0IGEsZD1jKFwiRkNQXCIpO2NvbnN0IGg9ZihcInBhaW50XCIsKGU9Pntmb3IoY29uc3QgdCBvZiBlKVwiZmlyc3QtY29udGVudGZ1bC1wYWludFwiPT09dC5uYW1lJiYoaC5kaXNjb25uZWN0KCksdC5zdGFydFRpbWU8cy5maXJzdEhpZGRlblRpbWUmJihkLnZhbHVlPU1hdGgubWF4KHQuc3RhcnRUaW1lLXIoKSwwKSxkLmVudHJpZXMucHVzaCh0KSxhKCEwKSkpfSkpO2gmJihhPWkoZSxkLFAsdC5yZXBvcnRBbGxDaGFuZ2VzKSxuKChuPT57ZD1jKFwiRkNQXCIpLGE9aShlLGQsUCx0LnJlcG9ydEFsbENoYW5nZXMpLG8oKCgpPT57ZC52YWx1ZT1wZXJmb3JtYW5jZS5ub3coKS1uLnRpbWVTdGFtcCxhKCEwKX0pKX0pKSl9KSl9LEU9Wy4xLC4yNV07bGV0IF89MCxMPTEvMCxNPTA7Y29uc3Qgdz1lPT57Zm9yKGNvbnN0IHQgb2YgZSl0LmludGVyYWN0aW9uSWQmJihMPU1hdGgubWluKEwsdC5pbnRlcmFjdGlvbklkKSxNPU1hdGgubWF4KE0sdC5pbnRlcmFjdGlvbklkKSxfPU0/KE0tTCkvNysxOjApfTtsZXQgQztjb25zdCBJPSgpPT5DP186cGVyZm9ybWFuY2UuaW50ZXJhY3Rpb25Db3VudD8/MCxGPSgpPT57XCJpbnRlcmFjdGlvbkNvdW50XCJpbiBwZXJmb3JtYW5jZXx8Q3x8KEM9ZihcImV2ZW50XCIsdyx7dHlwZTpcImV2ZW50XCIsYnVmZmVyZWQ6ITAsZHVyYXRpb25UaHJlc2hvbGQ6MH0pKX07bGV0IGs9MDtjbGFzcyBBe3U9W107bD1uZXcgTWFwO207djtwKCl7az1JKCksdGhpcy51Lmxlbmd0aD0wLHRoaXMubC5jbGVhcigpfVAoKXtjb25zdCBlPU1hdGgubWluKHRoaXMudS5sZW5ndGgtMSxNYXRoLmZsb29yKChJKCktaykvNTApKTtyZXR1cm4gdGhpcy51W2VdfWgoZSl7aWYodGhpcy5tPy4oZSksIWUuaW50ZXJhY3Rpb25JZCYmXCJmaXJzdC1pbnB1dFwiIT09ZS5lbnRyeVR5cGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy51LmF0KC0xKTtsZXQgbj10aGlzLmwuZ2V0KGUuaW50ZXJhY3Rpb25JZCk7aWYobnx8dGhpcy51Lmxlbmd0aDwxMHx8ZS5kdXJhdGlvbj50LlQpe2lmKG4/ZS5kdXJhdGlvbj5uLlQ/KG4uZW50cmllcz1bZV0sbi5UPWUuZHVyYXRpb24pOmUuZHVyYXRpb249PT1uLlQmJmUuc3RhcnRUaW1lPT09bi5lbnRyaWVzWzBdLnN0YXJ0VGltZSYmbi5lbnRyaWVzLnB1c2goZSk6KG49e2lkOmUuaW50ZXJhY3Rpb25JZCxlbnRyaWVzOltlXSxUOmUuZHVyYXRpb259LHRoaXMubC5zZXQobi5pZCxuKSx0aGlzLnUucHVzaChuKSksdGhpcy51LnNvcnQoKChlLHQpPT50LlQtZS5UKSksdGhpcy51Lmxlbmd0aD4xMCl7Y29uc3QgZT10aGlzLnUuc3BsaWNlKDEwKTtmb3IoY29uc3QgdCBvZiBlKXRoaXMubC5kZWxldGUodC5pZCl9dGhpcy52Py4obil9fX1jb25zdCBCPWU9Pntjb25zdCB0PWdsb2JhbFRoaXMucmVxdWVzdElkbGVDYWxsYmFja3x8c2V0VGltZW91dDtcImhpZGRlblwiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP2UoKToodChlPXUoZSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZSx7b25jZTohMH0pKX0sTj1bMjAwLDUwMF07Y2xhc3MgU3ttO2goZSl7dGhpcy5tPy4oZSl9fWNvbnN0IHE9WzI1MDAsNGUzXSxPPVs4MDAsMTgwMF0sVj1lPT57ZG9jdW1lbnQucHJlcmVuZGVyaW5nP2IoKCgpPT5WKGUpKSk6XCJjb21wbGV0ZVwiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCgoKT0+VihlKSksITApOnNldFRpbWVvdXQoZSl9O3JldHVybiBlLkNMU1RocmVzaG9sZHM9RSxlLkZDUFRocmVzaG9sZHM9UCxlLklOUFRocmVzaG9sZHM9TixlLkxDUFRocmVzaG9sZHM9cSxlLlRURkJUaHJlc2hvbGRzPU8sZS5vbkNMUz0oZSx0PXt9KT0+e1QodSgoKCk9PntsZXQgcyxyPWMoXCJDTFNcIiwwKTtjb25zdCBhPWQodCxoKSx1PWU9Pntmb3IoY29uc3QgdCBvZiBlKWEuaCh0KTthLmk+ci52YWx1ZSYmKHIudmFsdWU9YS5pLHIuZW50cmllcz1hLm8scygpKX0sbD1mKFwibGF5b3V0LXNoaWZ0XCIsdSk7bCYmKHM9aShlLHIsRSx0LnJlcG9ydEFsbENoYW5nZXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsKCgpPT57XCJoaWRkZW5cIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmKHUobC50YWtlUmVjb3JkcygpKSxzKCEwKSl9KSksbigoKCk9PnthLmk9MCxyPWMoXCJDTFNcIiwwKSxzPWkoZSxyLEUsdC5yZXBvcnRBbGxDaGFuZ2VzKSxvKCgoKT0+cygpKSl9KSksc2V0VGltZW91dChzKSl9KSkpfSxlLm9uRkNQPVQsZS5vbklOUD0oZSx0PXt9KT0+e2dsb2JhbFRoaXMuUGVyZm9ybWFuY2VFdmVudFRpbWluZyYmXCJpbnRlcmFjdGlvbklkXCJpbiBQZXJmb3JtYW5jZUV2ZW50VGltaW5nLnByb3RvdHlwZSYmYigoKCk9PntGKCk7bGV0IG8scz1jKFwiSU5QXCIpO2NvbnN0IHI9ZCh0LEEpLGE9ZT0+e0IoKCgpPT57Zm9yKGNvbnN0IHQgb2YgZSlyLmgodCk7Y29uc3QgdD1yLlAoKTt0JiZ0LlQhPT1zLnZhbHVlJiYocy52YWx1ZT10LlQscy5lbnRyaWVzPXQuZW50cmllcyxvKCkpfSkpfSxoPWYoXCJldmVudFwiLGEse2R1cmF0aW9uVGhyZXNob2xkOnQuZHVyYXRpb25UaHJlc2hvbGQ/PzQwfSk7bz1pKGUscyxOLHQucmVwb3J0QWxsQ2hhbmdlcyksaCYmKGgub2JzZXJ2ZSh7dHlwZTpcImZpcnN0LWlucHV0XCIsYnVmZmVyZWQ6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCgoKT0+e1wiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJihhKGgudGFrZVJlY29yZHMoKSksbyghMCkpfSkpLG4oKCgpPT57ci5wKCkscz1jKFwiSU5QXCIpLG89aShlLHMsTix0LnJlcG9ydEFsbENoYW5nZXMpfSkpKX0pKX0sZS5vbkxDUD0oZSx0PXt9KT0+e2IoKCgpPT57Y29uc3Qgcz15KCk7bGV0IGEsaD1jKFwiTENQXCIpO2NvbnN0IGw9ZCh0LFMpLG09ZT0+e3QucmVwb3J0QWxsQ2hhbmdlc3x8KGU9ZS5zbGljZSgtMSkpO2Zvcihjb25zdCB0IG9mIGUpbC5oKHQpLHQuc3RhcnRUaW1lPHMuZmlyc3RIaWRkZW5UaW1lJiYoaC52YWx1ZT1NYXRoLm1heCh0LnN0YXJ0VGltZS1yKCksMCksaC5lbnRyaWVzPVt0XSxhKCkpfSxnPWYoXCJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnRcIixtKTtpZihnKXthPWkoZSxoLHEsdC5yZXBvcnRBbGxDaGFuZ2VzKTtjb25zdCBzPXUoKCgpPT57bShnLnRha2VSZWNvcmRzKCkpLGcuZGlzY29ubmVjdCgpLGEoITApfSkpO2Zvcihjb25zdCBlIG9mW1wia2V5ZG93blwiLFwiY2xpY2tcIixcInZpc2liaWxpdHljaGFuZ2VcIl0pYWRkRXZlbnRMaXN0ZW5lcihlLCgoKT0+QihzKSkse2NhcHR1cmU6ITAsb25jZTohMH0pO24oKG49PntoPWMoXCJMQ1BcIiksYT1pKGUsaCxxLHQucmVwb3J0QWxsQ2hhbmdlcyksbygoKCk9PntoLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLW4udGltZVN0YW1wLGEoITApfSkpfSkpfX0pKX0sZS5vblRURkI9KGUsdD17fSk9PntsZXQgbz1jKFwiVFRGQlwiKSxhPWkoZSxvLE8sdC5yZXBvcnRBbGxDaGFuZ2VzKTtWKCgoKT0+e2NvbnN0IGQ9cygpO2QmJihvLnZhbHVlPU1hdGgubWF4KGQucmVzcG9uc2VTdGFydC1yKCksMCksby5lbnRyaWVzPVtkXSxhKCEwKSxuKCgoKT0+e289YyhcIlRURkJcIiwwKSxhPWkoZSxvLE8sdC5yZXBvcnRBbGxDaGFuZ2VzKSxhKCEwKX0pKSl9KSl9LGV9KHt9KTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlNcbiAqIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZVxuICogZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMsIGltcG9ydC9uby1yZWxhdGl2ZS1wYWNrYWdlcywgbm8tdW51c2VkLXZhcnNcbmltcG9ydCAqIGFzIHdlYlZpdGFscyBmcm9tICcuLi9ub2RlX21vZHVsZXMvd2ViLXZpdGFscy9kaXN0L3dlYi12aXRhbHMuaWlmZS5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZENXVlRyYWNraW5nKHtcbiAgc2FtcGxlUlVNLCBzb3VyY2VTZWxlY3RvciwgdGFyZ2V0U2VsZWN0b3IsIGZmbGFncyxcbn0pIHtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN3dlNjcmlwdCA9IG5ldyBVUkwoJy5ydW0vd2ViLXZpdGFscy9kaXN0L3dlYi12aXRhbHMuaWlmZS5qcycsIHNhbXBsZVJVTS5iYXNlVVJMKS5ocmVmO1xuICAgICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmM9XCIke2N3dlNjcmlwdH1cIl1gKSkge1xuICAgICAgICAvLyB3ZWIgdml0YWxzIHNjcmlwdCBoYXMgYmVlbiBsb2FkZWQgYWxyZWFkeVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5zcmMgPSBjd3ZTY3JpcHQ7XG4gICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZUNXViA9IChtZWFzdXJlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7IGN3djoge30gfTtcbiAgICAgICAgICBkYXRhLmN3dlttZWFzdXJlbWVudC5uYW1lXSA9IG1lYXN1cmVtZW50LnZhbHVlO1xuICAgICAgICAgIGlmIChtZWFzdXJlbWVudC5uYW1lID09PSAnTENQJyAmJiBtZWFzdXJlbWVudC5lbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudCB9ID0gbWVhc3VyZW1lbnQuZW50cmllcy5wb3AoKTtcbiAgICAgICAgICAgIGRhdGEudGFyZ2V0ID0gdGFyZ2V0U2VsZWN0b3IoZWxlbWVudCk7XG4gICAgICAgICAgICBkYXRhLnNvdXJjZSA9IHNvdXJjZVNlbGVjdG9yKGVsZW1lbnQpIHx8IChlbGVtZW50ICYmIGVsZW1lbnQub3V0ZXJIVE1MLnNsaWNlKDAsIDMwKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNhbXBsZVJVTSgnY3d2JywgZGF0YSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgaXNFYWdlciA9IChtZXRyaWMpID0+IFsnQ0xTJywgJ0xDUCddLmluY2x1ZGVzKG1ldHJpYyk7XG5cbiAgICAgICAgLy8gV2hlbiBsb2FkaW5nIGB3ZWItdml0YWxzYCB1c2luZyBhIGNsYXNzaWMgc2NyaXB0LCBhbGwgdGhlIHB1YmxpY1xuICAgICAgICAvLyBtZXRob2RzIGNhbiBiZSBmb3VuZCBvbiB0aGUgYHdlYlZpdGFsc2AgZ2xvYmFsIG5hbWVzcGFjZS5cbiAgICAgICAgWydJTlAnLCAnVFRGQicsICdDTFMnLCAnTENQJ10uZm9yRWFjaCgobWV0cmljKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWV0cmljRm4gPSB3aW5kb3cud2ViVml0YWxzW2BvbiR7bWV0cmljfWBdO1xuICAgICAgICAgIGlmICh0eXBlb2YgbWV0cmljRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCBvcHRzID0ge307XG4gICAgICAgICAgICBmZmxhZ3MuZW5hYmxlZCgnZWFnZXJjd3YnLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wdHMgPSB7IHJlcG9ydEFsbENoYW5nZXM6IGlzRWFnZXIobWV0cmljKSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtZXRyaWNGbihzdG9yZUNXViwgb3B0cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgfVxuICB9LCAyMDAwKTsgLy8gd2FpdCBmb3IgZGVsYXllZFxufVxuIl0sIm5hbWVzIjpbImUiLCJ0IiwibiIsImFkZEV2ZW50TGlzdGVuZXIiLCJwZXJzaXN0ZWQiLCJ0aW1lU3RhbXAiLCJpIiwibyIsInMiLCJyIiwidmFsdWUiLCJkZWx0YSIsInJhdGluZyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInBlcmZvcm1hbmNlIiwiZ2V0RW50cmllc0J5VHlwZSIsInJlc3BvbnNlU3RhcnQiLCJub3ciLCJhY3RpdmF0aW9uU3RhcnQiLCJjIiwiZG9jdW1lbnQiLCJwcmVyZW5kZXJpbmciLCJ3YXNEaXNjYXJkZWQiLCJ0eXBlIiwicmVwbGFjZSIsIm5hbWUiLCJlbnRyaWVzIiwiaWQiLCJEYXRlIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwibmF2aWdhdGlvblR5cGUiLCJhIiwiV2Vha01hcCIsImQiLCJnZXQiLCJzZXQiLCJoIiwiaGFkUmVjZW50SW5wdXQiLCJhdCIsInN0YXJ0VGltZSIsInB1c2giLCJmIiwiUGVyZm9ybWFuY2VPYnNlcnZlciIsInN1cHBvcnRlZEVudHJ5VHlwZXMiLCJpbmNsdWRlcyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImdldEVudHJpZXMiLCJvYnNlcnZlIiwiYnVmZmVyZWQiLCJ1IiwibCIsIm0iLCJ2aXNpYmlsaXR5U3RhdGUiLCJnIiwicCIsInYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwieSIsImdsb2JhbFRoaXMiLCJmaWx0ZXIiLCJzZXRUaW1lb3V0IiwiZmlyc3RIaWRkZW5UaW1lIiwiYiIsIlAiLCJUIiwiZGlzY29ubmVjdCIsIm1heCIsInJlcG9ydEFsbENoYW5nZXMiLCJFIiwiXyIsIkwiLCJNIiwidyIsImludGVyYWN0aW9uSWQiLCJtaW4iLCJDIiwiSSIsImludGVyYWN0aW9uQ291bnQiLCJGIiwiZHVyYXRpb25UaHJlc2hvbGQiLCJrIiwiQSIsIk1hcCIsImxlbmd0aCIsImNsZWFyIiwiZW50cnlUeXBlIiwiZHVyYXRpb24iLCJzb3J0Iiwic3BsaWNlIiwiZGVsZXRlIiwiQiIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJvbmNlIiwiTiIsIlMiLCJxIiwiTyIsIlYiLCJyZWFkeVN0YXRlIiwiQ0xTVGhyZXNob2xkcyIsIkZDUFRocmVzaG9sZHMiLCJJTlBUaHJlc2hvbGRzIiwiTENQVGhyZXNob2xkcyIsIlRURkJUaHJlc2hvbGRzIiwib25DTFMiLCJ0YWtlUmVjb3JkcyIsIm9uRkNQIiwib25JTlAiLCJQZXJmb3JtYW5jZUV2ZW50VGltaW5nIiwicHJvdG90eXBlIiwib25MQ1AiLCJzbGljZSIsImNhcHR1cmUiLCJvblRURkIiLCJhZGRDV1ZUcmFja2luZyIsInNhbXBsZVJVTSIsInNvdXJjZVNlbGVjdG9yIiwidGFyZ2V0U2VsZWN0b3IiLCJmZmxhZ3MiLCJjd3ZTY3JpcHQiLCJVUkwiLCJiYXNlVVJMIiwiaHJlZiIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JpcHQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwib25sb2FkIiwic3RvcmVDV1YiLCJtZWFzdXJlbWVudCIsImRhdGEiLCJjd3YiLCJlbGVtZW50IiwicG9wIiwidGFyZ2V0Iiwic291cmNlIiwib3V0ZXJIVE1MIiwiaXNFYWdlciIsIm1ldHJpYyIsImZvckVhY2giLCJtZXRyaWNGbiIsIndpbmRvdyIsIndlYlZpdGFscyIsIm9wdHMiLCJlbmFibGVkIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0NBQWMsVUFBU0EsQ0FBQyxFQUFDOztFQUFjLElBQUlDLENBQUMsR0FBQyxFQUFFO0VBQUMsTUFBTUMsQ0FBQyxHQUFDRixDQUFDLElBQUU7QUFBQ0csTUFBQUEsZ0JBQWdCLENBQUMsVUFBVSxFQUFFRCxDQUFDLElBQUU7QUFBQ0EsUUFBQUEsQ0FBQyxDQUFDRSxTQUFTLEtBQUdILENBQUMsR0FBQ0MsQ0FBQyxDQUFDRyxTQUFTLEVBQUNMLENBQUMsQ0FBQ0UsQ0FBQyxDQUFDLENBQUM7T0FBQyxFQUFFLElBQUUsQ0FBQztLQUFDO0lBQUNJLENBQUMsR0FBQ0EsQ0FBQ04sQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0ksQ0FBQyxLQUFHO01BQUMsSUFBSUMsQ0FBQyxFQUFDQyxDQUFDO0FBQUMsTUFBQSxPQUFPQyxDQUFDLElBQUU7QUFBQ1IsUUFBQUEsQ0FBQyxDQUFDUyxLQUFLLElBQUUsQ0FBQyxLQUFHRCxDQUFDLElBQUVILENBQUMsQ0FBQyxLQUFHRSxDQUFDLEdBQUNQLENBQUMsQ0FBQ1MsS0FBSyxJQUFFSCxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQ0MsQ0FBQyxJQUFF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
|
|
329
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3d2Lm1hcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3dlYi12aXRhbHMvZGlzdC93ZWItdml0YWxzLmlpZmUuanMiLCIuLi8uLi9wbHVnaW5zL2N3di5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgd2ViVml0YWxzPWZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2xldCB0PS0xO2NvbnN0IG49ZT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLChuPT57bi5wZXJzaXN0ZWQmJih0PW4udGltZVN0YW1wLGUobikpfSksITApfSxpPShlLHQsbixpKT0+e2xldCBvLHM7cmV0dXJuIHI9Pnt0LnZhbHVlPj0wJiYocnx8aSkmJihzPXQudmFsdWUtKG8/PzApLChzfHx2b2lkIDA9PT1vKSYmKG89dC52YWx1ZSx0LmRlbHRhPXMsdC5yYXRpbmc9KChlLHQpPT5lPnRbMV0/XCJwb29yXCI6ZT50WzBdP1wibmVlZHMtaW1wcm92ZW1lbnRcIjpcImdvb2RcIikodC52YWx1ZSxuKSxlKHQpKSl9fSxvPWU9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5lKCkpKSkpfSxzPSgpPT57Y29uc3QgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVswXTtpZihlJiZlLnJlc3BvbnNlU3RhcnQ+MCYmZS5yZXNwb25zZVN0YXJ0PHBlcmZvcm1hbmNlLm5vdygpKXJldHVybiBlfSxyPSgpPT57Y29uc3QgZT1zKCk7cmV0dXJuIGU/LmFjdGl2YXRpb25TdGFydD8/MH0sYz0oZSxuPS0xKT0+e2NvbnN0IGk9cygpO2xldCBvPVwibmF2aWdhdGVcIjt0Pj0wP289XCJiYWNrLWZvcndhcmQtY2FjaGVcIjppJiYoZG9jdW1lbnQucHJlcmVuZGVyaW5nfHxyKCk+MD9vPVwicHJlcmVuZGVyXCI6ZG9jdW1lbnQud2FzRGlzY2FyZGVkP289XCJyZXN0b3JlXCI6aS50eXBlJiYobz1pLnR5cGUucmVwbGFjZSgvXy9nLFwiLVwiKSkpO3JldHVybntuYW1lOmUsdmFsdWU6bixyYXRpbmc6XCJnb29kXCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2NS0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTJ9YCxuYXZpZ2F0aW9uVHlwZTpvfX0sYT1uZXcgV2Vha01hcDtmdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGEuZ2V0KGUpfHxhLnNldChlLG5ldyB0KSxhLmdldChlKX1jbGFzcyBoe3Q7aT0wO289W107aChlKXtpZihlLmhhZFJlY2VudElucHV0KXJldHVybjtjb25zdCB0PXRoaXMub1swXSxuPXRoaXMuby5hdCgtMSk7dGhpcy5pJiZ0JiZuJiZlLnN0YXJ0VGltZS1uLnN0YXJ0VGltZTwxZTMmJmUuc3RhcnRUaW1lLXQuc3RhcnRUaW1lPDVlMz8odGhpcy5pKz1lLnZhbHVlLHRoaXMuby5wdXNoKGUpKToodGhpcy5pPWUudmFsdWUsdGhpcy5vPVtlXSksdGhpcy50Py4oZSl9fWNvbnN0IGY9KGUsdCxuPXt9KT0+e3RyeXtpZihQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZSkpe2NvbnN0IGk9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGU9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3QoZS5nZXRFbnRyaWVzKCkpfSkpfSkpO3JldHVybiBpLm9ic2VydmUoe3R5cGU6ZSxidWZmZXJlZDohMCwuLi5ufSksaX19Y2F0Y2h7fX0sdT1lPT57bGV0IHQ9ITE7cmV0dXJuKCk9Pnt0fHwoZSgpLHQ9ITApfX07bGV0IGw9LTE7Y29uc3QgbT0oKT0+XCJoaWRkZW5cIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8ZG9jdW1lbnQucHJlcmVuZGVyaW5nPzEvMDowLGc9ZT0+e1wiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJmw+LTEmJihsPVwidmlzaWJpbGl0eWNoYW5nZVwiPT09ZS50eXBlP2UudGltZVN0YW1wOjAscCgpKX0sdj0oKT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZywhMCksYWRkRXZlbnRMaXN0ZW5lcihcInByZXJlbmRlcmluZ2NoYW5nZVwiLGcsITApfSxwPSgpPT57cmVtb3ZlRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIixnLCEwKSxyZW1vdmVFdmVudExpc3RlbmVyKFwicHJlcmVuZGVyaW5nY2hhbmdlXCIsZywhMCl9LHk9KCk9PntpZihsPDApe2NvbnN0IGU9cigpLHQ9ZG9jdW1lbnQucHJlcmVuZGVyaW5nP3ZvaWQgMDpnbG9iYWxUaGlzLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJ2aXNpYmlsaXR5LXN0YXRlXCIpLmZpbHRlcigodD0+XCJoaWRkZW5cIj09PXQubmFtZSYmdC5zdGFydFRpbWU+ZSkpWzBdPy5zdGFydFRpbWU7bD10Pz9tKCksdigpLG4oKCgpPT57c2V0VGltZW91dCgoKCk9PntsPW0oKSx2KCl9KSl9KSl9cmV0dXJue2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gbH19fSxiPWU9Pntkb2N1bWVudC5wcmVyZW5kZXJpbmc/YWRkRXZlbnRMaXN0ZW5lcihcInByZXJlbmRlcmluZ2NoYW5nZVwiLCgoKT0+ZSgpKSwhMCk6ZSgpfSxQPVsxODAwLDNlM10sVD0oZSx0PXt9KT0+e2IoKCgpPT57Y29uc3Qgcz15KCk7bGV0IGEsZD1jKFwiRkNQXCIpO2NvbnN0IGg9ZihcInBhaW50XCIsKGU9Pntmb3IoY29uc3QgdCBvZiBlKVwiZmlyc3QtY29udGVudGZ1bC1wYWludFwiPT09dC5uYW1lJiYoaC5kaXNjb25uZWN0KCksdC5zdGFydFRpbWU8cy5maXJzdEhpZGRlblRpbWUmJihkLnZhbHVlPU1hdGgubWF4KHQuc3RhcnRUaW1lLXIoKSwwKSxkLmVudHJpZXMucHVzaCh0KSxhKCEwKSkpfSkpO2gmJihhPWkoZSxkLFAsdC5yZXBvcnRBbGxDaGFuZ2VzKSxuKChuPT57ZD1jKFwiRkNQXCIpLGE9aShlLGQsUCx0LnJlcG9ydEFsbENoYW5nZXMpLG8oKCgpPT57ZC52YWx1ZT1wZXJmb3JtYW5jZS5ub3coKS1uLnRpbWVTdGFtcCxhKCEwKX0pKX0pKSl9KSl9LEU9Wy4xLC4yNV07bGV0IF89MCxMPTEvMCxNPTA7Y29uc3Qgdz1lPT57Zm9yKGNvbnN0IHQgb2YgZSl0LmludGVyYWN0aW9uSWQmJihMPU1hdGgubWluKEwsdC5pbnRlcmFjdGlvbklkKSxNPU1hdGgubWF4KE0sdC5pbnRlcmFjdGlvbklkKSxfPU0/KE0tTCkvNysxOjApfTtsZXQgQztjb25zdCBJPSgpPT5DP186cGVyZm9ybWFuY2UuaW50ZXJhY3Rpb25Db3VudD8/MCxGPSgpPT57XCJpbnRlcmFjdGlvbkNvdW50XCJpbiBwZXJmb3JtYW5jZXx8Q3x8KEM9ZihcImV2ZW50XCIsdyx7dHlwZTpcImV2ZW50XCIsYnVmZmVyZWQ6ITAsZHVyYXRpb25UaHJlc2hvbGQ6MH0pKX07bGV0IGs9MDtjbGFzcyBBe3U9W107bD1uZXcgTWFwO207djtwKCl7az1JKCksdGhpcy51Lmxlbmd0aD0wLHRoaXMubC5jbGVhcigpfVAoKXtjb25zdCBlPU1hdGgubWluKHRoaXMudS5sZW5ndGgtMSxNYXRoLmZsb29yKChJKCktaykvNTApKTtyZXR1cm4gdGhpcy51W2VdfWgoZSl7aWYodGhpcy5tPy4oZSksIWUuaW50ZXJhY3Rpb25JZCYmXCJmaXJzdC1pbnB1dFwiIT09ZS5lbnRyeVR5cGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy51LmF0KC0xKTtsZXQgbj10aGlzLmwuZ2V0KGUuaW50ZXJhY3Rpb25JZCk7aWYobnx8dGhpcy51Lmxlbmd0aDwxMHx8ZS5kdXJhdGlvbj50LlQpe2lmKG4/ZS5kdXJhdGlvbj5uLlQ/KG4uZW50cmllcz1bZV0sbi5UPWUuZHVyYXRpb24pOmUuZHVyYXRpb249PT1uLlQmJmUuc3RhcnRUaW1lPT09bi5lbnRyaWVzWzBdLnN0YXJ0VGltZSYmbi5lbnRyaWVzLnB1c2goZSk6KG49e2lkOmUuaW50ZXJhY3Rpb25JZCxlbnRyaWVzOltlXSxUOmUuZHVyYXRpb259LHRoaXMubC5zZXQobi5pZCxuKSx0aGlzLnUucHVzaChuKSksdGhpcy51LnNvcnQoKChlLHQpPT50LlQtZS5UKSksdGhpcy51Lmxlbmd0aD4xMCl7Y29uc3QgZT10aGlzLnUuc3BsaWNlKDEwKTtmb3IoY29uc3QgdCBvZiBlKXRoaXMubC5kZWxldGUodC5pZCl9dGhpcy52Py4obil9fX1jb25zdCBCPWU9Pntjb25zdCB0PWdsb2JhbFRoaXMucmVxdWVzdElkbGVDYWxsYmFja3x8c2V0VGltZW91dDtcImhpZGRlblwiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP2UoKTooZT11KGUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZSx7b25jZTohMH0pLHQoKCgpPT57ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZSl9KSkpfSxOPVsyMDAsNTAwXTtjbGFzcyBTe207aChlKXt0aGlzLm0/LihlKX19Y29uc3QgcT1bMjUwMCw0ZTNdLE89WzgwMCwxODAwXSxWPWU9Pntkb2N1bWVudC5wcmVyZW5kZXJpbmc/YigoKCk9PlYoZSkpKTpcImNvbXBsZXRlXCIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP2FkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsKCgpPT5WKGUpKSwhMCk6c2V0VGltZW91dChlKX07cmV0dXJuIGUuQ0xTVGhyZXNob2xkcz1FLGUuRkNQVGhyZXNob2xkcz1QLGUuSU5QVGhyZXNob2xkcz1OLGUuTENQVGhyZXNob2xkcz1xLGUuVFRGQlRocmVzaG9sZHM9TyxlLm9uQ0xTPShlLHQ9e30pPT57VCh1KCgoKT0+e2xldCBzLHI9YyhcIkNMU1wiLDApO2NvbnN0IGE9ZCh0LGgpLHU9ZT0+e2Zvcihjb25zdCB0IG9mIGUpYS5oKHQpO2EuaT5yLnZhbHVlJiYoci52YWx1ZT1hLmksci5lbnRyaWVzPWEubyxzKCkpfSxsPWYoXCJsYXlvdXQtc2hpZnRcIix1KTtsJiYocz1pKGUscixFLHQucmVwb3J0QWxsQ2hhbmdlcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIiwoKCk9PntcImhpZGRlblwiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlJiYodShsLnRha2VSZWNvcmRzKCkpLHMoITApKX0pKSxuKCgoKT0+e2EuaT0wLHI9YyhcIkNMU1wiLDApLHM9aShlLHIsRSx0LnJlcG9ydEFsbENoYW5nZXMpLG8oKCgpPT5zKCkpKX0pKSxzZXRUaW1lb3V0KHMpKX0pKSl9LGUub25GQ1A9VCxlLm9uSU5QPShlLHQ9e30pPT57Z2xvYmFsVGhpcy5QZXJmb3JtYW5jZUV2ZW50VGltaW5nJiZcImludGVyYWN0aW9uSWRcImluIFBlcmZvcm1hbmNlRXZlbnRUaW1pbmcucHJvdG90eXBlJiZiKCgoKT0+e0YoKTtsZXQgbyxzPWMoXCJJTlBcIik7Y29uc3Qgcj1kKHQsQSksYT1lPT57QigoKCk9Pntmb3IoY29uc3QgdCBvZiBlKXIuaCh0KTtjb25zdCB0PXIuUCgpO3QmJnQuVCE9PXMudmFsdWUmJihzLnZhbHVlPXQuVCxzLmVudHJpZXM9dC5lbnRyaWVzLG8oKSl9KSl9LGg9ZihcImV2ZW50XCIsYSx7ZHVyYXRpb25UaHJlc2hvbGQ6dC5kdXJhdGlvblRocmVzaG9sZD8/NDB9KTtvPWkoZSxzLE4sdC5yZXBvcnRBbGxDaGFuZ2VzKSxoJiYoaC5vYnNlcnZlKHt0eXBlOlwiZmlyc3QtaW5wdXRcIixidWZmZXJlZDohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsKCgpPT57XCJoaWRkZW5cIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmKGEoaC50YWtlUmVjb3JkcygpKSxvKCEwKSl9KSksbigoKCk9PntyLnAoKSxzPWMoXCJJTlBcIiksbz1pKGUscyxOLHQucmVwb3J0QWxsQ2hhbmdlcyl9KSkpfSkpfSxlLm9uTENQPShlLHQ9e30pPT57YigoKCk9Pntjb25zdCBzPXkoKTtsZXQgYSxoPWMoXCJMQ1BcIik7Y29uc3QgbD1kKHQsUyksbT1lPT57dC5yZXBvcnRBbGxDaGFuZ2VzfHwoZT1lLnNsaWNlKC0xKSk7Zm9yKGNvbnN0IHQgb2YgZSlsLmgodCksdC5zdGFydFRpbWU8cy5maXJzdEhpZGRlblRpbWUmJihoLnZhbHVlPU1hdGgubWF4KHQuc3RhcnRUaW1lLXIoKSwwKSxoLmVudHJpZXM9W3RdLGEoKSl9LGc9ZihcImxhcmdlc3QtY29udGVudGZ1bC1wYWludFwiLG0pO2lmKGcpe2E9aShlLGgscSx0LnJlcG9ydEFsbENoYW5nZXMpO2NvbnN0IHM9dSgoKCk9PnttKGcudGFrZVJlY29yZHMoKSksZy5kaXNjb25uZWN0KCksYSghMCl9KSk7Zm9yKGNvbnN0IGUgb2ZbXCJrZXlkb3duXCIsXCJjbGlja1wiLFwidmlzaWJpbGl0eWNoYW5nZVwiXSlhZGRFdmVudExpc3RlbmVyKGUsKCgpPT5CKHMpKSx7Y2FwdHVyZTohMCxvbmNlOiEwfSk7bigobj0+e2g9YyhcIkxDUFwiKSxhPWkoZSxoLHEsdC5yZXBvcnRBbGxDaGFuZ2VzKSxvKCgoKT0+e2gudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktbi50aW1lU3RhbXAsYSghMCl9KSl9KSl9fSkpfSxlLm9uVFRGQj0oZSx0PXt9KT0+e2xldCBvPWMoXCJUVEZCXCIpLGE9aShlLG8sTyx0LnJlcG9ydEFsbENoYW5nZXMpO1YoKCgpPT57Y29uc3QgZD1zKCk7ZCYmKG8udmFsdWU9TWF0aC5tYXgoZC5yZXNwb25zZVN0YXJ0LXIoKSwwKSxvLmVudHJpZXM9W2RdLGEoITApLG4oKCgpPT57bz1jKFwiVFRGQlwiLDApLGE9aShlLG8sTyx0LnJlcG9ydEFsbENoYW5nZXMpLGEoITApfSkpKX0pKX0sZX0oe30pO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IEFkb2JlLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXJcbiAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OU1xuICogT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcywgaW1wb3J0L25vLXJlbGF0aXZlLXBhY2thZ2VzLCBuby11bnVzZWQtdmFyc1xuaW1wb3J0ICogYXMgd2ViVml0YWxzIGZyb20gJy4uL25vZGVfbW9kdWxlcy93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ1dWVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgZmZsYWdzLFxufSkge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3d2U2NyaXB0ID0gbmV3IFVSTCgnLnJ1bS93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJywgc2FtcGxlUlVNLmJhc2VVUkwpLmhyZWY7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7Y3d2U2NyaXB0fVwiXWApKSB7XG4gICAgICAgIC8vIHdlYiB2aXRhbHMgc2NyaXB0IGhhcyBiZWVuIGxvYWRlZCBhbHJlYWR5XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnNyYyA9IGN3dlNjcmlwdDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlQ1dWID0gKG1lYXN1cmVtZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHsgY3d2OiB7fSB9O1xuICAgICAgICAgIGRhdGEuY3d2W21lYXN1cmVtZW50Lm5hbWVdID0gbWVhc3VyZW1lbnQudmFsdWU7XG4gICAgICAgICAgaWYgKG1lYXN1cmVtZW50Lm5hbWUgPT09ICdMQ1AnICYmIG1lYXN1cmVtZW50LmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBtZWFzdXJlbWVudC5lbnRyaWVzLnBvcCgpO1xuICAgICAgICAgICAgZGF0YS50YXJnZXQgPSB0YXJnZXRTZWxlY3RvcihlbGVtZW50KTtcbiAgICAgICAgICAgIGRhdGEuc291cmNlID0gc291cmNlU2VsZWN0b3IoZWxlbWVudCkgfHwgKGVsZW1lbnQgJiYgZWxlbWVudC5vdXRlckhUTUwuc2xpY2UoMCwgMzApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2FtcGxlUlVNKCdjd3YnLCBkYXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpc0VhZ2VyID0gKG1ldHJpYykgPT4gWydDTFMnLCAnTENQJ10uaW5jbHVkZXMobWV0cmljKTtcblxuICAgICAgICAvLyBXaGVuIGxvYWRpbmcgYHdlYi12aXRhbHNgIHVzaW5nIGEgY2xhc3NpYyBzY3JpcHQsIGFsbCB0aGUgcHVibGljXG4gICAgICAgIC8vIG1ldGhvZHMgY2FuIGJlIGZvdW5kIG9uIHRoZSBgd2ViVml0YWxzYCBnbG9iYWwgbmFtZXNwYWNlLlxuICAgICAgICBbJ0lOUCcsICdUVEZCJywgJ0NMUycsICdMQ1AnXS5mb3JFYWNoKChtZXRyaWMpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXRyaWNGbiA9IHdpbmRvdy53ZWJWaXRhbHNbYG9uJHttZXRyaWN9YF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBtZXRyaWNGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IG9wdHMgPSB7fTtcbiAgICAgICAgICAgIGZmbGFncy5lbmFibGVkKCdlYWdlcmN3dicsICgpID0+IHtcbiAgICAgICAgICAgICAgb3B0cyA9IHsgcmVwb3J0QWxsQ2hhbmdlczogaXNFYWdlcihtZXRyaWMpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1ldHJpY0ZuKHN0b3JlQ1dWLCBvcHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICB9XG4gIH0sIDIwMDApOyAvLyB3YWl0IGZvciBkZWxheWVkXG59XG4iXSwibmFtZXMiOlsiZSIsInQiLCJuIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBlcnNpc3RlZCIsInRpbWVTdGFtcCIsImkiLCJvIiwicyIsInIiLCJ2YWx1ZSIsImRlbHRhIiwicmF0aW5nIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicGVyZm9ybWFuY2UiLCJnZXRFbnRyaWVzQnlUeXBlIiwicmVzcG9uc2VTdGFydCIsIm5vdyIsImFjdGl2YXRpb25TdGFydCIsImMiLCJkb2N1bWVudCIsInByZXJlbmRlcmluZyIsIndhc0Rpc2NhcmRlZCIsInR5cGUiLCJyZXBsYWNlIiwibmFtZSIsImVudHJpZXMiLCJpZCIsIkRhdGUiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJuYXZpZ2F0aW9uVHlwZSIsImEiLCJXZWFrTWFwIiwiZCIsImdldCIsInNldCIsImgiLCJoYWRSZWNlbnRJbnB1dCIsImF0Iiwic3RhcnRUaW1lIiwicHVzaCIsImYiLCJQZXJmb3JtYW5jZU9ic2VydmVyIiwic3VwcG9ydGVkRW50cnlUeXBlcyIsImluY2x1ZGVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZ2V0RW50cmllcyIsIm9ic2VydmUiLCJidWZmZXJlZCIsInUiLCJsIiwibSIsInZpc2liaWxpdHlTdGF0ZSIsImciLCJwIiwidiIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ5IiwiZ2xvYmFsVGhpcyIsImZpbHRlciIsInNldFRpbWVvdXQiLCJmaXJzdEhpZGRlblRpbWUiLCJiIiwiUCIsIlQiLCJkaXNjb25uZWN0IiwibWF4IiwicmVwb3J0QWxsQ2hhbmdlcyIsIkUiLCJfIiwiTCIsIk0iLCJ3IiwiaW50ZXJhY3Rpb25JZCIsIm1pbiIsIkMiLCJJIiwiaW50ZXJhY3Rpb25Db3VudCIsIkYiLCJkdXJhdGlvblRocmVzaG9sZCIsImsiLCJBIiwiTWFwIiwibGVuZ3RoIiwiY2xlYXIiLCJlbnRyeVR5cGUiLCJkdXJhdGlvbiIsInNvcnQiLCJzcGxpY2UiLCJkZWxldGUiLCJCIiwicmVxdWVzdElkbGVDYWxsYmFjayIsIm9uY2UiLCJOIiwiUyIsInEiLCJPIiwiViIsInJlYWR5U3RhdGUiLCJDTFNUaHJlc2hvbGRzIiwiRkNQVGhyZXNob2xkcyIsIklOUFRocmVzaG9sZHMiLCJMQ1BUaHJlc2hvbGRzIiwiVFRGQlRocmVzaG9sZHMiLCJvbkNMUyIsInRha2VSZWNvcmRzIiwib25GQ1AiLCJvbklOUCIsIlBlcmZvcm1hbmNlRXZlbnRUaW1pbmciLCJwcm90b3R5cGUiLCJvbkxDUCIsInNsaWNlIiwiY2FwdHVyZSIsIm9uVFRGQiIsImFkZENXVlRyYWNraW5nIiwic2FtcGxlUlVNIiwic291cmNlU2VsZWN0b3IiLCJ0YXJnZXRTZWxlY3RvciIsImZmbGFncyIsImN3dlNjcmlwdCIsIlVSTCIsImJhc2VVUkwiLCJocmVmIiwicXVlcnlTZWxlY3RvciIsInNjcmlwdCIsImNyZWF0ZUVsZW1lbnQiLCJzcmMiLCJvbmxvYWQiLCJzdG9yZUNXViIsIm1lYXN1cmVtZW50IiwiZGF0YSIsImN3diIsImVsZW1lbnQiLCJwb3AiLCJ0YXJnZXQiLCJzb3VyY2UiLCJvdXRlckhUTUwiLCJpc0VhZ2VyIiwibWV0cmljIiwiZm9yRWFjaCIsIm1ldHJpY0ZuIiwid2luZG93Iiwid2ViVml0YWxzIiwib3B0cyIsImVuYWJsZWQiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Q0FBYyxVQUFTQSxDQUFDLEVBQUM7O0VBQWMsSUFBSUMsQ0FBQyxHQUFDLEVBQUU7RUFBQyxNQUFNQyxDQUFDLEdBQUNGLENBQUMsSUFBRTtBQUFDRyxNQUFBQSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVELENBQUMsSUFBRTtBQUFDQSxRQUFBQSxDQUFDLENBQUNFLFNBQVMsS0FBR0gsQ0FBQyxHQUFDQyxDQUFDLENBQUNHLFNBQVMsRUFBQ0wsQ0FBQyxDQUFDRSxDQUFDLENBQUMsQ0FBQztNQUFBLENBQUMsRUFBRSxJQUFFLENBQUM7SUFBQSxDQUFDO0lBQUNJLENBQUMsR0FBQ0EsQ0FBQ04sQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0ksQ0FBQyxLQUFHO01BQUMsSUFBSUMsQ0FBQyxFQUFDQyxDQUFDO0FBQUMsTUFBQSxPQUFPQyxDQUFDLElBQUU7QUFBQ1IsUUFBQUEsQ0FBQyxDQUFDUyxLQUFLLElBQUUsQ0FBQyxLQUFHRCxDQUFDLElBQUVILENBQUMsQ0FBQyxLQUFH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
|
package/src/plugins/cwv.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
81a070324c3b6699b07f9f5d4a04d9e2
|
package/src/plugins/form.map.js
CHANGED
|
@@ -55,4 +55,4 @@ function addFormTracking({
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export { addFormTracking as default, getSubmitType };
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvZm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFN1Ym1pdFR5cGUgPSAoZWwpID0+IHtcbiAgaWYgKCFlbCB8fCBlbC50YWdOYW1lICE9PSAnRk9STScpIHJldHVybiB1bmRlZmluZWQ7XG4gIC8vIGlmIHRoZSBmb3JtIGhhcyBhIHNlYXJjaCByb2xlIG9yIGEgc2VhcmNoIGZpZWxkLCBpdCdzIGEgc2VhcmNoIGZvcm1cbiAgaWYgKGVsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnc2VhcmNoJ1xuICAgIHx8IGVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3JvbGU9XCJzZWFyY2hib3hcIl0nKSkgcmV0dXJuICdzZWFyY2gnO1xuICAvLyBpZiB0aGUgZm9ybSBoYXMgb25lIHBhc3N3b3JkIGlucHV0LCBpdCdzIGEgbG9naW4gZm9ybVxuICAvLyBpZiB0aGUgZm9ybSBoYXMgbW9yZSB0aGFuIG9uZSBwYXNzd29yZCBpbnB1dCwgaXQncyBhIHNpZ251cCBmb3JtXG4gIGNvbnN0IHB3Q291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nKS5sZW5ndGg7XG4gIGlmIChwd0NvdW50ID09PSAxKSByZXR1cm4gJ2xvZ2luJztcbiAgaWYgKHB3Q291bnQgPiAxKSByZXR1cm4gJ3NpZ251cCc7XG4gIHJldHVybiAnZm9ybXN1Ym1pdCc7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRGb3JtVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgY29udGV4dCwgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsXG59KSB7XG4gIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKSA9PiBzYW1wbGVSVU0oZ2V0U3VibWl0VHlwZShlLnRhcmdldCksIHsgdGFyZ2V0OiB0YXJnZXRTZWxlY3RvcihlLnRhcmdldCksIHNvdXJjZTogc291cmNlU2VsZWN0b3IoZS50YXJnZXQpIH0pLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoJ3ZpZXdibG9jaycpLm9ic2VydmUoZm9ybSk7XG4gICAgbGV0IGxhc3RTb3VyY2U7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgaWYgKGUudGFyZ2V0LmNoZWNrVmlzaWJpbGl0eSAmJiBlLnRhcmdldC5jaGVja1Zpc2liaWxpdHkoKSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBzb3VyY2VTZWxlY3RvcihlLnRhcmdldCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IGxhc3RTb3VyY2UpIHtcbiAgICAgICAgICBzYW1wbGVSVU0oJ2ZpbGwnLCB7IHNvdXJjZSB9KTtcbiAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgKGUpID0+
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvZm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFN1Ym1pdFR5cGUgPSAoZWwpID0+IHtcbiAgaWYgKCFlbCB8fCBlbC50YWdOYW1lICE9PSAnRk9STScpIHJldHVybiB1bmRlZmluZWQ7XG4gIC8vIGlmIHRoZSBmb3JtIGhhcyBhIHNlYXJjaCByb2xlIG9yIGEgc2VhcmNoIGZpZWxkLCBpdCdzIGEgc2VhcmNoIGZvcm1cbiAgaWYgKGVsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnc2VhcmNoJ1xuICAgIHx8IGVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3JvbGU9XCJzZWFyY2hib3hcIl0nKSkgcmV0dXJuICdzZWFyY2gnO1xuICAvLyBpZiB0aGUgZm9ybSBoYXMgb25lIHBhc3N3b3JkIGlucHV0LCBpdCdzIGEgbG9naW4gZm9ybVxuICAvLyBpZiB0aGUgZm9ybSBoYXMgbW9yZSB0aGFuIG9uZSBwYXNzd29yZCBpbnB1dCwgaXQncyBhIHNpZ251cCBmb3JtXG4gIGNvbnN0IHB3Q291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nKS5sZW5ndGg7XG4gIGlmIChwd0NvdW50ID09PSAxKSByZXR1cm4gJ2xvZ2luJztcbiAgaWYgKHB3Q291bnQgPiAxKSByZXR1cm4gJ3NpZ251cCc7XG4gIHJldHVybiAnZm9ybXN1Ym1pdCc7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRGb3JtVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgY29udGV4dCwgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsXG59KSB7XG4gIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKSA9PiBzYW1wbGVSVU0oZ2V0U3VibWl0VHlwZShlLnRhcmdldCksIHsgdGFyZ2V0OiB0YXJnZXRTZWxlY3RvcihlLnRhcmdldCksIHNvdXJjZTogc291cmNlU2VsZWN0b3IoZS50YXJnZXQpIH0pLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoJ3ZpZXdibG9jaycpLm9ic2VydmUoZm9ybSk7XG4gICAgbGV0IGxhc3RTb3VyY2U7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgaWYgKGUudGFyZ2V0LmNoZWNrVmlzaWJpbGl0eSAmJiBlLnRhcmdldC5jaGVja1Zpc2liaWxpdHkoKSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBzb3VyY2VTZWxlY3RvcihlLnRhcmdldCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IGxhc3RTb3VyY2UpIHtcbiAgICAgICAgICBzYW1wbGVSVU0oJ2ZpbGwnLCB7IHNvdXJjZSB9KTtcbiAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgKGUpID0+IHtcbiAgICAgIGlmIChbJ0lOUFVUJywgJ1RFWFRBUkVBJywgJ1NFTEVDVCcsICdCVVRUT04nXS5pbmNsdWRlcyhlLnRhcmdldC50YWdOYW1lKVxuICAgICAgICB8fCBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgc2FtcGxlUlVNKCdjbGljaycsIHsgc291cmNlOiBzb3VyY2VTZWxlY3RvcihlLnRhcmdldCkgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImdldFN1Ym1pdFR5cGUiLCJlbCIsInRhZ05hbWUiLCJ1bmRlZmluZWQiLCJnZXRBdHRyaWJ1dGUiLCJxdWVyeVNlbGVjdG9yIiwicHdDb3VudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJhZGRGb3JtVHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2VTZWxlY3RvciIsInRhcmdldFNlbGVjdG9yIiwiY29udGV4dCIsImdldEludGVyc2VjdGlvbk9ic2VydmVyIiwiZm9yRWFjaCIsImZvcm0iLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsInRhcmdldCIsInNvdXJjZSIsIm9uY2UiLCJvYnNlcnZlIiwibGFzdFNvdXJjZSIsImNoZWNrVmlzaWJpbGl0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
|