@plugjs/tsrun 0.4.29 → 0.5.1
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/cli.mjs +58 -56
- package/dist/loader-commonjs.cjs +189 -0
- package/dist/loader-module.mjs +212 -0
- package/dist/parser.mjs +0 -1
- package/dist/preload.mjs +5 -0
- package/dist/tsrun.mjs +61 -59
- package/package.json +7 -6
- package/src/cli.mts +81 -78
- package/src/loader-commonjs.cts +135 -0
- package/src/loader-module.mts +230 -0
- package/src/loader-shared.ts +220 -0
- package/src/preload.mts +5 -0
- package/dist/loader.mjs +0 -266
- package/src/loader.mts +0 -568
package/dist/cli.mjs
CHANGED
|
@@ -1001,33 +1001,45 @@ var lib_default = yargsParser;
|
|
|
1001
1001
|
var parser_default = lib_default;
|
|
1002
1002
|
|
|
1003
1003
|
// src/cli.mts
|
|
1004
|
-
function forceType(type) {
|
|
1005
|
-
const debug = _util.debuglog("plug:cli");
|
|
1006
|
-
const tsLoaderMarker = Symbol.for("plugjs:tsLoader");
|
|
1007
|
-
if (!(tsLoaderMarker in globalThis)) {
|
|
1008
|
-
throw new Error("TypeScript Loader not available");
|
|
1009
|
-
}
|
|
1010
|
-
debug(`Forcing type to "${type}"`);
|
|
1011
|
-
globalThis[tsLoaderMarker] = type;
|
|
1012
|
-
}
|
|
1013
1004
|
var yargsParser2 = parser_default;
|
|
1014
1005
|
function main(scriptUrl, callback) {
|
|
1006
|
+
const require2 = _module.createRequire(import.meta.url);
|
|
1015
1007
|
const debug = _util.debuglog("plug:cli");
|
|
1016
|
-
|
|
1017
|
-
const
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1008
|
+
process.setSourceMapsEnabled(true);
|
|
1009
|
+
const args = process.argv.slice(2).filter((arg) => {
|
|
1010
|
+
if (arg === "--force-esm") {
|
|
1011
|
+
process.env.__TS_LOADER_FORCE_TYPE = "module";
|
|
1012
|
+
return false;
|
|
1013
|
+
} else if (arg === "--force-cjs") {
|
|
1014
|
+
process.env.__TS_LOADER_FORCE_TYPE = "commonjs";
|
|
1015
|
+
return false;
|
|
1016
|
+
} else {
|
|
1017
|
+
return true;
|
|
1018
|
+
}
|
|
1019
|
+
});
|
|
1020
|
+
let typeScriptEnabled = false;
|
|
1021
|
+
if (typeof _module.register === "function") {
|
|
1022
|
+
debug("Enabling in-process TypeScript loader");
|
|
1023
|
+
_module.register("./loader-module.mjs", import.meta.url);
|
|
1024
|
+
require2("./loader-commonjs.cjs");
|
|
1025
|
+
process.execArgv.push(`--import=${require2.resolve("./preload.mjs")}`);
|
|
1026
|
+
typeScriptEnabled = true;
|
|
1027
|
+
}
|
|
1028
|
+
if (!typeScriptEnabled) {
|
|
1029
|
+
const cjsLoader = require2.resolve("./loader-commonjs.cjs");
|
|
1030
|
+
const esmLoader = require2.resolve("./loader-module.mjs");
|
|
1031
|
+
if (process.execArgv.includes(`--experimental-loader=${esmLoader}`)) {
|
|
1032
|
+
typeScriptEnabled = true;
|
|
1033
|
+
} else if (process.execArgv.includes(`--loader=${esmLoader}`)) {
|
|
1034
|
+
typeScriptEnabled = true;
|
|
1035
|
+
} else {
|
|
1036
|
+
process.execArgv.push(`--experimental-loader=${esmLoader}`);
|
|
1037
|
+
process.execArgv.push(`--require=${cjsLoader}`);
|
|
1038
|
+
process.execArgv.push("--no-warnings");
|
|
1039
|
+
typeScriptEnabled = false;
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
if (typeScriptEnabled) {
|
|
1031
1043
|
Promise.resolve().then(async () => {
|
|
1032
1044
|
process.exitCode = 0;
|
|
1033
1045
|
await callback(args);
|
|
@@ -1039,38 +1051,29 @@ function main(scriptUrl, callback) {
|
|
|
1039
1051
|
process.exit(2);
|
|
1040
1052
|
}, 5e3).unref();
|
|
1041
1053
|
});
|
|
1042
|
-
|
|
1043
|
-
const script = _url.fileURLToPath(scriptUrl);
|
|
1044
|
-
const execArgv = [...process.execArgv];
|
|
1045
|
-
if (!sourceMapsEnabled)
|
|
1046
|
-
execArgv.push("--enable-source-maps");
|
|
1047
|
-
if (!typeScriptEnabled) {
|
|
1048
|
-
const require2 = _module.createRequire(import.meta.url);
|
|
1049
|
-
const loader = require2.resolve("./loader.mjs");
|
|
1050
|
-
debug(`TypeScript loader resolved to "${loader}"`);
|
|
1051
|
-
execArgv.push(`--experimental-loader=${loader}`, "--no-warnings");
|
|
1052
|
-
}
|
|
1053
|
-
debug("Forking", script, ...process.argv.slice(2));
|
|
1054
|
-
const child = _childProcess.fork(script, [...process.argv.slice(2)], {
|
|
1055
|
-
stdio: ["inherit", "inherit", "inherit", "ipc"],
|
|
1056
|
-
execArgv
|
|
1057
|
-
});
|
|
1058
|
-
child.on("error", (error) => {
|
|
1059
|
-
console.log("Error respawning CLI", error);
|
|
1060
|
-
process.exit(1);
|
|
1061
|
-
});
|
|
1062
|
-
child.on("exit", (code, signal) => {
|
|
1063
|
-
if (signal) {
|
|
1064
|
-
console.log(`CLI process exited with signal ${signal}`);
|
|
1065
|
-
process.exit(1);
|
|
1066
|
-
} else if (typeof code !== "number") {
|
|
1067
|
-
console.log("CLI process failed for an unknown reason");
|
|
1068
|
-
process.exit(1);
|
|
1069
|
-
} else {
|
|
1070
|
-
process.exit(code);
|
|
1071
|
-
}
|
|
1072
|
-
});
|
|
1054
|
+
return;
|
|
1073
1055
|
}
|
|
1056
|
+
const script = _url.fileURLToPath(scriptUrl);
|
|
1057
|
+
debug("Forking", process.execPath, ...process.execArgv, script, ...process.argv.slice(2));
|
|
1058
|
+
const child = _childProcess.fork(script, [...process.argv.slice(2)], {
|
|
1059
|
+
stdio: ["inherit", "inherit", "inherit", "ipc"],
|
|
1060
|
+
execArgv: process.execArgv
|
|
1061
|
+
});
|
|
1062
|
+
child.on("error", (error) => {
|
|
1063
|
+
console.log("Error respawning CLI", error);
|
|
1064
|
+
process.exit(1);
|
|
1065
|
+
});
|
|
1066
|
+
child.on("exit", (code, signal) => {
|
|
1067
|
+
if (signal) {
|
|
1068
|
+
console.log(`CLI process exited with signal ${signal}`);
|
|
1069
|
+
process.exit(1);
|
|
1070
|
+
} else if (typeof code !== "number") {
|
|
1071
|
+
console.log("CLI process failed for an unknown reason");
|
|
1072
|
+
process.exit(1);
|
|
1073
|
+
} else {
|
|
1074
|
+
process.exit(code);
|
|
1075
|
+
}
|
|
1076
|
+
});
|
|
1074
1077
|
}
|
|
1075
1078
|
export {
|
|
1076
1079
|
main,
|
|
@@ -1116,4 +1119,3 @@ yargs-parser/build/lib/index.js:
|
|
|
1116
1119
|
* SPDX-License-Identifier: ISC
|
|
1117
1120
|
*)
|
|
1118
1121
|
*/
|
|
1119
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NsaS5tdHMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhcmdzLXBhcnNlci9idWlsZC9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhcmdzLXBhcnNlci9idWlsZC9saWIvc3RyaW5nLXV0aWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy95YXJncy1wYXJzZXIvYnVpbGQvbGliL3Rva2VuaXplLWFyZy1zdHJpbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhcmdzLXBhcnNlci9idWlsZC9saWIveWFyZ3MtcGFyc2VyLXR5cGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy95YXJncy1wYXJzZXIvYnVpbGQvbGliL3lhcmdzLXBhcnNlci5qcyIsICIuLi9zcmMvcGFyc2VyLm10cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7OztBQUNBLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8sYUFBYTtBQUNwQixPQUFPLFVBQVU7QUFDakIsT0FBTyxXQUFXOzs7QUNLbEIsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsV0FBVyxlQUFlOzs7QUNMNUIsU0FBUyxVQUFVLEtBQUs7QUFHM0IsUUFBTSxjQUFjLFFBQVEsSUFBSSxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVk7QUFDekUsTUFBSSxDQUFDLGFBQWE7QUFDZCxVQUFNLElBQUksWUFBWTtBQUFBLEVBQzFCO0FBQ0EsTUFBSSxJQUFJLFFBQVEsR0FBRyxNQUFNLE1BQU0sSUFBSSxRQUFRLEdBQUcsTUFBTSxJQUFJO0FBQ3BELFdBQU87QUFBQSxFQUNYLE9BQ0s7QUFDRCxRQUFJLFlBQVk7QUFDaEIsUUFBSSxlQUFlO0FBQ25CLFVBQU0saUJBQWlCLElBQUksTUFBTSxLQUFLO0FBQ3RDLGFBQVMsSUFBSSxpQkFBaUIsZUFBZSxDQUFDLEVBQUUsU0FBUyxHQUFHLElBQUksSUFBSSxRQUFRLEtBQUs7QUFDN0UsVUFBSSxNQUFNLElBQUksT0FBTyxDQUFDO0FBQ3RCLFVBQUksY0FBYztBQUNkLHVCQUFlO0FBQ2YsY0FBTSxJQUFJLFlBQVk7QUFBQSxNQUMxQjtBQUNBLFVBQUksTUFBTSxNQUFNLFFBQVEsT0FBTyxRQUFRLE1BQU07QUFDekMsdUJBQWU7QUFBQSxNQUNuQixXQUNTLFFBQVEsT0FBTyxRQUFRLEtBQUs7QUFDakMscUJBQWE7QUFBQSxNQUNqQjtBQUFBLElBQ0o7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUNKO0FBQ08sU0FBUyxXQUFXLEtBQUssWUFBWTtBQUN4QyxRQUFNLFlBQVksSUFBSSxZQUFZO0FBQ2xDLGVBQWEsY0FBYztBQUMzQixNQUFJLGVBQWU7QUFDbkIsV0FBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNqQyxVQUFNLFdBQVcsVUFBVSxPQUFPLENBQUM7QUFDbkMsVUFBTSxZQUFZLElBQUksT0FBTyxDQUFDO0FBQzlCLFFBQUksYUFBYSxhQUFhLElBQUksR0FBRztBQUNqQyxzQkFBZ0IsR0FBRyxVQUFVLEdBQUcsVUFBVSxPQUFPLENBQUMsQ0FBQztBQUFBLElBQ3ZELE9BQ0s7QUFDRCxzQkFBZ0I7QUFBQSxJQUNwQjtBQUFBLEVBQ0o7QUFDQSxTQUFPO0FBQ1g7QUFDTyxTQUFTLGdCQUFnQixHQUFHO0FBQy9CLE1BQUksTUFBTSxRQUFRLE1BQU07QUFDcEIsV0FBTztBQUVYLE1BQUksT0FBTyxNQUFNO0FBQ2IsV0FBTztBQUVYLE1BQUksaUJBQWlCLEtBQUssQ0FBQztBQUN2QixXQUFPO0FBRVgsTUFBSSxTQUFTLEtBQUssQ0FBQztBQUNmLFdBQU87QUFDWCxTQUFPLDRDQUE0QyxLQUFLLENBQUM7QUFDN0Q7OztBQzFETyxTQUFTLGtCQUFrQixXQUFXO0FBQ3pDLE1BQUksTUFBTSxRQUFRLFNBQVMsR0FBRztBQUMxQixXQUFPLFVBQVUsSUFBSSxPQUFLLE9BQU8sTUFBTSxXQUFXLElBQUksS0FBSyxDQUFDO0FBQUEsRUFDaEU7QUFDQSxjQUFZLFVBQVUsS0FBSztBQUMzQixNQUFJLElBQUk7QUFDUixNQUFJLFFBQVE7QUFDWixNQUFJLElBQUk7QUFDUixNQUFJLFVBQVU7QUFDZCxRQUFNLE9BQU8sQ0FBQztBQUNkLFdBQVMsS0FBSyxHQUFHLEtBQUssVUFBVSxRQUFRLE1BQU07QUFDMUMsWUFBUTtBQUNSLFFBQUksVUFBVSxPQUFPLEVBQUU7QUFFdkIsUUFBSSxNQUFNLE9BQU8sQ0FBQyxTQUFTO0FBQ3ZCLFVBQUksRUFBRSxVQUFVLE1BQU07QUFDbEI7QUFBQSxNQUNKO0FBQ0E7QUFBQSxJQUNKO0FBR0EsUUFBSSxNQUFNLFNBQVM7QUFDZixnQkFBVTtBQUFBLElBQ2QsWUFDVSxNQUFNLE9BQU8sTUFBTSxRQUFRLENBQUMsU0FBUztBQUMzQyxnQkFBVTtBQUFBLElBQ2Q7QUFDQSxRQUFJLENBQUMsS0FBSyxDQUFDO0FBQ1AsV0FBSyxDQUFDLElBQUk7QUFDZCxTQUFLLENBQUMsS0FBSztBQUFBLEVBQ2Y7QUFDQSxTQUFPO0FBQ1g7OztBQ2xDTyxJQUFJO0FBQUEsQ0FDVixTQUFVQSwwQkFBeUI7QUFDaEMsRUFBQUEseUJBQXdCLFNBQVMsSUFBSTtBQUNyQyxFQUFBQSx5QkFBd0IsUUFBUSxJQUFJO0FBQ3BDLEVBQUFBLHlCQUF3QixRQUFRLElBQUk7QUFDcEMsRUFBQUEseUJBQXdCLE9BQU8sSUFBSTtBQUN2QyxHQUFHLDRCQUE0QiwwQkFBMEIsQ0FBQyxFQUFFOzs7QUNINUQsSUFBSTtBQUNHLElBQU0sY0FBTixNQUFrQjtBQUFBLEVBQ3JCLFlBQVksUUFBUTtBQUNoQixZQUFRO0FBQUEsRUFDWjtBQUFBLEVBQ0EsTUFBTSxXQUFXLFNBQVM7QUFDdEIsVUFBTSxPQUFPLE9BQU8sT0FBTztBQUFBLE1BQ3ZCLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLFNBQVM7QUFBQSxNQUNULFFBQVE7QUFBQSxNQUNSLGVBQWU7QUFBQSxNQUNmLGVBQWU7QUFBQSxNQUNmLFFBQVE7QUFBQSxNQUNSLE9BQU87QUFBQSxNQUNQLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxNQUNYLE1BQU07QUFBQSxNQUNOLFdBQVc7QUFBQSxNQUNYLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLElBQUk7QUFBQSxNQUNKLEtBQUs7QUFBQSxJQUNULEdBQUcsT0FBTztBQUdWLFVBQU0sT0FBTyxrQkFBa0IsU0FBUztBQUd4QyxVQUFNLGdCQUFnQixPQUFPLGNBQWM7QUFFM0MsVUFBTSxVQUFVLGVBQWUsT0FBTyxPQUFPLHVCQUFPLE9BQU8sSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDO0FBQzdFLFVBQU0sZ0JBQWdCLE9BQU8sT0FBTztBQUFBLE1BQ2hDLG9CQUFvQjtBQUFBLE1BQ3BCLHdCQUF3QjtBQUFBLE1BQ3hCLGtCQUFrQjtBQUFBLE1BQ2xCLGdCQUFnQjtBQUFBLE1BQ2hCLDZCQUE2QjtBQUFBLE1BQzdCLDRCQUE0QjtBQUFBLE1BQzVCLGlCQUFpQjtBQUFBLE1BQ2pCLHNCQUFzQjtBQUFBLE1BQ3RCLHNCQUFzQjtBQUFBLE1BQ3RCLG1CQUFtQjtBQUFBLE1BQ25CLGlCQUFpQjtBQUFBLE1BQ2pCLDRCQUE0QjtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLHVCQUF1QjtBQUFBLE1BQ3ZCLHVCQUF1QjtBQUFBLE1BQ3ZCLGlCQUFpQjtBQUFBLE1BQ2pCLGdCQUFnQjtBQUFBLE1BQ2hCLDJCQUEyQjtBQUFBLElBQy9CLEdBQUcsS0FBSyxhQUFhO0FBQ3JCLFVBQU0sV0FBVyxPQUFPLE9BQU8sdUJBQU8sT0FBTyxJQUFJLEdBQUcsS0FBSyxPQUFPO0FBQ2hFLFVBQU0sZ0JBQWdCLEtBQUssaUJBQWlCLENBQUM7QUFDN0MsVUFBTSxZQUFZLEtBQUs7QUFDdkIsVUFBTSxpQkFBaUIsY0FBYyxZQUFZO0FBQ2pELFVBQU0sZUFBZSxpQkFBaUIsT0FBTztBQUM3QyxVQUFNLGFBQWEsdUJBQU8sT0FBTyxJQUFJO0FBQ3JDLFVBQU0sWUFBWSx1QkFBTyxPQUFPLElBQUk7QUFFcEMsVUFBTSxLQUFLLEtBQUssTUFBTSxNQUFNO0FBQzVCLFVBQU0sUUFBUTtBQUFBLE1BQ1YsU0FBUyx1QkFBTyxPQUFPLElBQUk7QUFBQSxNQUMzQixRQUFRLHVCQUFPLE9BQU8sSUFBSTtBQUFBLE1BQzFCLE9BQU8sdUJBQU8sT0FBTyxJQUFJO0FBQUEsTUFDekIsU0FBUyx1QkFBTyxPQUFPLElBQUk7QUFBQSxNQUMzQixTQUFTLHVCQUFPLE9BQU8sSUFBSTtBQUFBLE1BQzNCLFFBQVEsdUJBQU8sT0FBTyxJQUFJO0FBQUEsTUFDMUIsV0FBVyx1QkFBTyxPQUFPLElBQUk7QUFBQSxNQUM3QixTQUFTLHVCQUFPLE9BQU8sSUFBSTtBQUFBLE1BQzNCLE9BQU8sdUJBQU8sT0FBTyxJQUFJO0FBQUEsTUFDekIsV0FBVyx1QkFBTyxPQUFPLElBQUk7QUFBQSxNQUM3QixNQUFNLENBQUM7QUFBQSxJQUNYO0FBQ0EsVUFBTSxXQUFXO0FBQ2pCLFVBQU0saUJBQWlCLElBQUksT0FBTyxRQUFRLGNBQWMsaUJBQWlCLElBQUksTUFBTTtBQUNuRixLQUFDLEVBQUUsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxPQUFPLEVBQUUsUUFBUSxTQUFVLEtBQUs7QUFDL0QsWUFBTSxNQUFNLE9BQU8sUUFBUSxXQUFXLElBQUksTUFBTTtBQUVoRCxZQUFNLGFBQWEsT0FBTyxLQUFLLEdBQUcsRUFBRSxJQUFJLFNBQVVDLE1BQUs7QUFDbkQsY0FBTSxnQkFBZ0I7QUFBQSxVQUNsQixTQUFTO0FBQUEsVUFDVCxRQUFRO0FBQUEsVUFDUixRQUFRO0FBQUEsUUFDWjtBQUNBLGVBQU8sY0FBY0EsSUFBRztBQUFBLE1BQzVCLENBQUMsRUFBRSxPQUFPLE9BQU8sRUFBRSxJQUFJO0FBRXZCLFVBQUksWUFBWTtBQUNaLGNBQU0sVUFBVSxFQUFFLEdBQUcsSUFBSTtBQUFBLE1BQzdCO0FBQ0EsWUFBTSxPQUFPLEdBQUcsSUFBSTtBQUNwQixZQUFNLEtBQUssS0FBSyxHQUFHO0FBQUEsSUFDdkIsQ0FBQztBQUNELEtBQUMsRUFBRSxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsRUFBRSxPQUFPLE9BQU8sRUFBRSxRQUFRLFNBQVUsS0FBSztBQUNqRSxZQUFNLE1BQU0sR0FBRyxJQUFJO0FBQ25CLFlBQU0sS0FBSyxLQUFLLEdBQUc7QUFBQSxJQUN2QixDQUFDO0FBQ0QsS0FBQyxFQUFFLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sT0FBTyxFQUFFLFFBQVEsU0FBVSxLQUFLO0FBQ2hFLFlBQU0sUUFBUSxHQUFHLElBQUk7QUFDckIsWUFBTSxLQUFLLEtBQUssR0FBRztBQUFBLElBQ3ZCLENBQUM7QUFDRCxLQUFDLEVBQUUsT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxPQUFPLEVBQUUsUUFBUSxTQUFVLEtBQUs7QUFDaEUsWUFBTSxRQUFRLEdBQUcsSUFBSTtBQUNyQixZQUFNLEtBQUssS0FBSyxHQUFHO0FBQUEsSUFDdkIsQ0FBQztBQUNELEtBQUMsRUFBRSxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLE9BQU8sRUFBRSxRQUFRLFNBQVUsS0FBSztBQUMvRCxZQUFNLE9BQU8sR0FBRyxJQUFJO0FBQ3BCLFlBQU0sS0FBSyxLQUFLLEdBQUc7QUFBQSxJQUN2QixDQUFDO0FBQ0QsS0FBQyxFQUFFLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sT0FBTyxFQUFFLFFBQVEsU0FBVSxLQUFLO0FBQ25FLFlBQU0sVUFBVSxHQUFHLElBQUk7QUFDdkIsWUFBTSxLQUFLLEtBQUssR0FBRztBQUFBLElBQ3ZCLENBQUM7QUFDRCxRQUFJLE9BQU8sS0FBSyxTQUFTLFVBQVU7QUFDL0IsYUFBTyxRQUFRLEtBQUssSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNO0FBQ2hELFlBQUksT0FBTyxVQUFVLFVBQVU7QUFDM0IsZ0JBQU0sTUFBTSxHQUFHLElBQUk7QUFDbkIsZ0JBQU0sS0FBSyxLQUFLLEdBQUc7QUFBQSxRQUN2QjtBQUFBLE1BQ0osQ0FBQztBQUFBLElBQ0w7QUFDQSxRQUFJLE9BQU8sS0FBSyxXQUFXLFVBQVU7QUFDakMsYUFBTyxRQUFRLEtBQUssTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNO0FBQ2xELFlBQUksT0FBTyxVQUFVLFlBQVk7QUFDN0IsZ0JBQU0sVUFBVSxHQUFHLElBQUk7QUFDdkIsZ0JBQU0sS0FBSyxLQUFLLEdBQUc7QUFBQSxRQUN2QjtBQUFBLE1BQ0osQ0FBQztBQUFBLElBQ0w7QUFDQSxRQUFJLE9BQU8sS0FBSyxXQUFXLGFBQWE7QUFDcEMsVUFBSSxNQUFNLFFBQVEsS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLFdBQVcsVUFBVTtBQUMvRDtBQUNBLFNBQUMsRUFBRSxPQUFPLEtBQUssTUFBTSxFQUFFLE9BQU8sT0FBTyxFQUFFLFFBQVEsU0FBVSxLQUFLO0FBQzFELGdCQUFNLFFBQVEsR0FBRyxJQUFJO0FBQUEsUUFDekIsQ0FBQztBQUFBLE1BQ0wsV0FDUyxPQUFPLEtBQUssV0FBVyxVQUFVO0FBQ3RDLGVBQU8sUUFBUSxLQUFLLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTTtBQUNsRCxjQUFJLE9BQU8sVUFBVSxhQUFhLE9BQU8sVUFBVSxZQUFZO0FBQzNELGtCQUFNLFFBQVEsR0FBRyxJQUFJO0FBQUEsVUFDekI7QUFBQSxRQUNKLENBQUM7QUFBQSxNQUNMO0FBQUEsSUFDSjtBQUdBLGtCQUFjLEtBQUssS0FBSyxTQUFTLEtBQUssU0FBUyxNQUFNLE1BQU07QUFFM0QsV0FBTyxLQUFLLFFBQVEsRUFBRSxRQUFRLFNBQVUsS0FBSztBQUN6QyxPQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLFFBQVEsU0FBVSxPQUFPO0FBQ2hELGlCQUFTLEtBQUssSUFBSSxTQUFTLEdBQUc7QUFBQSxNQUNsQyxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQ0QsUUFBSSxRQUFRO0FBQ1osdUJBQW1CO0FBQ25CLFFBQUksV0FBVyxDQUFDO0FBQ2hCLFVBQU0sT0FBTyxPQUFPLE9BQU8sdUJBQU8sT0FBTyxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO0FBSXpELFVBQU0sYUFBYSxDQUFDO0FBQ3BCLGFBQVMsSUFBSSxHQUFHLElBQUksS0FBSyxRQUFRLEtBQUs7QUFDbEMsWUFBTSxNQUFNLEtBQUssQ0FBQztBQUNsQixZQUFNLGVBQWUsSUFBSSxRQUFRLFVBQVUsS0FBSztBQUNoRCxVQUFJO0FBQ0osVUFBSTtBQUNKLFVBQUk7QUFDSixVQUFJO0FBQ0osVUFBSTtBQUNKLFVBQUk7QUFFSixVQUFJLFFBQVEsUUFBUSxLQUFLLEtBQUssR0FBRyxLQUFLLHFCQUFxQixHQUFHLEdBQUc7QUFDN0QsdUJBQWUsR0FBRztBQUFBLE1BRXRCLFdBQ1MsYUFBYSxNQUFNLFlBQVksR0FBRztBQUV2Qyx1QkFBZSxHQUFHO0FBQ2xCO0FBQUEsTUFFSixXQUNTLElBQUksTUFBTSxRQUFRLEtBQU0sQ0FBQyxjQUFjLHFCQUFxQixLQUFLLElBQUksTUFBTSxPQUFPLEdBQUk7QUFJM0YsWUFBSSxJQUFJLE1BQU0sd0JBQXdCO0FBRXRDLFlBQUksTUFBTSxRQUFRLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUc7QUFDakQsY0FBSSxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsTUFBTSxNQUFNLEdBQUc7QUFDckMsZ0JBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFBQSxVQUNwQyxXQUNTLGdCQUFnQixFQUFFLENBQUMsR0FBRyxNQUFNLEtBQUssTUFBTSxPQUFPO0FBRW5ELGdCQUFJLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQUEsVUFDcEMsT0FDSztBQUNELG1CQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUk7QUFBQSxVQUMzQjtBQUFBLFFBQ0o7QUFBQSxNQUNKLFdBQ1MsSUFBSSxNQUFNLGNBQWMsS0FBSyxjQUFjLGtCQUFrQixHQUFHO0FBQ3JFLFlBQUksSUFBSSxNQUFNLGNBQWM7QUFDNUIsWUFBSSxNQUFNLFFBQVEsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRztBQUNqRCxnQkFBTSxFQUFFLENBQUM7QUFDVCxpQkFBTyxLQUFLLGdCQUFnQixLQUFLLE1BQU0sTUFBTSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUs7QUFBQSxRQUNwRTtBQUFBLE1BRUosV0FDUyxJQUFJLE1BQU0sT0FBTyxLQUFNLENBQUMsY0FBYyxxQkFBcUIsS0FBSyxJQUFJLE1BQU0sU0FBUyxHQUFJO0FBQzVGLFlBQUksSUFBSSxNQUFNLFVBQVU7QUFDeEIsWUFBSSxNQUFNLFFBQVEsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRztBQUNqRCxnQkFBTSxFQUFFLENBQUM7QUFDVCxjQUFJLGdCQUFnQixLQUFLLE1BQU0sTUFBTSxHQUFHO0FBRXBDLGdCQUFJLFNBQVMsR0FBRyxLQUFLLElBQUk7QUFBQSxVQUM3QixXQUNTLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxNQUFNLE9BQU87QUFHbEQsZ0JBQUksU0FBUyxHQUFHLEtBQUssSUFBSTtBQUFBLFVBQzdCLE9BQ0s7QUFDRCxtQkFBTyxLQUFLLElBQUksQ0FBQztBQUNqQixnQkFBSSxTQUFTLFdBQWMsQ0FBQyxLQUFLLE1BQU0sSUFBSSxLQUN2QyxLQUFLLE1BQU0sUUFBUSxNQUNuQixDQUFDLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxLQUNqQyxDQUFDLGdCQUFnQixLQUFLLE1BQU0sTUFBTSxHQUFHO0FBQ3JDLHFCQUFPLEtBQUssSUFBSTtBQUNoQjtBQUFBLFlBQ0osV0FDUyxpQkFBaUIsS0FBSyxJQUFJLEdBQUc7QUFDbEMscUJBQU8sS0FBSyxJQUFJO0FBQ2hCO0FBQUEsWUFDSixPQUNLO0FBQ0QscUJBQU8sS0FBSyxhQUFhLEdBQUcsQ0FBQztBQUFBLFlBQ2pDO0FBQUEsVUFDSjtBQUFBLFFBQ0o7QUFBQSxNQUVKLFdBQ1MsSUFBSSxNQUFNLFVBQVUsR0FBRztBQUM1QixZQUFJLElBQUksTUFBTSxzQkFBc0I7QUFDcEMsWUFBSSxNQUFNLFFBQVEsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRztBQUNqRCxpQkFBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUFBLFFBQ3JCO0FBQUEsTUFFSixXQUNTLElBQUksTUFBTSxTQUFTLEtBQUssQ0FBQyxJQUFJLE1BQU0sUUFBUSxHQUFHO0FBQ25ELGVBQU8sS0FBSyxJQUFJLENBQUM7QUFDakIsWUFBSSxJQUFJLE1BQU0sV0FBVztBQUN6QixZQUFJLE1BQU0sUUFBUSxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHO0FBQ2pELGdCQUFNLEVBQUUsQ0FBQztBQUNULGNBQUksU0FBUyxVQUFhLENBQUMsS0FBSyxNQUFNLElBQUksS0FDdEMsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssS0FDakMsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sR0FBRztBQUNyQyxtQkFBTyxLQUFLLElBQUk7QUFDaEI7QUFBQSxVQUNKLE9BQ0s7QUFDRCxtQkFBTyxLQUFLLGFBQWEsR0FBRyxDQUFDO0FBQUEsVUFDakM7QUFBQSxRQUNKO0FBQUEsTUFDSixXQUNTLElBQUksTUFBTSxTQUFTLEtBQUssQ0FBQyxJQUFJLE1BQU0sUUFBUSxHQUFHO0FBQ25ELGtCQUFVLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDbkMsaUJBQVM7QUFDVCxpQkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUNyQyxpQkFBTyxJQUFJLE1BQU0sSUFBSSxDQUFDO0FBQ3RCLGNBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLEtBQUs7QUFDMUMsb0JBQVEsSUFBSSxNQUFNLElBQUksQ0FBQztBQUN2QixrQkFBTSxRQUFRLENBQUM7QUFDZixnQkFBSSxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sR0FBRztBQUVwQyxrQkFBSSxTQUFTLEdBQUcsS0FBSyxNQUFNLEtBQUs7QUFBQSxZQUNwQyxXQUNTLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxNQUFNLE9BQU87QUFFbEQsa0JBQUksU0FBUyxHQUFHLEtBQUssTUFBTSxLQUFLO0FBQUEsWUFDcEMsT0FDSztBQUNELHFCQUFPLEtBQUssS0FBSztBQUFBLFlBQ3JCO0FBQ0EscUJBQVM7QUFDVDtBQUFBLFVBQ0o7QUFDQSxjQUFJLFNBQVMsS0FBSztBQUNkLG1CQUFPLFFBQVEsQ0FBQyxHQUFHLElBQUk7QUFDdkI7QUFBQSxVQUNKO0FBRUEsY0FBSSxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsS0FDMUIsMkJBQTJCLEtBQUssSUFBSSxLQUNwQyxnQkFBZ0IsTUFBTSxNQUFNLEtBQUssTUFBTSxPQUFPO0FBQzlDLG1CQUFPLFFBQVEsQ0FBQyxHQUFHLElBQUk7QUFDdkIscUJBQVM7QUFDVDtBQUFBLFVBQ0o7QUFDQSxjQUFJLFFBQVEsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksR0FBRztBQUM5QyxtQkFBTyxRQUFRLENBQUMsR0FBRyxJQUFJO0FBQ3ZCLHFCQUFTO0FBQ1Q7QUFBQSxVQUNKLE9BQ0s7QUFDRCxtQkFBTyxRQUFRLENBQUMsR0FBRyxhQUFhLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFBQSxVQUMvQztBQUFBLFFBQ0o7QUFDQSxjQUFNLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUNyQixZQUFJLENBQUMsVUFBVSxRQUFRLEtBQUs7QUFDeEIsY0FBSSxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sR0FBRztBQUVwQyxnQkFBSSxTQUFTLEdBQUcsS0FBSyxJQUFJO0FBQUEsVUFDN0IsV0FDUyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssTUFBTSxPQUFPO0FBR2xELGdCQUFJLFNBQVMsR0FBRyxLQUFLLElBQUk7QUFBQSxVQUM3QixPQUNLO0FBQ0QsbUJBQU8sS0FBSyxJQUFJLENBQUM7QUFDakIsZ0JBQUksU0FBUyxXQUFjLENBQUMsY0FBYyxLQUFLLElBQUksS0FDL0MsS0FBSyxNQUFNLFFBQVEsTUFDbkIsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssS0FDakMsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sR0FBRztBQUNyQyxxQkFBTyxLQUFLLElBQUk7QUFDaEI7QUFBQSxZQUNKLFdBQ1MsaUJBQWlCLEtBQUssSUFBSSxHQUFHO0FBQ2xDLHFCQUFPLEtBQUssSUFBSTtBQUNoQjtBQUFBLFlBQ0osT0FDSztBQUNELHFCQUFPLEtBQUssYUFBYSxHQUFHLENBQUM7QUFBQSxZQUNqQztBQUFBLFVBQ0o7QUFBQSxRQUNKO0FBQUEsTUFDSixXQUNTLElBQUksTUFBTSxVQUFVLEtBQ3pCLElBQUksTUFBTSxRQUFRLEtBQ2xCLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxHQUFHLE1BQU0sS0FBSyxHQUFHO0FBRTVDLGNBQU0sSUFBSSxNQUFNLENBQUM7QUFDakIsZUFBTyxLQUFLLGFBQWEsR0FBRyxDQUFDO0FBQUEsTUFDakMsV0FDUyxRQUFRLE1BQU07QUFDbkIsbUJBQVcsS0FBSyxNQUFNLElBQUksQ0FBQztBQUMzQjtBQUFBLE1BQ0osV0FDUyxjQUFjLG9CQUFvQixHQUFHO0FBQzFDLG1CQUFXLEtBQUssTUFBTSxDQUFDO0FBQ3ZCO0FBQUEsTUFDSixPQUNLO0FBQ0QsdUJBQWUsR0FBRztBQUFBLE1BQ3RCO0FBQUEsSUFDSjtBQU9BLGlCQUFhLE1BQU0sSUFBSTtBQUN2QixpQkFBYSxNQUFNLEtBQUs7QUFDeEIsY0FBVSxJQUFJO0FBQ2QscUJBQWlCO0FBQ2pCLDRCQUF3QixNQUFNLE1BQU0sU0FBUyxVQUFVLElBQUk7QUFDM0QsbUJBQWUsSUFBSTtBQUNuQixRQUFJLGNBQWMscUJBQXFCO0FBQ25DLHlCQUFtQixJQUFJO0FBRTNCLFdBQU8sS0FBSyxNQUFNLE1BQU0sRUFBRSxRQUFRLFNBQVUsS0FBSztBQUM3QyxVQUFJLENBQUMsT0FBTyxNQUFNLElBQUksTUFBTSxHQUFHLENBQUM7QUFDNUIsZUFBTyxLQUFLLENBQUM7QUFBQSxJQUNyQixDQUFDO0FBRUQsUUFBSSxrQkFBa0IsU0FBUztBQUMzQixXQUFLLFlBQVksSUFBSSxDQUFDO0FBQzFCLGFBQVMsUUFBUSxTQUFVLEtBQUs7QUFDNUIsV0FBSyxZQUFZLEVBQUUsS0FBSyxHQUFHO0FBQUEsSUFDL0IsQ0FBQztBQUNELFFBQUksY0FBYyxzQkFBc0IsS0FBSyxjQUFjLGNBQWMsR0FBRztBQUN4RSxhQUFPLEtBQUssSUFBSSxFQUFFLE9BQU8sU0FBTyxRQUFRLFFBQVEsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFFBQVEsU0FBTztBQUM5RSxlQUFPLEtBQUssR0FBRztBQUFBLE1BQ25CLENBQUM7QUFBQSxJQUNMO0FBQ0EsUUFBSSxjQUFjLGVBQWUsR0FBRztBQUNoQztBQUNBLE9BQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxLQUFLLE9BQU8sRUFBRSxJQUFJLE9BQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsV0FBUztBQUNyRSxZQUFJLGNBQWMsc0JBQXNCLEtBQUssTUFBTSxTQUFTLEdBQUcsR0FBRztBQUM5RCxpQkFBTyxLQUFLLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxVQUFRLFVBQVUsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUM7QUFBQSxRQUN2RTtBQUNBLGVBQU8sS0FBSyxLQUFLO0FBQUEsTUFDckIsQ0FBQztBQUFBLElBQ0w7QUFFQSxhQUFTLGVBQWUsS0FBSztBQUN6QixZQUFNLHFCQUFxQixrQkFBa0IsS0FBSyxHQUFHO0FBQ3JELFVBQUksT0FBTyx1QkFBdUIsWUFBWSxPQUFPLHVCQUF1QixVQUFVO0FBQ2xGLGFBQUssRUFBRSxLQUFLLGtCQUFrQjtBQUFBLE1BQ2xDO0FBQUEsSUFDSjtBQUdBLGFBQVMsU0FBUyxHQUFHLEtBQUtDLE9BQU0sbUJBQW1CO0FBQy9DLFVBQUk7QUFDSixVQUFJLFFBQVEsZ0JBQWdCLEtBQUssTUFBTSxLQUFLO0FBRzVDLGNBQVEsT0FBTyxVQUFVLFlBQVksTUFBTSxLQUFLLElBQUksSUFBSTtBQUN4RCxVQUFJLFVBQVUsR0FBRztBQUNiLFlBQUksQ0FBQyxZQUFZLGlCQUFpQixHQUFHO0FBQ2pDLGtCQUFRLE1BQU0sR0FBRywrQkFBK0IsR0FBRyxDQUFDO0FBQUEsUUFDeEQ7QUFDQSxlQUFPLEtBQUssYUFBYSxHQUFHLENBQUM7QUFDN0IsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFJLFlBQVksWUFBWSxpQkFBaUIsSUFBSSxJQUFJO0FBQ3JELFVBQUksY0FBYyxvQkFBb0IsR0FBRztBQUVyQyxZQUFJQSxNQUFLLFVBQVUsSUFBSSxLQUFLLFlBQVksT0FBTztBQUMzQyxrQkFBUSxNQUFNLEdBQUcsc0NBQXNDLEdBQUcsQ0FBQztBQUFBLFFBQy9EO0FBQ0Esb0JBQVk7QUFBQSxNQUNoQixPQUNLO0FBR0QsYUFBSyxLQUFLLElBQUksR0FBRyxLQUFLQSxNQUFLLFFBQVEsTUFBTTtBQUNyQyxjQUFJLENBQUNBLE1BQUssRUFBRSxFQUFFLE1BQU0sVUFBVSxLQUFLQSxNQUFLLEVBQUUsRUFBRSxNQUFNLFFBQVEsS0FBSyxxQkFBcUJBLE1BQUssRUFBRSxDQUFDO0FBQ3hGO0FBQUE7QUFFQTtBQUFBLFFBQ1I7QUFDQSxZQUFJLFlBQVk7QUFDWixrQkFBUSxNQUFNLEdBQUcsc0NBQXNDLEdBQUcsQ0FBQztBQUFBLE1BQ25FO0FBQ0EsVUFBSSxXQUFXLEtBQUssSUFBSSxXQUFXLEtBQUs7QUFDeEMsVUFBSSxDQUFDLFlBQVksaUJBQWlCLEtBQUssV0FBVyxHQUFHO0FBQ2pELGVBQU8sS0FBSyxpQkFBaUI7QUFDN0I7QUFBQSxNQUNKO0FBQ0EsV0FBSyxLQUFLLElBQUksR0FBRyxLQUFNLFdBQVcsSUFBSSxHQUFJLE1BQU07QUFDNUMsZUFBTyxLQUFLQSxNQUFLLEVBQUUsQ0FBQztBQUFBLE1BQ3hCO0FBQ0EsYUFBUSxJQUFJO0FBQUEsSUFDaEI7QUFJQSxhQUFTLFNBQVMsR0FBRyxLQUFLQSxPQUFNLG1CQUFtQjtBQUMvQyxVQUFJLFlBQVksQ0FBQztBQUNqQixVQUFJLE9BQU8scUJBQXFCQSxNQUFLLElBQUksQ0FBQztBQUUxQyxZQUFNLGFBQWEsZ0JBQWdCLEtBQUssTUFBTSxLQUFLO0FBQ25ELFVBQUksZ0JBQWdCLEtBQUssTUFBTSxLQUFLLEtBQUssQ0FBRSxpQkFBaUIsS0FBSyxJQUFJLEdBQUk7QUFDckUsa0JBQVUsS0FBSyxJQUFJO0FBQUEsTUFDdkIsV0FDUyxZQUFZLElBQUksS0FDcEIsWUFBWSxpQkFBaUIsS0FBSyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLEdBQUk7QUFHNUcsWUFBSSxTQUFTLEdBQUcsTUFBTSxRQUFXO0FBQzdCLGdCQUFNLFNBQVMsU0FBUyxHQUFHO0FBQzNCLHNCQUFZLE1BQU0sUUFBUSxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU07QUFBQSxRQUN4RDtBQUFBLE1BQ0osT0FDSztBQUVELFlBQUksQ0FBQyxZQUFZLGlCQUFpQixHQUFHO0FBQ2pDLG9CQUFVLEtBQUssYUFBYSxLQUFLLG1CQUFtQixJQUFJLENBQUM7QUFBQSxRQUM3RDtBQUNBLGlCQUFTLEtBQUssSUFBSSxHQUFHLEtBQUtBLE1BQUssUUFBUSxNQUFNO0FBQ3pDLGNBQUssQ0FBQyxjQUFjLGVBQWUsS0FBSyxVQUFVLFNBQVMsS0FDdEQsY0FBYyxPQUFPLGVBQWUsWUFBWSxVQUFVLFVBQVU7QUFDckU7QUFDSixpQkFBT0EsTUFBSyxFQUFFO0FBQ2QsY0FBSSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJO0FBQ3JFO0FBQ0osY0FBSTtBQUNKLG9CQUFVLEtBQUssYUFBYSxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQUEsUUFDekQ7QUFBQSxNQUNKO0FBSUEsVUFBSSxPQUFPLGVBQWUsYUFBYyxjQUFjLFVBQVUsU0FBUyxjQUNwRSxNQUFNLFVBQVUsS0FBSyxVQUFVLFdBQVcsSUFBSztBQUNoRCxnQkFBUSxNQUFNLEdBQUcsc0NBQXNDLEdBQUcsQ0FBQztBQUFBLE1BQy9EO0FBQ0EsYUFBTyxLQUFLLFNBQVM7QUFDckIsYUFBTztBQUFBLElBQ1g7QUFDQSxhQUFTLE9BQU8sS0FBSyxLQUFLLG9CQUFvQixlQUFlO0FBQ3pELFVBQUksSUFBSSxLQUFLLEdBQUcsS0FBSyxjQUFjLHNCQUFzQixHQUFHO0FBQ3hELGNBQU0sUUFBUSxJQUFJLE1BQU0sR0FBRyxFQUFFLElBQUksU0FBVSxNQUFNO0FBQzdDLGlCQUFPLFVBQVUsSUFBSTtBQUFBLFFBQ3pCLENBQUMsRUFBRSxLQUFLLEdBQUc7QUFDWCxvQkFBWSxLQUFLLEtBQUs7QUFBQSxNQUMxQjtBQUNBLFlBQU0sUUFBUSxhQUFhLEtBQUssS0FBSyxpQkFBaUI7QUFDdEQsWUFBTSxXQUFXLElBQUksTUFBTSxHQUFHO0FBQzlCLGFBQU8sTUFBTSxVQUFVLEtBQUs7QUFFNUIsVUFBSSxNQUFNLFFBQVEsR0FBRyxHQUFHO0FBQ3BCLGNBQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxTQUFVLEdBQUc7QUFDcEMsZ0JBQU0sZ0JBQWdCLEVBQUUsTUFBTSxHQUFHO0FBQ2pDLGlCQUFPLE1BQU0sZUFBZSxLQUFLO0FBQUEsUUFDckMsQ0FBQztBQUFBLE1BQ0w7QUFFQSxVQUFJLFNBQVMsU0FBUyxLQUFLLGNBQWMsY0FBYyxHQUFHO0FBQ3REO0FBQ0EsU0FBQyxNQUFNLFFBQVEsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxTQUFVLEdBQUc7QUFDcEQsY0FBSSxnQkFBZ0IsRUFBRSxNQUFNLEdBQUc7QUFFL0IsZ0JBQU0sSUFBSSxDQUFDLEVBQUUsT0FBTyxRQUFRO0FBQzVCLFlBQUUsTUFBTTtBQUNSLDBCQUFnQixjQUFjLE9BQU8sQ0FBQztBQUd0QyxjQUFJLEVBQUUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsU0FBUyxjQUFjLEtBQUssR0FBRyxDQUFDLEdBQUc7QUFDL0QsbUJBQU8sTUFBTSxlQUFlLEtBQUs7QUFBQSxVQUNyQztBQUFBLFFBQ0osQ0FBQztBQUFBLE1BQ0w7QUFFQSxVQUFJLGdCQUFnQixLQUFLLE1BQU0sU0FBUyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssTUFBTSxNQUFNLEdBQUc7QUFDOUUsY0FBTSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDbEQsYUFBSyxRQUFRLFNBQVVELE1BQUs7QUFDeEIsaUJBQU8sZUFBZSxZQUFZQSxNQUFLO0FBQUEsWUFDbkMsWUFBWTtBQUFBLFlBQ1osTUFBTTtBQUNGLHFCQUFPO0FBQUEsWUFDWDtBQUFBLFlBQ0EsSUFBSUUsUUFBTztBQUNQLG9CQUFNLE9BQU9BLFdBQVUsV0FBVyxNQUFNLFVBQVVBLE1BQUssSUFBSUE7QUFBQSxZQUMvRDtBQUFBLFVBQ0osQ0FBQztBQUFBLFFBQ0wsQ0FBQztBQUFBLE1BQ0w7QUFBQSxJQUNKO0FBQ0EsYUFBUyxZQUFZLEtBQUssT0FBTztBQUM3QixVQUFJLEVBQUUsTUFBTSxRQUFRLEdBQUcsS0FBSyxNQUFNLFFBQVEsR0FBRyxFQUFFLFNBQVM7QUFDcEQsY0FBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDM0IsbUJBQVcsS0FBSyxJQUFJO0FBQUEsTUFDeEI7QUFDQSxVQUFJLEVBQUUsTUFBTSxRQUFRLEtBQUssS0FBSyxNQUFNLFFBQVEsS0FBSyxFQUFFLFNBQVM7QUFDeEQsb0JBQVksT0FBTyxHQUFHO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQ0EsYUFBUyxhQUFhLEtBQUssS0FBSyxtQkFBbUI7QUFFL0MsVUFBSSxtQkFBbUI7QUFDbkIsY0FBTSxZQUFZLEdBQUc7QUFBQSxNQUN6QjtBQUVBLFVBQUksZ0JBQWdCLEtBQUssTUFBTSxLQUFLLEtBQUssZ0JBQWdCLEtBQUssTUFBTSxNQUFNLEdBQUc7QUFDekUsWUFBSSxPQUFPLFFBQVE7QUFDZixnQkFBTSxRQUFRO0FBQUEsTUFDdEI7QUFDQSxVQUFJLFFBQVEsTUFBTSxRQUFRLEdBQUcsSUFDdkIsSUFBSSxJQUFJLFNBQVUsR0FBRztBQUFFLGVBQU8sa0JBQWtCLEtBQUssQ0FBQztBQUFBLE1BQUcsQ0FBQyxJQUMxRCxrQkFBa0IsS0FBSyxHQUFHO0FBRWhDLFVBQUksZ0JBQWdCLEtBQUssTUFBTSxNQUFNLE1BQU0sWUFBWSxLQUFLLEtBQUssT0FBTyxVQUFVLFlBQVk7QUFDMUYsZ0JBQVEsVUFBVTtBQUFBLE1BQ3RCO0FBRUEsVUFBSSxnQkFBZ0IsS0FBSyxNQUFNLFNBQVMsS0FBSyxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sR0FBRztBQUM3RSxZQUFJLE1BQU0sUUFBUSxHQUFHO0FBQ2pCLGtCQUFRLElBQUksSUFBSSxDQUFDQyxTQUFRO0FBQUUsbUJBQU8sTUFBTSxVQUFVQSxJQUFHO0FBQUEsVUFBRyxDQUFDO0FBQUE7QUFFekQsa0JBQVEsTUFBTSxVQUFVLEdBQUc7QUFBQSxNQUNuQztBQUNBLGFBQU87QUFBQSxJQUNYO0FBQ0EsYUFBUyxrQkFBa0IsS0FBSyxPQUFPO0FBQ25DLFVBQUksQ0FBQyxjQUFjLDBCQUEwQixLQUFLLFFBQVE7QUFDdEQsZUFBTztBQUNYLFVBQUksQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLE9BQU8sS0FBSyxDQUFDLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxRQUFRLEtBQUssR0FBRztBQUNyRyxjQUFNLHFCQUFxQixnQkFBZ0IsS0FBSyxLQUFLLGNBQWMsZUFBZSxLQUFNLE9BQU8sY0FBYyxLQUFLLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0ksWUFBSSxzQkFBdUIsQ0FBQyxZQUFZLEtBQUssS0FBSyxnQkFBZ0IsS0FBSyxNQUFNLE9BQU8sR0FBSTtBQUNwRixrQkFBUSxPQUFPLEtBQUs7QUFBQSxRQUN4QjtBQUFBLE1BQ0o7QUFDQSxhQUFPO0FBQUEsSUFDWDtBQUdBLGFBQVMsVUFBVUMsT0FBTTtBQUNyQixZQUFNLGVBQWUsdUJBQU8sT0FBTyxJQUFJO0FBR3ZDLDhCQUF3QixjQUFjLE1BQU0sU0FBUyxRQUFRO0FBQzdELGFBQU8sS0FBSyxNQUFNLE9BQU8sRUFBRSxRQUFRLFNBQVUsV0FBVztBQUNwRCxjQUFNLGFBQWFBLE1BQUssU0FBUyxLQUFLLGFBQWEsU0FBUztBQUM1RCxZQUFJLFlBQVk7QUFDWixjQUFJO0FBQ0EsZ0JBQUksU0FBUztBQUNiLGtCQUFNLHFCQUFxQixNQUFNLFFBQVEsTUFBTSxJQUFJLEdBQUcsVUFBVTtBQUNoRSxrQkFBTSxnQkFBZ0IsTUFBTSxRQUFRLFNBQVM7QUFDN0MsZ0JBQUksT0FBTyxrQkFBa0IsWUFBWTtBQUNyQyxrQkFBSTtBQUNBLHlCQUFTLGNBQWMsa0JBQWtCO0FBQUEsY0FDN0MsU0FDTyxHQUFHO0FBQ04seUJBQVM7QUFBQSxjQUNiO0FBQ0Esa0JBQUksa0JBQWtCLE9BQU87QUFDekIsd0JBQVE7QUFDUjtBQUFBLGNBQ0o7QUFBQSxZQUNKLE9BQ0s7QUFDRCx1QkFBUyxNQUFNLFFBQVEsa0JBQWtCO0FBQUEsWUFDN0M7QUFDQSw0QkFBZ0IsTUFBTTtBQUFBLFVBQzFCLFNBQ08sSUFBSTtBQUdQLGdCQUFJLEdBQUcsU0FBUztBQUNaLHNCQUFRO0FBQUEscUJBQ0hBLE1BQUssU0FBUztBQUNuQixzQkFBUSxNQUFNLEdBQUcsZ0NBQWdDLFVBQVUsQ0FBQztBQUFBLFVBQ3BFO0FBQUEsUUFDSjtBQUFBLE1BQ0osQ0FBQztBQUFBLElBQ0w7QUFHQSxhQUFTLGdCQUFnQixRQUFRLE1BQU07QUFDbkMsYUFBTyxLQUFLLE1BQU0sRUFBRSxRQUFRLFNBQVUsS0FBSztBQUN2QyxjQUFNLFFBQVEsT0FBTyxHQUFHO0FBQ3hCLGNBQU0sVUFBVSxPQUFPLE9BQU8sTUFBTSxNQUFNO0FBSTFDLFlBQUksT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLENBQUMsTUFBTSxRQUFRLEtBQUssS0FBSyxjQUFjLGNBQWMsR0FBRztBQUV2RywwQkFBZ0IsT0FBTyxPQUFPO0FBQUEsUUFDbEMsT0FDSztBQUdELGNBQUksQ0FBQyxPQUFPLE1BQU0sUUFBUSxNQUFNLEdBQUcsQ0FBQyxLQUFNLGdCQUFnQixTQUFTLE1BQU0sTUFBTSxLQUFLLGNBQWMsZ0JBQWdCLEdBQUk7QUFDbEgsbUJBQU8sU0FBUyxLQUFLO0FBQUEsVUFDekI7QUFBQSxRQUNKO0FBQUEsTUFDSixDQUFDO0FBQUEsSUFDTDtBQUVBLGFBQVMsbUJBQW1CO0FBQ3hCLFVBQUksT0FBTyxrQkFBa0IsYUFBYTtBQUN0QyxzQkFBYyxRQUFRLFNBQVUsY0FBYztBQUMxQywwQkFBZ0IsWUFBWTtBQUFBLFFBQ2hDLENBQUM7QUFBQSxNQUNMO0FBQUEsSUFDSjtBQUNBLGFBQVMsYUFBYUEsT0FBTSxZQUFZO0FBQ3BDLFVBQUksT0FBTyxjQUFjO0FBQ3JCO0FBQ0osWUFBTSxTQUFTLE9BQU8sY0FBYyxXQUFXLFlBQVk7QUFDM0QsWUFBTUMsT0FBTSxNQUFNLElBQUk7QUFDdEIsYUFBTyxLQUFLQSxJQUFHLEVBQUUsUUFBUSxTQUFVLFFBQVE7QUFDdkMsWUFBSSxXQUFXLE1BQU0sT0FBTyxZQUFZLFFBQVEsQ0FBQyxNQUFNLEdBQUc7QUFFdEQsZ0JBQU0sT0FBTyxPQUFPLE1BQU0sSUFBSSxFQUFFLElBQUksU0FBVSxLQUFLLEdBQUc7QUFDbEQsZ0JBQUksTUFBTSxHQUFHO0FBQ1Qsb0JBQU0sSUFBSSxVQUFVLE9BQU8sTUFBTTtBQUFBLFlBQ3JDO0FBQ0EsbUJBQU8sVUFBVSxHQUFHO0FBQUEsVUFDeEIsQ0FBQztBQUNELGVBQU0sY0FBYyxNQUFNLFFBQVEsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFNLENBQUMsZUFBZSxDQUFDLE9BQU9ELE9BQU0sSUFBSSxHQUFHO0FBQ3ZGLG1CQUFPLEtBQUssS0FBSyxHQUFHLEdBQUdDLEtBQUksTUFBTSxDQUFDO0FBQUEsVUFDdEM7QUFBQSxRQUNKO0FBQUEsTUFDSixDQUFDO0FBQUEsSUFDTDtBQUNBLGFBQVMsZUFBZUQsT0FBTTtBQUMxQixVQUFJO0FBQ0osWUFBTSxVQUFVLG9CQUFJLElBQUk7QUFDeEIsYUFBTyxLQUFLQSxLQUFJLEVBQUUsUUFBUSxTQUFVLEtBQUs7QUFDckMsWUFBSSxDQUFDLFFBQVEsSUFBSSxHQUFHLEdBQUc7QUFDbkIsbUJBQVMsZ0JBQWdCLEtBQUssTUFBTSxTQUFTO0FBQzdDLGNBQUksT0FBTyxXQUFXLFlBQVk7QUFDOUIsZ0JBQUk7QUFDQSxvQkFBTSxRQUFRLGtCQUFrQixLQUFLLE9BQU9BLE1BQUssR0FBRyxDQUFDLENBQUM7QUFDdEQsY0FBQyxDQUFDLEVBQUUsT0FBTyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUcsUUFBUSxTQUFPO0FBQ3RELHdCQUFRLElBQUksR0FBRztBQUNmLGdCQUFBQSxNQUFLLEdBQUcsSUFBSTtBQUFBLGNBQ2hCLENBQUM7QUFBQSxZQUNMLFNBQ08sS0FBSztBQUNSLHNCQUFRO0FBQUEsWUFDWjtBQUFBLFVBQ0o7QUFBQSxRQUNKO0FBQUEsTUFDSixDQUFDO0FBQUEsSUFDTDtBQUNBLGFBQVMsbUJBQW1CQSxPQUFNO0FBQzlCLFlBQU0sS0FBSyxRQUFRLENBQUMsUUFBUTtBQUV4QixZQUFJLENBQUMsSUFBSSxRQUFRLEdBQUc7QUFDaEI7QUFDSixZQUFJLE9BQU9BLE1BQUssR0FBRyxNQUFNO0FBQ3JCLFVBQUFBLE1BQUssR0FBRyxJQUFJO0FBQUEsTUFDcEIsQ0FBQztBQUNELGFBQU9BO0FBQUEsSUFDWDtBQUNBLGFBQVMsd0JBQXdCLEtBQUtFLFVBQVNDLFdBQVUsU0FBUyxPQUFPO0FBQ3JFLGFBQU8sS0FBS0EsU0FBUSxFQUFFLFFBQVEsU0FBVSxLQUFLO0FBQ3pDLFlBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHO0FBQzlCLGlCQUFPLEtBQUssSUFBSSxNQUFNLEdBQUcsR0FBR0EsVUFBUyxHQUFHLENBQUM7QUFDekMsY0FBSTtBQUNBLHNCQUFVLEdBQUcsSUFBSTtBQUNyQixXQUFDRCxTQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsUUFBUSxTQUFVLEdBQUc7QUFDdEMsZ0JBQUksT0FBTyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFDeEI7QUFDSixtQkFBTyxLQUFLLEVBQUUsTUFBTSxHQUFHLEdBQUdDLFVBQVMsR0FBRyxDQUFDO0FBQUEsVUFDM0MsQ0FBQztBQUFBLFFBQ0w7QUFBQSxNQUNKLENBQUM7QUFBQSxJQUNMO0FBQ0EsYUFBUyxPQUFPLEtBQUssTUFBTTtBQUN2QixVQUFJLElBQUk7QUFDUixVQUFJLENBQUMsY0FBYyxjQUFjO0FBQzdCLGVBQU8sQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO0FBQzFCLFdBQUssTUFBTSxHQUFHLEVBQUUsRUFBRSxRQUFRLFNBQVVQLE1BQUs7QUFDckMsWUFBSyxFQUFFQSxJQUFHLEtBQUssQ0FBQztBQUFBLE1BQ3BCLENBQUM7QUFDRCxZQUFNLE1BQU0sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNoQyxVQUFJLE9BQU8sTUFBTTtBQUNiLGVBQU87QUFBQTtBQUVQLGVBQU8sT0FBTztBQUFBLElBQ3RCO0FBQ0EsYUFBUyxPQUFPLEtBQUssTUFBTSxPQUFPO0FBQzlCLFVBQUksSUFBSTtBQUNSLFVBQUksQ0FBQyxjQUFjLGNBQWM7QUFDN0IsZUFBTyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUM7QUFDMUIsV0FBSyxNQUFNLEdBQUcsRUFBRSxFQUFFLFFBQVEsU0FBVUEsTUFBSztBQUdyQyxRQUFBQSxPQUFNLFlBQVlBLElBQUc7QUFDckIsWUFBSSxPQUFPLE1BQU0sWUFBWSxFQUFFQSxJQUFHLE1BQU0sUUFBVztBQUMvQyxZQUFFQSxJQUFHLElBQUksQ0FBQztBQUFBLFFBQ2Q7QUFDQSxZQUFJLE9BQU8sRUFBRUEsSUFBRyxNQUFNLFlBQVksTUFBTSxRQUFRLEVBQUVBLElBQUcsQ0FBQyxHQUFHO0FBRXJELGNBQUksTUFBTSxRQUFRLEVBQUVBLElBQUcsQ0FBQyxHQUFHO0FBQ3ZCLGNBQUVBLElBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUFBLFVBQ2xCLE9BQ0s7QUFDRCxjQUFFQSxJQUFHLElBQUksQ0FBQyxFQUFFQSxJQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQUEsVUFDeEI7QUFFQSxjQUFJLEVBQUVBLElBQUcsRUFBRSxFQUFFQSxJQUFHLEVBQUUsU0FBUyxDQUFDO0FBQUEsUUFDaEMsT0FDSztBQUNELGNBQUksRUFBRUEsSUFBRztBQUFBLFFBQ2I7QUFBQSxNQUNKLENBQUM7QUFHRCxZQUFNLE1BQU0sWUFBWSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDN0MsWUFBTSxjQUFjLGdCQUFnQixLQUFLLEtBQUssR0FBRyxHQUFHLE1BQU0sTUFBTTtBQUNoRSxZQUFNLGVBQWUsTUFBTSxRQUFRLEtBQUs7QUFDeEMsVUFBSSxZQUFZLGNBQWMsMkJBQTJCO0FBRXpELFVBQUksQ0FBQyxhQUFhLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxHQUFHO0FBQ2pELG9CQUFZO0FBQ1osWUFBSyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsS0FBSyxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQU8sTUFBTSxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxNQUFNLE1BQU0sR0FBRyxHQUFJO0FBQ25ILFlBQUUsR0FBRyxJQUFJO0FBQUEsUUFDYjtBQUFBLE1BQ0o7QUFDQSxVQUFJLFVBQVUsVUFBVSxHQUFHO0FBQ3ZCLFVBQUUsR0FBRyxJQUFJLFVBQVUsRUFBRSxHQUFHLENBQUM7QUFBQSxNQUM3QixXQUNTLE1BQU0sUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHO0FBQzVCLFlBQUksYUFBYSxlQUFlLGNBQWM7QUFDMUMsWUFBRSxHQUFHLElBQUksY0FBYywwQkFBMEIsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEtBQUssS0FBSyxNQUFNLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFBQSxRQUM3SSxXQUNTLENBQUMsYUFBYSxRQUFRLFdBQVcsTUFBTSxRQUFRLFlBQVksR0FBRztBQUNuRSxZQUFFLEdBQUcsSUFBSTtBQUFBLFFBQ2IsT0FDSztBQUNELFlBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFBQSxRQUNsQztBQUFBLE1BQ0osV0FDUyxFQUFFLEdBQUcsTUFBTSxVQUFhLGFBQWE7QUFDMUMsVUFBRSxHQUFHLElBQUksZUFBZSxRQUFRLENBQUMsS0FBSztBQUFBLE1BQzFDLFdBQ1MsYUFBYSxFQUFFLEVBQUUsR0FBRyxNQUFNLFVBQy9CLGdCQUFnQixLQUFLLE1BQU0sTUFBTSxLQUNqQyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssSUFBSTtBQUNwQyxVQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUs7QUFBQSxNQUMzQixPQUNLO0FBQ0QsVUFBRSxHQUFHLElBQUk7QUFBQSxNQUNiO0FBQUEsSUFDSjtBQUVBLGFBQVMsaUJBQWlCQyxPQUFNO0FBQzVCLE1BQUFBLE1BQUssUUFBUSxTQUFVLEtBQUs7QUFDeEIsZUFBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsUUFBUSxTQUFVLEtBQUs7QUFJMUMsY0FBSSxNQUFNLFFBQVEsR0FBRztBQUNqQjtBQUNKLGdCQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUVqRCxnQkFBTSxRQUFRLEdBQUcsRUFBRSxPQUFPLEdBQUcsRUFBRSxRQUFRLFNBQVUsR0FBRztBQUNoRCxnQkFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLGNBQWMsc0JBQXNCLEdBQUc7QUFDdEQsb0JBQU0sSUFBSSxVQUFVLENBQUM7QUFDckIsa0JBQUksTUFBTSxPQUFPLE1BQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSTtBQUNuRCxzQkFBTSxRQUFRLEdBQUcsRUFBRSxLQUFLLENBQUM7QUFDekIsMkJBQVcsQ0FBQyxJQUFJO0FBQUEsY0FDcEI7QUFBQSxZQUNKO0FBQUEsVUFDSixDQUFDO0FBRUQsZ0JBQU0sUUFBUSxHQUFHLEVBQUUsT0FBTyxHQUFHLEVBQUUsUUFBUSxTQUFVLEdBQUc7QUFDaEQsZ0JBQUksRUFBRSxTQUFTLEtBQUssUUFBUSxLQUFLLENBQUMsS0FBSyxjQUFjLHNCQUFzQixHQUFHO0FBQzFFLG9CQUFNLElBQUksV0FBVyxHQUFHLEdBQUc7QUFDM0Isa0JBQUksTUFBTSxPQUFPLE1BQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSTtBQUNuRCxzQkFBTSxRQUFRLEdBQUcsRUFBRSxLQUFLLENBQUM7QUFDekIsMkJBQVcsQ0FBQyxJQUFJO0FBQUEsY0FDcEI7QUFBQSxZQUNKO0FBQUEsVUFDSixDQUFDO0FBQ0QsZ0JBQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxTQUFVLEdBQUc7QUFDcEMsa0JBQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxNQUFNLFFBQVEsR0FBRyxFQUFFLE9BQU8sU0FBVSxHQUFHO0FBQ25FLHFCQUFPLE1BQU07QUFBQSxZQUNqQixDQUFDLENBQUM7QUFBQSxVQUNOLENBQUM7QUFBQSxRQUNMLENBQUM7QUFBQSxNQUNMLENBQUM7QUFBQSxJQUNMO0FBQ0EsYUFBUyxnQkFBZ0IsS0FBSyxNQUFNO0FBQ2hDLFlBQU0sVUFBVSxDQUFDLEVBQUUsT0FBTyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHO0FBQ3ZELFlBQU0sT0FBTyxPQUFPLEtBQUssSUFBSTtBQUM3QixZQUFNLFdBQVcsUUFBUSxLQUFLLENBQUFELFNBQU8sS0FBSyxTQUFTQSxJQUFHLENBQUM7QUFDdkQsYUFBTyxXQUFXLEtBQUssUUFBUSxJQUFJO0FBQUEsSUFDdkM7QUFDQSxhQUFTLFdBQVcsS0FBSztBQUNyQixZQUFNLFlBQVksT0FBTyxLQUFLLEtBQUs7QUFDbkMsWUFBTSxVQUFVLENBQUMsRUFBRSxPQUFPLFVBQVUsSUFBSSxPQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdEQsYUFBTyxRQUFRLEtBQUssU0FBVSxNQUFNO0FBQ2hDLGVBQU8sTUFBTSxRQUFRLElBQUksSUFBSSxLQUFLLFNBQVMsR0FBRyxJQUFJLEtBQUssR0FBRztBQUFBLE1BQzlELENBQUM7QUFBQSxJQUNMO0FBQ0EsYUFBUyxpQkFBaUIsUUFBUSxVQUFVO0FBQ3hDLFlBQU0sVUFBVSxDQUFDLEVBQUUsT0FBTyxHQUFHLFFBQVE7QUFDckMsYUFBTyxRQUFRLEtBQUssU0FBVSxTQUFTO0FBQ25DLGNBQU0sUUFBUSxJQUFJLE1BQU0sT0FBTztBQUMvQixlQUFPLFNBQVMsV0FBVyxNQUFNLENBQUMsQ0FBQztBQUFBLE1BQ3ZDLENBQUM7QUFBQSxJQUNMO0FBRUEsYUFBUyxpQkFBaUIsS0FBSztBQUUzQixVQUFJLElBQUksTUFBTSxRQUFRLEtBQUssQ0FBQyxJQUFJLE1BQU0sU0FBUyxHQUFHO0FBQzlDLGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSSxjQUFjO0FBQ2xCLFVBQUk7QUFDSixZQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7QUFDckMsZUFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUNyQyxlQUFPLElBQUksTUFBTSxJQUFJLENBQUM7QUFDdEIsWUFBSSxDQUFDLFdBQVcsUUFBUSxDQUFDLENBQUMsR0FBRztBQUN6Qix3QkFBYztBQUNkO0FBQUEsUUFDSjtBQUNBLFlBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLE9BQ3RDLFNBQVMsT0FDUixXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsS0FBSywyQkFBMkIsS0FBSyxJQUFJLEtBQ25FLFFBQVEsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksR0FBSTtBQUNoRDtBQUFBLFFBQ0o7QUFBQSxNQUNKO0FBQ0EsYUFBTztBQUFBLElBQ1g7QUFDQSxhQUFTLHFCQUFxQixLQUFLO0FBQy9CLGFBQU8sY0FBYyx5QkFBeUIsS0FBSyxnQkFBZ0IsR0FBRztBQUFBLElBQzFFO0FBQ0EsYUFBUyxnQkFBZ0IsS0FBSztBQUMxQixZQUFNLElBQUksUUFBUSxVQUFVLElBQUk7QUFFaEMsVUFBSSxJQUFJLE1BQU0sUUFBUSxHQUFHO0FBQ3JCLGVBQU87QUFBQSxNQUNYO0FBRUEsVUFBSSxpQkFBaUIsR0FBRyxHQUFHO0FBQ3ZCLGVBQU87QUFBQSxNQUNYO0FBRUEsWUFBTSxpQkFBaUI7QUFFdkIsWUFBTSxhQUFhO0FBRW5CLFlBQU0scUJBQXFCO0FBRTNCLFlBQU0scUJBQXFCO0FBRTNCLFlBQU0sZ0NBQWdDO0FBRXRDLGFBQU8sQ0FBQyxpQkFBaUIsS0FBSyxnQkFBZ0IsZ0JBQWdCLFlBQVksb0JBQW9CLG9CQUFvQiw2QkFBNkI7QUFBQSxJQUNuSjtBQUdBLGFBQVMsYUFBYSxLQUFLO0FBQ3ZCLFVBQUksQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssS0FDakMsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLE1BQU0sS0FDbEMsR0FBRyxHQUFHLE1BQU0sVUFBVTtBQUN0QixlQUFPLFNBQVMsR0FBRztBQUFBLE1BQ3ZCLE9BQ0s7QUFDRCxlQUFPLGVBQWUsVUFBVSxHQUFHLENBQUM7QUFBQSxNQUN4QztBQUFBLElBQ0o7QUFFQSxhQUFTLGVBQWUsTUFBTTtBQUMxQixZQUFNLE1BQU07QUFBQSxRQUNSLENBQUMsd0JBQXdCLE9BQU8sR0FBRztBQUFBLFFBQ25DLENBQUMsd0JBQXdCLE1BQU0sR0FBRztBQUFBLFFBQ2xDLENBQUMsd0JBQXdCLE1BQU0sR0FBRztBQUFBLFFBQ2xDLENBQUMsd0JBQXdCLEtBQUssR0FBRyxDQUFDO0FBQUEsTUFDdEM7QUFDQSxhQUFPLElBQUksSUFBSTtBQUFBLElBQ25CO0FBRUEsYUFBUyxVQUFVLEtBQUs7QUFDcEIsVUFBSSxPQUFPLHdCQUF3QjtBQUNuQyxVQUFJLGdCQUFnQixLQUFLLE1BQU0sT0FBTztBQUNsQyxlQUFPLHdCQUF3QjtBQUFBLGVBQzFCLGdCQUFnQixLQUFLLE1BQU0sT0FBTztBQUN2QyxlQUFPLHdCQUF3QjtBQUFBLGVBQzFCLGdCQUFnQixLQUFLLE1BQU0sS0FBSztBQUNyQyxlQUFPLHdCQUF3QjtBQUFBLGVBQzFCLGdCQUFnQixLQUFLLE1BQU0sTUFBTTtBQUN0QyxlQUFPLHdCQUF3QjtBQUNuQyxhQUFPO0FBQUEsSUFDWDtBQUNBLGFBQVMsWUFBWSxLQUFLO0FBQ3RCLGFBQU8sUUFBUTtBQUFBLElBQ25CO0FBRUEsYUFBUyxxQkFBcUI7QUFFMUIsYUFBTyxLQUFLLE1BQU0sTUFBTSxFQUFFLEtBQUssU0FBTztBQUNsQyxZQUFJLGdCQUFnQixLQUFLLE1BQU0sTUFBTSxHQUFHO0FBQ3BDLGtCQUFRLE1BQU0sR0FBRyw4REFBOEQsR0FBRyxDQUFDO0FBQ25GLGlCQUFPO0FBQUEsUUFDWCxXQUNTLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxHQUFHO0FBQ3hDLGtCQUFRLE1BQU0sR0FBRyw2REFBNkQsR0FBRyxDQUFDO0FBQ2xGLGlCQUFPO0FBQUEsUUFDWDtBQUNBLGVBQU87QUFBQSxNQUNYLENBQUM7QUFBQSxJQUNMO0FBQ0EsV0FBTztBQUFBLE1BQ0gsU0FBUyxPQUFPLE9BQU8sQ0FBQyxHQUFHLE1BQU0sT0FBTztBQUFBLE1BQ3hDLE1BQU0sT0FBTyxPQUFPLFlBQVksSUFBSTtBQUFBLE1BQ3BDO0FBQUEsTUFDQSxXQUFXLE9BQU8sT0FBTyxDQUFDLEdBQUcsU0FBUztBQUFBLE1BQ3RDO0FBQUEsTUFDQSxZQUFZLE9BQU8sT0FBTyxDQUFDLEdBQUcsVUFBVTtBQUFBLElBQzVDO0FBQUEsRUFDSjtBQUNKO0FBR0EsU0FBUyxlQUFlLFNBQVM7QUFDN0IsUUFBTSxjQUFjLENBQUM7QUFDckIsUUFBTSxXQUFXLHVCQUFPLE9BQU8sSUFBSTtBQUNuQyxNQUFJLFNBQVM7QUFHYixTQUFPLEtBQUssT0FBTyxFQUFFLFFBQVEsU0FBVSxLQUFLO0FBQ3hDLGdCQUFZLEtBQUssQ0FBQyxFQUFFLE9BQU8sUUFBUSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsRUFDakQsQ0FBQztBQUdELFNBQU8sUUFBUTtBQUNYLGFBQVM7QUFDVCxhQUFTLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxLQUFLO0FBQ3pDLGVBQVMsS0FBSyxJQUFJLEdBQUcsS0FBSyxZQUFZLFFBQVEsTUFBTTtBQUNoRCxjQUFNLFlBQVksWUFBWSxDQUFDLEVBQUUsT0FBTyxTQUFVLEdBQUc7QUFDakQsaUJBQU8sWUFBWSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU07QUFBQSxRQUMxQyxDQUFDO0FBQ0QsWUFBSSxVQUFVLFFBQVE7QUFDbEIsc0JBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLE9BQU8sWUFBWSxFQUFFLENBQUM7QUFDdEQsc0JBQVksT0FBTyxJQUFJLENBQUM7QUFDeEIsbUJBQVM7QUFDVDtBQUFBLFFBQ0o7QUFBQSxNQUNKO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFHQSxjQUFZLFFBQVEsU0FBVSxZQUFZO0FBQ3RDLGlCQUFhLFdBQVcsT0FBTyxTQUFVLEdBQUcsR0FBRyxNQUFNO0FBQ2pELGFBQU8sS0FBSyxRQUFRLENBQUMsTUFBTTtBQUFBLElBQy9CLENBQUM7QUFDRCxVQUFNLFlBQVksV0FBVyxJQUFJO0FBQ2pDLFFBQUksY0FBYyxVQUFhLE9BQU8sY0FBYyxVQUFVO0FBQzFELGVBQVMsU0FBUyxJQUFJO0FBQUEsSUFDMUI7QUFBQSxFQUNKLENBQUM7QUFDRCxTQUFPO0FBQ1g7QUFJQSxTQUFTLFVBQVUsTUFBTTtBQUNyQixTQUFPLFNBQVMsU0FBWSxPQUFPLElBQUk7QUFDM0M7QUFHQSxTQUFTLFlBQVksS0FBSztBQUN0QixNQUFJLFFBQVE7QUFDUixXQUFPO0FBQ1gsU0FBTztBQUNYO0FBQ0EsU0FBUyxZQUFZLEtBQUs7QUFDdEIsU0FBUSxPQUFPLFFBQVEsYUFDbEIsSUFBSSxDQUFDLE1BQU0sT0FBTyxJQUFJLENBQUMsTUFBTSxRQUM5QixJQUFJLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQzNCLElBQUksVUFBVSxHQUFHLElBQUksU0FBUyxDQUFDLElBQy9CO0FBQ1Y7OztBSnZnQ0EsU0FBUyxvQkFBb0I7QUFMN0IsSUFBSTtBQUFKLElBQVE7QUFBUixJQUFZO0FBUVosSUFBTSxpQkFBa0IsV0FBVyxRQUFRLE9BQU8sUUFBUSxJQUFJLHlCQUN4RCxPQUFPLFFBQVEsSUFBSSxzQkFBc0IsSUFDekM7QUFDTixJQUFNLGVBQWUsTUFBTSxLQUFLLFlBQVksUUFBUSxZQUFZLFNBQVMsU0FBUyxRQUFRLGNBQWMsUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHLFVBQVUsUUFBUSxPQUFPLFNBQVMsTUFBTSxLQUFLLFlBQVksUUFBUSxZQUFZLFNBQVMsU0FBUyxRQUFRLGFBQWEsUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUMzUyxJQUFJLGFBQWE7QUFDYixRQUFNLFFBQVEsT0FBTyxZQUFZLE1BQU0sVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNyRCxNQUFJLFFBQVEsZ0JBQWdCO0FBQ3hCLFVBQU0sTUFBTSxzREFBc0QsY0FBYyxvR0FBb0c7QUFBQSxFQUN4TDtBQUNKO0FBRUEsSUFBTSxNQUFNLFVBQVUsUUFBUSxNQUFNLENBQUM7QUFDckMsSUFBTSxTQUFTLElBQUksWUFBWTtBQUFBLEVBQzNCLEtBQUssUUFBUTtBQUFBLEVBQ2IsS0FBSyxNQUFNO0FBQ1AsV0FBTztBQUFBLEVBQ1g7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUEsRUFHQSxTQUFTLENBQUMsU0FBUztBQUNmLFFBQUksT0FBTyxjQUFZLGFBQWE7QUFDaEMsYUFBTyxVQUFRLElBQUk7QUFBQSxJQUN2QixXQUNTLEtBQUssTUFBTSxTQUFTLEdBQUc7QUFFNUIsYUFBTyxLQUFLLE1BQU0sYUFBYSxNQUFNLE1BQU0sQ0FBQztBQUFBLElBQ2hELE9BQ0s7QUFDRCxZQUFNLE1BQU0sOENBQThDO0FBQUEsSUFDOUQ7QUFBQSxFQUNKO0FBQ0osQ0FBQztBQUNELElBQU0sY0FBYyxTQUFTLE9BQU8sTUFBTSxNQUFNO0FBQzVDLFFBQU0sU0FBUyxPQUFPLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSTtBQUM5QyxTQUFPLE9BQU87QUFDbEI7QUFDQSxZQUFZLFdBQVcsU0FBVSxNQUFNLE1BQU07QUFDekMsU0FBTyxPQUFPLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSTtBQUMxQztBQUNBLFlBQVksWUFBWTtBQUN4QixZQUFZLGFBQWE7QUFDekIsWUFBWSxrQkFBa0I7QUFDOUIsSUFBTyxjQUFROzs7QUs1RGYsSUFBTyxpQkFBUTs7O0FOV2YsU0FBUyxVQUFVLE1BQW1DO0FBQ3BELFFBQU0sUUFBUSxNQUFNLFNBQVMsVUFBVTtBQUV2QyxRQUFNLGlCQUFpQixPQUFPLElBQUksaUJBQWlCO0FBRW5ELE1BQUksRUFBRSxrQkFBa0IsYUFBYTtBQUNuQyxVQUFNLElBQUksTUFBTSxpQ0FBaUM7QUFBQSxFQUNuRDtBQUNBLFFBQU0sb0JBQW9CLElBQUksR0FBRztBQUNoQyxFQUFDLFdBQW1CLGNBQWMsSUFBSTtBQUN6QztBQU9PLElBQU1RLGVBQWM7QUFZcEIsU0FBUyxLQUNaLFdBQ0EsVUFDSTtBQUNOLFFBQU0sUUFBUSxNQUFNLFNBQVMsVUFBVTtBQUd2QyxRQUFNLG9CQUFvQixRQUFRLFNBQVMsUUFBUSxzQkFBc0IsS0FBSztBQUc5RSxRQUFNLGlCQUFpQixPQUFPLElBQUksaUJBQWlCO0FBQ25ELFFBQU0sb0JBQXFCLFdBQW1CLGNBQWM7QUFHNUQsUUFBTSx3QkFBd0IsaUJBQWlCO0FBQy9DLFFBQU0sd0JBQXdCLHFCQUFxQixLQUFLO0FBR3hELE1BQUkscUJBQXFCLG1CQUFtQjtBQUMxQyxVQUFNLE9BQU8sUUFBUSxLQUFLLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUF5QjtBQUNsRSxVQUFJLFFBQVEsZUFBZTtBQUN6QixlQUFRLFVBQVUsUUFBUSxHQUFHO0FBQUEsTUFDL0IsV0FBVyxRQUFRLGVBQWU7QUFDaEMsZUFBUSxVQUFVLFVBQVUsR0FBRztBQUFBLE1BQ2pDLE9BQU87QUFDTCxlQUFPO0FBQUEsTUFDVDtBQUFBLElBQ0YsQ0FBQztBQUdELFlBQVEsUUFBUSxFQUFFLEtBQUssWUFBWTtBQUNqQyxjQUFRLFdBQVc7QUFDbkIsWUFBTSxTQUFTLElBQUk7QUFBQSxJQUNyQixDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVU7QUFDbEIsY0FBUSxNQUFNLEtBQUs7QUFDbkIsY0FBUSxXQUFXO0FBRW5CLGlCQUFXLE1BQU07QUFDZixnQkFBUSxJQUFJLDRDQUE0QyxRQUFRLEdBQUc7QUFDbkUsZ0JBQVEsS0FBSyxDQUFDO0FBQUEsTUFDaEIsR0FBRyxHQUFJLEVBQUUsTUFBTTtBQUFBLElBQ2pCLENBQUM7QUFBQSxFQUNILE9BQU87QUFDTCxVQUFNLFNBQVMsS0FBSyxjQUFjLFNBQVM7QUFHM0MsVUFBTSxXQUFXLENBQUUsR0FBRyxRQUFRLFFBQVM7QUFHdkMsUUFBSSxDQUFFO0FBQW1CLGVBQVMsS0FBSyxzQkFBc0I7QUFHN0QsUUFBSSxDQUFFLG1CQUFtQjtBQUN2QixZQUFNQyxXQUFVLFFBQVEsY0FBYyxZQUFZLEdBQUc7QUFDckQsWUFBTSxTQUFTQSxTQUFRLFFBQVEsY0FBYztBQUM3QyxZQUFNLGtDQUFrQyxNQUFNLEdBQUc7QUFDakQsZUFBUyxLQUFLLHlCQUF5QixNQUFNLElBQUksZUFBZTtBQUFBLElBQ2xFO0FBR0EsVUFBTSxXQUFXLFFBQVEsR0FBRyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDakQsVUFBTSxRQUFRLGNBQWMsS0FBSyxRQUFRLENBQUUsR0FBRyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUUsR0FBRztBQUFBLE1BQ3JFLE9BQU8sQ0FBRSxXQUFXLFdBQVcsV0FBVyxLQUFNO0FBQUEsTUFDaEQ7QUFBQSxJQUNGLENBQUM7QUFHRCxVQUFNLEdBQUcsU0FBUyxDQUFDLFVBQVU7QUFDM0IsY0FBUSxJQUFJLHdCQUF3QixLQUFLO0FBQ3pDLGNBQVEsS0FBSyxDQUFDO0FBQUEsSUFDaEIsQ0FBQztBQUVELFVBQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxXQUFXO0FBQ2pDLFVBQUksUUFBUTtBQUNWLGdCQUFRLElBQUksa0NBQWtDLE1BQU0sRUFBRTtBQUN0RCxnQkFBUSxLQUFLLENBQUM7QUFBQSxNQUNoQixXQUFXLE9BQU8sU0FBUyxVQUFVO0FBQ25DLGdCQUFRLElBQUksMENBQTBDO0FBQ3RELGdCQUFRLEtBQUssQ0FBQztBQUFBLE1BQ2hCLE9BQU87QUFDTCxnQkFBUSxLQUFLLElBQUk7QUFBQSxNQUNuQjtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFsiRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkiLCAia2V5IiwgImFyZ3MiLCAidmFsdWUiLCAidmFsIiwgImFyZ3YiLCAiZW52IiwgImFsaWFzZXMiLCAiZGVmYXVsdHMiLCAieWFyZ3NQYXJzZXIiLCAicmVxdWlyZSJdCn0K
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
|
|
25
|
+
// src/loader-commonjs.cts
|
|
26
|
+
var import_node_module = __toESM(require("node:module"));
|
|
27
|
+
var import_node_path2 = __toESM(require("node:path"));
|
|
28
|
+
|
|
29
|
+
// src/loader-shared.ts
|
|
30
|
+
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
31
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
32
|
+
var import_node_util = __toESM(require("node:util"), 1);
|
|
33
|
+
var import_esbuild = __toESM(require("esbuild"), 1);
|
|
34
|
+
var CJS = "commonjs";
|
|
35
|
+
var ESM = "module";
|
|
36
|
+
var _debugLog = import_node_util.default.debuglog("plug:ts-loader");
|
|
37
|
+
var _debug = _debugLog.enabled;
|
|
38
|
+
function logMessage(mode, arg, ...args) {
|
|
39
|
+
if (!_debug)
|
|
40
|
+
return;
|
|
41
|
+
const t = mode === ESM ? "esm" : mode === CJS ? "cjs" : "---";
|
|
42
|
+
_debugLog(`[${t}] ${arg}`, ...args);
|
|
43
|
+
}
|
|
44
|
+
function throwError(mode, message, options = {}) {
|
|
45
|
+
const t = mode === ESM ? "esm" : mode === CJS ? "cjs" : "---";
|
|
46
|
+
const prefix = `[ts-loader|${t}|pid=${process.pid}]`;
|
|
47
|
+
const { start = throwError, ...extra } = options;
|
|
48
|
+
const error = new Error(`${prefix} ${message}`);
|
|
49
|
+
Error.captureStackTrace(error, start);
|
|
50
|
+
Object.assign(error, extra);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
function moduleType(mode) {
|
|
54
|
+
if (process.env.__TS_LOADER_FORCE_TYPE) {
|
|
55
|
+
const type = process.env.__TS_LOADER_FORCE_TYPE;
|
|
56
|
+
if (type === CJS || type === ESM) {
|
|
57
|
+
logMessage(mode, `Forcing type to "${type}" from environment`);
|
|
58
|
+
return type;
|
|
59
|
+
} else {
|
|
60
|
+
throwError(mode, `Invalid type "${process.env.__TS_LOADER_FORCE_TYPE}"`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const _findType = (directory) => {
|
|
64
|
+
const packageFile = import_node_path.default.join(directory, "package.json");
|
|
65
|
+
try {
|
|
66
|
+
const packageData = import_node_fs.default.readFileSync(packageFile, "utf-8");
|
|
67
|
+
const packageJson = JSON.parse(packageData);
|
|
68
|
+
const packageType = packageJson.type;
|
|
69
|
+
switch (packageType) {
|
|
70
|
+
case void 0:
|
|
71
|
+
logMessage(mode, `File "${packageFile}" does not declare a default type`);
|
|
72
|
+
return CJS;
|
|
73
|
+
case CJS:
|
|
74
|
+
case ESM:
|
|
75
|
+
logMessage(mode, `File "${packageFile}" declares type as "${CJS}"`);
|
|
76
|
+
return packageType;
|
|
77
|
+
default:
|
|
78
|
+
logMessage(mode, `File "${packageFile}" specifies unknown type "${packageType}"`);
|
|
79
|
+
return CJS;
|
|
80
|
+
}
|
|
81
|
+
} catch (cause) {
|
|
82
|
+
if (cause.code !== "ENOENT" && cause.code !== "EISDIR") {
|
|
83
|
+
throwError(mode, `Unable to read or parse "${packageFile}"`, { cause, start: _findType });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const parent = import_node_path.default.dirname(directory);
|
|
87
|
+
if (directory !== parent)
|
|
88
|
+
return _findType(directory);
|
|
89
|
+
logMessage(mode, `Type defaulted to "${CJS}"`);
|
|
90
|
+
return CJS;
|
|
91
|
+
};
|
|
92
|
+
return _findType(process.cwd());
|
|
93
|
+
}
|
|
94
|
+
function _esbReport(kind, messages = []) {
|
|
95
|
+
const output = process.stderr;
|
|
96
|
+
const options = { color: !!output.isTTY, terminalWidth: output.columns || 80 };
|
|
97
|
+
const array = import_esbuild.default.formatMessagesSync(messages, { kind, ...options });
|
|
98
|
+
array.forEach((message) => output.write(`${message}
|
|
99
|
+
`));
|
|
100
|
+
}
|
|
101
|
+
function esbTranpile(filename, type) {
|
|
102
|
+
logMessage(type, `Transpiling "${filename}" as "${type}"`);
|
|
103
|
+
const [format, __fileurl] = type === ESM ? ["esm", "import.meta.url"] : ["cjs", "__filename"];
|
|
104
|
+
const options = {
|
|
105
|
+
sourcefile: filename,
|
|
106
|
+
// the original filename we're parsing
|
|
107
|
+
format,
|
|
108
|
+
// what are we actually transpiling to???
|
|
109
|
+
loader: "ts",
|
|
110
|
+
// the format is always "typescript"
|
|
111
|
+
sourcemap: "inline",
|
|
112
|
+
// always inline source maps
|
|
113
|
+
sourcesContent: false,
|
|
114
|
+
// do not include sources content in sourcemap
|
|
115
|
+
platform: "node",
|
|
116
|
+
// d'oh! :-)
|
|
117
|
+
minifyWhitespace: true,
|
|
118
|
+
// https://github.com/evanw/esbuild/releases/tag/v0.16.14
|
|
119
|
+
logLevel: "silent",
|
|
120
|
+
// catching those in our _esbReport below
|
|
121
|
+
target: `node${process.versions["node"]}`,
|
|
122
|
+
// target _this_ version
|
|
123
|
+
define: { __fileurl }
|
|
124
|
+
// from "globals.d.ts"
|
|
125
|
+
};
|
|
126
|
+
if (_debug) {
|
|
127
|
+
if (format === "esm") {
|
|
128
|
+
options.banner = `;(await import('node:util')).debuglog('plug:ts-loader')('[esm] Loaded "%s"', ${__fileurl});`;
|
|
129
|
+
} else if (format === "cjs") {
|
|
130
|
+
options.banner = `;require('node:util').debuglog('plug:ts-loader')('[cjs] Loaded "%s"', ${__fileurl});`;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
let result;
|
|
134
|
+
try {
|
|
135
|
+
const source = import_node_fs.default.readFileSync(filename, "utf-8");
|
|
136
|
+
result = import_esbuild.default.transformSync(source, options);
|
|
137
|
+
} catch (cause) {
|
|
138
|
+
_esbReport("error", cause.errors);
|
|
139
|
+
_esbReport("warning", cause.warnings);
|
|
140
|
+
throwError(type, `ESBuild error transpiling "${filename}"`, { cause, start: esbTranpile });
|
|
141
|
+
}
|
|
142
|
+
if (_debug)
|
|
143
|
+
_esbReport("warning", result.warnings);
|
|
144
|
+
return result.code;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// src/loader-commonjs.cts
|
|
148
|
+
var _type = moduleType(CJS);
|
|
149
|
+
var loader = (module2, filename) => {
|
|
150
|
+
logMessage(CJS, `Attempting to load "${filename}"`);
|
|
151
|
+
const ext = import_node_path2.default.extname(filename);
|
|
152
|
+
if (ext === ".ts") {
|
|
153
|
+
if (_type === ESM) {
|
|
154
|
+
throwError(CJS, `Must use import to load ES Module: ${filename}`, { code: "ERR_REQUIRE_ESM" });
|
|
155
|
+
}
|
|
156
|
+
} else if (ext !== ".cts") {
|
|
157
|
+
throwError(CJS, `Unsupported filename "${filename}"`);
|
|
158
|
+
}
|
|
159
|
+
const source = esbTranpile(filename, CJS);
|
|
160
|
+
try {
|
|
161
|
+
module2._compile(source, filename);
|
|
162
|
+
} catch (cause) {
|
|
163
|
+
console.error(`Error compiling module "${filename}"`, cause);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
var _oldResolveFilename = import_node_module.default._resolveFilename;
|
|
167
|
+
import_node_module.default._resolveFilename = function(request, parent, ...args) {
|
|
168
|
+
try {
|
|
169
|
+
return _oldResolveFilename.call(this, request, parent, ...args);
|
|
170
|
+
} catch (error) {
|
|
171
|
+
if (error.code !== "MODULE_NOT_FOUND")
|
|
172
|
+
throw error;
|
|
173
|
+
const match = request.match(/(.*)(\.[mc]?js$)/);
|
|
174
|
+
if (parent && match) {
|
|
175
|
+
const [, name, ext] = match;
|
|
176
|
+
const tsrequest = name + ext.replace("js", "ts");
|
|
177
|
+
try {
|
|
178
|
+
const result = _oldResolveFilename.call(this, tsrequest, parent, ...args);
|
|
179
|
+
logMessage(CJS, `Resolution for "${request}" intercepted as "${tsrequest}`);
|
|
180
|
+
return result;
|
|
181
|
+
} catch (discard) {
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
import_node_module.default._extensions[".ts"] = import_node_module.default._extensions[".cts"] = loader;
|
|
189
|
+
logMessage(CJS, "TypeScript loader for CommonJS loaded");
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// src/loader-module.mts
|
|
2
|
+
import _path2 from "node:path";
|
|
3
|
+
import _url from "node:url";
|
|
4
|
+
|
|
5
|
+
// src/loader-shared.ts
|
|
6
|
+
import _fs from "node:fs";
|
|
7
|
+
import _path from "node:path";
|
|
8
|
+
import _util from "node:util";
|
|
9
|
+
import _esbuild from "esbuild";
|
|
10
|
+
var CJS = "commonjs";
|
|
11
|
+
var ESM = "module";
|
|
12
|
+
var _debugLog = _util.debuglog("plug:ts-loader");
|
|
13
|
+
var _debug = _debugLog.enabled;
|
|
14
|
+
function logMessage(mode, arg, ...args) {
|
|
15
|
+
if (!_debug)
|
|
16
|
+
return;
|
|
17
|
+
const t = mode === ESM ? "esm" : mode === CJS ? "cjs" : "---";
|
|
18
|
+
_debugLog(`[${t}] ${arg}`, ...args);
|
|
19
|
+
}
|
|
20
|
+
function throwError(mode, message, options = {}) {
|
|
21
|
+
const t = mode === ESM ? "esm" : mode === CJS ? "cjs" : "---";
|
|
22
|
+
const prefix = `[ts-loader|${t}|pid=${process.pid}]`;
|
|
23
|
+
const { start = throwError, ...extra } = options;
|
|
24
|
+
const error = new Error(`${prefix} ${message}`);
|
|
25
|
+
Error.captureStackTrace(error, start);
|
|
26
|
+
Object.assign(error, extra);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
function moduleType(mode) {
|
|
30
|
+
if (process.env.__TS_LOADER_FORCE_TYPE) {
|
|
31
|
+
const type = process.env.__TS_LOADER_FORCE_TYPE;
|
|
32
|
+
if (type === CJS || type === ESM) {
|
|
33
|
+
logMessage(mode, `Forcing type to "${type}" from environment`);
|
|
34
|
+
return type;
|
|
35
|
+
} else {
|
|
36
|
+
throwError(mode, `Invalid type "${process.env.__TS_LOADER_FORCE_TYPE}"`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const _findType = (directory) => {
|
|
40
|
+
const packageFile = _path.join(directory, "package.json");
|
|
41
|
+
try {
|
|
42
|
+
const packageData = _fs.readFileSync(packageFile, "utf-8");
|
|
43
|
+
const packageJson = JSON.parse(packageData);
|
|
44
|
+
const packageType = packageJson.type;
|
|
45
|
+
switch (packageType) {
|
|
46
|
+
case void 0:
|
|
47
|
+
logMessage(mode, `File "${packageFile}" does not declare a default type`);
|
|
48
|
+
return CJS;
|
|
49
|
+
case CJS:
|
|
50
|
+
case ESM:
|
|
51
|
+
logMessage(mode, `File "${packageFile}" declares type as "${CJS}"`);
|
|
52
|
+
return packageType;
|
|
53
|
+
default:
|
|
54
|
+
logMessage(mode, `File "${packageFile}" specifies unknown type "${packageType}"`);
|
|
55
|
+
return CJS;
|
|
56
|
+
}
|
|
57
|
+
} catch (cause) {
|
|
58
|
+
if (cause.code !== "ENOENT" && cause.code !== "EISDIR") {
|
|
59
|
+
throwError(mode, `Unable to read or parse "${packageFile}"`, { cause, start: _findType });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const parent = _path.dirname(directory);
|
|
63
|
+
if (directory !== parent)
|
|
64
|
+
return _findType(directory);
|
|
65
|
+
logMessage(mode, `Type defaulted to "${CJS}"`);
|
|
66
|
+
return CJS;
|
|
67
|
+
};
|
|
68
|
+
return _findType(process.cwd());
|
|
69
|
+
}
|
|
70
|
+
function _esbReport(kind, messages = []) {
|
|
71
|
+
const output = process.stderr;
|
|
72
|
+
const options = { color: !!output.isTTY, terminalWidth: output.columns || 80 };
|
|
73
|
+
const array = _esbuild.formatMessagesSync(messages, { kind, ...options });
|
|
74
|
+
array.forEach((message) => output.write(`${message}
|
|
75
|
+
`));
|
|
76
|
+
}
|
|
77
|
+
function esbTranpile(filename, type) {
|
|
78
|
+
logMessage(type, `Transpiling "${filename}" as "${type}"`);
|
|
79
|
+
const [format, __fileurl] = type === ESM ? ["esm", "import.meta.url"] : ["cjs", "__filename"];
|
|
80
|
+
const options = {
|
|
81
|
+
sourcefile: filename,
|
|
82
|
+
// the original filename we're parsing
|
|
83
|
+
format,
|
|
84
|
+
// what are we actually transpiling to???
|
|
85
|
+
loader: "ts",
|
|
86
|
+
// the format is always "typescript"
|
|
87
|
+
sourcemap: "inline",
|
|
88
|
+
// always inline source maps
|
|
89
|
+
sourcesContent: false,
|
|
90
|
+
// do not include sources content in sourcemap
|
|
91
|
+
platform: "node",
|
|
92
|
+
// d'oh! :-)
|
|
93
|
+
minifyWhitespace: true,
|
|
94
|
+
// https://github.com/evanw/esbuild/releases/tag/v0.16.14
|
|
95
|
+
logLevel: "silent",
|
|
96
|
+
// catching those in our _esbReport below
|
|
97
|
+
target: `node${process.versions["node"]}`,
|
|
98
|
+
// target _this_ version
|
|
99
|
+
define: { __fileurl }
|
|
100
|
+
// from "globals.d.ts"
|
|
101
|
+
};
|
|
102
|
+
if (_debug) {
|
|
103
|
+
if (format === "esm") {
|
|
104
|
+
options.banner = `;(await import('node:util')).debuglog('plug:ts-loader')('[esm] Loaded "%s"', ${__fileurl});`;
|
|
105
|
+
} else if (format === "cjs") {
|
|
106
|
+
options.banner = `;require('node:util').debuglog('plug:ts-loader')('[cjs] Loaded "%s"', ${__fileurl});`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
let result;
|
|
110
|
+
try {
|
|
111
|
+
const source = _fs.readFileSync(filename, "utf-8");
|
|
112
|
+
result = _esbuild.transformSync(source, options);
|
|
113
|
+
} catch (cause) {
|
|
114
|
+
_esbReport("error", cause.errors);
|
|
115
|
+
_esbReport("warning", cause.warnings);
|
|
116
|
+
throwError(type, `ESBuild error transpiling "${filename}"`, { cause, start: esbTranpile });
|
|
117
|
+
}
|
|
118
|
+
if (_debug)
|
|
119
|
+
_esbReport("warning", result.warnings);
|
|
120
|
+
return result.code;
|
|
121
|
+
}
|
|
122
|
+
function isFile(path) {
|
|
123
|
+
try {
|
|
124
|
+
return _fs.statSync(path).isFile();
|
|
125
|
+
} catch (error) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function isDirectory(path) {
|
|
130
|
+
try {
|
|
131
|
+
return _fs.statSync(path).isDirectory();
|
|
132
|
+
} catch (error) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// src/loader-module.mts
|
|
138
|
+
var _type = moduleType(CJS);
|
|
139
|
+
var resolve = (specifier, context, nextResolve) => {
|
|
140
|
+
logMessage(ESM, `Resolving "${specifier}" from "${context.parentURL}"`);
|
|
141
|
+
if (!specifier.match(/^\.\.?\//))
|
|
142
|
+
return nextResolve(specifier, context);
|
|
143
|
+
const parentURL = context.parentURL;
|
|
144
|
+
if (!parentURL)
|
|
145
|
+
return nextResolve(specifier, context);
|
|
146
|
+
if (!parentURL.startsWith("file:"))
|
|
147
|
+
return nextResolve(specifier, context);
|
|
148
|
+
if (!parentURL.match(/\.m?ts$/))
|
|
149
|
+
return nextResolve(specifier, context);
|
|
150
|
+
const url = new URL(specifier, parentURL).href;
|
|
151
|
+
const path = _url.fileURLToPath(url);
|
|
152
|
+
if (isFile(path)) {
|
|
153
|
+
logMessage(ESM, `Positive match for "${specifier}" as "${path}" (1)`);
|
|
154
|
+
return nextResolve(specifier, context);
|
|
155
|
+
}
|
|
156
|
+
const match = specifier.match(/(.*)(\.[mc]?js$)/);
|
|
157
|
+
if (match) {
|
|
158
|
+
const [, base, ext] = match;
|
|
159
|
+
const tsspecifier = base + ext.replace("js", "ts");
|
|
160
|
+
const tsurl = new URL(tsspecifier, parentURL).href;
|
|
161
|
+
const tspath = _url.fileURLToPath(tsurl);
|
|
162
|
+
if (isFile(tspath)) {
|
|
163
|
+
logMessage(ESM, `Positive match for "${specifier}" as "${tspath}" (2)`);
|
|
164
|
+
return nextResolve(tsspecifier, context);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (isFile(`${path}.ts`)) {
|
|
168
|
+
logMessage(ESM, `Positive match for "${specifier}.ts" as "${path}.ts" (3)`);
|
|
169
|
+
return nextResolve(`${specifier}.ts`, context);
|
|
170
|
+
}
|
|
171
|
+
if (isDirectory(path)) {
|
|
172
|
+
const file = _path2.resolve(path, "index.ts");
|
|
173
|
+
if (isFile(file)) {
|
|
174
|
+
logMessage(ESM, `Positive match for "${specifier}" as "${file}" (4)`);
|
|
175
|
+
const spec = _url.pathToFileURL(file).pathname;
|
|
176
|
+
return nextResolve(spec, context);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return nextResolve(specifier, context);
|
|
180
|
+
};
|
|
181
|
+
var load = (url, context, nextLoad) => {
|
|
182
|
+
logMessage(ESM, `Attempting to load "${url}"`);
|
|
183
|
+
if (!url.startsWith("file:"))
|
|
184
|
+
return nextLoad(url, context);
|
|
185
|
+
const ext = url.match(/\.[cm]?ts$/)?.[0];
|
|
186
|
+
if (!ext)
|
|
187
|
+
return nextLoad(url, context);
|
|
188
|
+
if (ext === ".cts") {
|
|
189
|
+
logMessage(ESM, `Switching type from "module" to "commonjs" for "${url}"`);
|
|
190
|
+
logMessage(ESM, "Please note that named import WILL NOT WORK in this case, as Node.js performs a");
|
|
191
|
+
logMessage(ESM, "static analisys on the CommonJS source code, and this file is transpiled from.");
|
|
192
|
+
logMessage(ESM, "TypeScript to CommonJS dynamically.");
|
|
193
|
+
return { format: CJS, shortCircuit: true };
|
|
194
|
+
}
|
|
195
|
+
const filename = _url.fileURLToPath(url);
|
|
196
|
+
if (ext === ".ts") {
|
|
197
|
+
if (_type === CJS) {
|
|
198
|
+
logMessage(ESM, `Switching type from "module" to "commonjs" for "${url}"`);
|
|
199
|
+
logMessage(ESM, "Please note that named import WILL NOT WORK in this case, as Node.js performs a");
|
|
200
|
+
logMessage(ESM, "static analisys on the CommonJS source code, and this file is transpiled from.");
|
|
201
|
+
logMessage(ESM, "TypeScript to CommonJS dynamically.");
|
|
202
|
+
return { format: CJS, shortCircuit: true };
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const source = esbTranpile(filename, ESM);
|
|
206
|
+
return { source, format: ESM, shortCircuit: true };
|
|
207
|
+
};
|
|
208
|
+
logMessage(ESM, "TypeScript loader for ES Modules loaded");
|
|
209
|
+
export {
|
|
210
|
+
load,
|
|
211
|
+
resolve
|
|
212
|
+
};
|