ag-special-sale/vite.config.js.timestamp-17...

193 lines
22 KiB
JavaScript

// vite.config.js
import { defineConfig, loadEnv } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/vite/dist/node/index.js";
import vue from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import AutoImport from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-auto-import/dist/vite.js";
import Components from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-vue-components/dist/vite.js";
import { ElementPlusResolver } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-vue-components/dist/resolvers.js";
import path from "path";
import { VxeTableResolver } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/@vxecli/import-unplugin-vue-components/dist/index.mjs";
import CssMinimizerPlugin from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/css-minimizer-webpack-plugin/dist/index.js";
import TerserPlugin from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/terser-webpack-plugin/dist/index.js";
var __vite_injected_original_dirname = "C:\\Users\\\u51B0\u54E5\u54E5\u7684\u7535\u8111\\Desktop\\xysale";
var name = "\u7231\u679C\u6218\u58D5\u6258\u7BA1\u7CFB\u7EDF";
var port = process.env.port || process.env.npm_config_port || 80;
var vite_config_default = defineConfig((command, mode) => {
const env = loadEnv(mode, __vite_injected_original_dirname);
return {
publicPath: "./",
outputDir: "dist",
assetsDir: "static",
lintOnSave: env.VITE_MODE === "development",
//lintOnSave: false,
productionSourceMap: false,
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver(), VxeTableResolver()]
}),
Components({
resolvers: [ElementPlusResolver(), VxeTableResolver()]
})
],
define: {
"process.env": {
VITE_APP_BASE_API: "JSON.stringify(env.VUE_APP_BASE_API)",
VITE_APP_BASE_SITE: "JSON.stringify(env.VITE_APP_BASE_SITE)"
}
},
server: {
port,
open: true,
hot: true,
overlay: {
warnings: false,
errors: true
},
host: "0.0.0.0",
proxy: {
[process.env.VUE_APP_BASE_API]: {
//这里是公共部分,在调用接口时后面接不相同的部分
target: process.env.VUE_APP_BASE_API,
//修改后台接口地址
changeOrigin: true,
//开启跨域
pathRewrite: {
//重命名
["^" + process.env.VUE_APP_BASE_API]: ""
}
},
"^/api": {
target: "http://dev-erp-api.xtkj99.com:7890",
changeOrigin: true
}
},
disableHostCheck: true
},
resolve: {
// 设置路径别名
alias: {
"@": path.join(__vite_injected_original_dirname, "/src"),
"@services": path.join(__vite_injected_original_dirname, "/src/services"),
"@axioshooks": path.join(__vite_injected_original_dirname, "/src/services/axioshooks"),
"@assets": path.join(__vite_injected_original_dirname, "/src/assets"),
"@components": path.join(__vite_injected_original_dirname, "/src/components"),
"@api": path.join(__vite_injected_original_dirname, "/src/services/api"),
"@untils": path.join(__vite_injected_original_dirname, "/src/untils")
}
},
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: {
filename: `static/js/chunk-[hash].css`
}
},
configureWebpack: {
output: {
filename: `static/js/chunk-[hash].js`
},
module: {
rules: [
{
test: /\.js$/,
include: path.resolve(__vite_injected_original_dirname, "../src"),
exclude: /node_modules/,
use: [
"cache-loader",
{
loader: "thread-loader",
options: {
workers: 2
}
},
"bable-loader"
]
}
]
}
},
// provide the app's title in webpack's name field, so that
// it can be accessed in index.html to inject the correct title.
name,
optimization: {
minimizer: [
// For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line
// `...`,
new CssMinimizerPlugin(),
new TerserPlugin({
terserOptions: {
compress: {
drop_console: true
// 生产环境自动删除console
}
}
})
]
},
chainWebpack(config) {
config.plugin("preload").tap(() => [
{
rel: "preload",
// to ignore runtime.js
// https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
include: "initial"
}
]);
config.plugins.delete("prefetch");
config.module.rule("svg").exclude.add(resolve("src/icons")).end();
config.module.rule("icons").test(/\.svg$/).include.add(resolve("src/icons")).end().use("svg-sprite-loader").loader("svg-sprite-loader").options({
symbolId: `icon-[name].${Version}.[ext]`
}).end();
config.when(process.env.NODE_ENV !== "development", (config2) => {
config2.plugin("ScriptExtHtmlWebpackPlugin").after("html").use("script-ext-html-webpack-plugin", [
{
// `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}
]).end();
config2.optimization.splitChunks({
chunks: "all",
cacheGroups: {
libs: {
name: "chunk-libs",
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: "initial"
// only package third parties that are initially dependent
},
elementUI: {
name: "chunk-elementUI",
// split elementUI into a single package
priority: 20,
// the weight needs to be larger than libs and app or it will be packaged into libs or app
test: /[\\/]node_modules[\\/]_?element-ui(.*)/
// in order to adapt to cnpm
},
commons: {
name: "chunk-commons",
test: resolve("src/components"),
// can customize your rules
minChunks: 3,
// minimum common number
priority: 5,
reuseExistingChunk: true
}
}
});
config2.optimization.runtimeChunk("single");
config2.optimization.minimizer("terser").tap((args) => {
args[0].parallel = 4;
args[0].terserOptions.compress.warnings = true;
args[0].terserOptions.compress.drop_debugger = true;
args[0].terserOptions.compress.drop_console = true;
return args;
});
});
}
};
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxcdTUxQjBcdTU0RTVcdTU0RTVcdTc2ODRcdTc1MzVcdTgxMTFcXFxcRGVza3RvcFxcXFx4eXNhbGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXFx1NTFCMFx1NTRFNVx1NTRFNVx1NzY4NFx1NzUzNVx1ODExMVxcXFxEZXNrdG9wXFxcXHh5c2FsZVxcXFx2aXRlLmNvbmZpZy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vQzovVXNlcnMvJUU1JTg2JUIwJUU1JTkzJUE1JUU1JTkzJUE1JUU3JTlBJTg0JUU3JTk0JUI1JUU4JTg0JTkxL0Rlc2t0b3AveHlzYWxlL3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnICxsb2FkRW52fSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZScgXHJcbmltcG9ydCBBdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnIFxyXG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xyXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJzsgXHJcbmltcG9ydCB7IFZ4ZVRhYmxlUmVzb2x2ZXIgfSBmcm9tICdAdnhlY2xpL2ltcG9ydC11bnBsdWdpbi12dWUtY29tcG9uZW50cyc7XHJcbmltcG9ydCBDc3NNaW5pbWl6ZXJQbHVnaW4gZnJvbSBcImNzcy1taW5pbWl6ZXItd2VicGFjay1wbHVnaW5cIjtcclxuaW1wb3J0IFRlcnNlclBsdWdpbiBmcm9tIFwidGVyc2VyLXdlYnBhY2stcGx1Z2luXCI7XHJcblxyXG5jb25zdCBuYW1lID0gXCJcdTcyMzFcdTY3OUNcdTYyMThcdTU4RDVcdTYyNThcdTdCQTFcdTdDRkJcdTdFREZcIjsgLy8gcGFnZSB0aXRsZVxyXG4gIFxyXG5cclxuXHJcbmNvbnN0IHBvcnQgPSBwcm9jZXNzLmVudi5wb3J0IHx8IHByb2Nlc3MuZW52Lm5wbV9jb25maWdfcG9ydCB8fCA4MDsgLy8gZGV2IHBvcnRcclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKChjb21tYW5kLG1vZGUpPT57XHJcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBfX2Rpcm5hbWUpOyBcclxuIFxyXG4gIHJldHVybiB7XHJcbiAgICBwdWJsaWNQYXRoOiBcIi4vXCIsXHJcbiAgICBvdXRwdXREaXI6IFwiZGlzdFwiLFxyXG4gICAgXHJcbiAgICBhc3NldHNEaXI6IFwic3RhdGljXCIsIFxyXG4gICAgbGludE9uU2F2ZTogZW52LlZJVEVfTU9ERSA9PT0gXCJkZXZlbG9wbWVudFwiLFxyXG4gICAgLy9saW50T25TYXZlOiBmYWxzZSxcclxuICAgIHByb2R1Y3Rpb25Tb3VyY2VNYXA6IGZhbHNlLFxyXG4gICAgcGx1Z2luczogWyBcclxuICAgICAgdnVlKCksIFxyXG4gICAgICBBdXRvSW1wb3J0KHtcclxuICAgICAgICByZXNvbHZlcnM6IFtFbGVtZW50UGx1c1Jlc29sdmVyKCksVnhlVGFibGVSZXNvbHZlcigpXSxcclxuICAgICAgfSksXHJcbiAgICAgIENvbXBvbmVudHMoe1xyXG4gICAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKSxWeGVUYWJsZVJlc29sdmVyKCldLFxyXG4gICAgICB9KSwgXHJcbiAgICBdLFxyXG4gICAgZGVmaW5lOiB7IFxyXG4gICAgICAncHJvY2Vzcy5lbnYnOiB7XHJcbiAgICAgICAgVklURV9BUFBfQkFTRV9BUEk6ICdKU09OLnN0cmluZ2lmeShlbnYuVlVFX0FQUF9CQVNFX0FQSSknLFxyXG4gICAgICAgIFZJVEVfQVBQX0JBU0VfU0lURTonSlNPTi5zdHJpbmdpZnkoZW52LlZJVEVfQVBQX0JBU0VfU0lURSknXHJcbiAgICAgIH0sIFxyXG4gICAgfSxcclxuICAgIHNlcnZlcjoge1xyXG4gICAgICBwb3J0OiBwb3J0LFxyXG4gICAgICBvcGVuOiB0cnVlLFxyXG4gICAgICBob3Q6dHJ1ZSxcclxuICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgIHdhcm5pbmdzOiBmYWxzZSxcclxuICAgICAgICBlcnJvcnM6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGhvc3Q6ICcwLjAuMC4wJywgXHJcbiAgICAgIHByb3h5OiB7XHJcbiAgICAgICAgW3Byb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEldOiB7XHJcbiAgICAgICAgICAvL1x1OEZEOVx1OTFDQ1x1NjYyRlx1NTE2Q1x1NTE3MVx1OTBFOFx1NTIwNlx1RkYwQ1x1NTcyOFx1OEMwM1x1NzUyOFx1NjNBNVx1NTNFM1x1NjVGNlx1NTQwRVx1OTc2Mlx1NjNBNVx1NEUwRFx1NzZGOFx1NTQwQ1x1NzY4NFx1OTBFOFx1NTIwNlxyXG4gICAgICAgICAgdGFyZ2V0OiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJLCAvL1x1NEZFRVx1NjUzOVx1NTQwRVx1NTNGMFx1NjNBNVx1NTNFM1x1NTczMFx1NTc0MFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLCAvL1x1NUYwMFx1NTQyRlx1OERFOFx1NTdERlxyXG4gICAgICAgICAgcGF0aFJld3JpdGU6IHtcclxuICAgICAgICAgICAgLy9cdTkxQ0RcdTU0N0RcdTU0MERcclxuICAgICAgICAgICAgW1wiXlwiICsgcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSV06IFwiXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ14vYXBpJzoge1xyXG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovL2Rldi1lcnAtYXBpLnh0a2o5OS5jb206Nzg5MCcsIFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkaXNhYmxlSG9zdENoZWNrOiB0cnVlLCBcclxuICAgIH0sXHJcbiAgICByZXNvbHZlOiB7XHJcbiAgICAgIC8vIFx1OEJCRVx1N0Y2RVx1OERFRlx1NUY4NFx1NTIyQlx1NTQwRFxyXG4gICAgICBhbGlhczogeyBcclxuICAgICAgICAnQCc6IHBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMnKSxcclxuICAgICAgICAnQHNlcnZpY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwnL3NyYy9zZXJ2aWNlcycpLFxyXG4gICAgICAgICdAYXhpb3Nob29rcyc6IHBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMvc2VydmljZXMvYXhpb3Nob29rcycpLFxyXG4gICAgICAgICdAYXNzZXRzJzogcGF0aC5qb2luKF9fZGlybmFtZSwnL3NyYy9hc3NldHMnKSxcclxuICAgICAgICAnQGNvbXBvbmVudHMnOnBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMvY29tcG9uZW50cycpLFxyXG4gICAgICAgICdAYXBpJzpwYXRoLmpvaW4oX19kaXJuYW1lLCcvc3JjL3NlcnZpY2VzL2FwaScpLFxyXG4gICAgICAgICdAdW50aWxzJzpwYXRoLmpvaW4oX19kaXJuYW1lLCcvc3JjL3VudGlscycpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjc3M6IHtcclxuICAgICAgLy8gXHU2NjJGXHU1NDI2XHU0RjdGXHU3NTI4Y3NzXHU1MjA2XHU3OUJCXHU2M0QyXHU0RUY2IEV4dHJhY3RUZXh0UGx1Z2luXHJcbiAgICAgIGV4dHJhY3Q6IHsgXHJcbiAgICAgICAgZmlsZW5hbWU6IGBzdGF0aWMvanMvY2h1bmstW2hhc2hdLmNzc2AgXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgY29uZmlndXJlV2VicGFjazoge1xyXG4gICAgICBvdXRwdXQ6IHsgXHJcbiAgICAgICAgZmlsZW5hbWU6IGBzdGF0aWMvanMvY2h1bmstW2hhc2hdLmpzYCBcclxuICAgICAgfSxcclxuICAgICAgbW9kdWxlOiB7XHJcbiAgICAgICAgcnVsZXM6IFsgXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGVzdDogL1xcLmpzJC8sXHJcbiAgICAgICAgICAgIGluY2x1ZGU6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsJy4uL3NyYycpLFxyXG4gICAgICAgICAgICBleGNsdWRlOi9ub2RlX21vZHVsZXMvLFxyXG4gICAgICAgICAgICB1c2U6IFtcclxuICAgICAgICAgICAgICAnY2FjaGUtbG9hZGVyJyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsb2FkZXI6ICd0aHJlYWQtbG9hZGVyJyxcclxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsgXHJcbiAgICAgICAgICAgICAgICAgIHdvcmtlcnM6IDJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICdiYWJsZS1sb2FkZXInXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvLyBwcm92aWRlIHRoZSBhcHAncyB0aXRsZSBpbiB3ZWJwYWNrJ3MgbmFtZSBmaWVsZCwgc28gdGhhdFxyXG4gICAgLy8gaXQgY2FuIGJlIGFjY2Vzc2VkIGluIGluZGV4Lmh0bWwgdG8gaW5qZWN0IHRoZSBjb3JyZWN0IHRpdGxlLlxyXG4gICAgbmFtZTogbmFtZSxcclxuICAgIG9wdGltaXphdGlvbjp7XHJcbiAgICAgIG1pbmltaXplcjogW1xyXG4gICAgICAgIC8vIEZvciB3ZWJwYWNrQDUgeW91IGNhbiB1c2UgdGhlIGAuLi5gIHN5bnRheCB0byBleHRlbmQgZXhpc3RpbmcgbWluaW1pemVycyAoaS5lLiBgdGVyc2VyLXdlYnBhY2stcGx1Z2luYCksIHVuY29tbWVudCB0aGUgbmV4dCBsaW5lXHJcbiAgICAgICAgLy8gYC4uLmAsXHJcbiAgICAgICAgbmV3IENzc01pbmltaXplclBsdWdpbigpLFxyXG4gICAgICAgIG5ldyBUZXJzZXJQbHVnaW4oe1xyXG4gICAgICAgICAgdGVyc2VyT3B0aW9uczoge1xyXG4gICAgICAgICAgICBjb21wcmVzczoge1xyXG4gICAgICAgICAgICAgIGRyb3BfY29uc29sZTogdHJ1ZSwgLy8gXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHU4MUVBXHU1MkE4XHU1MjIwXHU5NjY0Y29uc29sZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gIFxyXG4gICAgY2hhaW5XZWJwYWNrKGNvbmZpZykge1xyXG4gICAgICAvLyBpdCBjYW4gaW1wcm92ZSB0aGUgc3BlZWQgb2YgdGhlIGZpcnN0IHNjcmVlbiwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdHVybiBvbiBwcmVsb2FkXHJcbiAgICAgIGNvbmZpZy5wbHVnaW4oXCJwcmVsb2FkXCIpLnRhcCgoKSA9PiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcclxuICAgICAgICAgIC8vIHRvIGlnbm9yZSBydW50aW1lLmpzXHJcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlLWNsaS9ibG9iL2Rldi9wYWNrYWdlcy9AdnVlL2NsaS1zZXJ2aWNlL2xpYi9jb25maWcvYXBwLmpzI0wxNzFcclxuICAgICAgICAgIGZpbGVCbGFja2xpc3Q6IFsvXFwubWFwJC8sIC9ob3QtdXBkYXRlXFwuanMkLywgL3J1bnRpbWVcXC4uKlxcLmpzJC9dLFxyXG4gICAgICAgICAgaW5jbHVkZTogXCJpbml0aWFsXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSk7XHJcbiAgICBcclxuICAgICAgXHJcbiAgICAgIC8vIHdoZW4gdGhlcmUgYXJlIG1hbnkgcGFnZXMsIGl0IHdpbGwgY2F1c2UgdG9vIG1hbnkgbWVhbmluZ2xlc3MgcmVxdWVzdHNcclxuICAgICBjb25maWcucGx1Z2lucy5kZWxldGUoXCJwcmVmZXRjaFwiKTtcclxuICAgIFxyXG4gIFxyXG4gICAgICAvLyBzZXQgc3ZnLXNwcml0ZS1sb2FkZXJcclxuICAgICAgY29uZmlnLm1vZHVsZS5ydWxlKFwic3ZnXCIpLmV4Y2x1ZGUuYWRkKHJlc29sdmUoXCJzcmMvaWNvbnNcIikpLmVuZCgpO1xyXG4gICAgICBjb25maWcubW9kdWxlXHJcbiAgICAgICAgLnJ1bGUoXCJpY29uc1wiKVxyXG4gICAgICAgIC50ZXN0KC9cXC5zdmckLylcclxuICAgICAgICAuaW5jbHVkZS5hZGQocmVzb2x2ZShcInNyYy9pY29uc1wiKSlcclxuICAgICAgICAuZW5kKClcclxuICAgICAgICAudXNlKFwic3ZnLXNwcml0ZS1sb2FkZXJcIilcclxuICAgICAgICAubG9hZGVyKFwic3ZnLXNwcml0ZS1sb2FkZXJcIilcclxuICAgICAgICAub3B0aW9ucyh7XHJcbiAgICAgICAgICBzeW1ib2xJZDogYGljb24tW25hbWVdLiR7VmVyc2lvbn0uW2V4dF1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmVuZCgpO1xyXG4gICAgICAgIFxyXG4gICAgICBjb25maWcud2hlbihwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiLCAoY29uZmlnKSA9PiB7IFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICAgICAgLnBsdWdpbihcIlNjcmlwdEV4dEh0bWxXZWJwYWNrUGx1Z2luXCIpXHJcbiAgICAgICAgICAuYWZ0ZXIoXCJodG1sXCIpXHJcbiAgICAgICAgICAudXNlKFwic2NyaXB0LWV4dC1odG1sLXdlYnBhY2stcGx1Z2luXCIsIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIC8vIGBydW50aW1lYCBtdXN0IHNhbWUgYXMgcnVudGltZUNodW5rIG5hbWUuIGRlZmF1bHQgaXMgYHJ1bnRpbWVgXHJcbiAgICAgICAgICAgICAgaW5saW5lOiAvcnVudGltZVxcLi4qXFwuanMkLyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0pXHJcbiAgICAgICAgICAuZW5kKCk7IFxyXG4gICAgICAgIGNvbmZpZy5vcHRpbWl6YXRpb24uc3BsaXRDaHVua3Moe1xyXG4gICAgICAgICAgY2h1bmtzOiBcImFsbFwiLFxyXG4gICAgICAgICAgY2FjaGVHcm91cHM6IHtcclxuICAgICAgICAgICAgbGliczoge1xyXG4gICAgICAgICAgICAgIG5hbWU6IFwiY2h1bmstbGlic1wiLFxyXG4gICAgICAgICAgICAgIHRlc3Q6IC9bXFxcXC9dbm9kZV9tb2R1bGVzW1xcXFwvXS8sXHJcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxyXG4gICAgICAgICAgICAgIGNodW5rczogXCJpbml0aWFsXCIsIC8vIG9ubHkgcGFja2FnZSB0aGlyZCBwYXJ0aWVzIHRoYXQgYXJlIGluaXRpYWxseSBkZXBlbmRlbnRcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZWxlbWVudFVJOiB7XHJcbiAgICAgICAgICAgICAgbmFtZTogXCJjaHVuay1lbGVtZW50VUlcIiwgLy8gc3BsaXQgZWxlbWVudFVJIGludG8gYSBzaW5nbGUgcGFja2FnZVxyXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAyMCwgLy8gdGhlIHdlaWdodCBuZWVkcyB0byBiZSBsYXJnZXIgdGhhbiBsaWJzIGFuZCBhcHAgb3IgaXQgd2lsbCBiZSBwYWNrYWdlZCBpbnRvIGxpYnMgb3IgYXBwXHJcbiAgICAgICAgICAgICAgdGVzdDogL1tcXFxcL11ub2RlX21vZHVsZXNbXFxcXC9dXz9lbGVtZW50LXVpKC4qKS8sIC8vIGluIG9yZGVyIHRvIGFkYXB0IHRvIGNucG1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgY29tbW9uczoge1xyXG4gICAgICAgICAgICAgIG5hbWU6IFwiY2h1bmstY29tbW9uc1wiLFxyXG4gICAgICAgICAgICAgIHRlc3Q6IHJlc29sdmUoXCJzcmMvY29tcG9uZW50c1wiKSwgLy8gY2FuIGN1c3RvbWl6ZSB5b3VyIHJ1bGVzXHJcbiAgICAgICAgICAgICAgbWluQ2h1bmtzOiAzLCAvLyAgbWluaW11bSBjb21tb24gbnVtYmVyXHJcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IDUsXHJcbiAgICAgICAgICAgICAgcmV1c2VFeGlzdGluZ0NodW5rOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBodHRwczovLyB3ZWJwYWNrLmpzLm9yZy9jb25maWd1cmF0aW9uL29wdGltaXphdGlvbi8jb3B0aW1pemF0aW9ucnVudGltZWNodW5rXHJcbiAgICAgICAgY29uZmlnLm9wdGltaXphdGlvbi5ydW50aW1lQ2h1bmsoXCJzaW5nbGVcIik7XHJcbiAgICAgICAgY29uZmlnLm9wdGltaXphdGlvbi5taW5pbWl6ZXIoXCJ0ZXJzZXJcIikudGFwKChhcmdzKSA9PiB7XHJcbiAgICAgICAgICBhcmdzWzBdLnBhcmFsbGVsID0gNDtcclxuICAgICAgICAgIGFyZ3NbMF0udGVyc2VyT3B0aW9ucy5jb21wcmVzcy53YXJuaW5ncyA9IHRydWU7XHJcbiAgICAgICAgICBhcmdzWzBdLnRlcnNlck9wdGlvbnMuY29tcHJlc3MuZHJvcF9kZWJ1Z2dlciA9IHRydWU7XHJcbiAgICAgICAgICBhcmdzWzBdLnRlcnNlck9wdGlvbnMuY29tcHJlc3MuZHJvcF9jb25zb2xlID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybiBhcmdzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfVxyXG59KVxyXG5cclxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFzVSxTQUFTLGNBQWMsZUFBYztBQUMzVyxPQUFPLFNBQVM7QUFD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