// vite.config.ts import fs from "node:fs"; import path2 from "node:path"; import process2 from "node:process"; import { defineConfig, loadEnv } from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31.6/node_modules/vite/dist/node/index.js"; // vite/plugins.ts import path from "node:path"; import process from "node:process"; import VueRouter from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unplugin-vue-router@0.10.7_rollup@4.21.2_vue-router@4.4.3_vue@3.4.38_typescript@5.5.4___vue@3.4.38_typescript@5.5.4_/node_modules/unplugin-vue-router/dist/vite.js"; import vue from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/@vitejs+plugin-vue@5.1.3_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31.6___4repjllq6k2f2ar6knafw5fra4/node_modules/@vitejs/plugin-vue/dist/index.mjs"; import vueJsx from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.0.1_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31_dlwz5wc7ah7vjzeedawr5fhwfq/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; import vueLegacy from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/@vitejs+plugin-legacy@5.4.2_terser@5.31.6_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31.6_/node_modules/@vitejs/plugin-legacy/dist/index.mjs"; import VueDevTools from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-vue-devtools@7.3.9_rollup@4.21.2_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1._qn2j5wbdvchbxqovwadctneqtu/node_modules/vite-plugin-vue-devtools/dist/vite.mjs"; import autoImport from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unplugin-auto-import@0.18.2_@vueuse+core@11.0.3_vue@3.4.38_typescript@5.5.4___rollup@4.21.2/node_modules/unplugin-auto-import/dist/vite.js"; import { VueRouterAutoImports } from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unplugin-vue-router@0.10.7_rollup@4.21.2_vue-router@4.4.3_vue@3.4.38_typescript@5.5.4___vue@3.4.38_typescript@5.5.4_/node_modules/unplugin-vue-router/dist/index.js"; import components from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unplugin-vue-components@0.27.4_@babel+parser@7.25.6_rollup@4.21.2_vue@3.4.38_typescript@5.5.4_/node_modules/unplugin-vue-components/dist/vite.js"; import Unocss from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unocss@0.62.3_postcss@8.4.42_rollup@4.21.2_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31.6_/node_modules/unocss/dist/vite.mjs"; import { createSvgIconsPlugin } from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_vite@5.4.2_@types+node@22.5.2_less@4.2.0_sass@1.77.8_terser@5.31.6_/node_modules/vite-plugin-svg-icons/dist/index.mjs"; import { vitePluginFakeServer } from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-fake-server@2.1.1/node_modules/vite-plugin-fake-server/dist/index.mjs"; import { compression } from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-compression2@1.2.0_rollup@4.21.2/node_modules/vite-plugin-compression2/dist/index.mjs"; import Archiver from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-archiver@0.1.1/node_modules/vite-plugin-archiver/dist/index.js"; import TurboConsole from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/unplugin-turbo-console@1.10.1_@babel+parser@7.25.6_esbuild@0.23.1_rollup@4.21.2_vite@5.4.2_@t_dydgrmrmjp3ucr7a367fsm5iiq/node_modules/unplugin-turbo-console/dist/vite.mjs"; import banner from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/vite-plugin-banner@0.7.1/node_modules/vite-plugin-banner/dist/index.mjs"; import boxen from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/boxen@8.0.1/node_modules/boxen/index.js"; import picocolors from "file:///E:/WorkSpace/Web/insomnia-cognition-h5/node_modules/.pnpm/picocolors@1.0.1/node_modules/picocolors/picocolors.js"; function createVitePlugins(viteEnv, isBuild = false) { const vitePlugins = [ VueRouter({ routesFolder: "./src/views", dts: "./src/types/typed-router.d.ts", exclude: ["**/components", "**/_*/**", "**/_*"] }), vue(), vueJsx(), vueLegacy({ renderLegacyChunks: false, modernPolyfills: [ "es.array.at" ] }), // https://github.com/vuejs/devtools-next viteEnv.VITE_OPEN_DEVTOOLS === "true" && VueDevTools(), // https://github.com/unplugin/unplugin-auto-import autoImport({ imports: [ "vue", "pinia", VueRouterAutoImports, { "vue-router/auto": ["useLink"] } ], dts: "./src/types/auto-imports.d.ts", dirs: [ "./src/utils/composables/**" ] }), // https://github.com/unplugin/unplugin-vue-components components({ dirs: [ "src/components/*", "src/ui-kit" ], deep: false, include: [/\.vue$/, /\.vue\?vue/, /\.tsx$/], dts: "./src/types/components.d.ts" }), Unocss(), // https://github.com/vbenjs/vite-plugin-svg-icons createSvgIconsPlugin({ iconDirs: [path.resolve(process.cwd(), "src/assets/icons/")], symbolId: "icon-[dir]-[name]", svgoOptions: isBuild }), // https://github.com/condorheroblog/vite-plugin-fake-server vitePluginFakeServer({ logger: !isBuild, include: "src/mock", infixName: false, enableProd: isBuild && viteEnv.VITE_BUILD_MOCK === "true" }), // https://github.com/nonzzz/vite-plugin-compression viteEnv.VITE_BUILD_COMPRESS?.split(",").includes("gzip") && compression(), viteEnv.VITE_BUILD_COMPRESS?.split(",").includes("brotli") && compression({ exclude: [/\.(br)$/, /\.(gz)$/], algorithm: "brotliCompress" }), viteEnv.VITE_BUILD_ARCHIVE && Archiver({ archiveType: viteEnv.VITE_BUILD_ARCHIVE }), // https://github.com/unplugin/unplugin-turbo-console TurboConsole(), // https://github.com/chengpeiquan/vite-plugin-banner banner(` /** * \u7531 Fantastic-mobile \u63D0\u4F9B\u6280\u672F\u652F\u6301 * Powered by Fantastic-mobile * https://fantastic-mobile.hurui.me/ */ `), { name: "vite-plugin-debug-plugin", transform: (code, id) => { if (/src\/main.ts$/.test(id)) { if (viteEnv.VITE_APP_DEBUG_TOOL === "eruda") { code = code.concat(` import eruda from 'eruda' eruda.init() `); } else if (viteEnv.VITE_APP_DEBUG_TOOL === "vconsole") { code = code.concat(` import VConsole from 'vconsole' new VConsole() `); } return { code, map: null }; } } }, { name: "appInfo", apply: "serve", async buildStart() { const { bold, green, cyan, bgGreen, underline } = picocolors; console.log( boxen( `${bold(green(`\u7531 ${bgGreen("Fantastic-mobile")} \u9A71\u52A8`))} ${underline("https://fantastic-mobile.hurui.me")} \u5F53\u524D\u4F7F\u7528\uFF1A${cyan("\u57FA\u7840\u7248")}`, { padding: 1, margin: 1, borderStyle: "double", textAlignment: "center" } ) ); } } ]; return vitePlugins; } // vite.config.ts var __vite_injected_original_dirname = "E:\\WorkSpace\\Web\\insomnia-cognition-h5"; var vite_config_default = ({ mode, command }) => { const env = loadEnv(mode, process2.cwd()); const scssResources = []; fs.readdirSync("src/assets/styles/resources").forEach((dirname) => { if (fs.statSync(`src/assets/styles/resources/${dirname}`).isFile()) { scssResources.push(`@use "src/assets/styles/resources/${dirname}" as *;`); } }); return defineConfig({ base: "./", // 开发服务器选项 https://cn.vitejs.dev/config/server-options server: { open: true, port: 9e3, proxy: { "/proxy": { target: env.VITE_APP_API_BASE_URL, changeOrigin: command === "serve" && env.VITE_OPEN_PROXY === "true", rewrite: (path3) => path3.replace(/\/proxy/, "") } } }, // 构建选项 https://cn.vitejs.dev/config/build-options build: { outDir: mode === "production" ? "dist" : `dist-${mode}`, sourcemap: env.VITE_BUILD_SOURCEMAP === "true" }, plugins: createVitePlugins(env, command === "build"), resolve: { alias: { "@": path2.resolve(__vite_injected_original_dirname, "src"), "#": path2.resolve(__vite_injected_original_dirname, "src/types") } }, css: { preprocessorOptions: { scss: { additionalData: scssResources.join("") } } } }); }; export { vite_config_default as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAidml0ZS9wbHVnaW5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRTpcXFxcV29ya1NwYWNlXFxcXFdlYlxcXFxpbnNvbW5pYS1jb2duaXRpb24taDVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXFdvcmtTcGFjZVxcXFxXZWJcXFxcaW5zb21uaWEtY29nbml0aW9uLWg1XFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9Xb3JrU3BhY2UvV2ViL2luc29tbmlhLWNvZ25pdGlvbi1oNS92aXRlLmNvbmZpZy50c1wiO2ltcG9ydCBmcyBmcm9tICdub2RlOmZzJ1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJ1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcbmltcG9ydCBjcmVhdGVWaXRlUGx1Z2lucyBmcm9tICcuL3ZpdGUvcGx1Z2lucydcblxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cbmV4cG9ydCBkZWZhdWx0ICh7IG1vZGUsIGNvbW1hbmQgfSkgPT4ge1xuICBjb25zdCBlbnYgPSBsb2FkRW52KG1vZGUsIHByb2Nlc3MuY3dkKCkpXG4gIC8vIFx1NTE2OFx1NUM0MCBzY3NzIFx1OEQ0NFx1NkU5MFxuICBjb25zdCBzY3NzUmVzb3VyY2VzID0gW11cbiAgZnMucmVhZGRpclN5bmMoJ3NyYy9hc3NldHMvc3R5bGVzL3Jlc291cmNlcycpLmZvckVhY2goKGRpcm5hbWUpID0+IHtcbiAgICBpZiAoZnMuc3RhdFN5bmMoYHNyYy9hc3NldHMvc3R5bGVzL3Jlc291cmNlcy8ke2Rpcm5hbWV9YCkuaXNGaWxlKCkpIHtcbiAgICAgIHNjc3NSZXNvdXJjZXMucHVzaChgQHVzZSBcInNyYy9hc3NldHMvc3R5bGVzL3Jlc291cmNlcy8ke2Rpcm5hbWV9XCIgYXMgKjtgKVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyh7XG4gICAgYmFzZTogJy4vJyxcbiAgICAvLyBcdTVGMDBcdTUzRDFcdTY3MERcdTUyQTFcdTU2NjhcdTkwMDlcdTk4NzkgaHR0cHM6Ly9jbi52aXRlanMuZGV2L2NvbmZpZy9zZXJ2ZXItb3B0aW9uc1xuICAgIHNlcnZlcjoge1xuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIHBvcnQ6IDkwMDAsXG4gICAgICBwcm94eToge1xuICAgICAgICAnL3Byb3h5Jzoge1xuICAgICAgICAgIHRhcmdldDogZW52LlZJVEVfQVBQX0FQSV9CQVNFX1VSTCxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IGNvbW1hbmQgPT09ICdzZXJ2ZScgJiYgZW52LlZJVEVfT1BFTl9QUk9YWSA9PT0gJ3RydWUnLFxuICAgICAgICAgIHJld3JpdGU6IHBhdGggPT4gcGF0aC5yZXBsYWNlKC9cXC9wcm94eS8sICcnKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAvLyBcdTY3ODRcdTVFRkFcdTkwMDlcdTk4NzkgaHR0cHM6Ly9jbi52aXRlanMuZGV2L2NvbmZpZy9idWlsZC1vcHRpb25zXG4gICAgYnVpbGQ6IHtcbiAgICAgIG91dERpcjogbW9kZSA9PT0gJ3Byb2R1Y3Rpb24nID8gJ2Rpc3QnIDogYGRpc3QtJHttb2RlfWAsXG4gICAgICBzb3VyY2VtYXA6IGVudi5WSVRFX0JVSUxEX1NPVVJDRU1BUCA9PT0gJ3RydWUnLFxuICAgIH0sXG4gICAgcGx1Z2luczogY3JlYXRlVml0ZVBsdWdpbnMoZW52LCBjb21tYW5kID09PSAnYnVpbGQnKSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnQCc6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdzcmMnKSxcbiAgICAgICAgJyMnOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnc3JjL3R5cGVzJyksXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsRGF0YTogc2Nzc1Jlc291cmNlcy5qb2luKCcnKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRTpcXFxcV29ya1NwYWNlXFxcXFdlYlxcXFxpbnNvbW5pYS1jb2duaXRpb24taDVcXFxcdml0ZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcV29ya1NwYWNlXFxcXFdlYlxcXFxpbnNvbW5pYS1jb2duaXRpb24taDVcXFxcdml0ZVxcXFxwbHVnaW5zLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9Xb3JrU3BhY2UvV2ViL2luc29tbmlhLWNvZ25pdGlvbi1oNS92aXRlL3BsdWdpbnMudHNcIjtpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk9wdGlvbiB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgVnVlUm91dGVyIGZyb20gJ3VucGx1Z2luLXZ1ZS1yb3V0ZXIvdml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xuaW1wb3J0IHZ1ZUxlZ2FjeSBmcm9tICdAdml0ZWpzL3BsdWdpbi1sZWdhY3knXG5pbXBvcnQgVnVlRGV2VG9vbHMgZnJvbSAndml0ZS1wbHVnaW4tdnVlLWRldnRvb2xzJ1xuaW1wb3J0IGF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSdcbmltcG9ydCB7IFZ1ZVJvdXRlckF1dG9JbXBvcnRzIH0gZnJvbSAndW5wbHVnaW4tdnVlLXJvdXRlcidcbmltcG9ydCBjb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXG5pbXBvcnQgVW5vY3NzIGZyb20gJ3Vub2Nzcy92aXRlJ1xuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnXG5pbXBvcnQgeyB2aXRlUGx1Z2luRmFrZVNlcnZlciB9IGZyb20gJ3ZpdGUtcGx1Z2luLWZha2Utc2VydmVyJ1xuaW1wb3J0IHsgY29tcHJlc3Npb24gfSBmcm9tICd2aXRlLXBsdWdpbi1jb21wcmVzc2lvbjInXG5pbXBvcnQgQXJjaGl2ZXIgZnJvbSAndml0ZS1wbHVnaW4tYXJjaGl2ZXInXG5pbXBvcnQgVHVyYm9Db25zb2xlIGZyb20gJ3VucGx1Z2luLXR1cmJvLWNvbnNvbGUvdml0ZSdcbmltcG9ydCBiYW5uZXIgZnJvbSAndml0ZS1wbHVnaW4tYmFubmVyJ1xuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJ1xuaW1wb3J0IHBpY29jb2xvcnMgZnJvbSAncGljb2NvbG9ycydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVml0ZVBsdWdpbnModml0ZUVudiwgaXNCdWlsZCA9IGZhbHNlKSB7XG4gIGNvbnN0IHZpdGVQbHVnaW5zOiAoUGx1Z2luT3B0aW9uIHwgUGx1Z2luT3B0aW9uW10pW10gPSBbXG4gICAgVnVlUm91dGVyKHtcbiAgICAgIHJvdXRlc0ZvbGRlcjogJy4vc3JjL3ZpZXdzJyxcbiAgICAgIGR0czogJy4vc3JjL3R5cGVzL3R5cGVkLXJvdXRlci5kLnRzJyxcbiAgICAgIGV4Y2x1ZGU6IFsnKiovY29tcG9uZW50cycsICcqKi9fKi8qKicsICcqKi9fKiddLFxuICAgIH0pLFxuICAgIHZ1ZSgpLFxuICAgIHZ1ZUpzeCgpLFxuICAgIHZ1ZUxlZ2FjeSh7XG4gICAgICByZW5kZXJMZWdhY3lDaHVua3M6IGZhbHNlLFxuICAgICAgbW9kZXJuUG9seWZpbGxzOiBbXG4gICAgICAgICdlcy5hcnJheS5hdCcsXG4gICAgICBdLFxuICAgIH0pLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL2RldnRvb2xzLW5leHRcbiAgICB2aXRlRW52LlZJVEVfT1BFTl9ERVZUT09MUyA9PT0gJ3RydWUnICYmIFZ1ZURldlRvb2xzKCksXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdW5wbHVnaW4vdW5wbHVnaW4tYXV0by1pbXBvcnRcbiAgICBhdXRvSW1wb3J0KHtcbiAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgJ3Z1ZScsXG4gICAgICAgICdwaW5pYScsXG4gICAgICAgIFZ1ZVJvdXRlckF1dG9JbXBvcnRzLFxuICAgICAgICB7XG4gICAgICAgICAgJ3Z1ZS1yb3V0ZXIvYXV0byc6IFsndXNlTGluayddLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGR0czogJy4vc3JjL3R5cGVzL2F1dG8taW1wb3J0cy5kLnRzJyxcbiAgICAgIGRpcnM6IFtcbiAgICAgICAgJy4vc3JjL3V0aWxzL2NvbXBvc2FibGVzLyoqJyxcbiAgICAgIF0sXG4gICAgfSksXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdW5wbHVnaW4vdW5wbHVnaW4tdnVlLWNvbXBvbmVudHNcbiAgICBjb21wb25lbnRzKHtcbiAgICAgIGRpcnM6IFtcbiAgICAgICAgJ3NyYy9jb21wb25lbnRzLyonLFxuICAgICAgICAnc3JjL3VpLWtpdCcsXG4gICAgICBdLFxuICAgICAgZGVlcDogZmFsc2UsXG4gICAgICBpbmNsdWRlOiBbL1xcLnZ1ZSQvLCAvXFwudnVlXFw/dnVlLywgL1xcLnRzeCQvXSxcbiAgICAgIGR0czogJy4vc3JjL3R5cGVzL2NvbXBvbmVudHMuZC50cycsXG4gICAgfSksXG5cbiAgICBVbm9jc3MoKSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdml0ZS1wbHVnaW4tc3ZnLWljb25zXG4gICAgY3JlYXRlU3ZnSWNvbnNQbHVnaW4oe1xuICAgICAgaWNvbkRpcnM6IFtwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgJ3NyYy9hc3NldHMvaWNvbnMvJyldLFxuICAgICAgc3ltYm9sSWQ6ICdpY29uLVtkaXJdLVtuYW1lXScsXG4gICAgICBzdmdvT3B0aW9uczogaXNCdWlsZCxcbiAgICB9KSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jb25kb3JoZXJvYmxvZy92aXRlLXBsdWdpbi1mYWtlLXNlcnZlclxuICAgIHZpdGVQbHVnaW5GYWtlU2VydmVyKHtcbiAgICAgIGxvZ2dlcjogIWlzQnVpbGQsXG4gICAgICBpbmNsdWRlOiAnc3JjL21vY2snLFxuICAgICAgaW5maXhOYW1lOiBmYWxzZSxcbiAgICAgIGVuYWJsZVByb2Q6IGlzQnVpbGQgJiYgdml0ZUVudi5WSVRFX0JVSUxEX01PQ0sgPT09ICd0cnVlJyxcbiAgICB9KSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub256enovdml0ZS1wbHVnaW4tY29tcHJlc3Npb25cbiAgICB2aXRlRW52LlZJVEVfQlVJTERfQ09NUFJFU1M/LnNwbGl0KCcsJykuaW5jbHVkZXMoJ2d6aXAnKSAmJiBjb21wcmVzc2lvbigpLFxuICAgIHZpdGVFbnYuVklURV9CVUlMRF9DT01QUkVTUz8uc3BsaXQoJywnKS5pbmNsdWRlcygnYnJvdGxpJykgJiYgY29tcHJlc3Npb24oe1xuICAgICAgZXhjbHVkZTogWy9cXC4oYnIpJC8sIC9cXC4oZ3opJC9dLFxuICAgICAgYWxnb3JpdGhtOiAnYnJvdGxpQ29tcHJlc3MnLFxuICAgIH0pLFxuXG4gICAgdml0ZUVudi5WSVRFX0JVSUxEX0FSQ0hJVkUgJiYgQXJjaGl2ZXIoe1xuICAgICAgYXJjaGl2ZVR5cGU6IHZpdGVFbnYuVklURV9CVUlMRF9BUkNISVZFLFxuICAgIH0pLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VucGx1Z2luL3VucGx1Z2luLXR1cmJvLWNvbnNvbGVcbiAgICBUdXJib0NvbnNvbGUoKSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGVuZ3BlaXF1YW4vdml0ZS1wbHVnaW4tYmFubmVyXG4gICAgYmFubmVyKGBcbi8qKlxuICogXHU3NTMxIEZhbnRhc3RpYy1tb2JpbGUgXHU2M0QwXHU0RjlCXHU2MjgwXHU2NzJGXHU2NTJGXHU2MzAxXG4gKiBQb3dlcmVkIGJ5IEZhbnRhc3RpYy1tb2JpbGVcbiAqIGh0dHBzOi8vZmFudGFzdGljLW1vYmlsZS5odXJ1aS5tZS9cbiAqL1xuICAgIGApLFxuXG4gICAge1xuICAgICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWRlYnVnLXBsdWdpbicsXG4gICAgICB0cmFuc2Zvcm06IChjb2RlLCBpZCkgPT4ge1xuICAgICAgICBpZiAoL3NyY1xcL21haW4udHMkLy50ZXN0KGlkKSkge1xuICAgICAgICAgIGlmICh2aXRlRW52LlZJVEVfQVBQX0RFQlVHX1RPT0wgPT09ICdlcnVkYScpIHtcbiAgICAgICAgICAgIGNvZGUgPSBjb2RlLmNvbmNhdChgXG4gICAgICAgICAgICAgIGltcG9ydCBlcnVkYSBmcm9tICdlcnVkYSdcbiAgICAgICAgICAgICAgZXJ1ZGEuaW5pdCgpXG4gICAgICAgICAgICBgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmICh2aXRlRW52LlZJVEVfQVBQX0RFQlVHX1RPT0wgPT09ICd2Y29uc29sZScpIHtcbiAgICAgICAgICAgIGNvZGUgPSBjb2RlLmNvbmNhdChgXG4gICAgICAgICAgICAgIGltcG9ydCBWQ29uc29sZSBmcm9tICd2Y29uc29sZSdcbiAgICAgICAgICAgICAgbmV3IFZDb25zb2xlKClcbiAgICAgICAgICAgIGApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgbWFwOiBudWxsLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuXG4gICAge1xuICAgICAgbmFtZTogJ2FwcEluZm8nLFxuICAgICAgYXBwbHk6ICdzZXJ2ZScsXG4gICAgICBhc3luYyBidWlsZFN0YXJ0KCkge1xuICAgICAgICBjb25zdCB7IGJvbGQsIGdyZWVuLCBjeWFuLCBiZ0dyZWVuLCB1bmRlcmxpbmUgfSA9IHBpY29jb2xvcnNcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYm94ZW4oXG4gICAgICAgICAgICBgJHtib2xkKGdyZWVuKGBcdTc1MzEgJHtiZ0dyZWVuKCdGYW50YXN0aWMtbW9iaWxlJyl9IFx1OUE3MVx1NTJBOGApKX1cXG5cXG4ke3VuZGVybGluZSgnaHR0cHM6Ly9mYW50YXN0aWMtbW9iaWxlLmh1cnVpLm1lJyl9XFxuXFxuXHU1RjUzXHU1MjREXHU0RjdGXHU3NTI4XHVGRjFBJHtjeWFuKCdcdTU3RkFcdTc4NDBcdTcyNDgnKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxLFxuICAgICAgICAgICAgICBtYXJnaW46IDEsXG4gICAgICAgICAgICAgIGJvcmRlclN0eWxlOiAnZG91YmxlJyxcbiAgICAgICAgICAgICAgdGV4dEFsaWdubWVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgfSxcbiAgXVxuICByZXR1cm4gdml0ZVBsdWdpbnNcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBNFMsT0FBTyxRQUFRO0FBQzNULE9BQU9BLFdBQVU7QUFDakIsT0FBT0MsY0FBYTtBQUNwQixTQUFTLGNBQWMsZUFBZTs7O0FDSCtRLE9BQU8sVUFBVTtBQUN0VSxPQUFPLGFBQWE7QUFFcEIsT0FBTyxlQUFlO0FBQ3RCLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7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O0FBQUEsSUFDRjtBQUFBO0FBQUEsSUFFQSxPQUFPO0FBQUEsTUFDTCxRQUFRLFNBQVMsZUFBZSxTQUFTLFFBQVEsSUFBSTtBQUFBLE1BQ3JELFdBQVcsSUFBSSx5QkFBeUI7QUFBQSxJQUMxQztBQUFBLElBQ0EsU0FBUyxrQkFBa0IsS0FBSyxZQUFZLE9BQU87QUFBQSxJQUNuRCxTQUFTO0FBQUEsTUFDUCxPQUFPO0FBQUEsUUFDTCxLQUFLQSxNQUFLLFFBQVEsa0NBQVcsS0FBSztBQUFBLFFBQ2xDLEtBQUtBLE1BQUssUUFBUSxrQ0FBVyxXQUFXO0FBQUEsTUFDMUM7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxxQkFBcUI7QUFBQSxRQUNuQixNQUFNO0FBQUEsVUFDSixnQkFBZ0IsY0FBYyxLQUFLLEVBQUU7QUFBQSxRQUN2QztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbInBhdGgiLCAicHJvY2VzcyIsICJwcm9jZXNzIiwgInBhdGgiXQp9Cg==