@angular-devkit/build-angular 15.2.0 → 16.0.0-next.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/package.json +21 -21
- package/src/babel/plugins/adjust-static-class-members.js +5 -6
- package/src/babel/plugins/adjust-typescript-enums.js +2 -2
- package/src/babel/plugins/elide-angular-metadata.js +2 -3
- package/src/babel/presets/application.js +7 -8
- package/src/babel/webpack-loader.js +4 -6
- package/src/builders/app-shell/index.js +4 -5
- package/src/builders/browser/index.js +22 -30
- package/src/builders/browser-esbuild/angular/jit-compilation.js +3 -6
- package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.js +3 -5
- package/src/builders/browser-esbuild/angular/jit-resource-transformer.js +2 -3
- package/src/builders/browser-esbuild/angular-compilation.js +6 -8
- package/src/builders/browser-esbuild/angular-host.js +3 -5
- package/src/builders/browser-esbuild/compiler-plugin.js +22 -30
- package/src/builders/browser-esbuild/css-resource-plugin.js +4 -6
- package/src/builders/browser-esbuild/esbuild.js +5 -7
- package/src/builders/browser-esbuild/index.js +15 -18
- package/src/builders/browser-esbuild/javascript-transformer-worker.js +6 -7
- package/src/builders/browser-esbuild/less-plugin.js +3 -4
- package/src/builders/browser-esbuild/license-extractor.js +4 -4
- package/src/builders/browser-esbuild/options.js +10 -11
- package/src/builders/browser-esbuild/profiling.js +5 -6
- package/src/builders/browser-esbuild/sass-plugin.js +5 -6
- package/src/builders/browser-esbuild/stylesheets.js +4 -5
- package/src/builders/browser-esbuild/watcher.js +5 -5
- package/src/builders/dev-server/index.js +14 -19
- package/src/builders/extract-i18n/index.js +7 -8
- package/src/builders/extract-i18n/ivy-extract-loader.js +4 -4
- package/src/builders/karma/find-tests-plugin.js +4 -4
- package/src/builders/karma/index.js +13 -17
- package/src/builders/ng-packagr/index.js +3 -5
- package/src/builders/protractor/index.js +3 -3
- package/src/builders/server/index.js +7 -11
- package/src/sass/rebasing-importer.js +6 -8
- package/src/sass/sass-service-legacy.js +3 -3
- package/src/sass/sass-service.js +7 -10
- package/src/sass/worker-legacy.js +4 -5
- package/src/sass/worker.js +6 -8
- package/src/utils/action-executor.js +2 -3
- package/src/utils/bundle-calculator.js +2 -2
- package/src/utils/i18n-options.js +5 -5
- package/src/utils/index-file/augment-index-html.js +2 -2
- package/src/utils/index-file/index-html-generator.js +5 -8
- package/src/utils/index-file/inline-fonts.js +3 -5
- package/src/utils/load-translations.js +2 -2
- package/src/utils/normalize-asset-patterns.js +2 -2
- package/src/utils/normalize-cache.js +2 -3
- package/src/utils/process-bundle.js +2 -3
- package/src/utils/purge-cache.js +2 -3
- package/src/utils/version.js +3 -3
- package/src/utils/webpack-browser-config.js +3 -5
- package/src/webpack/configs/common.js +6 -7
- package/src/webpack/configs/dev-server.js +2 -3
- package/src/webpack/configs/styles.js +4 -5
- package/src/webpack/plugins/builder-watch-plugin.js +4 -5
- package/src/webpack/plugins/common-js-usage-warn-plugin.js +3 -4
- package/src/webpack/plugins/css-optimizer-plugin.js +4 -4
- package/src/webpack/plugins/dedupe-module-resolve-plugin.js +4 -5
- package/src/webpack/plugins/esbuild-executor.js +3 -3
- package/src/webpack/plugins/hmr/hmr-accept.js +3 -3
- package/src/webpack/plugins/index-html-webpack-plugin.js +2 -3
- package/src/webpack/plugins/javascript-optimizer-plugin.js +3 -3
- package/src/webpack/plugins/karma/karma.js +4 -4
- package/src/webpack/plugins/postcss-cli-resources.js +2 -2
- package/src/webpack/plugins/remove-hash-plugin.js +3 -4
- package/src/webpack/plugins/scripts-webpack-plugin.js +2 -3
- package/src/webpack/plugins/styles-webpack-plugin.js +4 -5
- package/src/webpack/plugins/typescript.js +4 -5
- package/src/webpack/plugins/watch-files-logs-plugin.js +3 -3
- package/src/webpack/utils/async-chunks.js +2 -2
- package/src/webpack/utils/helpers.js +3 -4
- package/src/webpack/utils/stats.js +15 -18
|
@@ -39,13 +39,12 @@ const inline_critical_css_1 = require("./inline-critical-css");
|
|
|
39
39
|
const inline_fonts_1 = require("./inline-fonts");
|
|
40
40
|
class IndexHtmlGenerator {
|
|
41
41
|
constructor(options) {
|
|
42
|
-
var _a, _b;
|
|
43
42
|
this.options = options;
|
|
44
43
|
const extraPlugins = [];
|
|
45
|
-
if (
|
|
44
|
+
if (this.options.optimization?.fonts.inline) {
|
|
46
45
|
extraPlugins.push(inlineFontsPlugin(this));
|
|
47
46
|
}
|
|
48
|
-
if (
|
|
47
|
+
if (this.options.optimization?.styles.inlineCritical) {
|
|
49
48
|
extraPlugins.push(inlineCriticalCssPlugin(this));
|
|
50
49
|
}
|
|
51
50
|
this.plugins = [augmentIndexHtmlPlugin(this), ...extraPlugins, postTransformPlugin(this)];
|
|
@@ -101,16 +100,14 @@ function augmentIndexHtmlPlugin(generator) {
|
|
|
101
100
|
};
|
|
102
101
|
}
|
|
103
102
|
function inlineFontsPlugin({ options }) {
|
|
104
|
-
var _a;
|
|
105
103
|
const inlineFontsProcessor = new inline_fonts_1.InlineFontsProcessor({
|
|
106
|
-
minify:
|
|
104
|
+
minify: options.optimization?.styles.minify,
|
|
107
105
|
});
|
|
108
106
|
return async (html) => inlineFontsProcessor.process(html);
|
|
109
107
|
}
|
|
110
108
|
function inlineCriticalCssPlugin(generator) {
|
|
111
|
-
var _a;
|
|
112
109
|
const inlineCriticalCssProcessor = new inline_critical_css_1.InlineCriticalCssProcessor({
|
|
113
|
-
minify:
|
|
110
|
+
minify: generator.options.optimization?.styles.minify,
|
|
114
111
|
deployUrl: generator.options.deployUrl,
|
|
115
112
|
readAsset: (filePath) => generator.readAsset(filePath),
|
|
116
113
|
});
|
|
@@ -119,4 +116,4 @@ function inlineCriticalCssPlugin(generator) {
|
|
|
119
116
|
function postTransformPlugin({ options }) {
|
|
120
117
|
return async (html) => (options.postTransform ? options.postTransform(html) : html);
|
|
121
118
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtaHRtbC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9pbmRleC1maWxlL2luZGV4LWh0bWwtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUc1Qiw0Q0FBd0M7QUFDeEMsNkRBQWdHO0FBQ2hHLCtEQUFtRTtBQUNuRSxpREFBc0Q7QUFpQ3RELE1BQWEsa0JBQWtCO0lBRzdCLFlBQXFCLE9BQWtDOztRQUFsQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNyRCxNQUFNLFlBQVksR0FBK0IsRUFBRSxDQUFDO1FBQ3BELElBQUksTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksMENBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMzQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDcEQsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBeUM7UUFDckQsSUFBSSxPQUFPLEdBQUcsSUFBQSxvQkFBUSxFQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENB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UUFBUSxDQUFDO0tBQ3ZELENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUM3QiwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFzQjtJQUMxRCxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucyB9IGZyb20gJy4uL25vcm1hbGl6ZS1jYWNoZSc7XG5pbXBvcnQgeyBOb3JtYWxpemVkT3B0aW1pemF0aW9uT3B0aW9ucyB9IGZyb20gJy4uL25vcm1hbGl6ZS1vcHRpbWl6YXRpb24nO1xuaW1wb3J0IHsgc3RyaXBCb20gfSBmcm9tICcuLi9zdHJpcC1ib20nO1xuaW1wb3J0IHsgQ3Jvc3NPcmlnaW5WYWx1ZSwgRW50cnlwb2ludCwgRmlsZUluZm8sIGF1Z21lbnRJbmRleEh0bWwgfSBmcm9tICcuL2F1Z21lbnQtaW5kZXgtaHRtbCc7XG5pbXBvcnQgeyBJbmxpbmVDcml0aWNhbENzc1Byb2Nlc3NvciB9IGZyb20gJy4vaW5saW5lLWNyaXRpY2FsLWNzcyc7XG5pbXBvcnQgeyBJbmxpbmVGb250c1Byb2Nlc3NvciB9IGZyb20gJy4vaW5saW5lLWZvbnRzJztcblxudHlwZSBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW4gPSAoXG4gIGh0bWw6IHN0cmluZyxcbiAgb3B0aW9uczogSW5kZXhIdG1sR2VuZXJhdG9yUHJvY2Vzc09wdGlvbnMsXG4pID0+IFByb21pc2U8c3RyaW5nIHwgSW5kZXhIdG1sVHJhbnNmb3JtUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEh0bWxHZW5lcmF0b3JQcm9jZXNzT3B0aW9ucyB7XG4gIGxhbmc6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgYmFzZUhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3V0cHV0UGF0aDogc3RyaW5nO1xuICBmaWxlczogRmlsZUluZm9bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEh0bWxHZW5lcmF0b3JPcHRpb25zIHtcbiAgaW5kZXhQYXRoOiBzdHJpbmc7XG4gIGRlcGxveVVybD86IHN0cmluZztcbiAgc3JpPzogYm9vbGVhbjtcbiAgZW50cnlwb2ludHM6IEVudHJ5cG9pbnRbXTtcbiAgcG9zdFRyYW5zZm9ybT86IEluZGV4SHRtbFRyYW5zZm9ybTtcbiAgY3Jvc3NPcmlnaW4/OiBDcm9zc09yaWdpblZhbHVlO1xuICBvcHRpbWl6YXRpb24/OiBOb3JtYWxpemVkT3B0aW1pemF0aW9uT3B0aW9ucztcbiAgY2FjaGU/OiBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgSW5kZXhIdG1sVHJhbnNmb3JtID0gKGNvbnRlbnQ6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4SHRtbFRyYW5zZm9ybVJlc3VsdCB7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgd2FybmluZ3M6IHN0cmluZ1tdO1xuICBlcnJvcnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSW5kZXhIdG1sR2VuZXJhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW5bXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBvcHRpb25zOiBJbmRleEh0bWxHZW5lcmF0b3JPcHRpb25zKSB7XG4gICAgY29uc3QgZXh0cmFQbHVnaW5zOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW5bXSA9IFtdO1xuICAgIGlmICh0aGlzLm9wdGlvbnMub3B0aW1pemF0aW9uPy5mb250cy5pbmxpbmUpIHtcbiAgICAgIGV4dHJhUGx1Z2lucy5wdXNoKGlubGluZUZvbnRzUGx1Z2luKHRoaXMpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm9wdGltaXphdGlvbj8uc3R5bGVzLmlubGluZUNyaXRpY2FsKSB7XG4gICAgICBleHRyYVBsdWdpbnMucHVzaChpbmxpbmVDcml0aWNhbENzc1BsdWdpbih0aGlzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wbHVnaW5zID0gW2F1Z21lbnRJbmRleEh0bWxQbHVnaW4odGhpcyksIC4uLmV4dHJhUGx1Z2lucywgcG9zdFRyYW5zZm9ybVBsdWdpbih0aGlzKV07XG4gIH1cblxuICBhc3luYyBwcm9jZXNzKG9wdGlvbnM6IEluZGV4SHRtbEdlbmVyYXRvclByb2Nlc3NPcHRpb25zKTogUHJvbWlzZTxJbmRleEh0bWxUcmFuc2Zvcm1SZXN1bHQ+IHtcbiAgICBsZXQgY29udGVudCA9IHN0cmlwQm9tKGF3YWl0IHRoaXMucmVhZEluZGV4KHRoaXMub3B0aW9ucy5pbmRleFBhdGgpKTtcbiAgICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBsdWdpbihjb250ZW50LCBvcHRpb25zKTtcbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb250ZW50ID0gcmVzdWx0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGVudCA9IHJlc3VsdC5jb250ZW50O1xuXG4gICAgICAgIGlmIChyZXN1bHQud2FybmluZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgd2FybmluZ3MucHVzaCguLi5yZXN1bHQud2FybmluZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goLi4ucmVzdWx0LmVycm9ycyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudCxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgZXJyb3JzLFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZWFkQXNzZXQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZnMucHJvbWlzZXMucmVhZEZpbGUocGF0aCwgJ3V0Zi04Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVhZEluZGV4KHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZzLnByb21pc2VzLnJlYWRGaWxlKHBhdGgsICd1dGYtOCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF1Z21lbnRJbmRleEh0bWxQbHVnaW4oZ2VuZXJhdG9yOiBJbmRleEh0bWxHZW5lcmF0b3IpOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW4ge1xuICBjb25zdCB7IGRlcGxveVVybCwgY3Jvc3NPcmlnaW4sIHNyaSA9IGZhbHNlLCBlbnRyeXBvaW50cyB9ID0gZ2VuZXJhdG9yLm9wdGlvbnM7XG5cbiAgcmV0dXJuIGFzeW5jIChodG1sLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBsYW5nLCBiYXNlSHJlZiwgb3V0cHV0UGF0aCA9ICcnLCBmaWxlcyB9ID0gb3B0aW9ucztcblxuICAgIHJldHVybiBhdWdtZW50SW5kZXhIdG1sKHtcbiAgICAgIGh0bWwsXG4gICAgICBiYXNlSHJlZixcbiAgICAgIGRlcGxveVVybCxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgICAgc3JpLFxuICAgICAgbGFuZyxcbiAgICAgIGVudHJ5cG9pbnRzLFxuICAgICAgbG9hZE91dHB1dEZpbGU6IChmaWxlUGF0aCkgPT4gZ2VuZXJhdG9yLnJlYWRBc3NldChqb2luKG91dHB1dFBhdGgsIGZpbGVQYXRoKSksXG4gICAgICBmaWxlcyxcbiAgICB9KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5saW5lRm9udHNQbHVnaW4oeyBvcHRpb25zIH06IEluZGV4SHRtbEdlbmVyYXRvcik6IEluZGV4SHRtbEdlbmVyYXRvclBsdWdpbiB7XG4gIGNvbnN0IGlubGluZUZvbnRzUHJvY2Vzc29yID0gbmV3IElubGluZUZvbnRzUHJvY2Vzc29yKHtcbiAgICBtaW5pZnk6IG9wdGlvbnMub3B0aW1pemF0aW9uPy5zdHlsZXMubWluaWZ5LFxuICB9KTtcblxuICByZXR1cm4gYXN5bmMgKGh0bWwpID0+IGlubGluZUZvbnRzUHJvY2Vzc29yLnByb2Nlc3MoaHRtbCk7XG59XG5cbmZ1bmN0aW9uIGlubGluZUNyaXRpY2FsQ3NzUGx1Z2luKGdlbmVyYXRvcjogSW5kZXhIdG1sR2VuZXJhdG9yKTogSW5kZXhIdG1sR2VuZXJhdG9yUGx1Z2luIHtcbiAgY29uc3QgaW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3IgPSBuZXcgSW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3Ioe1xuICAgIG1pbmlmeTogZ2VuZXJhdG9yLm9wdGlvbnMub3B0aW1pemF0aW9uPy5zdHlsZXMubWluaWZ5LFxuICAgIGRlcGxveVVybDogZ2VuZXJhdG9yLm9wdGlvbnMuZGVwbG95VXJsLFxuICAgIHJlYWRBc3NldDogKGZpbGVQYXRoKSA9PiBnZW5lcmF0b3IucmVhZEFzc2V0KGZpbGVQYXRoKSxcbiAgfSk7XG5cbiAgcmV0dXJuIGFzeW5jIChodG1sLCBvcHRpb25zKSA9PlxuICAgIGlubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yLnByb2Nlc3MoaHRtbCwgeyBvdXRwdXRQYXRoOiBvcHRpb25zLm91dHB1dFBhdGggfSk7XG59XG5cbmZ1bmN0aW9uIHBvc3RUcmFuc2Zvcm1QbHVnaW4oeyBvcHRpb25zIH06IEluZGV4SHRtbEdlbmVyYXRvcik6IEluZGV4SHRtbEdlbmVyYXRvclBsdWdpbiB7XG4gIHJldHVybiBhc3luYyAoaHRtbCkgPT4gKG9wdGlvbnMucG9zdFRyYW5zZm9ybSA/IG9wdGlvbnMucG9zdFRyYW5zZm9ybShodG1sKSA6IGh0bWwpO1xufVxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtaHRtbC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9pbmRleC1maWxlL2luZGV4LWh0bWwtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUc1Qiw0Q0FBd0M7QUFDeEMsNkRBQWdHO0FBQ2hHLCtEQUFtRTtBQUNuRSxpREFBc0Q7QUFpQ3RELE1BQWEsa0JBQWtCO0lBRzdCLFlBQXFCLE9BQWtDO1FBQWxDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ3JELE1BQU0sWUFBWSxHQUErQixFQUFFLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzNDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUNwRCxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFBLG9CQUFRLEVBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMs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QUVILE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUM3QiwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFzQjtJQUMxRCxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucyB9IGZyb20gJy4uL25vcm1hbGl6ZS1jYWNoZSc7XG5pbXBvcnQgeyBOb3JtYWxpemVkT3B0aW1pemF0aW9uT3B0aW9ucyB9IGZyb20gJy4uL25vcm1hbGl6ZS1vcHRpbWl6YXRpb24nO1xuaW1wb3J0IHsgc3RyaXBCb20gfSBmcm9tICcuLi9zdHJpcC1ib20nO1xuaW1wb3J0IHsgQ3Jvc3NPcmlnaW5WYWx1ZSwgRW50cnlwb2ludCwgRmlsZUluZm8sIGF1Z21lbnRJbmRleEh0bWwgfSBmcm9tICcuL2F1Z21lbnQtaW5kZXgtaHRtbCc7XG5pbXBvcnQgeyBJbmxpbmVDcml0aWNhbENzc1Byb2Nlc3NvciB9IGZyb20gJy4vaW5saW5lLWNyaXRpY2FsLWNzcyc7XG5pbXBvcnQgeyBJbmxpbmVGb250c1Byb2Nlc3NvciB9IGZyb20gJy4vaW5saW5lLWZvbnRzJztcblxudHlwZSBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW4gPSAoXG4gIGh0bWw6IHN0cmluZyxcbiAgb3B0aW9uczogSW5kZXhIdG1sR2VuZXJhdG9yUHJvY2Vzc09wdGlvbnMsXG4pID0+IFByb21pc2U8c3RyaW5nIHwgSW5kZXhIdG1sVHJhbnNmb3JtUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEh0bWxHZW5lcmF0b3JQcm9jZXNzT3B0aW9ucyB7XG4gIGxhbmc6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgYmFzZUhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3V0cHV0UGF0aDogc3RyaW5nO1xuICBmaWxlczogRmlsZUluZm9bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEh0bWxHZW5lcmF0b3JPcHRpb25zIHtcbiAgaW5kZXhQYXRoOiBzdHJpbmc7XG4gIGRlcGxveVVybD86IHN0cmluZztcbiAgc3JpPzogYm9vbGVhbjtcbiAgZW50cnlwb2ludHM6IEVudHJ5cG9pbnRbXTtcbiAgcG9zdFRyYW5zZm9ybT86IEluZGV4SHRtbFRyYW5zZm9ybTtcbiAgY3Jvc3NPcmlnaW4/OiBDcm9zc09yaWdpblZhbHVlO1xuICBvcHRpbWl6YXRpb24/OiBOb3JtYWxpemVkT3B0aW1pemF0aW9uT3B0aW9ucztcbiAgY2FjaGU/OiBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgSW5kZXhIdG1sVHJhbnNmb3JtID0gKGNvbnRlbnQ6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4SHRtbFRyYW5zZm9ybVJlc3VsdCB7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgd2FybmluZ3M6IHN0cmluZ1tdO1xuICBlcnJvcnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSW5kZXhIdG1sR2VuZXJhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW5bXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBvcHRpb25zOiBJbmRleEh0bWxHZW5lcmF0b3JPcHRpb25zKSB7XG4gICAgY29uc3QgZXh0cmFQbHVnaW5zOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW5bXSA9IFtdO1xuICAgIGlmICh0aGlzLm9wdGlvbnMub3B0aW1pemF0aW9uPy5mb250cy5pbmxpbmUpIHtcbiAgICAgIGV4dHJhUGx1Z2lucy5wdXNoKGlubGluZUZvbnRzUGx1Z2luKHRoaXMpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm9wdGltaXphdGlvbj8uc3R5bGVzLmlubGluZUNyaXRpY2FsKSB7XG4gICAgICBleHRyYVBsdWdpbnMucHVzaChpbmxpbmVDcml0aWNhbENzc1BsdWdpbih0aGlzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wbHVnaW5zID0gW2F1Z21lbnRJbmRleEh0bWxQbHVnaW4odGhpcyksIC4uLmV4dHJhUGx1Z2lucywgcG9zdFRyYW5zZm9ybVBsdWdpbih0aGlzKV07XG4gIH1cblxuICBhc3luYyBwcm9jZXNzKG9wdGlvbnM6IEluZGV4SHRtbEdlbmVyYXRvclByb2Nlc3NPcHRpb25zKTogUHJvbWlzZTxJbmRleEh0bWxUcmFuc2Zvcm1SZXN1bHQ+IHtcbiAgICBsZXQgY29udGVudCA9IHN0cmlwQm9tKGF3YWl0IHRoaXMucmVhZEluZGV4KHRoaXMub3B0aW9ucy5pbmRleFBhdGgpKTtcbiAgICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBsdWdpbihjb250ZW50LCBvcHRpb25zKTtcbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb250ZW50ID0gcmVzdWx0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGVudCA9IHJlc3VsdC5jb250ZW50O1xuXG4gICAgICAgIGlmIChyZXN1bHQud2FybmluZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgd2FybmluZ3MucHVzaCguLi5yZXN1bHQud2FybmluZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goLi4ucmVzdWx0LmVycm9ycyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudCxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgZXJyb3JzLFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZWFkQXNzZXQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZnMucHJvbWlzZXMucmVhZEZpbGUocGF0aCwgJ3V0Zi04Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVhZEluZGV4KHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZzLnByb21pc2VzLnJlYWRGaWxlKHBhdGgsICd1dGYtOCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF1Z21lbnRJbmRleEh0bWxQbHVnaW4oZ2VuZXJhdG9yOiBJbmRleEh0bWxHZW5lcmF0b3IpOiBJbmRleEh0bWxHZW5lcmF0b3JQbHVnaW4ge1xuICBjb25zdCB7IGRlcGxveVVybCwgY3Jvc3NPcmlnaW4sIHNyaSA9IGZhbHNlLCBlbnRyeXBvaW50cyB9ID0gZ2VuZXJhdG9yLm9wdGlvbnM7XG5cbiAgcmV0dXJuIGFzeW5jIChodG1sLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBsYW5nLCBiYXNlSHJlZiwgb3V0cHV0UGF0aCA9ICcnLCBmaWxlcyB9ID0gb3B0aW9ucztcblxuICAgIHJldHVybiBhdWdtZW50SW5kZXhIdG1sKHtcbiAgICAgIGh0bWwsXG4gICAgICBiYXNlSHJlZixcbiAgICAgIGRlcGxveVVybCxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgICAgc3JpLFxuICAgICAgbGFuZyxcbiAgICAgIGVudHJ5cG9pbnRzLFxuICAgICAgbG9hZE91dHB1dEZpbGU6IChmaWxlUGF0aCkgPT4gZ2VuZXJhdG9yLnJlYWRBc3NldChqb2luKG91dHB1dFBhdGgsIGZpbGVQYXRoKSksXG4gICAgICBmaWxlcyxcbiAgICB9KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5saW5lRm9udHNQbHVnaW4oeyBvcHRpb25zIH06IEluZGV4SHRtbEdlbmVyYXRvcik6IEluZGV4SHRtbEdlbmVyYXRvclBsdWdpbiB7XG4gIGNvbnN0IGlubGluZUZvbnRzUHJvY2Vzc29yID0gbmV3IElubGluZUZvbnRzUHJvY2Vzc29yKHtcbiAgICBtaW5pZnk6IG9wdGlvbnMub3B0aW1pemF0aW9uPy5zdHlsZXMubWluaWZ5LFxuICB9KTtcblxuICByZXR1cm4gYXN5bmMgKGh0bWwpID0+IGlubGluZUZvbnRzUHJvY2Vzc29yLnByb2Nlc3MoaHRtbCk7XG59XG5cbmZ1bmN0aW9uIGlubGluZUNyaXRpY2FsQ3NzUGx1Z2luKGdlbmVyYXRvcjogSW5kZXhIdG1sR2VuZXJhdG9yKTogSW5kZXhIdG1sR2VuZXJhdG9yUGx1Z2luIHtcbiAgY29uc3QgaW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3IgPSBuZXcgSW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3Ioe1xuICAgIG1pbmlmeTogZ2VuZXJhdG9yLm9wdGlvbnMub3B0aW1pemF0aW9uPy5zdHlsZXMubWluaWZ5LFxuICAgIGRlcGxveVVybDogZ2VuZXJhdG9yLm9wdGlvbnMuZGVwbG95VXJsLFxuICAgIHJlYWRBc3NldDogKGZpbGVQYXRoKSA9PiBnZW5lcmF0b3IucmVhZEFzc2V0KGZpbGVQYXRoKSxcbiAgfSk7XG5cbiAgcmV0dXJuIGFzeW5jIChodG1sLCBvcHRpb25zKSA9PlxuICAgIGlubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yLnByb2Nlc3MoaHRtbCwgeyBvdXRwdXRQYXRoOiBvcHRpb25zLm91dHB1dFBhdGggfSk7XG59XG5cbmZ1bmN0aW9uIHBvc3RUcmFuc2Zvcm1QbHVnaW4oeyBvcHRpb25zIH06IEluZGV4SHRtbEdlbmVyYXRvcik6IEluZGV4SHRtbEdlbmVyYXRvclBsdWdpbiB7XG4gIHJldHVybiBhc3luYyAoaHRtbCkgPT4gKG9wdGlvbnMucG9zdFRyYW5zZm9ybSA/IG9wdGlvbnMucG9zdFRyYW5zZm9ybShodG1sKSA6IGh0bWwpO1xufVxuIl19
|
|
@@ -59,7 +59,6 @@ class InlineFontsProcessor {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
async process(content) {
|
|
62
|
-
var _a;
|
|
63
62
|
const hrefList = [];
|
|
64
63
|
const existingPreconnect = new Set();
|
|
65
64
|
// Collector link tags with href
|
|
@@ -114,7 +113,7 @@ class InlineFontsProcessor {
|
|
|
114
113
|
}
|
|
115
114
|
hrefsContent.set(hrefItem, content);
|
|
116
115
|
// Add preconnect
|
|
117
|
-
const preconnectUrl =
|
|
116
|
+
const preconnectUrl = this.getFontProviderDetails(url)?.preconnectUrl;
|
|
118
117
|
if (preconnectUrl && !existingPreconnect.has(preconnectUrl)) {
|
|
119
118
|
newPreconnectUrls.add(preconnectUrl);
|
|
120
119
|
}
|
|
@@ -153,7 +152,6 @@ class InlineFontsProcessor {
|
|
|
153
152
|
return transformedContent();
|
|
154
153
|
}
|
|
155
154
|
async getResponse(url) {
|
|
156
|
-
var _a;
|
|
157
155
|
const key = `${package_version_1.VERSION}|${url}`;
|
|
158
156
|
if (this.cachePath) {
|
|
159
157
|
const entry = await cacache.get.info(this.cachePath, key);
|
|
@@ -162,7 +160,7 @@ class InlineFontsProcessor {
|
|
|
162
160
|
}
|
|
163
161
|
}
|
|
164
162
|
let agent;
|
|
165
|
-
const httpsProxy =
|
|
163
|
+
const httpsProxy = process.env.HTTPS_PROXY ?? process.env.https_proxy;
|
|
166
164
|
if (httpsProxy) {
|
|
167
165
|
agent = (0, https_proxy_agent_1.default)(httpsProxy);
|
|
168
166
|
}
|
|
@@ -225,4 +223,4 @@ class InlineFontsProcessor {
|
|
|
225
223
|
}
|
|
226
224
|
}
|
|
227
225
|
exports.InlineFontsProcessor = InlineFontsProcessor;
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWZvbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvaW5kZXgtZmlsZS9pbmxpbmUtZm9udHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxpREFBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUMvQiwwRUFBMkM7QUFDM0MsK0JBQTRCO0FBQzVCLDZCQUEwQjtBQUUxQix3REFBNkM7QUFDN0MsbUVBQThEO0FBVzlELE1BQU0sbUJBQW1CLEdBQXdDO0lBQy9ELHNCQUFzQixFQUFFO1FBQ3RCLGFBQWEsRUFBRSwyQkFBMkI7S0FDM0M7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixhQUFhLEVBQUUseUJBQXlCO0tBQ3pDO0NBQ0YsQ0FBQztBQUVGLE1BQWEsb0JBQW9CO0lBRS9CLFlBQW9CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLGNBQWMsSUFBSSxPQUFPLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFBLFdBQUksRUFBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7O1FBQzNCLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFN0MsZ0NBQWdDO1FBQ2hDLE1BQU0sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFF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c0IsQ0FBQyxHQUFRO1FBQ3JDLE9BQU8sbUJBQW1CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3ZDLGlGQUFpRjtRQUNqRixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsaUJBQWlCO1lBQ2pCLHFDQUFxQztZQUNyQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLHVCQUF1QjtRQUN2QixHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV4QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQW5PRCxvREFtT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgY2FjYWNoZSBmcm9tICdjYWNhY2hlJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBwcm94eUFnZW50IGZyb20gJ2h0dHBzLXByb3h5LWFnZW50JztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5pbXBvcnQgeyBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucyB9IGZyb20gJy4uL25vcm1hbGl6ZS1jYWNoZSc7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi4vcGFja2FnZS12ZXJzaW9uJztcbmltcG9ydCB7IGh0bWxSZXdyaXRpbmdTdHJlYW0gfSBmcm9tICcuL2h0bWwtcmV3cml0aW5nLXN0cmVhbSc7XG5cbmludGVyZmFjZSBGb250UHJvdmlkZXJEZXRhaWxzIHtcbiAgcHJlY29ubmVjdFVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElubGluZUZvbnRzT3B0aW9ucyB7XG4gIG1pbmlmeT86IGJvb2xlYW47XG4gIGNhY2hlPzogTm9ybWFsaXplZENhY2hlZE9wdGlvbnM7XG59XG5cbmNvbnN0IFNVUFBPUlRFRF9QUk9WSURFUlM6IFJlY29yZDxzdHJpbmcsIEZvbnRQcm92aWRlckRldGFpbHM+ID0ge1xuICAnZm9udHMuZ29vZ2xlYXBpcy5jb20nOiB7XG4gICAgcHJlY29ubmVjdFVybDogJ2h0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20nLFxuICB9LFxuICAndXNlLnR5cGVraXQubmV0Jzoge1xuICAgIHByZWNvbm5lY3RVcmw6ICdodHRwczovL3VzZS50eXBla2l0Lm5ldCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY2xhc3MgSW5saW5lRm9udHNQcm9jZXNzb3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IElubGluZUZvbnRzT3B0aW9ucykge1xuICAgIGNvbnN0IHsgcGF0aDogY2FjaGVEaXJlY3RvcnksIGVuYWJsZWQgfSA9IHRoaXMub3B0aW9ucy5jYWNoZSB8fCB7fTtcbiAgICBpZiAoY2FjaGVEaXJlY3RvcnkgJiYgZW5hYmxlZCkge1xuICAgICAgdGhpcy5jYWNoZVBhdGggPSBqb2luKGNhY2hlRGlyZWN0b3J5LCAnYW5ndWxhci1idWlsZC1mb250cycpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHByb2Nlc3MoY29udGVudDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBocmVmTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBleGlzdGluZ1ByZWNvbm5lY3QgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIC8vIENvbGxlY3RvciBsaW5rIHRhZ3Mgd2l0aCBocmVmXG4gICAgY29uc3QgeyByZXdyaXRlcjogY29sbGVjdG9yU3RyZWFtLCB0cmFuc2Zvcm1lZENvbnRlbnQ6IGluaXRDb2xsZWN0b3JTdHJlYW0gfSA9XG4gICAgICBhd2FpdCBodG1sUmV3cml0aW5nU3RyZWFtKGNvbnRlbnQpO1xuXG4gICAgY29sbGVjdG9yU3RyZWFtLm9uKCdzdGFydFRhZycsICh0YWcpID0+IHtcbiAgICAgIGNvbnN0IHsgdGFnTmFtZSwgYXR0cnMgfSA9IHRhZztcblxuICAgICAgaWYgKHRhZ05hbWUgIT09ICdsaW5rJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCBocmVmVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCByZWxWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgZm9yIChjb25zdCB7IG5hbWUsIHZhbHVlIH0gb2YgYXR0cnMpIHtcbiAgICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgICAgY2FzZSAncmVsJzpcbiAgICAgICAgICAgIHJlbFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2hyZWYnOlxuICAgICAgICAgICAgaHJlZlZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChocmVmVmFsdWUgJiYgcmVsVmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKHJlbFZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdzdHlsZXNoZWV0JzpcbiAgICAgICAgICAgICAgLy8gPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCJodHRwczovL2V4YW1wbGUuY29tL21haW4uY3NzXCI+XG4gICAgICAgICAgICAgIGhyZWZMaXN0LnB1c2goaHJlZlZhbHVlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3ByZWNvbm5lY3QnOlxuICAgICAgICAgICAgICAvLyA8bGluayByZWw9XCJwcmVjb25uZWN0XCIgaHJlZj1cImh0dHBzOi8vZXhhbXBsZS5jb21cIj5cbiAgICAgICAgICAgICAgZXhpc3RpbmdQcmVjb25uZWN0LmFkZChocmVmVmFsdWUucmVwbGFjZSgvXFwvJC8sICcnKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaW5pdENvbGxlY3RvclN0cmVhbSgpLmNhdGNoKCgpID0+IHtcbiAgICAgIC8vIFdlIGRvbid0IHJlYWxseSBjYXJlIGFib3V0IGFueSBlcnJvcnMgaGVyZSBiZWNhdXNlIGl0IGp1c3QgaW5pdGlhbGl6ZXNcbiAgICAgIC8vIHRoZSByZXdyaXRpbmcgc3RyZWFtLCBhcyB3ZSBhcmUgd2FpdGluZyBmb3IgYGZpbmlzaGAgYmVsb3cuXG4gICAgfSk7XG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gY29sbGVjdG9yU3RyZWFtLm9uKCdmaW5pc2gnLCByZXNvbHZlKSk7XG5cbiAgICAvLyBEb3dubG9hZCBzdHlsZXNoZWV0c1xuICAgIGNvbnN0IGhyZWZzQ29udGVudCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgY29uc3QgbmV3UHJlY29ubmVjdFVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGZvciAoY29uc3QgaHJlZkl0ZW0gb2YgaHJlZkxpc3QpIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuY3JlYXRlTm9ybWFsaXplZFVybChocmVmSXRlbSk7XG4gICAgICBpZiAoIXVybCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMucHJvY2Vzc0hyZWYodXJsKTtcbiAgICAgIGlmIChjb250ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGhyZWZzQ29udGVudC5zZXQoaHJlZkl0ZW0sIGNvbnRlbnQpO1xuXG4gICAgICAvLyBBZGQgcHJlY29ubmVjdFxuICAgICAgY29uc3QgcHJlY29ubmVjdFVybCA9IHRoaXMuZ2V0Rm9udFByb3ZpZGVyRGV0YWlscyh1cmwpPy5wcmVjb25uZWN0VXJsO1xuICAgICAgaWYgKHByZWNvbm5lY3RVcmwgJiYgIWV4aXN0aW5nUHJlY29ubmVjdC5oYXMocHJlY29ubmVjdFVybCkpIHtcbiAgICAgICAgbmV3UHJlY29ubmVjdFVybHMuYWRkKHByZWNvbm5lY3RVcmwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChocmVmc0NvbnRlbnQuc2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gUmVwbGFjZSBsaW5rIHdpdGggc3R5bGUgdGFnLlxuICAgIGNvbnN0IHsgcmV3cml0ZXIsIHRyYW5zZm9ybWVkQ29udGVudCB9ID0gYXdhaXQgaHRtbFJld3JpdGluZ1N0cmVhbShjb250ZW50KTtcbiAgICByZXdyaXRlci5vbignc3RhcnRUYWcnLCAodGFnKSA9PiB7XG4gICAgICBjb25zdCB7IHRhZ05hbWUsIGF0dHJzIH0gPSB0YWc7XG5cbiAgICAgIHN3aXRjaCAodGFnTmFtZSkge1xuICAgICAgICBjYXNlICdoZWFkJzpcbiAgICAgICAgICByZXdyaXRlci5lbWl0U3RhcnRUYWcodGFnKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHVybCBvZiBuZXdQcmVjb25uZWN0VXJscykge1xuICAgICAgICAgICAgcmV3cml0ZXIuZW1pdFJhdyhgPGxpbmsgcmVsPVwicHJlY29ubmVjdFwiIGhyZWY9XCIke3VybH1cIiBjcm9zc29yaWdpbj5gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgICAgY29uc3QgaHJlZkF0dHIgPVxuICAgICAgICAgICAgYXR0cnMuc29tZSgoeyBuYW1lLCB2YWx1ZSB9KSA9PiBuYW1lID09PSAncmVsJyAmJiB2YWx1ZSA9PT0gJ3N0eWxlc2hlZXQnKSAmJlxuICAgICAgICAgICAgYXR0cnMuZmluZCgoeyBuYW1lLCB2YWx1ZSB9KSA9PiBuYW1lID09PSAnaHJlZicgJiYgaHJlZnNDb250ZW50Lmhhcyh2YWx1ZSkpO1xuICAgICAgICAgIGlmIChocmVmQXR0cikge1xuICAgICAgICAgICAgY29uc3QgaHJlZiA9IGhyZWZBdHRyLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgY3NzQ29udGVudCA9IGhyZWZzQ29udGVudC5nZXQoaHJlZik7XG4gICAgICAgICAgICByZXdyaXRlci5lbWl0UmF3KGA8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+JHtjc3NDb250ZW50fTwvc3R5bGU+YCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJld3JpdGVyLmVtaXRTdGFydFRhZyh0YWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJld3JpdGVyLmVtaXRTdGFydFRhZyh0YWcpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZWRDb250ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlc3BvbnNlKHVybDogVVJMKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtWRVJTSU9OfXwke3VybH1gO1xuXG4gICAgaWYgKHRoaXMuY2FjaGVQYXRoKSB7XG4gICAgICBjb25zdCBlbnRyeSA9IGF3YWl0IGNhY2FjaGUuZ2V0LmluZm8odGhpcy5jYWNoZVBhdGgsIGtleSk7XG4gICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIGZzLnByb21pc2VzLnJlYWRGaWxlKGVudHJ5LnBhdGgsICd1dGY4Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGFnZW50OiBwcm94eUFnZW50Lkh0dHBzUHJveHlBZ2VudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBodHRwc1Byb3h5ID0gcHJvY2Vzcy5lbnYuSFRUUFNfUFJPWFkgPz8gcHJvY2Vzcy5lbnYuaHR0cHNfcHJveHk7XG5cbiAgICBpZiAoaHR0cHNQcm94eSkge1xuICAgICAgYWdlbnQgPSBwcm94eUFnZW50KGh0dHBzUHJveHkpO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCByYXdSZXNwb25zZSA9ICcnO1xuICAgICAgaHR0cHNcbiAgICAgICAgLmdldChcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWdlbnQsXG4gICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAndXNlci1hZ2VudCc6XG4gICAgICAgICAgICAgICAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzYpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84NS4wLjQxODMuMTIxIFNhZmFyaS81MzcuMzYnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgSW5saW5pbmcgb2YgZm9udHMgZmFpbGVkLiAke3VybH0gcmV0dXJuZWQgc3RhdHVzIGNvZGU6ICR7cmVzLnN0YXR1c0NvZGV9LmAsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlcy5vbignZGF0YScsIChjaHVuaykgPT4gKHJhd1Jlc3BvbnNlICs9IGNodW5rKSkub24oJ2VuZCcsICgpID0+IHJlc29sdmUocmF3UmVzcG9uc2UpKTtcbiAgICAgICAgICB9LFxuICAgICAgICApXG4gICAgICAgIC5vbignZXJyb3InLCAoZSkgPT5cbiAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBJbmxpbmluZyBvZiBmb250cyBmYWlsZWQuIEFuIGVycm9yIGhhcyBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nICR7dXJsfSBvdmVyIHRoZSBpbnRlcm5ldC5cXG5gICtcbiAgICAgICAgICAgICAgICBlLm1lc3NhZ2UsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jYWNoZVBhdGgpIHtcbiAgICAgIGF3YWl0IGNhY2FjaGUucHV0KHRoaXMuY2FjaGVQYXRoLCBrZXksIGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzSHJlZih1cmw6IFVSTCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmdldEZvbnRQcm92aWRlckRldGFpbHModXJsKTtcbiAgICBpZiAoIXByb3ZpZGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBjc3NDb250ZW50ID0gYXdhaXQgdGhpcy5nZXRSZXNwb25zZSh1cmwpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW5pZnkpIHtcbiAgICAgIGNzc0NvbnRlbnQgPSBjc3NDb250ZW50XG4gICAgICAgIC8vIENvbW1lbnRzLlxuICAgICAgICAucmVwbGFjZSgvXFwvXFwqKFtcXHNcXFNdKj8pXFwqXFwvL2csICcnKVxuICAgICAgICAvLyBOZXcgbGluZXMuXG4gICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgIC8vIFNhZmUgc3BhY2VzLlxuICAgICAgICAucmVwbGFjZSgvXFxzP1t7OjtdXFxzKy9nLCAocykgPT4gcy50cmltKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBjc3NDb250ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb250UHJvdmlkZXJEZXRhaWxzKHVybDogVVJMKTogRm9udFByb3ZpZGVyRGV0YWlscyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIFNVUFBPUlRFRF9QUk9WSURFUlNbdXJsLmhvc3RuYW1lXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTm9ybWFsaXplZFVybCh2YWx1ZTogc3RyaW5nKTogVVJMIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBOZWVkIHRvIGNvbnZlcnQgJy8vJyB0byAnaHR0cHM6Ly8nIGJlY2F1c2UgdGhlIFVSTCBwYXJzZXIgd2lsbCBmYWlsIHdpdGggJy8vJy5cbiAgICBjb25zdCBub3JtYWxpemVkSHJlZiA9IHZhbHVlLnN0YXJ0c1dpdGgoJy8vJykgPyBgaHR0cHM6JHt2YWx1ZX1gIDogdmFsdWU7XG4gICAgaWYgKCFub3JtYWxpemVkSHJlZi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgIC8vIE5vbiB2YWxpZCBVUkwuXG4gICAgICAvLyBFeGFtcGxlOiByZWxhdGl2ZSBwYXRoIHN0eWxlcy5jc3MuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobm9ybWFsaXplZEhyZWYpO1xuICAgIC8vIEZvcmNlIEhUVFBTIHByb3RvY29sXG4gICAgdXJsLnByb3RvY29sID0gJ2h0dHBzOic7XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWZvbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvaW5kZXgtZmlsZS9pbmxpbmUtZm9udHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxpREFBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUMvQiwwRUFBMkM7QUFDM0MsK0JBQTRCO0FBQzVCLDZCQUEwQjtBQUUxQix3REFBNkM7QUFDN0MsbUVBQThEO0FBVzlELE1BQU0sbUJBQW1CLEdBQXdDO0lBQy9ELHNCQUFzQixFQUFFO1FBQ3RCLGFBQWEsRUFBRSwyQkFBMkI7S0FDM0M7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixhQUFhLEVBQUUseUJBQXlCO0tBQ3pDO0NBQ0YsQ0FBQztBQUVGLE1BQWEsb0JBQW9CO0lBRS9CLFlBQW9CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLGNBQWMsSUFBSSxPQUFPLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFBLFdBQUksRUFBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7UUFDM0IsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUU3QyxnQ0FBZ0M7UUFDaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUs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QUNyQyxPQUFPLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYTtRQUN2QyxpRkFBaUY7UUFDakYsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLGlCQUFpQjtZQUNqQixxQ0FBcUM7WUFDckMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyx1QkFBdUI7UUFDdkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFeEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFuT0Qsb0RBbU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGNhY2FjaGUgZnJvbSAnY2FjYWNoZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgcHJveHlBZ2VudCBmcm9tICdodHRwcy1wcm94eS1hZ2VudCc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgTm9ybWFsaXplZENhY2hlZE9wdGlvbnMgfSBmcm9tICcuLi9ub3JtYWxpemUtY2FjaGUnO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4uL3BhY2thZ2UtdmVyc2lvbic7XG5pbXBvcnQgeyBodG1sUmV3cml0aW5nU3RyZWFtIH0gZnJvbSAnLi9odG1sLXJld3JpdGluZy1zdHJlYW0nO1xuXG5pbnRlcmZhY2UgRm9udFByb3ZpZGVyRGV0YWlscyB7XG4gIHByZWNvbm5lY3RVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVGb250c09wdGlvbnMge1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBjYWNoZT86IE5vcm1hbGl6ZWRDYWNoZWRPcHRpb25zO1xufVxuXG5jb25zdCBTVVBQT1JURURfUFJPVklERVJTOiBSZWNvcmQ8c3RyaW5nLCBGb250UHJvdmlkZXJEZXRhaWxzPiA9IHtcbiAgJ2ZvbnRzLmdvb2dsZWFwaXMuY29tJzoge1xuICAgIHByZWNvbm5lY3RVcmw6ICdodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tJyxcbiAgfSxcbiAgJ3VzZS50eXBla2l0Lm5ldCc6IHtcbiAgICBwcmVjb25uZWN0VXJsOiAnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQnLFxuICB9LFxufTtcblxuZXhwb3J0IGNsYXNzIElubGluZUZvbnRzUHJvY2Vzc29yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBJbmxpbmVGb250c09wdGlvbnMpIHtcbiAgICBjb25zdCB7IHBhdGg6IGNhY2hlRGlyZWN0b3J5LCBlbmFibGVkIH0gPSB0aGlzLm9wdGlvbnMuY2FjaGUgfHwge307XG4gICAgaWYgKGNhY2hlRGlyZWN0b3J5ICYmIGVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY2FjaGVQYXRoID0gam9pbihjYWNoZURpcmVjdG9yeSwgJ2FuZ3VsYXItYnVpbGQtZm9udHMnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwcm9jZXNzKGNvbnRlbnQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaHJlZkxpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgZXhpc3RpbmdQcmVjb25uZWN0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvLyBDb2xsZWN0b3IgbGluayB0YWdzIHdpdGggaHJlZlxuICAgIGNvbnN0IHsgcmV3cml0ZXI6IGNvbGxlY3RvclN0cmVhbSwgdHJhbnNmb3JtZWRDb250ZW50OiBpbml0Q29sbGVjdG9yU3RyZWFtIH0gPVxuICAgICAgYXdhaXQgaHRtbFJld3JpdGluZ1N0cmVhbShjb250ZW50KTtcblxuICAgIGNvbGxlY3RvclN0cmVhbS5vbignc3RhcnRUYWcnLCAodGFnKSA9PiB7XG4gICAgICBjb25zdCB7IHRhZ05hbWUsIGF0dHJzIH0gPSB0YWc7XG5cbiAgICAgIGlmICh0YWdOYW1lICE9PSAnbGluaycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgaHJlZlZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBsZXQgcmVsVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIGF0dHJzKSB7XG4gICAgICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgICAgIGNhc2UgJ3JlbCc6XG4gICAgICAgICAgICByZWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdocmVmJzpcbiAgICAgICAgICAgIGhyZWZWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaHJlZlZhbHVlICYmIHJlbFZhbHVlKSB7XG4gICAgICAgICAgc3dpdGNoIChyZWxWYWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnc3R5bGVzaGVldCc6XG4gICAgICAgICAgICAgIC8vIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiaHR0cHM6Ly9leGFtcGxlLmNvbS9tYWluLmNzc1wiPlxuICAgICAgICAgICAgICBocmVmTGlzdC5wdXNoKGhyZWZWYWx1ZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdwcmVjb25uZWN0JzpcbiAgICAgICAgICAgICAgLy8gPGxpbmsgcmVsPVwicHJlY29ubmVjdFwiIGhyZWY9XCJodHRwczovL2V4YW1wbGUuY29tXCI+XG4gICAgICAgICAgICAgIGV4aXN0aW5nUHJlY29ubmVjdC5hZGQoaHJlZlZhbHVlLnJlcGxhY2UoL1xcLyQvLCAnJykpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGluaXRDb2xsZWN0b3JTdHJlYW0oKS5jYXRjaCgoKSA9PiB7XG4gICAgICAvLyBXZSBkb24ndCByZWFsbHkgY2FyZSBhYm91dCBhbnkgZXJyb3JzIGhlcmUgYmVjYXVzZSBpdCBqdXN0IGluaXRpYWxpemVzXG4gICAgICAvLyB0aGUgcmV3cml0aW5nIHN0cmVhbSwgYXMgd2UgYXJlIHdhaXRpbmcgZm9yIGBmaW5pc2hgIGJlbG93LlxuICAgIH0pO1xuXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IGNvbGxlY3RvclN0cmVhbS5vbignZmluaXNoJywgcmVzb2x2ZSkpO1xuXG4gICAgLy8gRG93bmxvYWQgc3R5bGVzaGVldHNcbiAgICBjb25zdCBocmVmc0NvbnRlbnQgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGNvbnN0IG5ld1ByZWNvbm5lY3RVcmxzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IGhyZWZJdGVtIG9mIGhyZWZMaXN0KSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmNyZWF0ZU5vcm1hbGl6ZWRVcmwoaHJlZkl0ZW0pO1xuICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLnByb2Nlc3NIcmVmKHVybCk7XG4gICAgICBpZiAoY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBocmVmc0NvbnRlbnQuc2V0KGhyZWZJdGVtLCBjb250ZW50KTtcblxuICAgICAgLy8gQWRkIHByZWNvbm5lY3RcbiAgICAgIGNvbnN0IHByZWNvbm5lY3RVcmwgPSB0aGlzLmdldEZvbnRQcm92aWRlckRldGFpbHModXJsKT8ucHJlY29ubmVjdFVybDtcbiAgICAgIGlmIChwcmVjb25uZWN0VXJsICYmICFleGlzdGluZ1ByZWNvbm5lY3QuaGFzKHByZWNvbm5lY3RVcmwpKSB7XG4gICAgICAgIG5ld1ByZWNvbm5lY3RVcmxzLmFkZChwcmVjb25uZWN0VXJsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaHJlZnNDb250ZW50LnNpemUgPT09IDApIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIFJlcGxhY2UgbGluayB3aXRoIHN0eWxlIHRhZy5cbiAgICBjb25zdCB7IHJld3JpdGVyLCB0cmFuc2Zvcm1lZENvbnRlbnQgfSA9IGF3YWl0IGh0bWxSZXdyaXRpbmdTdHJlYW0oY29udGVudCk7XG4gICAgcmV3cml0ZXIub24oJ3N0YXJ0VGFnJywgKHRhZykgPT4ge1xuICAgICAgY29uc3QgeyB0YWdOYW1lLCBhdHRycyB9ID0gdGFnO1xuXG4gICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgICAgcmV3cml0ZXIuZW1pdFN0YXJ0VGFnKHRhZyk7XG4gICAgICAgICAgZm9yIChjb25zdCB1cmwgb2YgbmV3UHJlY29ubmVjdFVybHMpIHtcbiAgICAgICAgICAgIHJld3JpdGVyLmVtaXRSYXcoYDxsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiJHt1cmx9XCIgY3Jvc3NvcmlnaW4+YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICAgIGNvbnN0IGhyZWZBdHRyID1cbiAgICAgICAgICAgIGF0dHJzLnNvbWUoKHsgbmFtZSwgdmFsdWUgfSkgPT4gbmFtZSA9PT0gJ3JlbCcgJiYgdmFsdWUgPT09ICdzdHlsZXNoZWV0JykgJiZcbiAgICAgICAgICAgIGF0dHJzLmZpbmQoKHsgbmFtZSwgdmFsdWUgfSkgPT4gbmFtZSA9PT0gJ2hyZWYnICYmIGhyZWZzQ29udGVudC5oYXModmFsdWUpKTtcbiAgICAgICAgICBpZiAoaHJlZkF0dHIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhyZWYgPSBocmVmQXR0ci52YWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGNzc0NvbnRlbnQgPSBocmVmc0NvbnRlbnQuZ2V0KGhyZWYpO1xuICAgICAgICAgICAgcmV3cml0ZXIuZW1pdFJhdyhgPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPiR7Y3NzQ29udGVudH08L3N0eWxlPmApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXdyaXRlci5lbWl0U3RhcnRUYWcodGFnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXdyaXRlci5lbWl0U3RhcnRUYWcodGFnKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkQ29udGVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZXNwb25zZSh1cmw6IFVSTCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qga2V5ID0gYCR7VkVSU0lPTn18JHt1cmx9YDtcblxuICAgIGlmICh0aGlzLmNhY2hlUGF0aCkge1xuICAgICAgY29uc3QgZW50cnkgPSBhd2FpdCBjYWNhY2hlLmdldC5pbmZvKHRoaXMuY2FjaGVQYXRoLCBrZXkpO1xuICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiBmcy5wcm9taXNlcy5yZWFkRmlsZShlbnRyeS5wYXRoLCAndXRmOCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBhZ2VudDogcHJveHlBZ2VudC5IdHRwc1Byb3h5QWdlbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgaHR0cHNQcm94eSA9IHByb2Nlc3MuZW52LkhUVFBTX1BST1hZID8/IHByb2Nlc3MuZW52Lmh0dHBzX3Byb3h5O1xuXG4gICAgaWYgKGh0dHBzUHJveHkpIHtcbiAgICAgIGFnZW50ID0gcHJveHlBZ2VudChodHRwc1Byb3h5KTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgcmF3UmVzcG9uc2UgPSAnJztcbiAgICAgIGh0dHBzXG4gICAgICAgIC5nZXQoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFnZW50LFxuICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ3VzZXItYWdlbnQnOlxuICAgICAgICAgICAgICAgICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV82KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODUuMC40MTgzLjEyMSBTYWZhcmkvNTM3LjM2JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgYElubGluaW5nIG9mIGZvbnRzIGZhaWxlZC4gJHt1cmx9IHJldHVybmVkIHN0YXR1cyBjb2RlOiAke3Jlcy5zdGF0dXNDb2RlfS5gLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMub24oJ2RhdGEnLCAoY2h1bmspID0+IChyYXdSZXNwb25zZSArPSBjaHVuaykpLm9uKCdlbmQnLCAoKSA9PiByZXNvbHZlKHJhd1Jlc3BvbnNlKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICAub24oJ2Vycm9yJywgKGUpID0+XG4gICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgSW5saW5pbmcgb2YgZm9udHMgZmFpbGVkLiBBbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgcmV0cmlldmluZyAke3VybH0gb3ZlciB0aGUgaW50ZXJuZXQuXFxuYCArXG4gICAgICAgICAgICAgICAgZS5tZXNzYWdlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY2FjaGVQYXRoKSB7XG4gICAgICBhd2FpdCBjYWNhY2hlLnB1dCh0aGlzLmNhY2hlUGF0aCwga2V5LCBkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0hyZWYodXJsOiBVUkwpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gdGhpcy5nZXRGb250UHJvdmlkZXJEZXRhaWxzKHVybCk7XG4gICAgaWYgKCFwcm92aWRlcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgY3NzQ29udGVudCA9IGF3YWl0IHRoaXMuZ2V0UmVzcG9uc2UodXJsKTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluaWZ5KSB7XG4gICAgICBjc3NDb250ZW50ID0gY3NzQ29udGVudFxuICAgICAgICAvLyBDb21tZW50cy5cbiAgICAgICAgLnJlcGxhY2UoL1xcL1xcKihbXFxzXFxTXSo/KVxcKlxcLy9nLCAnJylcbiAgICAgICAgLy8gTmV3IGxpbmVzLlxuICAgICAgICAucmVwbGFjZSgvXFxuL2csICcnKVxuICAgICAgICAvLyBTYWZlIHNwYWNlcy5cbiAgICAgICAgLnJlcGxhY2UoL1xccz9bezo7XVxccysvZywgKHMpID0+IHMudHJpbSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3NzQ29udGVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9udFByb3ZpZGVyRGV0YWlscyh1cmw6IFVSTCk6IEZvbnRQcm92aWRlckRldGFpbHMgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBTVVBQT1JURURfUFJPVklERVJTW3VybC5ob3N0bmFtZV07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5vcm1hbGl6ZWRVcmwodmFsdWU6IHN0cmluZyk6IFVSTCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gTmVlZCB0byBjb252ZXJ0ICcvLycgdG8gJ2h0dHBzOi8vJyBiZWNhdXNlIHRoZSBVUkwgcGFyc2VyIHdpbGwgZmFpbCB3aXRoICcvLycuXG4gICAgY29uc3Qgbm9ybWFsaXplZEhyZWYgPSB2YWx1ZS5zdGFydHNXaXRoKCcvLycpID8gYGh0dHBzOiR7dmFsdWV9YCA6IHZhbHVlO1xuICAgIGlmICghbm9ybWFsaXplZEhyZWYuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAvLyBOb24gdmFsaWQgVVJMLlxuICAgICAgLy8gRXhhbXBsZTogcmVsYXRpdmUgcGF0aCBzdHlsZXMuY3NzLlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG5vcm1hbGl6ZWRIcmVmKTtcbiAgICAvLyBGb3JjZSBIVFRQUyBwcm90b2NvbFxuICAgIHVybC5wcm90b2NvbCA9ICdodHRwczonO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxufVxuIl19
|
|
@@ -78,8 +78,8 @@ async function importParsers() {
|
|
|
78
78
|
};
|
|
79
79
|
return { parsers, diagnostics };
|
|
80
80
|
}
|
|
81
|
-
catch
|
|
81
|
+
catch {
|
|
82
82
|
throw new Error(`Unable to load translation file parsers. Please ensure '@angular/localize' is installed.`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC10cmFuc2xhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9sb2FkLXRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdILG1DQUFvQztBQUNwQyx1Q0FBeUI7QUFDekIseUNBQTJDO0FBVXBDLEtBQUssVUFBVSx1QkFBdUI7SUFDM0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLGFBQWEsRUFBRSxDQUFDO0lBRXZELE9BQU8sQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsa0RBQWtEO2dCQUNsRCw4REFBOEQ7Z0JBQzlELE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFXLENBQUMsQ0FBQztnQkFDbkYsTUFBTSxTQUFTLEdBQUcsU0FBUyxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQ2pFO2lCQUFNO2dCQUNMLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFFRCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4RCxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztTQUM3RjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsMENBQTBDLElBQUksdUNBQXVDO1lBQ25GLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ3RCLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBN0JELDBEQTZCQztBQUVELEtBQUssVUFBVSxhQUFhO0lBQzFCLElBQUk7UUFDRixxRkFBcUY7UUFDckYseUZBQXlGO1FBQ3pGLHNDQUFzQztRQUN0QyxNQUFNLEVBQ0osV0FBVyxFQUNYLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixvQkFBb0IsR0FDckIsR0FBRyxNQUFNLElBQUEsd0JBQWEsRUFBMkMseUJBQXlCLENBQUMsQ0FBQztRQUU3RixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxFQUFFLElBQUksb0JBQW9CLEVBQUU7WUFDL0IsSUFBSSxFQUFFLElBQUksMkJBQTJCLEVBQUU7WUFDdkMsR0FBRyxFQUFFLElBQUksdUJBQXVCLEVBQUU7WUFDbEMsSUFBSSxFQUFFLElBQUksdUJBQXVCLEVBQUU7WUFDbkMsMERBQTBEO1lBQzFELEdBQUcsRUFBRSxJQUFJLG9CQUFvQixFQUFFO1NBQ2hDLENBQUM7UUFFRixPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0tBQ2pDO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEZBQTBGLENBQzNGLENBQUM7S0FDSDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEaWFnbm9zdGljcyB9IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJztcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgbG9hZEVzbU1vZHVsZSB9IGZyb20gJy4vbG9hZC1lc20nO1xuXG5leHBvcnQgdHlwZSBUcmFuc2xhdGlvbkxvYWRlciA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoJ0Bhbmd1bGFyL2xvY2FsaXplJykuybVQYXJzZWRUcmFuc2xhdGlvbj47XG4gIGZvcm1hdDogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljcztcbiAgaW50ZWdyaXR5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVHJhbnNsYXRpb25Mb2FkZXIoKTogUHJvbWlzZTxUcmFuc2xhdGlvbkxvYWRlcj4ge1xuICBjb25zdCB7IHBhcnNlcnMsIGRpYWdub3N0aWNzIH0gPSBhd2FpdCBpbXBvcnRQYXJzZXJzKCk7XG5cbiAgcmV0dXJuIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgdW51c2VkUGFyc2VycyA9IG5ldyBNYXAoKTtcbiAgICBmb3IgKGNvbnN0IFtmb3JtYXQsIHBhcnNlcl0gb2YgT2JqZWN0LmVudHJpZXMocGFyc2VycykpIHtcbiAgICAgIGNvbnN0IGFuYWx5c2lzID0gcGFyc2VyLmFuYWx5emUocGF0aCwgY29udGVudCk7XG4gICAgICBpZiAoYW5hbHlzaXMuY2FuUGFyc2UpIHtcbiAgICAgICAgLy8gVHlwZXMgZG9uJ3Qgb3ZlcmxhcCBoZXJlIHNvIHdlIG5lZWQgdG8gdXNlIGFueS5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgeyBsb2NhbGUsIHRyYW5zbGF0aW9ucyB9ID0gcGFyc2VyLnBhcnNlKHBhdGgsIGNvbnRlbnQsIGFuYWx5c2lzLmhpbnQgYXMgYW55KTtcbiAgICAgICAgY29uc3QgaW50ZWdyaXR5ID0gJ3NoYTI1Ni0nICsgY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGNvbnRlbnQpLmRpZ2VzdCgnYmFzZTY0Jyk7XG5cbiAgICAgICAgcmV0dXJuIHsgZm9ybWF0LCBsb2NhbGUsIHRyYW5zbGF0aW9ucywgZGlhZ25vc3RpY3MsIGludGVncml0eSB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW51c2VkUGFyc2Vycy5zZXQocGFyc2VyLCBhbmFseXNpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBbcGFyc2VyLCBhbmFseXNpc10gb2YgdW51c2VkUGFyc2Vycy5lbnRyaWVzKCkpIHtcbiAgICAgIG1lc3NhZ2VzLnB1c2goYW5hbHlzaXMuZGlhZ25vc3RpY3MuZm9ybWF0RGlhZ25vc3RpY3MoYCoqKiAke3BhcnNlci5jb25zdHJ1Y3Rvci5uYW1lfSAqKipgKSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBVbnN1cHBvcnRlZCB0cmFuc2xhdGlvbiBmaWxlIGZvcm1hdCBpbiAke3BhdGh9LiBUaGUgZm9sbG93aW5nIHBhcnNlcnMgd2VyZSB0cmllZDpcXG5gICtcbiAgICAgICAgbWVzc2FnZXMuam9pbignXFxuJyksXG4gICAgKTtcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW1wb3J0UGFyc2VycygpIHtcbiAgdHJ5IHtcbiAgICAvLyBMb2FkIEVTTSBgQGFuZ3VsYXIvbG9jYWxpemUvdG9vbHNgIHVzaW5nIHRoZSBUeXBlU2NyaXB0IGR5bmFtaWMgaW1wb3J0IHdvcmthcm91bmQuXG4gICAgLy8gT25jZSBUeXBlU2NyaXB0IHByb3ZpZGVzIHN1cHBvcnQgZm9yIGtlZXBpbmcgdGhlIGR5bmFtaWMgaW1wb3J0IHRoaXMgd29ya2Fyb3VuZCBjYW4gYmVcbiAgICAvLyBjaGFuZ2VkIHRvIGEgZGlyZWN0IGR5bmFtaWMgaW1wb3J0LlxuICAgIGNvbnN0IHtcbiAgICAgIERpYWdub3N0aWNzLFxuICAgICAgQXJiVHJhbnNsYXRpb25QYXJzZXIsXG4gICAgICBTaW1wbGVKc29uVHJhbnNsYXRpb25QYXJzZXIsXG4gICAgICBYbGlmZjFUcmFuc2xhdGlvblBhcnNlcixcbiAgICAgIFhsaWZmMlRyYW5zbGF0aW9uUGFyc2VyLFxuICAgICAgWHRiVHJhbnNsYXRpb25QYXJzZXIsXG4gICAgfSA9IGF3YWl0IGxvYWRFc21Nb2R1bGU8dHlwZW9mIGltcG9ydCgnQGFuZ3VsYXIvbG9jYWxpemUvdG9vbHMnKT4oJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJyk7XG5cbiAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljcygpO1xuICAgIGNvbnN0IHBhcnNlcnMgPSB7XG4gICAgICBhcmI6IG5ldyBBcmJUcmFuc2xhdGlvblBhcnNlcigpLFxuICAgICAganNvbjogbmV3IFNpbXBsZUpzb25UcmFuc2xhdGlvblBhcnNlcigpLFxuICAgICAgeGxmOiBuZXcgWGxpZmYxVHJhbnNsYXRpb25QYXJzZXIoKSxcbiAgICAgIHhsZjI6IG5ldyBYbGlmZjJUcmFuc2xhdGlvblBhcnNlcigpLFxuICAgICAgLy8gVGhlIG5hbWUgKCd4bWInKSBuZWVkcyB0byBtYXRjaCB0aGUgQU9UIGNvbXBpbGVyIG9wdGlvblxuICAgICAgeG1iOiBuZXcgWHRiVHJhbnNsYXRpb25QYXJzZXIoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHsgcGFyc2VycywgZGlhZ25vc3RpY3MgfTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBsb2FkIHRyYW5zbGF0aW9uIGZpbGUgcGFyc2Vycy4gUGxlYXNlIGVuc3VyZSAnQGFuZ3VsYXIvbG9jYWxpemUnIGlzIGluc3RhbGxlZC5gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -61,7 +61,7 @@ function normalizeAssetPatterns(assetPatterns, workspaceRoot, projectRoot, proje
|
|
|
61
61
|
try {
|
|
62
62
|
isDirectory = (0, fs_1.statSync)(resolvedAssetPath).isDirectory();
|
|
63
63
|
}
|
|
64
|
-
catch
|
|
64
|
+
catch {
|
|
65
65
|
isDirectory = true;
|
|
66
66
|
}
|
|
67
67
|
if (isDirectory) {
|
|
@@ -87,4 +87,4 @@ function normalizeAssetPatterns(assetPatterns, workspaceRoot, projectRoot, proje
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
exports.normalizeAssetPatterns = normalizeAssetPatterns;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWFzc2V0LXBhdHRlcm5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvbm9ybWFsaXplLWFzc2V0LXBhdHRlcm5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsK0NBQXFEO0FBQ3JELDJCQUE4QjtBQUM5QiwyQ0FBNkI7QUFHN0IsTUFBYSwrQkFBZ0MsU0FBUSxvQkFBYTtJQUNoRSxZQUFZLElBQVk7UUFDdEIsS0FBSyxDQUFDLE9BQU8sSUFBSSxzREFBc0QsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQUpELDBFQUlDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLGFBQTZCLEVBQzdCLGFBQXFCLEVBQ3JCLFdBQW1CLEVBQ25CLGlCQUFxQztJQUVyQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzlCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxzRUFBc0U7SUFDdEUsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVuRSxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUN4Qyw4Q0FBOEM7UUFDOUMsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRWpFLGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3JELE1BQU0sSUFBSSwrQkFBK0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6RDtZQUVELElBQUksSUFBWSxFQUFFLEtBQWEsQ0FBQztZQUNoQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFeEIsSUFBSTtnQkFDRixXQUFXLEdBQUcsSUFBQSxhQUFRLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUN6RDtZQUFDLE1BQU07Z0JBQ04sV0FBVyxHQUFHLElBQUksQ0FBQzthQUNwQjtZQUVELElBQUksV0FBVyxFQUFFO2dCQUNmLHFDQUFxQztnQkFDckMsSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDZCwwQ0FBMEM7Z0JBQzFDLEtBQUssR0FBRyxTQUFTLENBQUM7YUFDbkI7aUJBQU07Z0JBQ0wsNEJBQTRCO2dCQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEMsNkNBQTZDO2dCQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNqQztZQUVELDRFQUE0RTtZQUM1RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFckYsWUFBWSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUN4QztRQUVELElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1NBQ3pGO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBMURELHdEQTBEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCYXNlRXhjZXB0aW9uIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgc3RhdFN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXNzZXRQYXR0ZXJuLCBBc3NldFBhdHRlcm5DbGFzcyB9IGZyb20gJy4uL2J1aWxkZXJzL2Jyb3dzZXIvc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE1pc3NpbmdBc3NldFNvdXJjZVJvb3RFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocGF0aDogU3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSAke3BhdGh9IGFzc2V0IHBhdGggbXVzdCBzdGFydCB3aXRoIHRoZSBwcm9qZWN0IHNvdXJjZSByb290LmApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBc3NldFBhdHRlcm5zKFxuICBhc3NldFBhdHRlcm5zOiBBc3NldFBhdHRlcm5bXSxcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nLFxuICBwcm9qZWN0Um9vdDogc3RyaW5nLFxuICBwcm9qZWN0U291cmNlUm9vdDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuKTogQXNzZXRQYXR0ZXJuQ2xhc3NbXSB7XG4gIGlmIChhc3NldFBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIFdoZW4gc291cmNlUm9vdCBpcyBub3QgYXZhaWxhYmxlLCB3ZSBkZWZhdWx0IHRvICR7cHJvamVjdFJvb3R9L3NyYy5cbiAgY29uc3Qgc291cmNlUm9vdCA9IHByb2plY3RTb3VyY2VSb290IHx8IHBhdGguam9pbihwcm9qZWN0Um9vdCwgJ3NyYycpO1xuICBjb25zdCByZXNvbHZlZFNvdXJjZVJvb3QgPSBwYXRoLnJlc29sdmUod29ya3NwYWNlUm9vdCwgc291cmNlUm9vdCk7XG5cbiAgcmV0dXJuIGFzc2V0UGF0dGVybnMubWFwKChhc3NldFBhdHRlcm4pID0+IHtcbiAgICAvLyBOb3JtYWxpemUgc3RyaW5nIGFzc2V0IHBhdHRlcm5zIHRvIG9iamVjdHMuXG4gICAgaWYgKHR5cGVvZiBhc3NldFBhdHRlcm4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLm5vcm1hbGl6ZShhc3NldFBhdHRlcm4pO1xuICAgICAgY29uc3QgcmVzb2x2ZWRBc3NldFBhdGggPSBwYXRoLnJlc29sdmUod29ya3NwYWNlUm9vdCwgYXNzZXRQYXRoKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIHN0cmluZyBhc3NldCBpcyB3aXRoaW4gc291cmNlUm9vdC5cbiAgICAgIGlmICghcmVzb2x2ZWRBc3NldFBhdGguc3RhcnRzV2l0aChyZXNvbHZlZFNvdXJjZVJvb3QpKSB7XG4gICAgICAgIHRocm93IG5ldyBNaXNzaW5nQXNzZXRTb3VyY2VSb290RXhjZXB0aW9uKGFzc2V0UGF0dGVybik7XG4gICAgICB9XG5cbiAgICAgIGxldCBnbG9iOiBzdHJpbmcsIGlucHV0OiBzdHJpbmc7XG4gICAgICBsZXQgaXNEaXJlY3RvcnkgPSBmYWxzZTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgaXNEaXJlY3RvcnkgPSBzdGF0U3luYyhyZXNvbHZlZEFzc2V0UGF0aCkuaXNEaXJlY3RvcnkoKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBpc0RpcmVjdG9yeSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0RpcmVjdG9yeSkge1xuICAgICAgICAvLyBGb2xkZXJzIGdldCBhIHJlY3Vyc2l2ZSBzdGFyIGdsb2IuXG4gICAgICAgIGdsb2IgPSAnKiovKic7XG4gICAgICAgIC8vIElucHV0IGRpcmVjdG9yeSBpcyB0aGVpciBvcmlnaW5hbCBwYXRoLlxuICAgICAgICBpbnB1dCA9IGFzc2V0UGF0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZpbGVzIGFyZSB0aGVpciBvd24gZ2xvYi5cbiAgICAgICAgZ2xvYiA9IHBhdGguYmFzZW5hbWUoYXNzZXRQYXRoKTtcbiAgICAgICAgLy8gSW5wdXQgZGlyZWN0b3J5IGlzIHRoZWlyIG9yaWdpbmFsIGRpcm5hbWUuXG4gICAgICAgIGlucHV0ID0gcGF0aC5kaXJuYW1lKGFzc2V0UGF0aCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBkaXJlY3RvcnkgZm9yIGJvdGggaXMgdGhlIHJlbGF0aXZlIHBhdGggZnJvbSBzb3VyY2Ugcm9vdCB0byBpbnB1dC5cbiAgICAgIGNvbnN0IG91dHB1dCA9IHBhdGgucmVsYXRpdmUocmVzb2x2ZWRTb3VyY2VSb290LCBwYXRoLnJlc29sdmUod29ya3NwYWNlUm9vdCwgaW5wdXQpKTtcblxuICAgICAgYXNzZXRQYXR0ZXJuID0geyBnbG9iLCBpbnB1dCwgb3V0cHV0IH07XG4gICAgfVxuXG4gICAgaWYgKGFzc2V0UGF0dGVybi5vdXRwdXQuc3RhcnRzV2l0aCgnLi4nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBhc3NldCBjYW5ub3QgYmUgd3JpdHRlbiB0byBhIGxvY2F0aW9uIG91dHNpZGUgb2YgdGhlIG91dHB1dCBwYXRoLicpO1xuICAgIH1cblxuICAgIHJldHVybiBhc3NldFBhdHRlcm47XG4gIH0pO1xufVxuIl19
|
|
@@ -12,12 +12,11 @@ const core_1 = require("@angular-devkit/core");
|
|
|
12
12
|
const path_1 = require("path");
|
|
13
13
|
const package_version_1 = require("./package-version");
|
|
14
14
|
function normalizeCacheOptions(metadata, worspaceRoot) {
|
|
15
|
-
var _a;
|
|
16
15
|
const cacheMetadata = core_1.json.isJsonObject(metadata.cli) && core_1.json.isJsonObject(metadata.cli.cache)
|
|
17
16
|
? metadata.cli.cache
|
|
18
17
|
: {};
|
|
19
18
|
const { enabled = true, environment = 'local', path = '.angular/cache' } = cacheMetadata;
|
|
20
|
-
const isCI = process.env['CI'] === '1' ||
|
|
19
|
+
const isCI = process.env['CI'] === '1' || process.env['CI']?.toLowerCase() === 'true';
|
|
21
20
|
let cacheEnabled = enabled;
|
|
22
21
|
if (cacheEnabled) {
|
|
23
22
|
switch (environment) {
|
|
@@ -37,4 +36,4 @@ function normalizeCacheOptions(metadata, worspaceRoot) {
|
|
|
37
36
|
};
|
|
38
37
|
}
|
|
39
38
|
exports.normalizeCacheOptions = normalizeCacheOptions;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvbm9ybWFsaXplLWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtDQUE0QztBQUM1QywrQkFBcUM7QUFDckMsdURBQTRDO0FBaUI1QyxTQUFnQixxQkFBcUIsQ0FDbkMsUUFBeUIsRUFDekIsWUFBb0I7SUFFcEIsTUFBTSxhQUFhLEdBQ2pCLFdBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFdBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDdEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSztRQUNwQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVQsTUFBTSxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsV0FBVyxHQUFHLE9BQU8sRUFBRSxJQUFJLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxhQUFhLENBQUM7SUFDekYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7SUFFdEYsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQzNCLElBQUksWUFBWSxFQUFFO1FBQ2hCLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssSUFBSTtnQkFDUCxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDckIsTUFBTTtTQUNUO0tBQ0Y7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLGNBQU8sRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFbEQsT0FBTztRQUNMLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLElBQUksRUFBRSxJQUFBLFdBQUksRUFBQyxhQUFhLEVBQUUseUJBQU8sQ0FBQztLQUNuQyxDQUFDO0FBQ0osQ0FBQztBQS9CRCxzREErQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tICcuL3BhY2thZ2UtdmVyc2lvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZENhY2hlZE9wdGlvbnMge1xuICAvKiogV2hldGhlciBkaXNrIGNhY2hlIGlzIGVuYWJsZWQuICovXG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBEaXNrIGNhY2hlIHBhdGguIEV4YW1wbGU6IGAvLmFuZ3VsYXIvY2FjaGUvdjEyLjAuMGAuICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIERpc2sgY2FjaGUgYmFzZSBwYXRoLiBFeGFtcGxlOiBgLy5hbmd1bGFyL2NhY2hlYC4gKi9cbiAgYmFzZVBhdGg6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhY2hlTWV0YWRhdGEge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgZW52aXJvbm1lbnQ/OiAnbG9jYWwnIHwgJ2NpJyB8ICdhbGwnO1xuICBwYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ2FjaGVPcHRpb25zKFxuICBtZXRhZGF0YToganNvbi5Kc29uT2JqZWN0LFxuICB3b3JzcGFjZVJvb3Q6IHN0cmluZyxcbik6IE5vcm1hbGl6ZWRDYWNoZWRPcHRpb25zIHtcbiAgY29uc3QgY2FjaGVNZXRhZGF0YTogQ2FjaGVNZXRhZGF0YSA9XG4gICAganNvbi5pc0pzb25PYmplY3QobWV0YWRhdGEuY2xpKSAmJiBqc29uLmlzSnNvbk9iamVjdChtZXRhZGF0YS5jbGkuY2FjaGUpXG4gICAgICA/IG1ldGFkYXRhLmNsaS5jYWNoZVxuICAgICAgOiB7fTtcblxuICBjb25zdCB7IGVuYWJsZWQgPSB0cnVlLCBlbnZpcm9ubWVudCA9ICdsb2NhbCcsIHBhdGggPSAnLmFuZ3VsYXIvY2FjaGUnIH0gPSBjYWNoZU1ldGFkYXRhO1xuICBjb25zdCBpc0NJID0gcHJvY2Vzcy5lbnZbJ0NJJ10gPT09ICcxJyB8fCBwcm9jZXNzLmVudlsnQ0knXT8udG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuXG4gIGxldCBjYWNoZUVuYWJsZWQgPSBlbmFibGVkO1xuICBpZiAoY2FjaGVFbmFibGVkKSB7XG4gICAgc3dpdGNoIChlbnZpcm9ubWVudCkge1xuICAgICAgY2FzZSAnY2knOlxuICAgICAgICBjYWNoZUVuYWJsZWQgPSBpc0NJO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgY2FjaGVFbmFibGVkID0gIWlzQ0k7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNhY2hlQmFzZVBhdGggPSByZXNvbHZlKHdvcnNwYWNlUm9vdCwgcGF0aCk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbmFibGVkOiBjYWNoZUVuYWJsZWQsXG4gICAgYmFzZVBhdGg6IGNhY2hlQmFzZVBhdGgsXG4gICAgcGF0aDogam9pbihjYWNoZUJhc2VQYXRoLCBWRVJTSU9OKSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -97,7 +97,6 @@ async function createI18nPlugins(locale, translation, missingTranslation, should
|
|
|
97
97
|
}
|
|
98
98
|
const localizeName = '$localize';
|
|
99
99
|
async function inlineLocales(options) {
|
|
100
|
-
var _a;
|
|
101
100
|
if (!i18n || i18n.inlineLocales.size === 0) {
|
|
102
101
|
return { file: options.filename, diagnostics: [], count: 0 };
|
|
103
102
|
}
|
|
@@ -141,7 +140,7 @@ async function inlineLocales(options) {
|
|
|
141
140
|
let localeDataContent;
|
|
142
141
|
if (options.setLocale) {
|
|
143
142
|
// If locale data is provided, load it and prepend to file
|
|
144
|
-
const localeDataPath =
|
|
143
|
+
const localeDataPath = i18n.locales[locale]?.dataPath;
|
|
145
144
|
if (localeDataPath) {
|
|
146
145
|
localeDataContent = await loadLocaleData(localeDataPath, true);
|
|
147
146
|
}
|
|
@@ -310,4 +309,4 @@ async function loadLocaleData(path, optimize) {
|
|
|
310
309
|
}
|
|
311
310
|
return transformResult.code;
|
|
312
311
|
}
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1idW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9wcm9jZXNzLWJ1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHNFQUE4QztBQUM5QyxzQ0FRcUI7QUFDckIsK0RBQThDO0FBQzlDLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFDN0IsbURBQTRDO0FBRTVDLCtEQUFvRTtBQUNwRSxtQ0FBd0M7QUFFeEMseUNBQTJDO0FBSzNDLHFDQUFxQztBQUNyQywyREFBMkQ7QUFDM0QsSUFBSSxjQUE0RCxDQUFDO0FBRWpFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLDJCQUFVLElBQUksRUFBRSxDQUEyQixDQUFDO0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUluQzs7O0dBR0c7QUFDSCxJQUFJLG1CQUFzRCxDQUFDO0FBRTNEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsaUJBQWlCO0lBQzlCLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFO1FBQ3JDLE9BQU8sbUJBQW1CLENBQUM7S0FDNUI7SUFFRCxxRkFBcUY7SUFDckYseUZBQXlGO0lBQ3pGLHNDQUFzQztJQUN0QyxPQUFPLElBQUEsd0JBQWEsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLE1BQWMsRUFDZCxXQUFnQyxFQUNoQyxrQkFBa0QsRUFDbEQsWUFBcUIsRUFDckIsaUJBQTBCO0lBRTFCLE1BQU0sRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLGlCQUFpQixFQUFFLENBQUM7SUFFL0YsTUFBTSxPQUFP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Q0FBVyxJQUFJLFFBQVE7UUFDakMsT0FBTyxFQUFFLENBQUMsb0NBQWMsSUFBSSxRQUFRO1FBQ3BDLFFBQVEsRUFBRSxDQUFDLFFBQVE7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsSUFBSSxJQUFJLENBQUMsQ0FBQztLQUM1RTtJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCByZW1hcHBpbmcgZnJvbSAnQGFtcHByb2plY3QvcmVtYXBwaW5nJztcbmltcG9ydCB7XG4gIE5vZGVQYXRoLFxuICBQYXJzZVJlc3VsdCxcbiAgcGFyc2VTeW5jLFxuICB0cmFuc2Zvcm1Bc3luYyxcbiAgdHJhbnNmb3JtRnJvbUFzdFN5bmMsXG4gIHRyYXZlcnNlLFxuICB0eXBlcyxcbn0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHRlbXBsYXRlQnVpbGRlciBmcm9tICdAYmFiZWwvdGVtcGxhdGUnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHdvcmtlckRhdGEgfSBmcm9tICd3b3JrZXJfdGhyZWFkcyc7XG5pbXBvcnQgeyBJbmxpbmVPcHRpb25zIH0gZnJvbSAnLi9idW5kbGUtaW5saW5lLW9wdGlvbnMnO1xuaW1wb3J0IHsgYWxsb3dNaW5pZnksIHNob3VsZEJlYXV0aWZ5IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuL2Vycm9yJztcbmltcG9ydCB7IEkxOG5PcHRpb25zIH0gZnJvbSAnLi9pMThuLW9wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZEVzbU1vZHVsZSB9IGZyb20gJy4vbG9hZC1lc20nO1xuXG4vLyBFeHRyYWN0IFNvdXJjZW1hcCBpbnB1dCB0eXBlIGZyb20gdGhlIHJlbWFwcGluZyBmdW5jdGlvbiBzaW5jZSBpdCBpcyBub3QgY3VycmVudGx5IGV4cG9ydGVkXG50eXBlIFNvdXJjZU1hcElucHV0ID0gRXhjbHVkZTxQYXJhbWV0ZXJzPHR5cGVvZiByZW1hcHBpbmc+WzBdLCB1bmtub3duW10+O1xuXG4vLyBMYXp5IGxvYWRlZCB3ZWJwYWNrLXNvdXJjZXMgb2JqZWN0XG4vLyBXZWJwYWNrIGlzIG9ubHkgaW1wb3J0ZWQgaWYgbmVlZGVkIGR1cmluZyB0aGUgcHJvY2Vzc2luZ1xubGV0IHdlYnBhY2tTb3VyY2VzOiB0eXBlb2YgaW1wb3J0KCd3ZWJwYWNrJykuc291cmNlcyB8IHVuZGVmaW5lZDtcblxuY29uc3QgeyBpMThuIH0gPSAod29ya2VyRGF0YSB8fCB7fSkgYXMgeyBpMThuPzogSTE4bk9wdGlvbnMgfTtcblxuLyoqXG4gKiBJbnRlcm5hbCBmbGFnIHRvIGVuYWJsZSB0aGUgZGlyZWN0IHVzYWdlIG9mIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemVgIHRyYW5zbGF0aW9uIHBsdWdpbnMuXG4gKiBUaGVpciB1c2FnZSBpcyBjdXJyZW50bHkgc2V2ZXJhbCB0aW1lcyBzbG93ZXIgdGhhbiB0aGUgc3RyaW5nIG1hbmlwdWxhdGlvbiBtZXRob2QuXG4gKiBGdXR1cmUgd29yayB0byBvcHRpbWl6ZSB0aGUgcGx1Z2lucyBzaG91bGQgZW5hYmxlIHBsdWdpbiB1c2FnZSBhcyB0aGUgZGVmYXVsdC5cbiAqL1xuY29uc3QgVVNFX0xPQ0FMSVpFX1BMVUdJTlMgPSBmYWxzZTtcblxudHlwZSBMb2NhbGl6ZVV0aWxpdHlNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9sb2NhbGl6ZS90b29scycpO1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgYEBhbmd1bGFyL2xvY2FsaXplL3Rvb2xzYCBtb2R1bGUuXG4gKiBUaGlzIGlzIHVzZWQgdG8gcmVtb3ZlIHRoZSBuZWVkIHRvIHJlcGVhdGVkbHkgaW1wb3J0IHRoZSBtb2R1bGUgcGVyIGZpbGUgdHJhbnNsYXRpb24uXG4gKi9cbmxldCBsb2NhbGl6ZVRvb2xzTW9kdWxlOiBMb2NhbGl6ZVV0aWxpdHlNb2R1bGUgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gbG9hZCB0aGUgYEBhbmd1bGFyL2xvY2FsaXplL3Rvb2xzYCBtb2R1bGUgY29udGFpbmluZyB0aGUgZnVuY3Rpb25hbGl0eSB0b1xuICogcGVyZm9ybSB0aGUgZmlsZSB0cmFuc2xhdGlvbnMuXG4gKiBUaGlzIG1vZHVsZSBtdXN0IGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBhcyBpdCBpcyBhbiBFU00gbW9kdWxlIGFuZCB0aGlzIGZpbGUgaXMgQ29tbW9uSlMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRMb2NhbGl6ZVRvb2xzKCk6IFByb21pc2U8TG9jYWxpemVVdGlsaXR5TW9kdWxlPiB7XG4gIGlmIChsb2NhbGl6ZVRvb2xzTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbG9jYWxpemVUb29sc01vZHVsZTtcbiAgfVxuXG4gIC8vIExvYWQgRVNNIGBAYW5ndWxhci9sb2NhbGl6ZS90b29sc2AgdXNpbmcgdGhlIFR5cGVTY3JpcHQgZHluYW1pYyBpbXBvcnQgd29ya2Fyb3VuZC5cbiAgLy8gT25jZSBUeXBlU2NyaXB0IHByb3ZpZGVzIHN1cHBvcnQgZm9yIGtlZXBpbmcgdGhlIGR5bmFtaWMgaW1wb3J0IHRoaXMgd29ya2Fyb3VuZCBjYW4gYmVcbiAgLy8gY2hhbmdlZCB0byBhIGRpcmVjdCBkeW5hbWljIGltcG9ydC5cbiAgcmV0dXJuIGxvYWRFc21Nb2R1bGUoJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUkxOG5QbHVnaW5zKFxuICBsb2NhbGU6IHN0cmluZyxcbiAgdHJhbnNsYXRpb246IHVua25vd24gfCB1bmRlZmluZWQsXG4gIG1pc3NpbmdUcmFuc2xhdGlvbjogJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpZ25vcmUnLFxuICBzaG91bGRJbmxpbmU6IGJvb2xlYW4sXG4gIGxvY2FsZURhdGFDb250ZW50Pzogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHsgRGlhZ25vc3RpY3MsIG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW4sIG1ha2VMb2NhbGVQbHVnaW4gfSA9IGF3YWl0IGxvYWRMb2NhbGl6ZVRvb2xzKCk7XG5cbiAgY29uc3QgcGx1Z2lucyA9IFtdO1xuICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljcygpO1xuXG4gIGlmIChzaG91bGRJbmxpbmUpIHtcbiAgICBwbHVnaW5zLnB1c2goXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbihkaWFnbm9zdGljcywgKHRyYW5zbGF0aW9uIHx8IHt9KSBhcyBhbnksIHtcbiAgICAgICAgbWlzc2luZ1RyYW5zbGF0aW9uOiB0cmFuc2xhdGlvbiA9PT0gdW5kZWZpbmVkID8gJ2lnbm9yZScgOiBtaXNzaW5nVHJhbnNsYXRpb24sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcGx1Z2lucy5wdXNoKG1ha2VMb2NhbGVQbHVnaW4obG9jYWxlKSk7XG5cbiAgaWYgKGxvY2FsZURhdGFDb250ZW50KSB7XG4gICAgcGx1Z2lucy5wdXNoKHtcbiAgICAgIHZpc2l0b3I6IHtcbiAgICAgICAgUHJvZ3JhbShwYXRoOiBOb2RlUGF0aDx0eXBlcy5Qcm9ncmFtPikge1xuICAgICAgICAgIHBhdGgudW5zaGlmdENvbnRhaW5lcignYm9keScsIHRlbXBsYXRlQnVpbGRlci5hc3QobG9jYWxlRGF0YUNvbnRlbnQpKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4geyBkaWFnbm9zdGljcywgcGx1Z2lucyB9O1xufVxuXG5pbnRlcmZhY2UgTG9jYWxpemVQb3NpdGlvbiB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBtZXNzYWdlUGFydHM6IFRlbXBsYXRlU3RyaW5nc0FycmF5O1xuICBleHByZXNzaW9uczogdHlwZXMuRXhwcmVzc2lvbltdO1xufVxuXG5jb25zdCBsb2NhbGl6ZU5hbWUgPSAnJGxvY2FsaXplJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlubGluZUxvY2FsZXMob3B0aW9uczogSW5saW5lT3B0aW9ucykge1xuICBpZiAoIWkxOG4gfHwgaTE4bi5pbmxpbmVMb2NhbGVzLnNpemUgPT09IDApIHtcbiAgICByZXR1cm4geyBmaWxlOiBvcHRpb25zLmZpbGVuYW1lLCBkaWFnbm9zdGljczogW10sIGNvdW50OiAwIH07XG4gIH1cbiAgaWYgKGkxOG4uZmxhdE91dHB1dCAmJiBpMThuLmlubGluZUxvY2FsZXMuc2l6ZSA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZsYXQgb3V0cHV0IGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gaW5saW5pbmcgb25lIGxvY2FsZS4nKTtcbiAgfVxuXG4gIGNvbnN0IGhhc0xvY2FsaXplTmFtZSA9IG9wdGlvbnMuY29kZS5pbmNsdWRlcyhsb2NhbGl6ZU5hbWUpO1xuICBpZiAoIWhhc0xvY2FsaXplTmFtZSAmJiAhb3B0aW9ucy5zZXRMb2NhbGUpIHtcbiAgICByZXR1cm4gaW5saW5lQ29weU9ubHkob3B0aW9ucyk7XG4gIH1cblxuICBhd2FpdCBsb2FkTG9jYWxpemVUb29scygpO1xuXG4gIGxldCBhc3Q6IFBhcnNlUmVzdWx0IHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgdHJ5IHtcbiAgICBhc3QgPSBwYXJzZVN5bmMob3B0aW9ucy5jb2RlLCB7XG4gICAgICBiYWJlbHJjOiBmYWxzZSxcbiAgICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgICAgc291cmNlVHlwZTogJ3VuYW1iaWd1b3VzJyxcbiAgICAgIGZpbGVuYW1lOiBvcHRpb25zLmZpbGVuYW1lLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGFzc2VydElzRXJyb3IoZXJyb3IpO1xuXG4gICAgLy8gTWFrZSB0aGUgZXJyb3IgbW9yZSByZWFkYWJsZS5cbiAgICAvLyBTYW1lIGVycm9ycyB3aWxsIGNvbnRhaW4gdGhlIGZ1bGwgY29udGVudCBvZiB0aGUgZmlsZSBhcyB0aGUgZXJyb3IgbWVzc2FnZVxuICAgIC8vIFdoaWNoIG1ha2VzIGl0IGhhcmQgdG8gZmluZCB0aGUgYWN0dWFsIGVycm9yIG1lc3NhZ2UuXG4gICAgY29uc3QgaW5kZXggPSBlcnJvci5tZXNzYWdlLmluZGV4T2YoJylcXG4nKTtcbiAgICBjb25zdCBtc2cgPSBpbmRleCAhPT0gLTEgPyBlcnJvci5tZXNzYWdlLnNsaWNlKDAsIGluZGV4ICsgMSkgOiBlcnJvci5tZXNzYWdlO1xuICAgIHRocm93IG5ldyBFcnJvcihgJHttc2d9XFxuQW4gZXJyb3Igb2NjdXJyZWQgaW5saW5pbmcgZmlsZSBcIiR7b3B0aW9ucy5maWxlbmFtZX1cImApO1xuICB9XG5cbiAgaWYgKCFhc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZXJyb3Igb2NjdXJyZWQgaW5saW5pbmcgZmlsZSBcIiR7b3B0aW9ucy5maWxlbmFtZX1cImApO1xuICB9XG5cbiAgaWYgKCFVU0VfTE9DQUxJWkVfUExVR0lOUykge1xuICAgIHJldHVybiBpbmxpbmVMb2NhbGVzRGlyZWN0KGFzdCwgb3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBkaWFnbm9zdGljcyA9IFtdO1xuICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBpMThuLmlubGluZUxvY2FsZXMpIHtcbiAgICBjb25zdCBpc1NvdXJjZUxvY2FsZSA9IGxvY2FsZSA9PT0gaTE4bi5zb3VyY2VMb2NhbGU7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCB0cmFuc2xhdGlvbnM6IGFueSA9IGlzU291cmNlTG9jYWxlID8ge30gOiBpMThuLmxvY2FsZXNbbG9jYWxlXS50cmFuc2xhdGlvbiB8fCB7fTtcbiAgICBsZXQgbG9jYWxlRGF0YUNvbnRlbnQ7XG4gICAgaWYgKG9wdGlvbnMuc2V0TG9jYWxlKSB7XG4gICAgICAvLyBJZiBsb2NhbGUgZGF0YSBpcyBwcm92aWRlZCwgbG9hZCBpdCBhbmQgcHJlcGVuZCB0byBmaWxlXG4gICAgICBjb25zdCBsb2NhbGVEYXRhUGF0aCA9IGkxOG4ubG9jYWxlc1tsb2NhbGVdPy5kYXRhUGF0aDtcbiAgICAgIGlmIChsb2NhbGVEYXRhUGF0aCkge1xuICAgICAgICBsb2NhbGVEYXRhQ29udGVudCA9IGF3YWl0IGxvYWRMb2NhbGVEYXRhKGxvY2FsZURhdGFQYXRoLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGRpYWdub3N0aWNzOiBsb2NhbGVEaWFnbm9zdGljcywgcGx1Z2lucyB9ID0gYXdhaXQgY3JlYXRlSTE4blBsdWdpbnMoXG4gICAgICBsb2NhbGUsXG4gICAgICB0cmFuc2xhdGlvbnMsXG4gICAgICBpc1NvdXJjZUxvY2FsZSA/ICdpZ25vcmUnIDogb3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb24gfHwgJ3dhcm5pbmcnLFxuICAgICAgdHJ1ZSxcbiAgICAgIGxvY2FsZURhdGFDb250ZW50LFxuICAgICk7XG4gICAgY29uc3QgdHJhbnNmb3JtUmVzdWx0ID0gYXdhaXQgdHJhbnNmb3JtRnJvbUFzdFN5bmMoYXN0LCBvcHRpb25zLmNvZGUsIHtcbiAgICAgIGZpbGVuYW1lOiBvcHRpb25zLmZpbGVuYW1lLFxuICAgICAgLy8gdXNpbmcgZmFsc2UgZW5zdXJlcyB0aGF0IGJhYmVsIHdpbGwgTk9UIHNlYXJjaCBhbmQgcHJvY2VzcyBzb3VyY2VtYXAgY29tbWVudHMgKGxhcmdlIG1lbW9yeSB1c2FnZSlcbiAgICAgIC8vIFRoZSB0eXBlcyBkbyBub3QgaW5jbHVkZSB0aGUgZmFsc2Ugb3B0aW9uIGV2ZW4gdGhvdWdoIGl0IGlzIHZhbGlkXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgaW5wdXRTb3VyY2VNYXA6IGZhbHNlIGFzIGFueSxcbiAgICAgIGJhYmVscmM6IGZhbHNlLFxuICAgICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgICBwbHVnaW5zLFxuICAgICAgY29tcGFjdDogIXNob3VsZEJlYXV0aWZ5LFxuICAgICAgc291cmNlTWFwczogISFvcHRpb25zLm1hcCxcbiAgICB9KTtcblxuICAgIGRpYWdub3N0aWNzLnB1c2goLi4ubG9jYWxlRGlhZ25vc3RpY3MubWVzc2FnZXMpO1xuXG4gICAgaWYgKCF0cmFuc2Zvcm1SZXN1bHQgfHwgIXRyYW5zZm9ybVJlc3VsdC5jb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZXJyb3Igb2NjdXJyZWQgcHJvY2Vzc2luZyBidW5kbGUgZm9yIFwiJHtvcHRpb25zLmZpbGVuYW1lfVwiLmApO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBvcHRpb25zLm91dHB1dFBhdGgsXG4gICAgICBpMThuLmZsYXRPdXRwdXQgPyAnJyA6IGxvY2FsZSxcbiAgICAgIG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCwgdHJhbnNmb3JtUmVzdWx0LmNvZGUpO1xuXG4gICAgaWYgKG9wdGlvbnMubWFwICYmIHRyYW5zZm9ybVJlc3VsdC5tYXApIHtcbiAgICAgIGNvbnN0IG91dHB1dE1hcCA9IHJlbWFwcGluZyhbdHJhbnNmb3JtUmVzdWx0Lm1hcCBhcyBTb3VyY2VNYXBJbnB1dCwgb3B0aW9ucy5tYXBdLCAoKSA9PiBudWxsKTtcblxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKG91dHB1dFBhdGggKyAnLm1hcCcsIEpTT04uc3RyaW5naWZ5KG91dHB1dE1hcCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGZpbGU6IG9wdGlvbnMuZmlsZW5hbWUsIGRpYWdub3N0aWNzIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlubGluZUxvY2FsZXNEaXJlY3QoYXN0OiBQYXJzZVJlc3VsdCwgb3B0aW9uczogSW5saW5lT3B0aW9ucykge1xuICBpZiAoIWkxOG4gfHwgaTE4bi5pbmxpbmVMb2NhbGVzLnNpemUgPT09IDApIHtcbiAgICByZXR1cm4geyBmaWxlOiBvcHRpb25zLmZpbGVuYW1lLCBkaWFnbm9zdGljczogW10sIGNvdW50OiAwIH07XG4gIH1cblxuICBjb25zdCB7IGRlZmF1bHQ6IGdlbmVyYXRlIH0gPSBhd2FpdCBpbXBvcnQoJ0BiYWJlbC9nZW5lcmF0b3InKTtcbiAgY29uc3QgbG9jYWxpemVEaWFnID0gYXdhaXQgbG9hZExvY2FsaXplVG9vbHMoKTtcbiAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgbG9jYWxpemVEaWFnLkRpYWdub3N0aWNzKCk7XG5cbiAgY29uc3QgcG9zaXRpb25zID0gZmluZExvY2FsaXplUG9zaXRpb25zKGFzdCwgb3B0aW9ucywgbG9jYWxpemVEaWFnKTtcbiAgaWYgKHBvc2l0aW9ucy5sZW5ndGggPT09IDAgJiYgIW9wdGlvbnMuc2V0TG9jYWxlKSB7XG4gICAgcmV0dXJuIGlubGluZUNvcHlPbmx5KG9wdGlvbnMpO1xuICB9XG5cbiAgY29uc3QgaW5wdXRNYXAgPSAhIW9wdGlvbnMubWFwICYmIChKU09OLnBhcnNlKG9wdGlvbnMubWFwKSBhcyB7IHNvdXJjZVJvb3Q/OiBzdHJpbmcgfSk7XG4gIC8vIENsZWFudXAgc291cmNlIHJvb3Qgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgYWRkZWQgdG8gZWFjaCBzb3VyY2UgZW50cnlcbiAgY29uc3QgbWFwU291cmNlUm9vdCA9IGlucHV0TWFwICYmIGlucHV0TWFwLnNvdXJjZVJvb3Q7XG4gIGlmIChpbnB1dE1hcCkge1xuICAgIGRlbGV0ZSBpbnB1dE1hcC5zb3VyY2VSb290O1xuICB9XG5cbiAgLy8gTG9hZCBXZWJwYWNrIG9ubHkgd2hlbiBuZWVkZWRcbiAgaWYgKHdlYnBhY2tTb3VyY2VzID09PSB1bmRlZmluZWQpIHtcbiAgICB3ZWJwYWNrU291cmNlcyA9IChhd2FpdCBpbXBvcnQoJ3dlYnBhY2snKSkuc291cmNlcztcbiAgfVxuICBjb25zdCB7IENvbmNhdFNvdXJjZSwgT3JpZ2luYWxTb3VyY2UsIFJlcGxhY2VTb3VyY2UsIFNvdXJjZU1hcFNvdXJjZSB9ID0gd2VicGFja1NvdXJjZXM7XG5cbiAgZm9yIChjb25zdCBsb2NhbGUgb2YgaTE4bi5pbmxpbmVMb2NhbGVzKSB7XG4gICAgY29uc3QgY29udGVudCA9IG5ldyBSZXBsYWNlU291cmNlKFxuICAgICAgaW5wdXRNYXBcbiAgICAgICAgPyBuZXcgU291cmNlTWFwU291cmNlKG9wdGlvbnMuY29kZSwgb3B0aW9ucy5maWxlbmFtZSwgaW5wdXRNYXApXG4gICAgICAgIDogbmV3IE9yaWdpbmFsU291cmNlKG9wdGlvbnMuY29kZSwgb3B0aW9ucy5maWxlbmFtZSksXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU291cmNlTG9jYWxlID0gbG9jYWxlID09PSBpMThuLnNvdXJjZUxvY2FsZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHRyYW5zbGF0aW9uczogYW55ID0gaXNTb3VyY2VMb2NhbGUgPyB7fSA6IGkxOG4ubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uIHx8IHt9O1xuICAgIGZvciAoY29uc3QgcG9zaXRpb24gb2YgcG9zaXRpb25zKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGVkID0gbG9jYWxpemVEaWFnLnRyYW5zbGF0ZShcbiAgICAgICAgZGlhZ25vc3RpY3MsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICAgcG9zaXRpb24ubWVzc2FnZVBhcnRzLFxuICAgICAgICBwb3NpdGlvbi5leHByZXNzaW9ucyxcbiAgICAgICAgaXNTb3VyY2VMb2NhbGUgPyAnaWdub3JlJyA6IG9wdGlvbnMubWlzc2luZ1RyYW5zbGF0aW9uIHx8ICd3YXJuaW5nJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBsb2NhbGl6ZURpYWcuYnVpbGRMb2NhbGl6ZVJlcGxhY2VtZW50KHRyYW5zbGF0ZWRbMF0sIHRyYW5zbGF0ZWRbMV0pO1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBnZW5lcmF0ZShleHByZXNzaW9uKTtcblxuICAgICAgY29udGVudC5yZXBsYWNlKHBvc2l0aW9uLnN0YXJ0LCBwb3NpdGlvbi5lbmQgLSAxLCBjb2RlKTtcbiAgICB9XG5cbiAgICBsZXQgb3V0cHV0U291cmNlOiBpbXBvcnQoJ3dlYnBhY2snKS5zb3VyY2VzLlNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgaWYgKG9wdGlvbnMuc2V0TG9jYWxlKSB7XG4gICAgICBjb25zdCBzZXRMb2NhbGVUZXh0ID0gYGdsb2JhbFRoaXMuJGxvY2FsaXplPU9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcy4kbG9jYWxpemUgfHwge30se2xvY2FsZTpcIiR7bG9jYWxlfVwifSk7XFxuYDtcblxuICAgICAgLy8gSWYgbG9jYWxlIGRhdGEgaXMgcHJvdmlkZWQsIGxvYWQgaXQgYW5kIHByZXBlbmQgdG8gZmlsZVxuICAgICAgbGV0IGxvY2FsZURhdGFTb3VyY2U7XG4gICAgICBjb25zdCBsb2NhbGVEYXRhUGF0aCA9IGkxOG4ubG9jYWxlc1tsb2NhbGVdICYmIGkxOG4ubG9jYWxlc1tsb2NhbGVdLmRhdGFQYXRoO1xuICAgICAgaWYgKGxvY2FsZURhdGFQYXRoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsZURhdGFDb250ZW50ID0gYXdhaXQgbG9hZExvY2FsZURhdGEobG9jYWxlRGF0YVBhdGgsIHRydWUpO1xuICAgICAgICBsb2NhbGVEYXRhU291cmNlID0gbmV3IE9yaWdpbmFsU291cmNlKGxvY2FsZURhdGFDb250ZW50LCBwYXRoLmJhc2VuYW1lKGxvY2FsZURhdGFQYXRoKSk7XG4gICAgICB9XG5cbiAgICAgIG91dHB1dFNvdXJjZSA9IGxvY2FsZURhdGFTb3VyY2VcbiAgICAgICAgPyAvLyBUaGUgc2VtaWNvbG9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBubyBzeW50YXggZXJyb3IgYmV0d2VlbiBzdGF0ZW1lbnRzXG4gICAgICAgICAgbmV3IENvbmNhdFNvdXJjZShzZXRMb2NhbGVUZXh0LCBsb2NhbGVEYXRhU291cmNlLCAnO1xcbicsIGNvbnRlbnQpXG4gICAgICAgIDogbmV3IENvbmNhdFNvdXJjZShzZXRMb2NhbGVUZXh0LCBjb250ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHNvdXJjZTogb3V0cHV0Q29kZSwgbWFwOiBvdXRwdXRNYXAgfSA9IG91dHB1dFNvdXJjZS5zb3VyY2VBbmRNYXAoKSBhcyB7XG4gICAgICBzb3VyY2U6IHN0cmluZztcbiAgICAgIG1hcDogeyBmaWxlOiBzdHJpbmc7IHNvdXJjZVJvb3Q/OiBzdHJpbmcgfTtcbiAgICB9O1xuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBvcHRpb25zLm91dHB1dFBhdGgsXG4gICAgICBpMThuLmZsYXRPdXRwdXQgPyAnJyA6IGxvY2FsZSxcbiAgICAgIG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCwgb3V0cHV0Q29kZSk7XG5cbiAgICBpZiAoaW5wdXRNYXAgJiYgb3V0cHV0TWFwKSB7XG4gICAgICBvdXRwdXRNYXAuZmlsZSA9IG9wdGlvbnMuZmlsZW5hbWU7XG4gICAgICBpZiAobWFwU291cmNlUm9vdCkge1xuICAgICAgICBvdXRwdXRNYXAuc291cmNlUm9vdCA9IG1hcFNvdXJjZVJvb3Q7XG4gICAgICB9XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCArICcubWFwJywgSlNPTi5zdHJpbmdpZnkob3V0cHV0TWFwKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmlsZTogb3B0aW9ucy5maWxlbmFtZSwgZGlhZ25vc3RpY3M6IGRpYWdub3N0aWNzLm1lc3NhZ2VzLCBjb3VudDogcG9zaXRpb25zLmxlbmd0aCB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbmxpbmVDb3B5T25seShvcHRpb25zOiBJbmxpbmVPcHRpb25zKSB7XG4gIGlmICghaTE4bikge1xuICAgIHRocm93IG5ldyBFcnJvcignaTE4biBvcHRpb25zIGFyZSBtaXNzaW5nJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBpMThuLmlubGluZUxvY2FsZXMpIHtcbiAgICBjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgb3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICAgaTE4bi5mbGF0T3V0cHV0ID8gJycgOiBsb2NhbGUsXG4gICAgICBvcHRpb25zLmZpbGVuYW1lLFxuICAgICk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKG91dHB1dFBhdGgsIG9wdGlvbnMuY29kZSk7XG4gICAgaWYgKG9wdGlvbnMubWFwKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCArICcubWFwJywgb3B0aW9ucy5tYXApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGZpbGU6IG9wdGlvbnMuZmlsZW5hbWUsIGRpYWdub3N0aWNzOiBbXSwgY291bnQ6IDAgfTtcbn1cblxuZnVuY3Rpb24gZmluZExvY2FsaXplUG9zaXRpb25zKFxuICBhc3Q6IFBhcnNlUmVzdWx0LFxuICBvcHRpb25zOiBJbmxpbmVPcHRpb25zLFxuICB1dGlsczogTG9jYWxpemVVdGlsaXR5TW9kdWxlLFxuKTogTG9jYWxpemVQb3NpdGlvbltdIHtcbiAgY29uc3QgcG9zaXRpb25zOiBMb2NhbGl6ZVBvc2l0aW9uW10gPSBbXTtcblxuICAvLyBXb3JrYXJvdW5kIHRvIGVuc3VyZSBhIHBhdGggaHViIGlzIHByZXNlbnQgZm9yIHRyYXZlcnNhbFxuICBjb25zdCB7IEZpbGUgfSA9IHJlcXVpcmUoJ0BiYWJlbC9jb3JlJyk7XG4gIGNvbnN0IGZpbGUgPSBuZXcgRmlsZSh7fSwgeyBjb2RlOiBvcHRpb25zLmNvZGUsIGFzdCB9KTtcblxuICB0cmF2ZXJzZShmaWxlLmFzdCwge1xuICAgIFRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbihwYXRoKSB7XG4gICAgICBpZiAodHlwZXMuaXNJZGVudGlmaWVyKHBhdGgubm9kZS50YWcpICYmIHBhdGgubm9kZS50YWcubmFtZSA9PT0gbG9jYWxpemVOYW1lKSB7XG4gICAgICAgIGNvbnN0IFttZXNzYWdlUGFydHMsIGV4cHJlc3Npb25zXSA9IHVud3JhcFRlbXBsYXRlTGl0ZXJhbChwYXRoLCB1dGlscyk7XG4gICAgICAgIHBvc2l0aW9ucy5wdXNoKHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgIHN0YXJ0OiBwYXRoLm5vZGUuc3RhcnQhLFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgZW5kOiBwYXRoLm5vZGUuZW5kISxcbiAgICAgICAgICBtZXNzYWdlUGFydHMsXG4gICAgICAgICAgZXhwcmVzc2lvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBwb3NpdGlvbnM7XG59XG5cbmZ1bmN0aW9uIHVud3JhcFRlbXBsYXRlTGl0ZXJhbChcbiAgcGF0aDogTm9kZVBhdGg8dHlwZXMuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uPixcbiAgdXRpbHM6IExvY2FsaXplVXRpbGl0eU1vZHVsZSxcbik6IFtUZW1wbGF0ZVN0cmluZ3NBcnJheSwgdHlwZXMuRXhwcmVzc2lvbltdXSB7XG4gIGNvbnN0IFttZXNzYWdlUGFydHNdID0gdXRpbHMudW53cmFwTWVzc2FnZVBhcnRzRnJvbVRlbXBsYXRlTGl0ZXJhbChcbiAgICBwYXRoLmdldCgncXVhc2knKS5nZXQoJ3F1YXNpcycpLFxuICApO1xuICBjb25zdCBbZXhwcmVzc2lvbnNdID0gdXRpbHMudW53cmFwRXhwcmVzc2lvbnNGcm9tVGVtcGxhdGVMaXRlcmFsKHBhdGguZ2V0KCdxdWFzaScpKTtcblxuICByZXR1cm4gW21lc3NhZ2VQYXJ0cywgZXhwcmVzc2lvbnNdO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMb2NhbGl6ZUNhbGwoXG4gIHBhdGg6IE5vZGVQYXRoPHR5cGVzLkNhbGxFeHByZXNzaW9uPixcbiAgdXRpbHM6IExvY2FsaXplVXRpbGl0eU1vZHVsZSxcbik6IFtUZW1wbGF0ZVN0cmluZ3NBcnJheSwgdHlwZXMuRXhwcmVzc2lvbltdXSB7XG4gIGNvbnN0IFttZXNzYWdlUGFydHNdID0gdXRpbHMudW53cmFwTWVzc2FnZVBhcnRzRnJvbUxvY2FsaXplQ2FsbChwYXRoKTtcbiAgY29uc3QgW2V4cHJlc3Npb25zXSA9IHV0aWxzLnVud3JhcFN1YnN0aXR1dGlvbnNGcm9tTG9jYWxpemVDYWxsKHBhdGgpO1xuXG4gIHJldHVybiBbbWVzc2FnZVBhcnRzLCBleHByZXNzaW9uc107XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRMb2NhbGVEYXRhKHBhdGg6IHN0cmluZywgb3B0aW1pemU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBUaGUgcGF0aCBpcyB2YWxpZGF0ZWQgZHVyaW5nIG9wdGlvbiBwcm9jZXNzaW5nIGJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzXG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLCAndXRmOCcpO1xuXG4gIC8vIERvd25sZXZlbCBhbmQgb3B0aW1pemUgdGhlIGRhdGFcbiAgY29uc3QgdHJhbnNmb3JtUmVzdWx0ID0gYXdhaXQgdHJhbnNmb3JtQXN5bmMoY29udGVudCwge1xuICAgIGZpbGVuYW1lOiBwYXRoLFxuICAgIC8vIFRoZSB0eXBlcyBkbyBub3QgaW5jbHVkZSB0aGUgZmFsc2Ugb3B0aW9uIGV2ZW4gdGhvdWdoIGl0IGlzIHZhbGlkXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBpbnB1dFNvdXJjZU1hcDogZmFsc2UgYXMgYW55LFxuICAgIGJhYmVscmM6IGZhbHNlLFxuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIHByZXNldHM6IFtcbiAgICAgIFtcbiAgICAgICAgcmVxdWlyZS5yZXNvbHZlKCdAYmFiZWwvcHJlc2V0LWVudicpLFxuICAgICAgICB7XG4gICAgICAgICAgYnVnZml4ZXM6IHRydWUsXG4gICAgICAgICAgdGFyZ2V0czogeyBlc21vZHVsZXM6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgXSxcbiAgICBtaW5pZmllZDogYWxsb3dNaW5pZnkgJiYgb3B0aW1pemUsXG4gICAgY29tcGFjdDogIXNob3VsZEJlYXV0aWZ5ICYmIG9wdGltaXplLFxuICAgIGNvbW1lbnRzOiAhb3B0aW1pemUsXG4gIH0pO1xuXG4gIGlmICghdHJhbnNmb3JtUmVzdWx0IHx8ICF0cmFuc2Zvcm1SZXN1bHQuY29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBlcnJvciBvY2N1cnJlZCBwcm9jZXNzaW5nIGJ1bmRsZSBmb3IgXCIke3BhdGh9XCIuYCk7XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtUmVzdWx0LmNvZGU7XG59XG4iXX0=
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1idW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9wcm9jZXNzLWJ1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHNFQUE4QztBQUM5QyxzQ0FRcUI7QUFDckIsK0RBQThDO0FBQzlDLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFDN0IsbURBQTRDO0FBRTVDLCtEQUFvRTtBQUNwRSxtQ0FBd0M7QUFFeEMseUNBQTJDO0FBSzNDLHFDQUFxQztBQUNyQywyREFBMkQ7QUFDM0QsSUFBSSxjQUE0RCxDQUFDO0FBRWpFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLDJCQUFVLElBQUksRUFBRSxDQUEyQixDQUFDO0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUluQzs7O0dBR0c7QUFDSCxJQUFJLG1CQUFzRCxDQUFDO0FBRTNEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsaUJBQWlCO0lBQzlCLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFO1FBQ3JDLE9BQU8sbUJBQW1CLENBQUM7S0FDNUI7SUFFRCxxRkFBcUY7SUFDckYseUZBQXlGO0lBQ3pGLHNDQUFzQztJQUN0QyxPQUFPLElBQUEsd0JBQWEsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLE1BQWMsRUFDZCxXQUFnQyxFQUNoQyxrQkFBa0QsRUFDbEQsWUFBcUIsRUFDckIsaUJBQTBCO0lBRTFCLE1BQU0sRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLGlCQUFpQixFQUFFLENBQUM7SUFFL0YsTUFBTSxPQUFP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QUksUUFBUTtRQUNqQyxPQUFPLEVBQUUsQ0FBQyxvQ0FBYyxJQUFJLFFBQVE7UUFDcEMsUUFBUSxFQUFFLENBQUMsUUFBUTtLQUNwQixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRTtRQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxJQUFJLElBQUksQ0FBQyxDQUFDO0tBQzVFO0lBRUQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHJlbWFwcGluZyBmcm9tICdAYW1wcHJvamVjdC9yZW1hcHBpbmcnO1xuaW1wb3J0IHtcbiAgTm9kZVBhdGgsXG4gIFBhcnNlUmVzdWx0LFxuICBwYXJzZVN5bmMsXG4gIHRyYW5zZm9ybUFzeW5jLFxuICB0cmFuc2Zvcm1Gcm9tQXN0U3luYyxcbiAgdHJhdmVyc2UsXG4gIHR5cGVzLFxufSBmcm9tICdAYmFiZWwvY29yZSc7XG5pbXBvcnQgdGVtcGxhdGVCdWlsZGVyIGZyb20gJ0BiYWJlbC90ZW1wbGF0ZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd29ya2VyRGF0YSB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJztcbmltcG9ydCB7IElubGluZU9wdGlvbnMgfSBmcm9tICcuL2J1bmRsZS1pbmxpbmUtb3B0aW9ucyc7XG5pbXBvcnQgeyBhbGxvd01pbmlmeSwgc2hvdWxkQmVhdXRpZnkgfSBmcm9tICcuL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNFcnJvciB9IGZyb20gJy4vZXJyb3InO1xuaW1wb3J0IHsgSTE4bk9wdGlvbnMgfSBmcm9tICcuL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBsb2FkRXNtTW9kdWxlIH0gZnJvbSAnLi9sb2FkLWVzbSc7XG5cbi8vIEV4dHJhY3QgU291cmNlbWFwIGlucHV0IHR5cGUgZnJvbSB0aGUgcmVtYXBwaW5nIGZ1bmN0aW9uIHNpbmNlIGl0IGlzIG5vdCBjdXJyZW50bHkgZXhwb3J0ZWRcbnR5cGUgU291cmNlTWFwSW5wdXQgPSBFeGNsdWRlPFBhcmFtZXRlcnM8dHlwZW9mIHJlbWFwcGluZz5bMF0sIHVua25vd25bXT47XG5cbi8vIExhenkgbG9hZGVkIHdlYnBhY2stc291cmNlcyBvYmplY3Rcbi8vIFdlYnBhY2sgaXMgb25seSBpbXBvcnRlZCBpZiBuZWVkZWQgZHVyaW5nIHRoZSBwcm9jZXNzaW5nXG5sZXQgd2VicGFja1NvdXJjZXM6IHR5cGVvZiBpbXBvcnQoJ3dlYnBhY2snKS5zb3VyY2VzIHwgdW5kZWZpbmVkO1xuXG5jb25zdCB7IGkxOG4gfSA9ICh3b3JrZXJEYXRhIHx8IHt9KSBhcyB7IGkxOG4/OiBJMThuT3B0aW9ucyB9O1xuXG4vKipcbiAqIEludGVybmFsIGZsYWcgdG8gZW5hYmxlIHRoZSBkaXJlY3QgdXNhZ2Ugb2YgdGhlIGBAYW5ndWxhci9sb2NhbGl6ZWAgdHJhbnNsYXRpb24gcGx1Z2lucy5cbiAqIFRoZWlyIHVzYWdlIGlzIGN1cnJlbnRseSBzZXZlcmFsIHRpbWVzIHNsb3dlciB0aGFuIHRoZSBzdHJpbmcgbWFuaXB1bGF0aW9uIG1ldGhvZC5cbiAqIEZ1dHVyZSB3b3JrIHRvIG9wdGltaXplIHRoZSBwbHVnaW5zIHNob3VsZCBlbmFibGUgcGx1Z2luIHVzYWdlIGFzIHRoZSBkZWZhdWx0LlxuICovXG5jb25zdCBVU0VfTE9DQUxJWkVfUExVR0lOUyA9IGZhbHNlO1xuXG50eXBlIExvY2FsaXplVXRpbGl0eU1vZHVsZSA9IHR5cGVvZiBpbXBvcnQoJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJyk7XG5cbi8qKlxuICogQ2FjaGVkIGluc3RhbmNlIG9mIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemUvdG9vbHNgIG1vZHVsZS5cbiAqIFRoaXMgaXMgdXNlZCB0byByZW1vdmUgdGhlIG5lZWQgdG8gcmVwZWF0ZWRseSBpbXBvcnQgdGhlIG1vZHVsZSBwZXIgZmlsZSB0cmFuc2xhdGlvbi5cbiAqL1xubGV0IGxvY2FsaXplVG9vbHNNb2R1bGU6IExvY2FsaXplVXRpbGl0eU1vZHVsZSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBBdHRlbXB0cyB0byBsb2FkIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemUvdG9vbHNgIG1vZHVsZSBjb250YWluaW5nIHRoZSBmdW5jdGlvbmFsaXR5IHRvXG4gKiBwZXJmb3JtIHRoZSBmaWxlIHRyYW5zbGF0aW9ucy5cbiAqIFRoaXMgbW9kdWxlIG11c3QgYmUgZHluYW1pY2FsbHkgbG9hZGVkIGFzIGl0IGlzIGFuIEVTTSBtb2R1bGUgYW5kIHRoaXMgZmlsZSBpcyBDb21tb25KUy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZExvY2FsaXplVG9vbHMoKTogUHJvbWlzZTxMb2NhbGl6ZVV0aWxpdHlNb2R1bGU+IHtcbiAgaWYgKGxvY2FsaXplVG9vbHNNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBsb2NhbGl6ZVRvb2xzTW9kdWxlO1xuICB9XG5cbiAgLy8gTG9hZCBFU00gYEBhbmd1bGFyL2xvY2FsaXplL3Rvb2xzYCB1c2luZyB0aGUgVHlwZVNjcmlwdCBkeW5hbWljIGltcG9ydCB3b3JrYXJvdW5kLlxuICAvLyBPbmNlIFR5cGVTY3JpcHQgcHJvdmlkZXMgc3VwcG9ydCBmb3Iga2VlcGluZyB0aGUgZHluYW1pYyBpbXBvcnQgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZVxuICAvLyBjaGFuZ2VkIHRvIGEgZGlyZWN0IGR5bmFtaWMgaW1wb3J0LlxuICByZXR1cm4gbG9hZEVzbU1vZHVsZSgnQGFuZ3VsYXIvbG9jYWxpemUvdG9vbHMnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSTE4blBsdWdpbnMoXG4gIGxvY2FsZTogc3RyaW5nLFxuICB0cmFuc2xhdGlvbjogdW5rbm93biB8IHVuZGVmaW5lZCxcbiAgbWlzc2luZ1RyYW5zbGF0aW9uOiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2lnbm9yZScsXG4gIHNob3VsZElubGluZTogYm9vbGVhbixcbiAgbG9jYWxlRGF0YUNvbnRlbnQ/OiBzdHJpbmcsXG4pIHtcbiAgY29uc3QgeyBEaWFnbm9zdGljcywgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbiwgbWFrZUxvY2FsZVBsdWdpbiB9ID0gYXdhaXQgbG9hZExvY2FsaXplVG9vbHMoKTtcblxuICBjb25zdCBwbHVnaW5zID0gW107XG4gIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNzKCk7XG5cbiAgaWYgKHNob3VsZElubGluZSkge1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBtYWtlRXMyMDE1VHJhbnNsYXRlUGx1Z2luKGRpYWdub3N0aWNzLCAodHJhbnNsYXRpb24gfHwge30pIGFzIGFueSwge1xuICAgICAgICBtaXNzaW5nVHJhbnNsYXRpb246IHRyYW5zbGF0aW9uID09PSB1bmRlZmluZWQgPyAnaWdub3JlJyA6IG1pc3NpbmdUcmFuc2xhdGlvbixcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwbHVnaW5zLnB1c2gobWFrZUxvY2FsZVBsdWdpbihsb2NhbGUpKTtcblxuICBpZiAobG9jYWxlRGF0YUNvbnRlbnQpIHtcbiAgICBwbHVnaW5zLnB1c2goe1xuICAgICAgdmlzaXRvcjoge1xuICAgICAgICBQcm9ncmFtKHBhdGg6IE5vZGVQYXRoPHR5cGVzLlByb2dyYW0+KSB7XG4gICAgICAgICAgcGF0aC51bnNoaWZ0Q29udGFpbmVyKCdib2R5JywgdGVtcGxhdGVCdWlsZGVyLmFzdChsb2NhbGVEYXRhQ29udGVudCkpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB7IGRpYWdub3N0aWNzLCBwbHVnaW5zIH07XG59XG5cbmludGVyZmFjZSBMb2NhbGl6ZVBvc2l0aW9uIHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIG1lc3NhZ2VQYXJ0czogVGVtcGxhdGVTdHJpbmdzQXJyYXk7XG4gIGV4cHJlc3Npb25zOiB0eXBlcy5FeHByZXNzaW9uW107XG59XG5cbmNvbnN0IGxvY2FsaXplTmFtZSA9ICckbG9jYWxpemUnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5saW5lTG9jYWxlcyhvcHRpb25zOiBJbmxpbmVPcHRpb25zKSB7XG4gIGlmICghaTE4biB8fCBpMThuLmlubGluZUxvY2FsZXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiB7IGZpbGU6IG9wdGlvbnMuZmlsZW5hbWUsIGRpYWdub3N0aWNzOiBbXSwgY291bnQ6IDAgfTtcbiAgfVxuICBpZiAoaTE4bi5mbGF0T3V0cHV0ICYmIGkxOG4uaW5saW5lTG9jYWxlcy5zaXplID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmxhdCBvdXRwdXQgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiBpbmxpbmluZyBvbmUgbG9jYWxlLicpO1xuICB9XG5cbiAgY29uc3QgaGFzTG9jYWxpemVOYW1lID0gb3B0aW9ucy5jb2RlLmluY2x1ZGVzKGxvY2FsaXplTmFtZSk7XG4gIGlmICghaGFzTG9jYWxpemVOYW1lICYmICFvcHRpb25zLnNldExvY2FsZSkge1xuICAgIHJldHVybiBpbmxpbmVDb3B5T25seShvcHRpb25zKTtcbiAgfVxuXG4gIGF3YWl0IGxvYWRMb2NhbGl6ZVRvb2xzKCk7XG5cbiAgbGV0IGFzdDogUGFyc2VSZXN1bHQgfCB1bmRlZmluZWQgfCBudWxsO1xuICB0cnkge1xuICAgIGFzdCA9IHBhcnNlU3luYyhvcHRpb25zLmNvZGUsIHtcbiAgICAgIGJhYmVscmM6IGZhbHNlLFxuICAgICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgICBzb3VyY2VUeXBlOiAndW5hbWJpZ3VvdXMnLFxuICAgICAgZmlsZW5hbWU6IG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgYXNzZXJ0SXNFcnJvcihlcnJvcik7XG5cbiAgICAvLyBNYWtlIHRoZSBlcnJvciBtb3JlIHJlYWRhYmxlLlxuICAgIC8vIFNhbWUgZXJyb3JzIHdpbGwgY29udGFpbiB0aGUgZnVsbCBjb250ZW50IG9mIHRoZSBmaWxlIGFzIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgLy8gV2hpY2ggbWFrZXMgaXQgaGFyZCB0byBmaW5kIHRoZSBhY3R1YWwgZXJyb3IgbWVzc2FnZS5cbiAgICBjb25zdCBpbmRleCA9IGVycm9yLm1lc3NhZ2UuaW5kZXhPZignKVxcbicpO1xuICAgIGNvbnN0IG1zZyA9IGluZGV4ICE9PSAtMSA/IGVycm9yLm1lc3NhZ2Uuc2xpY2UoMCwgaW5kZXggKyAxKSA6IGVycm9yLm1lc3NhZ2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke21zZ31cXG5BbiBlcnJvciBvY2N1cnJlZCBpbmxpbmluZyBmaWxlIFwiJHtvcHRpb25zLmZpbGVuYW1lfVwiYCk7XG4gIH1cblxuICBpZiAoIWFzdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBlcnJvciBvY2N1cnJlZCBpbmxpbmluZyBmaWxlIFwiJHtvcHRpb25zLmZpbGVuYW1lfVwiYCk7XG4gIH1cblxuICBpZiAoIVVTRV9MT0NBTElaRV9QTFVHSU5TKSB7XG4gICAgcmV0dXJuIGlubGluZUxvY2FsZXNEaXJlY3QoYXN0LCBvcHRpb25zKTtcbiAgfVxuXG4gIGNvbnN0IGRpYWdub3N0aWNzID0gW107XG4gIGZvciAoY29uc3QgbG9jYWxlIG9mIGkxOG4uaW5saW5lTG9jYWxlcykge1xuICAgIGNvbnN0IGlzU291cmNlTG9jYWxlID0gbG9jYWxlID09PSBpMThuLnNvdXJjZUxvY2FsZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHRyYW5zbGF0aW9uczogYW55ID0gaXNTb3VyY2VMb2NhbGUgPyB7fSA6IGkxOG4ubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uIHx8IHt9O1xuICAgIGxldCBsb2NhbGVEYXRhQ29udGVudDtcbiAgICBpZiAob3B0aW9ucy5zZXRMb2NhbGUpIHtcbiAgICAgIC8vIElmIGxvY2FsZSBkYXRhIGlzIHByb3ZpZGVkLCBsb2FkIGl0IGFuZCBwcmVwZW5kIHRvIGZpbGVcbiAgICAgIGNvbnN0IGxvY2FsZURhdGFQYXRoID0gaTE4bi5sb2NhbGVzW2xvY2FsZV0/LmRhdGFQYXRoO1xuICAgICAgaWYgKGxvY2FsZURhdGFQYXRoKSB7XG4gICAgICAgIGxvY2FsZURhdGFDb250ZW50ID0gYXdhaXQgbG9hZExvY2FsZURhdGEobG9jYWxlRGF0YVBhdGgsIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgZGlhZ25vc3RpY3M6IGxvY2FsZURpYWdub3N0aWNzLCBwbHVnaW5zIH0gPSBhd2FpdCBjcmVhdGVJMThuUGx1Z2lucyhcbiAgICAgIGxvY2FsZSxcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgIGlzU291cmNlTG9jYWxlID8gJ2lnbm9yZScgOiBvcHRpb25zLm1pc3NpbmdUcmFuc2xhdGlvbiB8fCAnd2FybmluZycsXG4gICAgICB0cnVlLFxuICAgICAgbG9jYWxlRGF0YUNvbnRlbnQsXG4gICAgKTtcbiAgICBjb25zdCB0cmFuc2Zvcm1SZXN1bHQgPSBhd2FpdCB0cmFuc2Zvcm1Gcm9tQXN0U3luYyhhc3QsIG9wdGlvbnMuY29kZSwge1xuICAgICAgZmlsZW5hbWU6IG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgICAvLyB1c2luZyBmYWxzZSBlbnN1cmVzIHRoYXQgYmFiZWwgd2lsbCBOT1Qgc2VhcmNoIGFuZCBwcm9jZXNzIHNvdXJjZW1hcCBjb21tZW50cyAobGFyZ2UgbWVtb3J5IHVzYWdlKVxuICAgICAgLy8gVGhlIHR5cGVzIGRvIG5vdCBpbmNsdWRlIHRoZSBmYWxzZSBvcHRpb24gZXZlbiB0aG91Z2ggaXQgaXMgdmFsaWRcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBpbnB1dFNvdXJjZU1hcDogZmFsc2UgYXMgYW55LFxuICAgICAgYmFiZWxyYzogZmFsc2UsXG4gICAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAgIHBsdWdpbnMsXG4gICAgICBjb21wYWN0OiAhc2hvdWxkQmVhdXRpZnksXG4gICAgICBzb3VyY2VNYXBzOiAhIW9wdGlvbnMubWFwLFxuICAgIH0pO1xuXG4gICAgZGlhZ25vc3RpY3MucHVzaCguLi5sb2NhbGVEaWFnbm9zdGljcy5tZXNzYWdlcyk7XG5cbiAgICBpZiAoIXRyYW5zZm9ybVJlc3VsdCB8fCAhdHJhbnNmb3JtUmVzdWx0LmNvZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBlcnJvciBvY2N1cnJlZCBwcm9jZXNzaW5nIGJ1bmRsZSBmb3IgXCIke29wdGlvbnMuZmlsZW5hbWV9XCIuYCk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IHBhdGguam9pbihcbiAgICAgIG9wdGlvbnMub3V0cHV0UGF0aCxcbiAgICAgIGkxOG4uZmxhdE91dHB1dCA/ICcnIDogbG9jYWxlLFxuICAgICAgb3B0aW9ucy5maWxlbmFtZSxcbiAgICApO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShvdXRwdXRQYXRoLCB0cmFuc2Zvcm1SZXN1bHQuY29kZSk7XG5cbiAgICBpZiAob3B0aW9ucy5tYXAgJiYgdHJhbnNmb3JtUmVzdWx0Lm1hcCkge1xuICAgICAgY29uc3Qgb3V0cHV0TWFwID0gcmVtYXBwaW5nKFt0cmFuc2Zvcm1SZXN1bHQubWFwIGFzIFNvdXJjZU1hcElucHV0LCBvcHRpb25zLm1hcF0sICgpID0+IG51bGwpO1xuXG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCArICcubWFwJywgSlNPTi5zdHJpbmdpZnkob3V0cHV0TWFwKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmlsZTogb3B0aW9ucy5maWxlbmFtZSwgZGlhZ25vc3RpY3MgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5saW5lTG9jYWxlc0RpcmVjdChhc3Q6IFBhcnNlUmVzdWx0LCBvcHRpb25zOiBJbmxpbmVPcHRpb25zKSB7XG4gIGlmICghaTE4biB8fCBpMThuLmlubGluZUxvY2FsZXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiB7IGZpbGU6IG9wdGlvbnMuZmlsZW5hbWUsIGRpYWdub3N0aWNzOiBbXSwgY291bnQ6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IHsgZGVmYXVsdDogZ2VuZXJhdGUgfSA9IGF3YWl0IGltcG9ydCgnQGJhYmVsL2dlbmVyYXRvcicpO1xuICBjb25zdCBsb2NhbGl6ZURpYWcgPSBhd2FpdCBsb2FkTG9jYWxpemVUb29scygpO1xuICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBsb2NhbGl6ZURpYWcuRGlhZ25vc3RpY3MoKTtcblxuICBjb25zdCBwb3NpdGlvbnMgPSBmaW5kTG9jYWxpemVQb3NpdGlvbnMoYXN0LCBvcHRpb25zLCBsb2NhbGl6ZURpYWcpO1xuICBpZiAocG9zaXRpb25zLmxlbmd0aCA9PT0gMCAmJiAhb3B0aW9ucy5zZXRMb2NhbGUpIHtcbiAgICByZXR1cm4gaW5saW5lQ29weU9ubHkob3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBpbnB1dE1hcCA9ICEhb3B0aW9ucy5tYXAgJiYgKEpTT04ucGFyc2Uob3B0aW9ucy5tYXApIGFzIHsgc291cmNlUm9vdD86IHN0cmluZyB9KTtcbiAgLy8gQ2xlYW51cCBzb3VyY2Ugcm9vdCBvdGhlcndpc2UgaXQgd2lsbCBiZSBhZGRlZCB0byBlYWNoIHNvdXJjZSBlbnRyeVxuICBjb25zdCBtYXBTb3VyY2VSb290ID0gaW5wdXRNYXAgJiYgaW5wdXRNYXAuc291cmNlUm9vdDtcbiAgaWYgKGlucHV0TWFwKSB7XG4gICAgZGVsZXRlIGlucHV0TWFwLnNvdXJjZVJvb3Q7XG4gIH1cblxuICAvLyBMb2FkIFdlYnBhY2sgb25seSB3aGVuIG5lZWRlZFxuICBpZiAod2VicGFja1NvdXJjZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIHdlYnBhY2tTb3VyY2VzID0gKGF3YWl0IGltcG9ydCgnd2VicGFjaycpKS5zb3VyY2VzO1xuICB9XG4gIGNvbnN0IHsgQ29uY2F0U291cmNlLCBPcmlnaW5hbFNvdXJjZSwgUmVwbGFjZVNvdXJjZSwgU291cmNlTWFwU291cmNlIH0gPSB3ZWJwYWNrU291cmNlcztcblxuICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBpMThuLmlubGluZUxvY2FsZXMpIHtcbiAgICBjb25zdCBjb250ZW50ID0gbmV3IFJlcGxhY2VTb3VyY2UoXG4gICAgICBpbnB1dE1hcFxuICAgICAgICA/IG5ldyBTb3VyY2VNYXBTb3VyY2Uob3B0aW9ucy5jb2RlLCBvcHRpb25zLmZpbGVuYW1lLCBpbnB1dE1hcClcbiAgICAgICAgOiBuZXcgT3JpZ2luYWxTb3VyY2Uob3B0aW9ucy5jb2RlLCBvcHRpb25zLmZpbGVuYW1lKSxcbiAgICApO1xuXG4gICAgY29uc3QgaXNTb3VyY2VMb2NhbGUgPSBsb2NhbGUgPT09IGkxOG4uc291cmNlTG9jYWxlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgdHJhbnNsYXRpb25zOiBhbnkgPSBpc1NvdXJjZUxvY2FsZSA/IHt9IDogaTE4bi5sb2NhbGVzW2xvY2FsZV0udHJhbnNsYXRpb24gfHwge307XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWQgPSBsb2NhbGl6ZURpYWcudHJhbnNsYXRlKFxuICAgICAgICBkaWFnbm9zdGljcyxcbiAgICAgICAgdHJhbnNsYXRpb25zLFxuICAgICAgICBwb3NpdGlvbi5tZXNzYWdlUGFydHMsXG4gICAgICAgIHBvc2l0aW9uLmV4cHJlc3Npb25zLFxuICAgICAgICBpc1NvdXJjZUxvY2FsZSA/ICdpZ25vcmUnIDogb3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb24gfHwgJ3dhcm5pbmcnLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGxvY2FsaXplRGlhZy5idWlsZExvY2FsaXplUmVwbGFjZW1lbnQodHJhbnNsYXRlZFswXSwgdHJhbnNsYXRlZFsxXSk7XG4gICAgICBjb25zdCB7IGNvZGUgfSA9IGdlbmVyYXRlKGV4cHJlc3Npb24pO1xuXG4gICAgICBjb250ZW50LnJlcGxhY2UocG9zaXRpb24uc3RhcnQsIHBvc2l0aW9uLmVuZCAtIDEsIGNvZGUpO1xuICAgIH1cblxuICAgIGxldCBvdXRwdXRTb3VyY2U6IGltcG9ydCgnd2VicGFjaycpLnNvdXJjZXMuU291cmNlID0gY29udGVudDtcbiAgICBpZiAob3B0aW9ucy5zZXRMb2NhbGUpIHtcbiAgICAgIGNvbnN0IHNldExvY2FsZVRleHQgPSBgZ2xvYmFsVGhpcy4kbG9jYWxpemU9T2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLiRsb2NhbGl6ZSB8fCB7fSx7bG9jYWxlOlwiJHtsb2NhbGV9XCJ9KTtcXG5gO1xuXG4gICAgICAvLyBJZiBsb2NhbGUgZGF0YSBpcyBwcm92aWRlZCwgbG9hZCBpdCBhbmQgcHJlcGVuZCB0byBmaWxlXG4gICAgICBsZXQgbG9jYWxlRGF0YVNvdXJjZTtcbiAgICAgIGNvbnN0IGxvY2FsZURhdGFQYXRoID0gaTE4bi5sb2NhbGVzW2xvY2FsZV0gJiYgaTE4bi5sb2NhbGVzW2xvY2FsZV0uZGF0YVBhdGg7XG4gICAgICBpZiAobG9jYWxlRGF0YVBhdGgpIHtcbiAgICAgICAgY29uc3QgbG9jYWxlRGF0YUNvbnRlbnQgPSBhd2FpdCBsb2FkTG9jYWxlRGF0YShsb2NhbGVEYXRhUGF0aCwgdHJ1ZSk7XG4gICAgICAgIGxvY2FsZURhdGFTb3VyY2UgPSBuZXcgT3JpZ2luYWxTb3VyY2UobG9jYWxlRGF0YUNvbnRlbnQsIHBhdGguYmFzZW5hbWUobG9jYWxlRGF0YVBhdGgpKTtcbiAgICAgIH1cblxuICAgICAgb3V0cHV0U291cmNlID0gbG9jYWxlRGF0YVNvdXJjZVxuICAgICAgICA/IC8vIFRoZSBzZW1pY29sb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIHN5bnRheCBlcnJvciBiZXR3ZWVuIHN0YXRlbWVudHNcbiAgICAgICAgICBuZXcgQ29uY2F0U291cmNlKHNldExvY2FsZVRleHQsIGxvY2FsZURhdGFTb3VyY2UsICc7XFxuJywgY29udGVudClcbiAgICAgICAgOiBuZXcgQ29uY2F0U291cmNlKHNldExvY2FsZVRleHQsIGNvbnRlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgc291cmNlOiBvdXRwdXRDb2RlLCBtYXA6IG91dHB1dE1hcCB9ID0gb3V0cHV0U291cmNlLnNvdXJjZUFuZE1hcCgpIGFzIHtcbiAgICAgIHNvdXJjZTogc3RyaW5nO1xuICAgICAgbWFwOiB7IGZpbGU6IHN0cmluZzsgc291cmNlUm9vdD86IHN0cmluZyB9O1xuICAgIH07XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IHBhdGguam9pbihcbiAgICAgIG9wdGlvbnMub3V0cHV0UGF0aCxcbiAgICAgIGkxOG4uZmxhdE91dHB1dCA/ICcnIDogbG9jYWxlLFxuICAgICAgb3B0aW9ucy5maWxlbmFtZSxcbiAgICApO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShvdXRwdXRQYXRoLCBvdXRwdXRDb2RlKTtcblxuICAgIGlmIChpbnB1dE1hcCAmJiBvdXRwdXRNYXApIHtcbiAgICAgIG91dHB1dE1hcC5maWxlID0gb3B0aW9ucy5maWxlbmFtZTtcbiAgICAgIGlmIChtYXBTb3VyY2VSb290KSB7XG4gICAgICAgIG91dHB1dE1hcC5zb3VyY2VSb290ID0gbWFwU291cmNlUm9vdDtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShvdXRwdXRQYXRoICsgJy5tYXAnLCBKU09OLnN0cmluZ2lmeShvdXRwdXRNYXApKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBmaWxlOiBvcHRpb25zLmZpbGVuYW1lLCBkaWFnbm9zdGljczogZGlhZ25vc3RpY3MubWVzc2FnZXMsIGNvdW50OiBwb3NpdGlvbnMubGVuZ3RoIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlubGluZUNvcHlPbmx5KG9wdGlvbnM6IElubGluZU9wdGlvbnMpIHtcbiAgaWYgKCFpMThuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpMThuIG9wdGlvbnMgYXJlIG1pc3NpbmcnKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgbG9jYWxlIG9mIGkxOG4uaW5saW5lTG9jYWxlcykge1xuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBvcHRpb25zLm91dHB1dFBhdGgsXG4gICAgICBpMThuLmZsYXRPdXRwdXQgPyAnJyA6IGxvY2FsZSxcbiAgICAgIG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCwgb3B0aW9ucy5jb2RlKTtcbiAgICBpZiAob3B0aW9ucy5tYXApIHtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShvdXRwdXRQYXRoICsgJy5tYXAnLCBvcHRpb25zLm1hcCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmlsZTogb3B0aW9ucy5maWxlbmFtZSwgZGlhZ25vc3RpY3M6IFtdLCBjb3VudDogMCB9O1xufVxuXG5mdW5jdGlvbiBmaW5kTG9jYWxpemVQb3NpdGlvbnMoXG4gIGFzdDogUGFyc2VSZXN1bHQsXG4gIG9wdGlvbnM6IElubGluZU9wdGlvbnMsXG4gIHV0aWxzOiBMb2NhbGl6ZVV0aWxpdHlNb2R1bGUsXG4pOiBMb2NhbGl6ZVBvc2l0aW9uW10ge1xuICBjb25zdCBwb3NpdGlvbnM6IExvY2FsaXplUG9zaXRpb25bXSA9IFtdO1xuXG4gIC8vIFdvcmthcm91bmQgdG8gZW5zdXJlIGEgcGF0aCBodWIgaXMgcHJlc2VudCBmb3IgdHJhdmVyc2FsXG4gIGNvbnN0IHsgRmlsZSB9ID0gcmVxdWlyZSgnQGJhYmVsL2NvcmUnKTtcbiAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKHt9LCB7IGNvZGU6IG9wdGlvbnMuY29kZSwgYXN0IH0pO1xuXG4gIHRyYXZlcnNlKGZpbGUuYXN0LCB7XG4gICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKHBhdGgpIHtcbiAgICAgIGlmICh0eXBlcy5pc0lkZW50aWZpZXIocGF0aC5ub2RlLnRhZykgJiYgcGF0aC5ub2RlLnRhZy5uYW1lID09PSBsb2NhbGl6ZU5hbWUpIHtcbiAgICAgICAgY29uc3QgW21lc3NhZ2VQYXJ0cywgZXhwcmVzc2lvbnNdID0gdW53cmFwVGVtcGxhdGVMaXRlcmFsKHBhdGgsIHV0aWxzKTtcbiAgICAgICAgcG9zaXRpb25zLnB1c2goe1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgc3RhcnQ6IHBhdGgubm9kZS5zdGFydCEsXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICBlbmQ6IHBhdGgubm9kZS5lbmQhLFxuICAgICAgICAgIG1lc3NhZ2VQYXJ0cyxcbiAgICAgICAgICBleHByZXNzaW9ucyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHBvc2l0aW9ucztcbn1cblxuZnVuY3Rpb24gdW53cmFwVGVtcGxhdGVMaXRlcmFsKFxuICBwYXRoOiBOb2RlUGF0aDx0eXBlcy5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24+LFxuICB1dGlsczogTG9jYWxpemVVdGlsaXR5TW9kdWxlLFxuKTogW1RlbXBsYXRlU3RyaW5nc0FycmF5LCB0eXBlcy5FeHByZXNzaW9uW11dIHtcbiAgY29uc3QgW21lc3NhZ2VQYXJ0c10gPSB1dGlscy51bndyYXBNZXNzYWdlUGFydHNGcm9tVGVtcGxhdGVMaXRlcmFsKFxuICAgIHBhdGguZ2V0KCdxdWFzaScpLmdldCgncXVhc2lzJyksXG4gICk7XG4gIGNvbnN0IFtleHByZXNzaW9uc10gPSB1dGlscy51bndyYXBFeHByZXNzaW9uc0Zyb21UZW1wbGF0ZUxpdGVyYWwocGF0aC5nZXQoJ3F1YXNpJykpO1xuXG4gIHJldHVybiBbbWVzc2FnZVBhcnRzLCBleHByZXNzaW9uc107XG59XG5cbmZ1bmN0aW9uIHVud3JhcExvY2FsaXplQ2FsbChcbiAgcGF0aDogTm9kZVBhdGg8dHlwZXMuQ2FsbEV4cHJlc3Npb24+LFxuICB1dGlsczogTG9jYWxpemVVdGlsaXR5TW9kdWxlLFxuKTogW1RlbXBsYXRlU3RyaW5nc0FycmF5LCB0eXBlcy5FeHByZXNzaW9uW11dIHtcbiAgY29uc3QgW21lc3NhZ2VQYXJ0c10gPSB1dGlscy51bndyYXBNZXNzYWdlUGFydHNGcm9tTG9jYWxpemVDYWxsKHBhdGgpO1xuICBjb25zdCBbZXhwcmVzc2lvbnNdID0gdXRpbHMudW53cmFwU3Vic3RpdHV0aW9uc0Zyb21Mb2NhbGl6ZUNhbGwocGF0aCk7XG5cbiAgcmV0dXJuIFttZXNzYWdlUGFydHMsIGV4cHJlc3Npb25zXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZExvY2FsZURhdGEocGF0aDogc3RyaW5nLCBvcHRpbWl6ZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIFRoZSBwYXRoIGlzIHZhbGlkYXRlZCBkdXJpbmcgb3B0aW9uIHByb2Nlc3NpbmcgYmVmb3JlIHRoZSBidWlsZCBzdGFydHNcbiAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGgsICd1dGY4Jyk7XG5cbiAgLy8gRG93bmxldmVsIGFuZCBvcHRpbWl6ZSB0aGUgZGF0YVxuICBjb25zdCB0cmFuc2Zvcm1SZXN1bHQgPSBhd2FpdCB0cmFuc2Zvcm1Bc3luYyhjb250ZW50LCB7XG4gICAgZmlsZW5hbWU6IHBhdGgsXG4gICAgLy8gVGhlIHR5cGVzIGRvIG5vdCBpbmNsdWRlIHRoZSBmYWxzZSBvcHRpb24gZXZlbiB0aG91Z2ggaXQgaXMgdmFsaWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGlucHV0U291cmNlTWFwOiBmYWxzZSBhcyBhbnksXG4gICAgYmFiZWxyYzogZmFsc2UsXG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgcHJlc2V0czogW1xuICAgICAgW1xuICAgICAgICByZXF1aXJlLnJlc29sdmUoJ0BiYWJlbC9wcmVzZXQtZW52JyksXG4gICAgICAgIHtcbiAgICAgICAgICBidWdmaXhlczogdHJ1ZSxcbiAgICAgICAgICB0YXJnZXRzOiB7IGVzbW9kdWxlczogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICBdLFxuICAgIG1pbmlmaWVkOiBhbGxvd01pbmlmeSAmJiBvcHRpbWl6ZSxcbiAgICBjb21wYWN0OiAhc2hvdWxkQmVhdXRpZnkgJiYgb3B0aW1pemUsXG4gICAgY29tbWVudHM6ICFvcHRpbWl6ZSxcbiAgfSk7XG5cbiAgaWYgKCF0cmFuc2Zvcm1SZXN1bHQgfHwgIXRyYW5zZm9ybVJlc3VsdC5jb2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGVycm9yIG9jY3VycmVkIHByb2Nlc3NpbmcgYnVuZGxlIGZvciBcIiR7cGF0aH1cIi5gKTtcbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1SZXN1bHQuY29kZTtcbn1cbiJdfQ==
|
package/src/utils/purge-cache.js
CHANGED
|
@@ -13,8 +13,7 @@ const path_1 = require("path");
|
|
|
13
13
|
const normalize_cache_1 = require("./normalize-cache");
|
|
14
14
|
/** Delete stale cache directories used by previous versions of build-angular. */
|
|
15
15
|
async function purgeStaleBuildCache(context) {
|
|
16
|
-
|
|
17
|
-
const projectName = (_a = context.target) === null || _a === void 0 ? void 0 : _a.project;
|
|
16
|
+
const projectName = context.target?.project;
|
|
18
17
|
if (!projectName) {
|
|
19
18
|
return;
|
|
20
19
|
}
|
|
@@ -34,4 +33,4 @@ async function purgeStaleBuildCache(context) {
|
|
|
34
33
|
await Promise.all(entriesToDelete);
|
|
35
34
|
}
|
|
36
35
|
exports.purgeStaleBuildCache = purgeStaleBuildCache;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZ2UtY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9wdXJnZS1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFHSCwyQkFBd0Q7QUFDeEQsK0JBQTRCO0FBQzVCLHVEQUEwRDtBQUUxRCxpRkFBaUY7QUFDMUUsS0FBSyxVQUFVLG9CQUFvQixDQUFDLE9BQXVCO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTztLQUNSO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBQSx1Q0FBcUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRTNGLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUMsRUFBRTtRQUNyQyxPQUFPO0tBQ1I7SUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sYUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNULE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsT0FBTyxhQUFVO2FBQ2QsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDNUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFFTCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQXhCRCxvREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHByb21pc2VzIGFzIGZzUHJvbWlzZXMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBub3JtYWxpemVDYWNoZU9wdGlvbnMgfSBmcm9tICcuL25vcm1hbGl6ZS1jYWNoZSc7XG5cbi8qKiBEZWxldGUgc3RhbGUgY2FjaGUgZGlyZWN0b3JpZXMgdXNlZCBieSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBidWlsZC1hbmd1bGFyLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1cmdlU3RhbGVCdWlsZENhY2hlKGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC50YXJnZXQ/LnByb2plY3Q7XG4gIGlmICghcHJvamVjdE5hbWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKHByb2plY3ROYW1lKTtcbiAgY29uc3QgeyBiYXNlUGF0aCwgcGF0aCwgZW5hYmxlZCB9ID0gbm9ybWFsaXplQ2FjaGVPcHRpb25zKG1ldGFkYXRhLCBjb250ZXh0LndvcmtzcGFjZVJvb3QpO1xuXG4gIGlmICghZW5hYmxlZCB8fCAhZXhpc3RzU3luYyhiYXNlUGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRyaWVzVG9EZWxldGUgPSAoYXdhaXQgZnNQcm9taXNlcy5yZWFkZGlyKGJhc2VQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpXG4gICAgLmZpbHRlcigoZCkgPT4gam9pbihiYXNlUGF0aCwgZC5uYW1lKSAhPT0gcGF0aCAmJiBkLmlzRGlyZWN0b3J5KCkpXG4gICAgLm1hcCgoZCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUGF0aCA9IGpvaW4oYmFzZVBhdGgsIGQubmFtZSk7XG5cbiAgICAgIHJldHVybiBmc1Byb21pc2VzXG4gICAgICAgIC5ybShzdWJQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUsIG1heFJldHJpZXM6IDMgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHZvaWQgMCk7XG4gICAgfSk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoZW50cmllc1RvRGVsZXRlKTtcbn1cbiJdfQ==
|
package/src/utils/version.js
CHANGED
|
@@ -19,7 +19,7 @@ function assertCompatibleAngularVersion(projectRoot) {
|
|
|
19
19
|
const angularPackagePath = require.resolve('@angular/core/package.json', resolveOptions);
|
|
20
20
|
angularPkgJson = require(angularPackagePath);
|
|
21
21
|
}
|
|
22
|
-
catch
|
|
22
|
+
catch {
|
|
23
23
|
console.error(core_1.tags.stripIndents `
|
|
24
24
|
You seem to not be depending on "@angular/core". This is an error.
|
|
25
25
|
`);
|
|
@@ -39,7 +39,7 @@ function assertCompatibleAngularVersion(projectRoot) {
|
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
catch
|
|
42
|
+
catch {
|
|
43
43
|
// Not using @angular-devkit/build-angular with @angular/cli is ok too.
|
|
44
44
|
// In this case we don't provide as many version checks.
|
|
45
45
|
return;
|
|
@@ -63,4 +63,4 @@ function assertCompatibleAngularVersion(projectRoot) {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.assertCompatibleAngularVersion = assertCompatibleAngularVersion;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3V0aWxzL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsK0JBQStCO0FBRS9CLCtDQUE0QztBQUM1QyxtQ0FBMkM7QUFFM0MsU0FBZ0IsOEJBQThCLENBQUMsV0FBbUI7SUFDaEUsSUFBSSxpQkFBaUIsQ0FBQztJQUN0QixJQUFJLGNBQWMsQ0FBQztJQUNuQixNQUFNLGNBQWMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFFaEQsSUFBSTtRQUNGLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RixjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDOUM7SUFBQyxNQUFNO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFJLENBQUMsWUFBWSxDQUFBOztLQUU5QixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBSSxDQUFDLFlBQVksQ0FBQTs7O0tBRzlCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7SUFFRCxJQUFJO1FBQ0YsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZGLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxDQUFDLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTztTQUNSO0tBQ0Y7SUFBQyxNQUFNO1FBQ04sdUVBQXVFO1FBQ3ZFLHdEQUF3RDtRQUN4RCxPQUFPO0tBQ1I7SUFFRCxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLE9BQU8sSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssT0FBTyxFQUFFO1FBQ3JGLDZFQUE2RTtRQUM3RSxrR0FBa0c7UUFDbEcsT0FBTztLQUNSO0lBRUQsTUFBTSxzQkFBc0IsR0FDMUIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTdELElBQUksQ0FBQyxJQUFBLGtCQUFTLEVBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUNuRixPQUFPLENBQUMsS0FBSyxDQUNYLFdBQUksQ0FBQyxZQUFZLENBQUE7dUVBQ2dELHNCQUFzQjs4QkFDL0QsY0FBYzs7OztPQUlyQyxHQUFHLElBQUksQ0FDVCxDQUFDO1FBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUM7QUE3REQsd0VBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cblxuaW1wb3J0IHsgdGFncyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IFNlbVZlciwgc2F0aXNmaWVzIH0gZnJvbSAnc2VtdmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydENvbXBhdGlibGVBbmd1bGFyVmVyc2lvbihwcm9qZWN0Um9vdDogc3RyaW5nKTogdm9pZCB8IG5ldmVyIHtcbiAgbGV0IGFuZ3VsYXJDbGlQa2dKc29uO1xuICBsZXQgYW5ndWxhclBrZ0pzb247XG4gIGNvbnN0IHJlc29sdmVPcHRpb25zID0geyBwYXRoczogW3Byb2plY3RSb290XSB9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgYW5ndWxhclBhY2thZ2VQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdAYW5ndWxhci9jb3JlL3BhY2thZ2UuanNvbicsIHJlc29sdmVPcHRpb25zKTtcblxuICAgIGFuZ3VsYXJQa2dKc29uID0gcmVxdWlyZShhbmd1bGFyUGFja2FnZVBhdGgpO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKHRhZ3Muc3RyaXBJbmRlbnRzYFxuICAgICAgWW91IHNlZW0gdG8gbm90IGJlIGRlcGVuZGluZyBvbiBcIkBhbmd1bGFyL2NvcmVcIi4gVGhpcyBpcyBhbiBlcnJvci5cbiAgICBgKTtcblxuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuXG4gIGlmICghKGFuZ3VsYXJQa2dKc29uICYmIGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10pKSB7XG4gICAgY29uc29sZS5lcnJvcih0YWdzLnN0cmlwSW5kZW50c2BcbiAgICAgIENhbm5vdCBkZXRlcm1pbmUgdmVyc2lvbnMgb2YgXCJAYW5ndWxhci9jb3JlXCIuXG4gICAgICBUaGlzIGxpa2VseSBtZWFucyB5b3VyIGxvY2FsIGluc3RhbGxhdGlvbiBpcyBicm9rZW4uIFBsZWFzZSByZWluc3RhbGwgeW91ciBwYWNrYWdlcy5cbiAgICBgKTtcblxuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYW5ndWxhckNsaVBrZ1BhdGggPSByZXF1aXJlLnJlc29sdmUoJ0Bhbmd1bGFyL2NsaS9wYWNrYWdlLmpzb24nLCByZXNvbHZlT3B0aW9ucyk7XG4gICAgYW5ndWxhckNsaVBrZ0pzb24gPSByZXF1aXJlKGFuZ3VsYXJDbGlQa2dQYXRoKTtcbiAgICBpZiAoIShhbmd1bGFyQ2xpUGtnSnNvbiAmJiBhbmd1bGFyQ2xpUGtnSnNvblsndmVyc2lvbiddKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgLy8gTm90IHVzaW5nIEBhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyIHdpdGggQGFuZ3VsYXIvY2xpIGlzIG9rIHRvby5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZG9uJ3QgcHJvdmlkZSBhcyBtYW55IHZlcnNpb24gY2hlY2tzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChhbmd1bGFyQ2xpUGtnSnNvblsndmVyc2lvbiddID09PSAnMC4wLjAnIHx8IGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10gPT09ICcwLjAuMCcpIHtcbiAgICAvLyBJbnRlcm5hbCBDTEkgdGVzdGluZyB2ZXJzaW9uIG9yIGludGVncmF0aW9uIHRlc3RpbmcgaW4gdGhlIGFuZ3VsYXIvYW5ndWxhclxuICAgIC8vIHJlcG9zaXRvcnkgd2l0aCB0aGUgZ2VuZXJhdGVkIGRldmVsb3BtZW50IEBhbmd1bGFyL2NvcmUgbnBtIHBhY2thZ2Ugd2hpY2ggaXMgdmVyc2lvbmVkIFwiMC4wLjBcIi5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyID1cbiAgICByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKVsncGVlckRlcGVuZGVuY2llcyddWydAYW5ndWxhci9jb21waWxlci1jbGknXTtcbiAgY29uc3QgYW5ndWxhclZlcnNpb24gPSBuZXcgU2VtVmVyKGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10pO1xuXG4gIGlmICghc2F0aXNmaWVzKGFuZ3VsYXJWZXJzaW9uLCBzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyLCB7IGluY2x1ZGVQcmVyZWxlYXNlOiB0cnVlIH0pKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIHRhZ3Muc3RyaXBJbmRlbnRzYFxuICAgICAgICBUaGlzIHZlcnNpb24gb2YgQ0xJIGlzIG9ubHkgY29tcGF0aWJsZSB3aXRoIEFuZ3VsYXIgdmVyc2lvbnMgJHtzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyfSxcbiAgICAgICAgYnV0IEFuZ3VsYXIgdmVyc2lvbiAke2FuZ3VsYXJWZXJzaW9ufSB3YXMgZm91bmQgaW5zdGVhZC5cblxuICAgICAgICBQbGVhc2UgdmlzaXQgdGhlIGxpbmsgYmVsb3cgdG8gZmluZCBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVwZGF0ZSBBbmd1bGFyLlxuICAgICAgICBodHRwczovL3VwZGF0ZS5hbmd1bGFyLmlvL1xuICAgICAgYCArICdcXG4nLFxuICAgICk7XG5cbiAgICBwcm9jZXNzLmV4aXQoMyk7XG4gIH1cbn1cbiJdfQ==
|