vitest 0.5.9 → 0.6.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/dist/chunk-api-setup.8a83fa48.js +4443 -0
- package/dist/chunk-constants.a82c3238.js +32 -0
- package/dist/chunk-defaults.8d4c2fa4.js +148 -0
- package/dist/chunk-install-pkg.ba2381b8.js +1643 -0
- package/dist/chunk-integrations-globals.8b635704.js +24 -0
- package/dist/chunk-magic-string.d5e0e473.js +1408 -0
- package/dist/chunk-runtime-chain.d117aaa7.js +7035 -0
- package/dist/chunk-runtime-rpc.1832c38c.js +1 -1
- package/dist/chunk-utils-base.a107f2b1.js +409 -0
- package/dist/chunk-utils-source-map.bc814f37.js +4648 -0
- package/dist/chunk-vite-node-externalize.feaddbac.js +10966 -0
- package/dist/chunk-vite-node-utils.4a2f9073.js +9451 -0
- package/dist/cli.js +13 -14
- package/dist/config.d.ts +16 -1
- package/dist/entry.js +51 -1085
- package/dist/index.d.ts +10 -2
- package/dist/index.js +8 -6
- package/dist/jest-mock.js +1 -1
- package/dist/node.d.ts +16 -1
- package/dist/node.js +11 -12
- package/dist/{vendor-_commonjsHelpers.91d4f591.js → vendor-_commonjsHelpers.edc3a5f0.js} +2 -2
- package/dist/vendor-index.a89597d0.js +1109 -0
- package/dist/vendor-index.ee829ed6.js +5708 -0
- package/dist/worker.js +11 -7
- package/importMeta.d.ts +4 -0
- package/package.json +11 -8
- package/dist/chunk-api-setup.6f91f7b5.js +0 -4444
- package/dist/chunk-constants.a1a50d89.js +0 -32
- package/dist/chunk-defaults.366529f7.js +0 -1390
- package/dist/chunk-install-pkg.c2f386d1.js +0 -1643
- package/dist/chunk-integrations-globals.cf9f400d.js +0 -24
- package/dist/chunk-magic-string.6c8f4a10.js +0 -1361
- package/dist/chunk-runtime-chain.2a787014.js +0 -5946
- package/dist/chunk-runtime-hooks.d42c0b7c.js +0 -42
- package/dist/chunk-utils-base.68f100c1.js +0 -225
- package/dist/chunk-utils-source-map.38ddd54e.js +0 -3407
- package/dist/chunk-vite-node-externalize.328676bc.js +0 -10799
- package/dist/chunk-vite-node-utils.f2f4fe4b.js +0 -9451
- package/dist/vendor-index.665a6ba4.js +0 -5708
- package/dist/vendor-index.76be1f4d.js +0 -187
- package/dist/vendor-index.91d2a0e5.js +0 -1109
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
|
|
3
|
-
function normalizeWindowsPath(input = "") {
|
|
4
|
-
if (!input.includes("\\")) {
|
|
5
|
-
return input;
|
|
6
|
-
}
|
|
7
|
-
return input.replace(/\\/g, "/");
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const _UNC_REGEX = /^[/][/]/;
|
|
11
|
-
const _UNC_DRIVE_REGEX = /^[/][/]([.]{1,2}[/])?([a-zA-Z]):[/]/;
|
|
12
|
-
const _IS_ABSOLUTE_RE = /^\/|^\\|^[a-zA-Z]:[/\\]/;
|
|
13
|
-
const sep = "/";
|
|
14
|
-
const delimiter = ":";
|
|
15
|
-
const normalize = function(path2) {
|
|
16
|
-
if (path2.length === 0) {
|
|
17
|
-
return ".";
|
|
18
|
-
}
|
|
19
|
-
path2 = normalizeWindowsPath(path2);
|
|
20
|
-
const isUNCPath = path2.match(_UNC_REGEX);
|
|
21
|
-
const hasUNCDrive = isUNCPath && path2.match(_UNC_DRIVE_REGEX);
|
|
22
|
-
const isPathAbsolute = isAbsolute(path2);
|
|
23
|
-
const trailingSeparator = path2[path2.length - 1] === "/";
|
|
24
|
-
path2 = normalizeString(path2, !isPathAbsolute);
|
|
25
|
-
if (path2.length === 0) {
|
|
26
|
-
if (isPathAbsolute) {
|
|
27
|
-
return "/";
|
|
28
|
-
}
|
|
29
|
-
return trailingSeparator ? "./" : ".";
|
|
30
|
-
}
|
|
31
|
-
if (trailingSeparator) {
|
|
32
|
-
path2 += "/";
|
|
33
|
-
}
|
|
34
|
-
if (isUNCPath) {
|
|
35
|
-
if (hasUNCDrive) {
|
|
36
|
-
return `//./${path2}`;
|
|
37
|
-
}
|
|
38
|
-
return `//${path2}`;
|
|
39
|
-
}
|
|
40
|
-
return isPathAbsolute && !isAbsolute(path2) ? `/${path2}` : path2;
|
|
41
|
-
};
|
|
42
|
-
const join = function(...args) {
|
|
43
|
-
if (args.length === 0) {
|
|
44
|
-
return ".";
|
|
45
|
-
}
|
|
46
|
-
let joined;
|
|
47
|
-
for (let i = 0; i < args.length; ++i) {
|
|
48
|
-
const arg = args[i];
|
|
49
|
-
if (arg.length > 0) {
|
|
50
|
-
if (joined === void 0) {
|
|
51
|
-
joined = arg;
|
|
52
|
-
} else {
|
|
53
|
-
joined += `/${arg}`;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (joined === void 0) {
|
|
58
|
-
return ".";
|
|
59
|
-
}
|
|
60
|
-
return normalize(joined);
|
|
61
|
-
};
|
|
62
|
-
const resolve = function(...args) {
|
|
63
|
-
args = args.map((arg) => normalizeWindowsPath(arg));
|
|
64
|
-
let resolvedPath = "";
|
|
65
|
-
let resolvedAbsolute = false;
|
|
66
|
-
for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
67
|
-
const path2 = i >= 0 ? args[i] : process.cwd();
|
|
68
|
-
if (path2.length === 0) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
resolvedPath = `${path2}/${resolvedPath}`;
|
|
72
|
-
resolvedAbsolute = isAbsolute(path2);
|
|
73
|
-
}
|
|
74
|
-
resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
|
|
75
|
-
if (resolvedAbsolute && !isAbsolute(resolvedPath)) {
|
|
76
|
-
return `/${resolvedPath}`;
|
|
77
|
-
}
|
|
78
|
-
return resolvedPath.length > 0 ? resolvedPath : ".";
|
|
79
|
-
};
|
|
80
|
-
function normalizeString(path2, allowAboveRoot) {
|
|
81
|
-
let res = "";
|
|
82
|
-
let lastSegmentLength = 0;
|
|
83
|
-
let lastSlash = -1;
|
|
84
|
-
let dots = 0;
|
|
85
|
-
let char = null;
|
|
86
|
-
for (let i = 0; i <= path2.length; ++i) {
|
|
87
|
-
if (i < path2.length) {
|
|
88
|
-
char = path2[i];
|
|
89
|
-
} else if (char === "/") {
|
|
90
|
-
break;
|
|
91
|
-
} else {
|
|
92
|
-
char = "/";
|
|
93
|
-
}
|
|
94
|
-
if (char === "/") {
|
|
95
|
-
if (lastSlash === i - 1 || dots === 1) ; else if (dots === 2) {
|
|
96
|
-
if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
|
|
97
|
-
if (res.length > 2) {
|
|
98
|
-
const lastSlashIndex = res.lastIndexOf("/");
|
|
99
|
-
if (lastSlashIndex === -1) {
|
|
100
|
-
res = "";
|
|
101
|
-
lastSegmentLength = 0;
|
|
102
|
-
} else {
|
|
103
|
-
res = res.slice(0, lastSlashIndex);
|
|
104
|
-
lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
|
|
105
|
-
}
|
|
106
|
-
lastSlash = i;
|
|
107
|
-
dots = 0;
|
|
108
|
-
continue;
|
|
109
|
-
} else if (res.length !== 0) {
|
|
110
|
-
res = "";
|
|
111
|
-
lastSegmentLength = 0;
|
|
112
|
-
lastSlash = i;
|
|
113
|
-
dots = 0;
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
if (allowAboveRoot) {
|
|
118
|
-
res += res.length > 0 ? "/.." : "..";
|
|
119
|
-
lastSegmentLength = 2;
|
|
120
|
-
}
|
|
121
|
-
} else {
|
|
122
|
-
if (res.length > 0) {
|
|
123
|
-
res += `/${path2.slice(lastSlash + 1, i)}`;
|
|
124
|
-
} else {
|
|
125
|
-
res = path2.slice(lastSlash + 1, i);
|
|
126
|
-
}
|
|
127
|
-
lastSegmentLength = i - lastSlash - 1;
|
|
128
|
-
}
|
|
129
|
-
lastSlash = i;
|
|
130
|
-
dots = 0;
|
|
131
|
-
} else if (char === "." && dots !== -1) {
|
|
132
|
-
++dots;
|
|
133
|
-
} else {
|
|
134
|
-
dots = -1;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return res;
|
|
138
|
-
}
|
|
139
|
-
const isAbsolute = function(p) {
|
|
140
|
-
return _IS_ABSOLUTE_RE.test(p);
|
|
141
|
-
};
|
|
142
|
-
const toNamespacedPath = function(p) {
|
|
143
|
-
return normalizeWindowsPath(p);
|
|
144
|
-
};
|
|
145
|
-
const extname = function(p) {
|
|
146
|
-
return path.posix.extname(normalizeWindowsPath(p));
|
|
147
|
-
};
|
|
148
|
-
const relative = function(from, to) {
|
|
149
|
-
return path.posix.relative(normalizeWindowsPath(from), normalizeWindowsPath(to));
|
|
150
|
-
};
|
|
151
|
-
const dirname = function(p) {
|
|
152
|
-
return path.posix.dirname(normalizeWindowsPath(p));
|
|
153
|
-
};
|
|
154
|
-
const format = function(p) {
|
|
155
|
-
return normalizeWindowsPath(path.posix.format(p));
|
|
156
|
-
};
|
|
157
|
-
const basename = function(p, ext) {
|
|
158
|
-
return path.posix.basename(normalizeWindowsPath(p), ext);
|
|
159
|
-
};
|
|
160
|
-
const parse = function(p) {
|
|
161
|
-
return path.posix.parse(normalizeWindowsPath(p));
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
const _path = /*#__PURE__*/Object.freeze({
|
|
165
|
-
__proto__: null,
|
|
166
|
-
sep: sep,
|
|
167
|
-
delimiter: delimiter,
|
|
168
|
-
normalize: normalize,
|
|
169
|
-
join: join,
|
|
170
|
-
resolve: resolve,
|
|
171
|
-
normalizeString: normalizeString,
|
|
172
|
-
isAbsolute: isAbsolute,
|
|
173
|
-
toNamespacedPath: toNamespacedPath,
|
|
174
|
-
extname: extname,
|
|
175
|
-
relative: relative,
|
|
176
|
-
dirname: dirname,
|
|
177
|
-
format: format,
|
|
178
|
-
basename: basename,
|
|
179
|
-
parse: parse
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
const index = {
|
|
183
|
-
..._path
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
export { resolve as a, basename as b, index as c, dirname as d, isAbsolute as i, relative as r };
|
|
187
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLWluZGV4Ljc2YmUxZjRkLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vcGF0aGVAMC4yLjAvbm9kZV9tb2R1bGVzL3BhdGhlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5mdW5jdGlvbiBub3JtYWxpemVXaW5kb3dzUGF0aChpbnB1dCA9IFwiXCIpIHtcbiAgaWYgKCFpbnB1dC5pbmNsdWRlcyhcIlxcXFxcIikpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xufVxuXG5jb25zdCBfVU5DX1JFR0VYID0gL15bL11bL10vO1xuY29uc3QgX1VOQ19EUklWRV9SRUdFWCA9IC9eWy9dWy9dKFsuXXsxLDJ9Wy9dKT8oW2EtekEtWl0pOlsvXS87XG5jb25zdCBfSVNfQUJTT0xVVEVfUkUgPSAvXlxcL3xeXFxcXHxeW2EtekEtWl06Wy9cXFxcXS87XG5jb25zdCBzZXAgPSBcIi9cIjtcbmNvbnN0IGRlbGltaXRlciA9IFwiOlwiO1xuY29uc3Qgbm9ybWFsaXplID0gZnVuY3Rpb24ocGF0aDIpIHtcbiAgaWYgKHBhdGgyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBcIi5cIjtcbiAgfVxuICBwYXRoMiA9IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHBhdGgyKTtcbiAgY29uc3QgaXNVTkNQYXRoID0gcGF0aDIubWF0Y2goX1VOQ19SRUdFWCk7XG4gIGNvbnN0IGhhc1VOQ0RyaXZlID0gaXNVTkNQYXRoICYmIHBhdGgyLm1hdGNoKF9VTkNfRFJJVkVfUkVHRVgpO1xuICBjb25zdCBpc1BhdGhBYnNvbHV0ZSA9IGlzQWJzb2x1dGUocGF0aDIpO1xuICBjb25zdCB0cmFpbGluZ1NlcGFyYXRvciA9IHBhdGgyW3BhdGgyLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgcGF0aDIgPSBub3JtYWxpemVTdHJpbmcocGF0aDIsICFpc1BhdGhBYnNvbHV0ZSk7XG4gIGlmIChwYXRoMi5sZW5ndGggPT09IDApIHtcbiAgICBpZiAoaXNQYXRoQWJzb2x1dGUpIHtcbiAgICAgIHJldHVybiBcIi9cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYWlsaW5nU2VwYXJhdG9yID8gXCIuL1wiIDogXCIuXCI7XG4gIH1cbiAgaWYgKHRyYWlsaW5nU2VwYXJhdG9yKSB7XG4gICAgcGF0aDIgKz0gXCIvXCI7XG4gIH1cbiAgaWYgKGlzVU5DUGF0aCkge1xuICAgIGlmIChoYXNVTkNEcml2ZSkge1xuICAgICAgcmV0dXJuIGAvLy4vJHtwYXRoMn1gO1xuICAgIH1cbiAgICByZXR1cm4gYC8vJHtwYXRoMn1gO1xuICB9XG4gIHJldHVybiBpc1BhdGhBYnNvbHV0ZSAmJiAhaXNBYnNvbHV0ZShwYXRoMikgPyBgLyR7cGF0aDJ9YCA6IHBhdGgyO1xufTtcbmNvbnN0IGpvaW4gPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBcIi5cIjtcbiAgfVxuICBsZXQgam9pbmVkO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBhcmcgPSBhcmdzW2ldO1xuICAgIGlmIChhcmcubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKGpvaW5lZCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIGpvaW5lZCA9IGFyZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGpvaW5lZCArPSBgLyR7YXJnfWA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChqb2luZWQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBcIi5cIjtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplKGpvaW5lZCk7XG59O1xuY29uc3QgcmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgYXJncyA9IGFyZ3MubWFwKChhcmcpID0+IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKGFyZykpO1xuICBsZXQgcmVzb2x2ZWRQYXRoID0gXCJcIjtcbiAgbGV0IHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IGFyZ3MubGVuZ3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7XG4gICAgY29uc3QgcGF0aDIgPSBpID49IDAgPyBhcmdzW2ldIDogcHJvY2Vzcy5jd2QoKTtcbiAgICBpZiAocGF0aDIubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcmVzb2x2ZWRQYXRoID0gYCR7cGF0aDJ9LyR7cmVzb2x2ZWRQYXRofWA7XG4gICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IGlzQWJzb2x1dGUocGF0aDIpO1xuICB9XG4gIHJlc29sdmVkUGF0aCA9IG5vcm1hbGl6ZVN0cmluZyhyZXNvbHZlZFBhdGgsICFyZXNvbHZlZEFic29sdXRlKTtcbiAgaWYgKHJlc29sdmVkQWJzb2x1dGUgJiYgIWlzQWJzb2x1dGUocmVzb2x2ZWRQYXRoKSkge1xuICAgIHJldHVybiBgLyR7cmVzb2x2ZWRQYXRofWA7XG4gIH1cbiAgcmV0dXJuIHJlc29sdmVkUGF0aC5sZW5ndGggPiAwID8gcmVzb2x2ZWRQYXRoIDogXCIuXCI7XG59O1xuZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHBhdGgyLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzID0gXCJcIjtcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgbGV0IGxhc3RTbGFzaCA9IC0xO1xuICBsZXQgZG90cyA9IDA7XG4gIGxldCBjaGFyID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcGF0aDIubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoaSA8IHBhdGgyLmxlbmd0aCkge1xuICAgICAgY2hhciA9IHBhdGgyW2ldO1xuICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCIvXCIpIHtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGFyID0gXCIvXCI7XG4gICAgfVxuICAgIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgaWYgKGxhc3RTbGFzaCA9PT0gaSAtIDEgfHwgZG90cyA9PT0gMSkgOyBlbHNlIGlmIChkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChyZXMubGVuZ3RoIDwgMiB8fCBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fCByZXNbcmVzLmxlbmd0aCAtIDFdICE9PSBcIi5cIiB8fCByZXNbcmVzLmxlbmd0aCAtIDJdICE9PSBcIi5cIikge1xuICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgY29uc3QgbGFzdFNsYXNoSW5kZXggPSByZXMubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICByZXMgPSBcIlwiO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMgPSByZXMuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlcy5sZW5ndGggLSAxIC0gcmVzLmxhc3RJbmRleE9mKFwiL1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGk7XG4gICAgICAgICAgICBkb3RzID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgcmVzID0gXCJcIjtcbiAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGk7XG4gICAgICAgICAgICBkb3RzID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXMgKz0gcmVzLmxlbmd0aCA+IDAgPyBcIi8uLlwiIDogXCIuLlwiO1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzICs9IGAvJHtwYXRoMi5zbGljZShsYXN0U2xhc2ggKyAxLCBpKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcyA9IHBhdGgyLnNsaWNlKGxhc3RTbGFzaCArIDEsIGkpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gaSAtIGxhc3RTbGFzaCAtIDE7XG4gICAgICB9XG4gICAgICBsYXN0U2xhc2ggPSBpO1xuICAgICAgZG90cyA9IDA7XG4gICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi5cIiAmJiBkb3RzICE9PSAtMSkge1xuICAgICAgKytkb3RzO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb3RzID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5jb25zdCBpc0Fic29sdXRlID0gZnVuY3Rpb24ocCkge1xuICByZXR1cm4gX0lTX0FCU09MVVRFX1JFLnRlc3QocCk7XG59O1xuY29uc3QgdG9OYW1lc3BhY2VkUGF0aCA9IGZ1bmN0aW9uKHApIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHApO1xufTtcbmNvbnN0IGV4dG5hbWUgPSBmdW5jdGlvbihwKSB7XG4gIHJldHVybiBwYXRoLnBvc2l4LmV4dG5hbWUobm9ybWFsaXplV2luZG93c1BhdGgocCkpO1xufTtcbmNvbnN0IHJlbGF0aXZlID0gZnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgcmV0dXJuIHBhdGgucG9zaXgucmVsYXRpdmUobm9ybWFsaXplV2luZG93c1BhdGgoZnJvbSksIG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHRvKSk7XG59O1xuY29uc3QgZGlybmFtZSA9IGZ1bmN0aW9uKHApIHtcbiAgcmV0dXJuIHBhdGgucG9zaXguZGlybmFtZShub3JtYWxpemVXaW5kb3dzUGF0aChwKSk7XG59O1xuY29uc3QgZm9ybWF0ID0gZnVuY3Rpb24ocCkge1xuICByZXR1cm4gbm9ybWFsaXplV2luZG93c1BhdGgocGF0aC5wb3NpeC5mb3JtYXQocCkpO1xufTtcbmNvbnN0IGJhc2VuYW1lID0gZnVuY3Rpb24ocCwgZXh0KSB7XG4gIHJldHVybiBwYXRoLnBvc2l4LmJhc2VuYW1lKG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHApLCBleHQpO1xufTtcbmNvbnN0IHBhcnNlID0gZnVuY3Rpb24ocCkge1xuICByZXR1cm4gcGF0aC5wb3NpeC5wYXJzZShub3JtYWxpemVXaW5kb3dzUGF0aChwKSk7XG59O1xuXG5jb25zdCBfcGF0aCA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgX19wcm90b19fOiBudWxsLFxuICBzZXA6IHNlcCxcbiAgZGVsaW1pdGVyOiBkZWxpbWl0ZXIsXG4gIG5vcm1hbGl6ZTogbm9ybWFsaXplLFxuICBqb2luOiBqb2luLFxuICByZXNvbHZlOiByZXNvbHZlLFxuICBub3JtYWxpemVTdHJpbmc6IG5vcm1hbGl6ZVN0cmluZyxcbiAgaXNBYnNvbHV0ZTogaXNBYnNvbHV0ZSxcbiAgdG9OYW1lc3BhY2VkUGF0aDogdG9OYW1lc3BhY2VkUGF0aCxcbiAgZXh0bmFtZTogZXh0bmFtZSxcbiAgcmVsYXRpdmU6IHJlbGF0aXZlLFxuICBkaXJuYW1lOiBkaXJuYW1lLFxuICBmb3JtYXQ6IGZvcm1hdCxcbiAgYmFzZW5hbWU6IGJhc2VuYW1lLFxuICBwYXJzZTogcGFyc2Vcbn0pO1xuXG5jb25zdCBpbmRleCA9IHtcbiAgLi4uX3BhdGhcbn07XG5cbmV4cG9ydCB7IGJhc2VuYW1lLCBpbmRleCBhcyBkZWZhdWx0LCBkZWxpbWl0ZXIsIGRpcm5hbWUsIGV4dG5hbWUsIGZvcm1hdCwgaXNBYnNvbHV0ZSwgam9pbiwgbm9ybWFsaXplLCBub3JtYWxpemVTdHJpbmcsIHBh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
|