diff --git a/apps/platform/index.html b/apps/platform/index.html
index 2b59b8d..33d34a9 100644
--- a/apps/platform/index.html
+++ b/apps/platform/index.html
@@ -14,19 +14,6 @@
<%= VITE_APP_TITLE %>
-
diff --git a/docs/.vitepress/config/en.mts b/docs/.vitepress/config/en.mts
index a74a7e5..1d260f8 100644
--- a/docs/.vitepress/config/en.mts
+++ b/docs/.vitepress/config/en.mts
@@ -5,7 +5,7 @@ import { defineConfig } from 'vitepress';
import { version } from '../../../package.json';
export const en = defineConfig({
- description: 'Vben Admin & Enterprise level management system framework',
+ description: 'y-code-platform & Enterprise level management system framework',
lang: 'en-US',
themeConfig: {
darkModeSwitchLabel: 'Theme',
@@ -55,7 +55,7 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
items: [
{
link: 'introduction/vben',
- text: 'About Vben Admin',
+ text: 'About y-code-platform',
},
{
link: 'introduction/why',
@@ -163,7 +163,7 @@ function nav(): DefaultTheme.NavItem[] {
text: 'Demo',
items: [
{
- text: 'Vben Admin',
+ text: 'y-code-platform',
items: [
{
link: 'https://www.vben.pro',
@@ -188,7 +188,7 @@ function nav(): DefaultTheme.NavItem[] {
items: [
{
link: 'https://vben.vvbin.cn',
- text: 'Vben Admin 2.x',
+ text: 'y-code-platform 2.x',
},
],
},
diff --git a/docs/.vitepress/config/index.mts b/docs/.vitepress/config/index.mts
index 6b8cb81..c929e46 100644
--- a/docs/.vitepress/config/index.mts
+++ b/docs/.vitepress/config/index.mts
@@ -1,7 +1,6 @@
import { withPwa } from '@vite-pwa/vitepress';
import { defineConfigWithTheme } from 'vitepress';
-import { en } from './en.mts';
import { shared } from './shared.mts';
import { zh } from './zh.mts';
@@ -9,12 +8,12 @@ export default withPwa(
defineConfigWithTheme({
...shared,
locales: {
- en: {
- label: 'English',
- lang: 'en',
- link: '/en/',
- ...en,
- },
+ // en: {
+ // label: 'English',
+ // lang: 'en',
+ // link: '/en/',
+ // ...en,
+ // },
root: {
label: '简体中文',
lang: 'zh-CN',
diff --git a/docs/.vitepress/config/index.mts.timestamp-1741673315121-b66c51715d7ce.mjs b/docs/.vitepress/config/index.mts.timestamp-1741673315121-b66c51715d7ce.mjs
index 0a8165a..2c7f95b 100644
--- a/docs/.vitepress/config/index.mts.timestamp-1741673315121-b66c51715d7ce.mjs
+++ b/docs/.vitepress/config/index.mts.timestamp-1741673315121-b66c51715d7ce.mjs
@@ -1,148 +1,174 @@
-// .vitepress/config/index.mts
-import { withPwa } from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/@vite-pwa+vitepress@0.5.3_v_2a200af107a721a5a68d97e1ec258509/node_modules/@vite-pwa/vitepress/dist/index.mjs";
-import { defineConfigWithTheme } from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js";
+// .vitepress/config/plugins/demo-preview.ts
+import crypto from 'node:crypto';
+import { readdirSync } from 'node:fs';
+// .vitepress/config/shared.mts
+import { resolve } from 'node:path';
+import { join } from 'node:path';
+import {
+ viteArchiverPlugin,
+ viteVxeTableImportsPlugin,
+} from 'file:///D:/Administrator/Documents/vue-vben-admin/internal/vite-config/dist/index.mjs';
+import {
+ GitChangelog,
+ GitChangelogMarkdownSection,
+} from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/@nolebase+vitepress-plugin-_8c4b0a6cee5cb6f32e88ee1837d8dadc/node_modules/@nolebase/vitepress-plugin-git-changelog/dist/vite/index.mjs';
+// .vitepress/config/index.mts
+import { withPwa } from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/@vite-pwa+vitepress@0.5.3_v_2a200af107a721a5a68d97e1ec258509/node_modules/@vite-pwa/vitepress/dist/index.mjs';
+import tailwind from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/tailwindcss@3.4.17/node_modules/tailwindcss/lib/index.js';
+import {
+ groupIconMdPlugin,
+ groupIconVitePlugin,
+} from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress-plugin-group-icons@1.3.6/node_modules/vitepress-plugin-group-icons/dist/index.mjs';
+import {
+ defineConfig as defineConfig3,
+ defineConfigWithTheme,
+ postcssIsolateStyles,
+} from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js';
// .vitepress/config/en.mts
-import { defineConfig } from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js";
+import { defineConfig } from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js';
+// .vitepress/config/zh.mts
+import { defineConfig as defineConfig2 } from 'file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js';
// ../package.json
-var version = "1.0.0-alpha.1";
+const version = '1.0.0-alpha.1';
// .vitepress/config/en.mts
-var en = defineConfig({
- description: "Vben Admin & Enterprise level management system framework",
- lang: "en-US",
+const en = defineConfig({
+ description: 'y-code-platform & Enterprise level management system framework',
+ lang: 'en-US',
themeConfig: {
- darkModeSwitchLabel: "Theme",
- darkModeSwitchTitle: "Switch to Dark Mode",
+ darkModeSwitchLabel: 'Theme',
+ darkModeSwitchTitle: 'Switch to Dark Mode',
docFooter: {
- next: "Next Page",
- prev: "Previous Page"
+ next: 'Next Page',
+ prev: 'Previous Page',
},
editLink: {
- pattern: "https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path",
- text: "Edit this page on GitHub"
+ pattern:
+ 'https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path',
+ text: 'Edit this page on GitHub',
},
footer: {
- copyright: `Copyright \xA9 2020-${(/* @__PURE__ */ new Date()).getFullYear()} Vben`,
- message: "Released under the MIT License."
+ copyright: `Copyright \u00A9 2020-${/* @__PURE__ */ new Date().getFullYear()} Vben`,
+ message: 'Released under the MIT License.',
},
- langMenuLabel: "Language",
+ langMenuLabel: 'Language',
lastUpdated: {
formatOptions: {
- dateStyle: "short",
- timeStyle: "medium"
+ dateStyle: 'short',
+ timeStyle: 'medium',
},
- text: "Last updated on"
+ text: 'Last updated on',
},
- lightModeSwitchTitle: "Switch to Light Mode",
+ lightModeSwitchTitle: 'Switch to Light Mode',
nav: nav(),
outline: {
- label: "Navigate"
+ label: 'Navigate',
},
- returnToTopLabel: "Back to top",
+ returnToTopLabel: 'Back to top',
sidebar: {
- "/en/commercial/": {
- base: "/en/commercial/",
- items: sidebarCommercial()
+ '/en/commercial/': {
+ base: '/en/commercial/',
+ items: sidebarCommercial(),
},
- "/en/guide/": { base: "/en/guide/", items: sidebarGuide() }
- }
- }
+ '/en/guide/': { base: '/en/guide/', items: sidebarGuide() },
+ },
+ },
});
function sidebarGuide() {
return [
{
collapsed: false,
- text: "Introduction",
+ text: 'Introduction',
items: [
{
- link: "introduction/vben",
- text: "About Vben Admin"
+ link: 'introduction/vben',
+ text: 'About y-code-platform',
},
{
- link: "introduction/why",
- text: "Why Choose Us?"
+ link: 'introduction/why',
+ text: 'Why Choose Us?',
},
- { link: "introduction/quick-start", text: "Quick Start" },
- { link: "introduction/thin", text: "Lite Version" }
- ]
+ { link: 'introduction/quick-start', text: 'Quick Start' },
+ { link: 'introduction/thin', text: 'Lite Version' },
+ ],
},
{
- text: "Basics",
+ text: 'Basics',
items: [
- { link: "essentials/concept", text: "Basic Concepts" },
- { link: "essentials/development", text: "Local Development" },
- { link: "essentials/route", text: "Routing and Menu" },
- { link: "essentials/settings", text: "Configuration" },
- { link: "essentials/icons", text: "Icons" },
- { link: "essentials/styles", text: "Styles" },
- { link: "essentials/external-module", text: "External Modules" },
- { link: "essentials/build", text: "Build and Deployment" },
- { link: "essentials/server", text: "Server Interaction and Data Mock" }
- ]
+ { link: 'essentials/concept', text: 'Basic Concepts' },
+ { link: 'essentials/development', text: 'Local Development' },
+ { link: 'essentials/route', text: 'Routing and Menu' },
+ { link: 'essentials/settings', text: 'Configuration' },
+ { link: 'essentials/icons', text: 'Icons' },
+ { link: 'essentials/styles', text: 'Styles' },
+ { link: 'essentials/external-module', text: 'External Modules' },
+ { link: 'essentials/build', text: 'Build and Deployment' },
+ { link: 'essentials/server', text: 'Server Interaction and Data Mock' },
+ ],
},
{
- text: "Advanced",
+ text: 'Advanced',
items: [
- { link: "in-depth/login", text: "Login" },
- { link: "in-depth/theme", text: "Theme" },
- { link: "in-depth/access", text: "Access Control" },
- { link: "in-depth/locale", text: "Internationalization" },
- { link: "in-depth/features", text: "Common Features" },
- { link: "in-depth/check-updates", text: "Check Updates" },
- { link: "in-depth/loading", text: "Global Loading" },
- { link: "in-depth/ui-framework", text: "UI Framework Switching" }
- ]
+ { link: 'in-depth/login', text: 'Login' },
+ { link: 'in-depth/theme', text: 'Theme' },
+ { link: 'in-depth/access', text: 'Access Control' },
+ { link: 'in-depth/locale', text: 'Internationalization' },
+ { link: 'in-depth/features', text: 'Common Features' },
+ { link: 'in-depth/check-updates', text: 'Check Updates' },
+ { link: 'in-depth/loading', text: 'Global Loading' },
+ { link: 'in-depth/ui-framework', text: 'UI Framework Switching' },
+ ],
},
{
- text: "Engineering",
+ text: 'Engineering',
items: [
- { link: "project/standard", text: "Standards" },
- { link: "project/cli", text: "CLI" },
- { link: "project/dir", text: "Directory Explanation" },
- { link: "project/test", text: "Unit Testing" },
- { link: "project/tailwindcss", text: "Tailwind CSS" },
- { link: "project/changeset", text: "Changeset" },
- { link: "project/vite", text: "Vite Config" }
- ]
+ { link: 'project/standard', text: 'Standards' },
+ { link: 'project/cli', text: 'CLI' },
+ { link: 'project/dir', text: 'Directory Explanation' },
+ { link: 'project/test', text: 'Unit Testing' },
+ { link: 'project/tailwindcss', text: 'Tailwind CSS' },
+ { link: 'project/changeset', text: 'Changeset' },
+ { link: 'project/vite', text: 'Vite Config' },
+ ],
},
{
- text: "Others",
+ text: 'Others',
items: [
- { link: "other/project-update", text: "Project Update" },
- { link: "other/remove-code", text: "Remove Code" },
- { link: "other/faq", text: "FAQ" }
- ]
- }
+ { link: 'other/project-update', text: 'Project Update' },
+ { link: 'other/remove-code', text: 'Remove Code' },
+ { link: 'other/faq', text: 'FAQ' },
+ ],
+ },
];
}
function sidebarCommercial() {
return [
{
- link: "community",
- text: "Community"
+ link: 'community',
+ text: 'Community',
},
{
- link: "technical-support",
- text: "Technical-support"
+ link: 'technical-support',
+ text: 'Technical-support',
},
{
- link: "customized",
- text: "Customized"
- }
+ link: 'customized',
+ text: 'Customized',
+ },
];
}
function nav() {
return [
{
- activeMatch: "^/en/(guide|components)/",
- text: "Doc",
+ activeMatch: '^/en/(guide|components)/',
+ text: 'Doc',
items: [
{
- activeMatch: "^/en/guide/",
- link: "/en/guide/introduction/vben",
- text: "Guide"
+ activeMatch: '^/en/guide/',
+ link: '/en/guide/introduction/vben',
+ text: 'Guide',
},
// {
// activeMatch: '^/en/components/',
@@ -150,132 +176,109 @@ function nav() {
// text: 'Components',
// },
{
- text: "Historical Versions",
+ text: 'Historical Versions',
items: [
{
- link: "https://doc.vvbin.cn",
- text: "2.x Version Documentation"
- }
- ]
- }
- ]
+ link: 'https://doc.vvbin.cn',
+ text: '2.x Version Documentation',
+ },
+ ],
+ },
+ ],
},
{
- text: "Demo",
+ text: 'Demo',
items: [
{
- text: "Vben Admin",
+ text: 'y-code-platform',
items: [
{
- link: "https://www.vben.pro",
- text: "Demo Version"
+ link: 'https://www.vben.pro',
+ text: 'Demo Version',
},
{
- link: "https://ant.vben.pro",
- text: "Ant Design Vue Version"
+ link: 'https://ant.vben.pro',
+ text: 'Ant Design Vue Version',
},
{
- link: "https://naive.vben.pro",
- text: "Naive Version"
+ link: 'https://naive.vben.pro',
+ text: 'Naive Version',
},
{
- link: "https://ele.vben.pro",
- text: "Element Plus Version"
- }
- ]
+ link: 'https://ele.vben.pro',
+ text: 'Element Plus Version',
+ },
+ ],
},
{
- text: "Others",
+ text: 'Others',
items: [
{
- link: "https://vben.vvbin.cn",
- text: "Vben Admin 2.x"
- }
- ]
- }
- ]
+ link: 'https://vben.vvbin.cn',
+ text: 'y-code-platform 2.x',
+ },
+ ],
+ },
+ ],
},
{
text: version,
items: [
{
- link: "https://github.com/vbenjs/vue-vben-admin/releases",
- text: "Changelog"
+ link: 'https://github.com/vbenjs/vue-vben-admin/releases',
+ text: 'Changelog',
},
{
- link: "https://github.com/orgs/vbenjs/projects/5",
- text: "Roadmap"
+ link: 'https://github.com/orgs/vbenjs/projects/5',
+ text: 'Roadmap',
},
{
- link: "https://github.com/vbenjs/vue-vben-admin/blob/main/.github/contributing.md",
- text: "Contribution"
- }
- ]
+ link: 'https://github.com/vbenjs/vue-vben-admin/blob/main/.github/contributing.md',
+ text: 'Contribution',
+ },
+ ],
},
{
- link: "/commercial/technical-support",
- text: "\u{1F984} Tech Support"
+ link: '/commercial/technical-support',
+ text: '\u{1F984} Tech Support',
},
{
- link: "/sponsor/personal",
- text: "\u2728 Sponsor"
+ link: '/sponsor/personal',
+ text: '\u2728 Sponsor',
},
{
- link: "/commercial/community",
- text: "\u{1F468}\u200D\u{1F466}\u200D\u{1F466} Community"
- }
+ link: '/commercial/community',
+ text: '\u{1F468}\u200D\u{1F466}\u200D\u{1F466} Community',
+ },
// {
// link: '/friend-links/',
// text: '🤝 Friend Links',
// },
];
}
-
-// .vitepress/config/shared.mts
-import { resolve } from "node:path";
-import {
- viteArchiverPlugin,
- viteVxeTableImportsPlugin
-} from "file:///D:/Administrator/Documents/vue-vben-admin/internal/vite-config/dist/index.mjs";
-import {
- GitChangelog,
- GitChangelogMarkdownSection
-} from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/@nolebase+vitepress-plugin-_8c4b0a6cee5cb6f32e88ee1837d8dadc/node_modules/@nolebase/vitepress-plugin-git-changelog/dist/vite/index.mjs";
-import tailwind from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/tailwindcss@3.4.17/node_modules/tailwindcss/lib/index.js";
-import { defineConfig as defineConfig3, postcssIsolateStyles } from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js";
-import {
- groupIconMdPlugin,
- groupIconVitePlugin
-} from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress-plugin-group-icons@1.3.6/node_modules/vitepress-plugin-group-icons/dist/index.mjs";
-
-// .vitepress/config/plugins/demo-preview.ts
-import crypto from "node:crypto";
-import { readdirSync } from "node:fs";
-import { join } from "node:path";
-var rawPathRegexp = (
+const rawPathRegexp =
// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/strict
- /^(.+?(?:\.([\da-z]+))?)(#[\w-]+)?(?: ?{(\d+(?:[,-]\d+)*)? ?(\S+)?})? ?(?:\[(.+)])?$/
-);
+ /^(.+?(?:\.([\da-z]+))?)(#[\w-]+)?(?: ?{(\d+(?:[,-]\d+)*)? ?(\S+)?})? ?(?:\[(.+)])?$/;
function rawPathToToken(rawPath) {
const [
- filepath = "",
- extension = "",
- region = "",
- lines = "",
- lang = "",
- rawTitle = ""
+ filepath = '',
+ extension = '',
+ region = '',
+ lines = '',
+ lang = '',
+ rawTitle = '',
] = (rawPathRegexp.exec(rawPath) || []).slice(1);
- const title = rawTitle || filepath.split("/").pop() || "";
+ const title = rawTitle || filepath.split('/').pop() || '';
return { extension, filepath, lang, lines, region, title };
}
-var demoPreviewPlugin = (md) => {
- md.core.ruler.after("inline", "demo-preview", (state) => {
+const demoPreviewPlugin = (md) => {
+ md.core.ruler.after('inline', 'demo-preview', (state) => {
const insertComponentImport = (importString) => {
const index = state.tokens.findIndex(
- (i) => i.type === "html_block" && i.content.match(/
@@ -285,359 +288,370 @@ ${importString}
if (state.tokens[index]) {
const content = state.tokens[index].content;
state.tokens[index].content = content.replace(
- "",
+ '',
`${importString}
-`
+`,
);
}
}
};
const regex = /]*\sdir="([^"]*)"/g;
state.src = state.src.replaceAll(regex, (_match, dir) => {
- const componentDir = join(process.cwd(), "src", dir).replaceAll(
- "\\",
- "/"
+ const componentDir = join(process.cwd(), 'src', dir).replaceAll(
+ '\\',
+ '/',
);
let childFiles = [];
let dirExists = true;
try {
- childFiles = readdirSync(componentDir, {
- encoding: "utf8",
- recursive: false,
- withFileTypes: false
- }) || [];
+ childFiles =
+ readdirSync(componentDir, {
+ encoding: 'utf8',
+ recursive: false,
+ withFileTypes: false,
+ }) || [];
} catch {
dirExists = false;
}
if (!dirExists) {
- return "";
+ return '';
}
const uniqueWord = generateContentHash(componentDir);
const ComponentName = `DemoComponent_${uniqueWord}`;
insertComponentImport(
- `import ${ComponentName} from '${componentDir}/index.vue'`
+ `import ${ComponentName} from '${componentDir}/index.vue'`,
);
const { path: _path } = state.env;
const index = state.tokens.findIndex((i) => i.content.match(regex));
if (!state.tokens[index]) {
- return "";
+ return '';
}
- const firstString = "index.vue";
+ const firstString = 'index.vue';
childFiles = childFiles.sort((a, b) => {
if (a === firstString) return -1;
if (b === firstString) return 1;
- return a.localeCompare(b, "en", { sensitivity: "base" });
+ return a.localeCompare(b, 'en', { sensitivity: 'base' });
});
- state.tokens[index].content = `<${ComponentName}/>
+ state.tokens[index].content =
+ `<${ComponentName}/>
`;
- const _dummyToken = new state.Token("", "", 0);
+ const _dummyToken = new state.Token('', '', 0);
const tokenArray = [];
childFiles.forEach((filename) => {
- const templateStart = new state.Token("html_inline", "", 0);
+ const templateStart = new state.Token('html_inline', '', 0);
templateStart.content = ``;
tokenArray.push(templateStart);
const resolvedPath = join(componentDir, filename);
- const { extension, filepath, lang, lines, title } = rawPathToToken(resolvedPath);
- const token = new state.Token("fence", "code", 0);
- token.info = `${lang || extension}${lines ? `{${lines}}` : ""}${title ? `[${title}]` : ""}`;
+ const { extension, filepath, lang, lines, title } =
+ rawPathToToken(resolvedPath);
+ const token = new state.Token('fence', 'code', 0);
+ token.info = `${lang || extension}${lines ? `{${lines}}` : ''}${title ? `[${title}]` : ''}`;
token.content = `<<< ${filepath}`;
token.src = [resolvedPath];
tokenArray.push(token);
- const templateEnd = new state.Token("html_inline", "", 0);
- templateEnd.content = "";
+ const templateEnd = new state.Token('html_inline', '', 0);
+ templateEnd.content = '';
tokenArray.push(templateEnd);
});
- const endTag = new state.Token("html_inline", "", 0);
- endTag.content = "";
+ const endTag = new state.Token('html_inline', '', 0);
+ endTag.content = '';
tokenArray.push(endTag);
state.tokens.splice(index + 1, 0, ...tokenArray);
- return "";
+ return '';
});
});
};
function generateContentHash(input, length = 10) {
- const hash = crypto.createHash("sha256").update(input).digest("hex");
+ const hash = crypto.createHash('sha256').update(input).digest('hex');
return Number.parseInt(hash, 16).toString(36).slice(0, length);
}
-
-// .vitepress/config/zh.mts
-import { defineConfig as defineConfig2 } from "file:///D:/Administrator/Documents/vue-vben-admin/node_modules/.pnpm/vitepress@1.6.3_@algolia+cl_f675c272d500569c92c5adcd943f8026/node_modules/vitepress/dist/node/index.js";
-var zh = defineConfig2({
- description: "Vben Admin & \u4F01\u4E1A\u7EA7\u7BA1\u7406\u7CFB\u7EDF\u6846\u67B6",
- lang: "zh-Hans",
+const zh = defineConfig2({
+ description:
+ 'y-code-platform & \u4F01\u4E1A\u7EA7\u7BA1\u7406\u7CFB\u7EDF\u6846\u67B6',
+ lang: 'zh-Hans',
themeConfig: {
- darkModeSwitchLabel: "\u4E3B\u9898",
- darkModeSwitchTitle: "\u5207\u6362\u5230\u6DF1\u8272\u6A21\u5F0F",
+ darkModeSwitchLabel: '\u4E3B\u9898',
+ darkModeSwitchTitle: '\u5207\u6362\u5230\u6DF1\u8272\u6A21\u5F0F',
docFooter: {
- next: "\u4E0B\u4E00\u9875",
- prev: "\u4E0A\u4E00\u9875"
+ next: '\u4E0B\u4E00\u9875',
+ prev: '\u4E0A\u4E00\u9875',
},
editLink: {
- pattern: "https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path",
- text: "\u5728 GitHub \u4E0A\u7F16\u8F91\u6B64\u9875\u9762"
+ pattern:
+ 'https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path',
+ text: '\u5728 GitHub \u4E0A\u7F16\u8F91\u6B64\u9875\u9762',
},
footer: {
- copyright: `Copyright \xA9 2020-${(/* @__PURE__ */ new Date()).getFullYear()} Vben`,
- message: "\u57FA\u4E8E MIT \u8BB8\u53EF\u53D1\u5E03."
+ copyright: `Copyright \u00A9 2020-${/* @__PURE__ */ new Date().getFullYear()} Vben`,
+ message: '\u57FA\u4E8E MIT \u8BB8\u53EF\u53D1\u5E03.',
},
- langMenuLabel: "\u591A\u8BED\u8A00",
+ langMenuLabel: '\u591A\u8BED\u8A00',
lastUpdated: {
formatOptions: {
- dateStyle: "short",
- timeStyle: "medium"
+ dateStyle: 'short',
+ timeStyle: 'medium',
},
- text: "\u6700\u540E\u66F4\u65B0\u4E8E"
+ text: '\u6700\u540E\u66F4\u65B0\u4E8E',
},
- lightModeSwitchTitle: "\u5207\u6362\u5230\u6D45\u8272\u6A21\u5F0F",
+ lightModeSwitchTitle: '\u5207\u6362\u5230\u6D45\u8272\u6A21\u5F0F',
nav: nav2(),
outline: {
- label: "\u9875\u9762\u5BFC\u822A"
+ label: '\u9875\u9762\u5BFC\u822A',
},
- returnToTopLabel: "\u56DE\u5230\u9876\u90E8",
+ returnToTopLabel: '\u56DE\u5230\u9876\u90E8',
sidebar: {
- "/commercial/": { base: "/commercial/", items: sidebarCommercial2() },
- "/components/": { base: "/components/", items: sidebarComponents() },
- "/guide/": { base: "/guide/", items: sidebarGuide2() }
+ '/commercial/': { base: '/commercial/', items: sidebarCommercial2() },
+ '/components/': { base: '/components/', items: sidebarComponents() },
+ '/guide/': { base: '/guide/', items: sidebarGuide2() },
},
- sidebarMenuLabel: "\u83DC\u5355"
- }
+ sidebarMenuLabel: '\u83DC\u5355',
+ },
});
function sidebarGuide2() {
return [
{
collapsed: false,
- text: "\u7B80\u4ECB",
+ text: '\u7B80\u4ECB',
items: [
{
- link: "introduction/vben",
- text: "\u5173\u4E8E Vben Admin"
+ link: 'introduction/vben',
+ text: '\u5173\u4E8E y-code-platform',
},
{
- link: "introduction/why",
- text: "\u4E3A\u4EC0\u4E48\u9009\u62E9\u6211\u4EEC?"
+ link: 'introduction/why',
+ text: '\u4E3A\u4EC0\u4E48\u9009\u62E9\u6211\u4EEC?',
},
- { link: "introduction/quick-start", text: "\u5FEB\u901F\u5F00\u59CB" },
- { link: "introduction/thin", text: "\u7CBE\u7B80\u7248\u672C" },
+ { link: 'introduction/quick-start', text: '\u5FEB\u901F\u5F00\u59CB' },
+ { link: 'introduction/thin', text: '\u7CBE\u7B80\u7248\u672C' },
{
- base: "/",
- link: "components/introduction",
- text: "\u7EC4\u4EF6\u6587\u6863"
- }
- ]
+ base: '/',
+ link: 'components/introduction',
+ text: '\u7EC4\u4EF6\u6587\u6863',
+ },
+ ],
},
{
- text: "\u57FA\u7840",
+ text: '\u57FA\u7840',
items: [
- { link: "essentials/concept", text: "\u57FA\u7840\u6982\u5FF5" },
- { link: "essentials/development", text: "\u672C\u5730\u5F00\u53D1" },
- { link: "essentials/route", text: "\u8DEF\u7531\u548C\u83DC\u5355" },
- { link: "essentials/settings", text: "\u914D\u7F6E" },
- { link: "essentials/icons", text: "\u56FE\u6807" },
- { link: "essentials/styles", text: "\u6837\u5F0F" },
- { link: "essentials/external-module", text: "\u5916\u90E8\u6A21\u5757" },
- { link: "essentials/build", text: "\u6784\u5EFA\u4E0E\u90E8\u7F72" },
- { link: "essentials/server", text: "\u670D\u52A1\u7AEF\u4EA4\u4E92\u4E0E\u6570\u636EMock" }
- ]
+ { link: 'essentials/concept', text: '\u57FA\u7840\u6982\u5FF5' },
+ { link: 'essentials/development', text: '\u672C\u5730\u5F00\u53D1' },
+ { link: 'essentials/route', text: '\u8DEF\u7531\u548C\u83DC\u5355' },
+ { link: 'essentials/settings', text: '\u914D\u7F6E' },
+ { link: 'essentials/icons', text: '\u56FE\u6807' },
+ { link: 'essentials/styles', text: '\u6837\u5F0F' },
+ {
+ link: 'essentials/external-module',
+ text: '\u5916\u90E8\u6A21\u5757',
+ },
+ { link: 'essentials/build', text: '\u6784\u5EFA\u4E0E\u90E8\u7F72' },
+ {
+ link: 'essentials/server',
+ text: '\u670D\u52A1\u7AEF\u4EA4\u4E92\u4E0E\u6570\u636EMock',
+ },
+ ],
},
{
- text: "\u6DF1\u5165",
+ text: '\u6DF1\u5165',
items: [
- { link: "in-depth/login", text: "\u767B\u5F55" },
+ { link: 'in-depth/login', text: '\u767B\u5F55' },
// { link: 'in-depth/layout', text: '布局' },
- { link: "in-depth/theme", text: "\u4E3B\u9898" },
- { link: "in-depth/access", text: "\u6743\u9650" },
- { link: "in-depth/locale", text: "\u56FD\u9645\u5316" },
- { link: "in-depth/features", text: "\u5E38\u7528\u529F\u80FD" },
- { link: "in-depth/check-updates", text: "\u68C0\u67E5\u66F4\u65B0" },
- { link: "in-depth/loading", text: "\u5168\u5C40loading" },
- { link: "in-depth/ui-framework", text: "\u7EC4\u4EF6\u5E93\u5207\u6362" }
- ]
+ { link: 'in-depth/theme', text: '\u4E3B\u9898' },
+ { link: 'in-depth/access', text: '\u6743\u9650' },
+ { link: 'in-depth/locale', text: '\u56FD\u9645\u5316' },
+ { link: 'in-depth/features', text: '\u5E38\u7528\u529F\u80FD' },
+ { link: 'in-depth/check-updates', text: '\u68C0\u67E5\u66F4\u65B0' },
+ { link: 'in-depth/loading', text: '\u5168\u5C40loading' },
+ {
+ link: 'in-depth/ui-framework',
+ text: '\u7EC4\u4EF6\u5E93\u5207\u6362',
+ },
+ ],
},
{
- text: "\u5DE5\u7A0B",
+ text: '\u5DE5\u7A0B',
items: [
- { link: "project/standard", text: "\u89C4\u8303" },
- { link: "project/cli", text: "CLI" },
- { link: "project/dir", text: "\u76EE\u5F55\u8BF4\u660E" },
- { link: "project/test", text: "\u5355\u5143\u6D4B\u8BD5" },
- { link: "project/tailwindcss", text: "Tailwind CSS" },
- { link: "project/changeset", text: "Changeset" },
- { link: "project/vite", text: "Vite Config" }
- ]
+ { link: 'project/standard', text: '\u89C4\u8303' },
+ { link: 'project/cli', text: 'CLI' },
+ { link: 'project/dir', text: '\u76EE\u5F55\u8BF4\u660E' },
+ { link: 'project/test', text: '\u5355\u5143\u6D4B\u8BD5' },
+ { link: 'project/tailwindcss', text: 'Tailwind CSS' },
+ { link: 'project/changeset', text: 'Changeset' },
+ { link: 'project/vite', text: 'Vite Config' },
+ ],
},
{
- text: "\u5176\u4ED6",
+ text: '\u5176\u4ED6',
items: [
- { link: "other/project-update", text: "\u9879\u76EE\u66F4\u65B0" },
- { link: "other/remove-code", text: "\u79FB\u9664\u4EE3\u7801" },
- { link: "other/faq", text: "\u5E38\u89C1\u95EE\u9898" }
- ]
- }
+ { link: 'other/project-update', text: '\u9879\u76EE\u66F4\u65B0' },
+ { link: 'other/remove-code', text: '\u79FB\u9664\u4EE3\u7801' },
+ { link: 'other/faq', text: '\u5E38\u89C1\u95EE\u9898' },
+ ],
+ },
];
}
function sidebarCommercial2() {
return [
{
- link: "community",
- text: "\u4EA4\u6D41\u7FA4"
+ link: 'community',
+ text: '\u4EA4\u6D41\u7FA4',
},
{
- link: "technical-support",
- text: "\u6280\u672F\u652F\u6301"
+ link: 'technical-support',
+ text: '\u6280\u672F\u652F\u6301',
},
{
- link: "customized",
- text: "\u5B9A\u5236\u5F00\u53D1"
- }
+ link: 'customized',
+ text: '\u5B9A\u5236\u5F00\u53D1',
+ },
];
}
function sidebarComponents() {
return [
{
- text: "\u7EC4\u4EF6",
+ text: '\u7EC4\u4EF6',
items: [
{
- link: "introduction",
- text: "\u4ECB\u7ECD"
- }
- ]
+ link: 'introduction',
+ text: '\u4ECB\u7ECD',
+ },
+ ],
},
{
collapsed: false,
- text: "\u5E03\u5C40\u7EC4\u4EF6",
+ text: '\u5E03\u5C40\u7EC4\u4EF6',
items: [
{
- link: "layout-ui/page",
- text: "Page \u9875\u9762"
- }
- ]
+ link: 'layout-ui/page',
+ text: 'Page \u9875\u9762',
+ },
+ ],
},
{
collapsed: false,
- text: "\u901A\u7528\u7EC4\u4EF6",
+ text: '\u901A\u7528\u7EC4\u4EF6',
items: [
{
- link: "common-ui/vben-api-component",
- text: "ApiComponent Api\u7EC4\u4EF6\u5305\u88C5\u5668"
+ link: 'common-ui/vben-api-component',
+ text: 'ApiComponent Api\u7EC4\u4EF6\u5305\u88C5\u5668',
},
{
- link: "common-ui/vben-modal",
- text: "Modal \u6A21\u6001\u6846"
+ link: 'common-ui/vben-modal',
+ text: 'Modal \u6A21\u6001\u6846',
},
{
- link: "common-ui/vben-drawer",
- text: "Drawer \u62BD\u5C49"
+ link: 'common-ui/vben-drawer',
+ text: 'Drawer \u62BD\u5C49',
},
{
- link: "common-ui/vben-form",
- text: "Form \u8868\u5355"
+ link: 'common-ui/vben-form',
+ text: 'Form \u8868\u5355',
},
{
- link: "common-ui/vben-vxe-table",
- text: "Vxe Table \u8868\u683C"
+ link: 'common-ui/vben-vxe-table',
+ text: 'Vxe Table \u8868\u683C',
},
{
- link: "common-ui/vben-count-to-animator",
- text: "CountToAnimator \u6570\u5B57\u52A8\u753B"
+ link: 'common-ui/vben-count-to-animator',
+ text: 'CountToAnimator \u6570\u5B57\u52A8\u753B',
},
{
- link: "common-ui/vben-ellipsis-text",
- text: "EllipsisText \u7701\u7565\u6587\u672C"
- }
- ]
- }
+ link: 'common-ui/vben-ellipsis-text',
+ text: 'EllipsisText \u7701\u7565\u6587\u672C',
+ },
+ ],
+ },
];
}
function nav2() {
return [
{
- activeMatch: "^/(guide|components)/",
- text: "\u6587\u6863",
+ activeMatch: '^/(guide|components)/',
+ text: '\u6587\u6863',
items: [
{
- activeMatch: "^/guide/",
- link: "/guide/introduction/vben",
- text: "\u6307\u5357"
+ activeMatch: '^/guide/',
+ link: '/guide/introduction/vben',
+ text: '\u6307\u5357',
},
{
- activeMatch: "^/components/",
- link: "/components/introduction",
- text: "\u7EC4\u4EF6"
+ activeMatch: '^/components/',
+ link: '/components/introduction',
+ text: '\u7EC4\u4EF6',
},
{
- text: "\u5386\u53F2\u7248\u672C",
+ text: '\u5386\u53F2\u7248\u672C',
items: [
{
- link: "https://doc.vvbin.cn",
- text: "2.x\u7248\u672C\u6587\u6863"
- }
- ]
- }
- ]
+ link: 'https://doc.vvbin.cn',
+ text: '2.x\u7248\u672C\u6587\u6863',
+ },
+ ],
+ },
+ ],
},
{
- text: "\u6F14\u793A",
+ text: '\u6F14\u793A',
items: [
{
- text: "Vben Admin",
+ text: 'y-code-platform',
items: [
{
- link: "https://www.vben.pro",
- text: "\u6F14\u793A\u7248\u672C"
+ link: 'https://www.vben.pro',
+ text: '\u6F14\u793A\u7248\u672C',
},
{
- link: "https://ant.vben.pro",
- text: "Ant Design Vue \u7248\u672C"
+ link: 'https://ant.vben.pro',
+ text: 'Ant Design Vue \u7248\u672C',
},
{
- link: "https://naive.vben.pro",
- text: "Naive \u7248\u672C"
+ link: 'https://naive.vben.pro',
+ text: 'Naive \u7248\u672C',
},
{
- link: "https://ele.vben.pro",
- text: "Element Plus\u7248\u672C"
- }
- ]
+ link: 'https://ele.vben.pro',
+ text: 'Element Plus\u7248\u672C',
+ },
+ ],
},
{
- text: "\u5176\u4ED6",
+ text: '\u5176\u4ED6',
items: [
{
- link: "https://vben.vvbin.cn",
- text: "Vben Admin 2.x"
- }
- ]
- }
- ]
+ link: 'https://vben.vvbin.cn',
+ text: 'y-code-platform 2.x',
+ },
+ ],
+ },
+ ],
},
{
text: version,
items: [
{
- link: "https://github.com/vbenjs/vue-vben-admin/releases",
- text: "\u66F4\u65B0\u65E5\u5FD7"
+ link: 'https://github.com/vbenjs/vue-vben-admin/releases',
+ text: '\u66F4\u65B0\u65E5\u5FD7',
},
{
- link: "https://github.com/orgs/vbenjs/projects/5",
- text: "\u8DEF\u7EBF\u56FE"
+ link: 'https://github.com/orgs/vbenjs/projects/5',
+ text: '\u8DEF\u7EBF\u56FE',
},
{
- link: "https://github.com/vbenjs/vue-vben-admin/blob/main/.github/contributing.md",
- text: "\u8D21\u732E"
- }
- ]
+ link: 'https://github.com/vbenjs/vue-vben-admin/blob/main/.github/contributing.md',
+ text: '\u8D21\u732E',
+ },
+ ],
},
{
- link: "/commercial/technical-support",
- text: "\u{1F984} \u6280\u672F\u652F\u6301"
+ link: '/commercial/technical-support',
+ text: '\u{1F984} \u6280\u672F\u652F\u6301',
},
{
- link: "/sponsor/personal",
- text: "\u2728 \u8D5E\u52A9"
+ link: '/sponsor/personal',
+ text: '\u2728 \u8D5E\u52A9',
},
{
- link: "/commercial/community",
- text: "\u{1F468}\u200D\u{1F466}\u200D\u{1F466} \u4EA4\u6D41\u7FA4"
+ link: '/commercial/community',
+ text: '\u{1F468}\u200D\u{1F466}\u200D\u{1F466} \u4EA4\u6D41\u7FA4',
// items: [
// {
// link: 'https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=22ySzj7pKiw&businessType=9&from=246610&biz=ka&mainSourceId=share&subSourceId=others&jumpsource=shorturl#/pc',
@@ -652,163 +666,169 @@ function nav2() {
// text: 'Discord',
// },
// ],
- }
+ },
// {
// link: '/friend-links/',
// text: '🤝 友情链接',
// },
];
}
-var search = {
+const search = {
root: {
- placeholder: "\u641C\u7D22\u6587\u6863",
+ placeholder: '\u641C\u7D22\u6587\u6863',
translations: {
button: {
- buttonAriaLabel: "\u641C\u7D22\u6587\u6863",
- buttonText: "\u641C\u7D22\u6587\u6863"
+ buttonAriaLabel: '\u641C\u7D22\u6587\u6863',
+ buttonText: '\u641C\u7D22\u6587\u6863',
},
modal: {
errorScreen: {
- helpText: "\u4F60\u53EF\u80FD\u9700\u8981\u68C0\u67E5\u4F60\u7684\u7F51\u7EDC\u8FDE\u63A5",
- titleText: "\u65E0\u6CD5\u83B7\u53D6\u7ED3\u679C"
+ helpText:
+ '\u4F60\u53EF\u80FD\u9700\u8981\u68C0\u67E5\u4F60\u7684\u7F51\u7EDC\u8FDE\u63A5',
+ titleText: '\u65E0\u6CD5\u83B7\u53D6\u7ED3\u679C',
},
footer: {
- closeText: "\u5173\u95ED",
- navigateText: "\u5207\u6362",
- searchByText: "\u641C\u7D22\u63D0\u4F9B\u8005",
- selectText: "\u9009\u62E9"
+ closeText: '\u5173\u95ED',
+ navigateText: '\u5207\u6362',
+ searchByText: '\u641C\u7D22\u63D0\u4F9B\u8005',
+ selectText: '\u9009\u62E9',
},
noResultsScreen: {
- noResultsText: "\u65E0\u6CD5\u627E\u5230\u76F8\u5173\u7ED3\u679C",
- reportMissingResultsLinkText: "\u70B9\u51FB\u53CD\u9988",
- reportMissingResultsText: "\u4F60\u8BA4\u4E3A\u8BE5\u67E5\u8BE2\u5E94\u8BE5\u6709\u7ED3\u679C\uFF1F",
- suggestedQueryText: "\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u67E5\u8BE2"
+ noResultsText: '\u65E0\u6CD5\u627E\u5230\u76F8\u5173\u7ED3\u679C',
+ reportMissingResultsLinkText: '\u70B9\u51FB\u53CD\u9988',
+ reportMissingResultsText:
+ '\u4F60\u8BA4\u4E3A\u8BE5\u67E5\u8BE2\u5E94\u8BE5\u6709\u7ED3\u679C\uFF1F',
+ suggestedQueryText: '\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u67E5\u8BE2',
},
searchBox: {
- cancelButtonAriaLabel: "\u53D6\u6D88",
- cancelButtonText: "\u53D6\u6D88",
- resetButtonAriaLabel: "\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6",
- resetButtonTitle: "\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6"
+ cancelButtonAriaLabel: '\u53D6\u6D88',
+ cancelButtonText: '\u53D6\u6D88',
+ resetButtonAriaLabel: '\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6',
+ resetButtonTitle: '\u6E05\u9664\u67E5\u8BE2\u6761\u4EF6',
},
startScreen: {
- favoriteSearchesTitle: "\u6536\u85CF",
- noRecentSearchesText: "\u6CA1\u6709\u641C\u7D22\u5386\u53F2",
- recentSearchesTitle: "\u641C\u7D22\u5386\u53F2",
- removeFavoriteSearchButtonTitle: "\u4ECE\u6536\u85CF\u4E2D\u79FB\u9664",
- removeRecentSearchButtonTitle: "\u4ECE\u641C\u7D22\u5386\u53F2\u4E2D\u79FB\u9664",
- saveRecentSearchButtonTitle: "\u4FDD\u5B58\u81F3\u641C\u7D22\u5386\u53F2"
- }
- }
- }
- }
+ favoriteSearchesTitle: '\u6536\u85CF',
+ noRecentSearchesText: '\u6CA1\u6709\u641C\u7D22\u5386\u53F2',
+ recentSearchesTitle: '\u641C\u7D22\u5386\u53F2',
+ removeFavoriteSearchButtonTitle:
+ '\u4ECE\u6536\u85CF\u4E2D\u79FB\u9664',
+ removeRecentSearchButtonTitle:
+ '\u4ECE\u641C\u7D22\u5386\u53F2\u4E2D\u79FB\u9664',
+ saveRecentSearchButtonTitle:
+ '\u4FDD\u5B58\u81F3\u641C\u7D22\u5386\u53F2',
+ },
+ },
+ },
+ },
};
// .vitepress/config/shared.mts
-var shared = defineConfig3({
- appearance: "dark",
+const shared = defineConfig3({
+ appearance: 'dark',
head: head(),
markdown: {
preConfig(md) {
md.use(demoPreviewPlugin);
md.use(groupIconMdPlugin);
- }
+ },
},
pwa: pwa(),
- srcDir: "src",
+ srcDir: 'src',
themeConfig: {
i18nRouting: true,
- logo: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp",
+ logo: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
search: {
options: {
locales: {
- ...search
- }
+ ...search,
+ },
},
- provider: "local"
+ provider: 'local',
},
- siteTitle: "Vben Admin",
+ siteTitle: 'y-code-platform',
socialLinks: [
- { icon: "github", link: "https://github.com/vbenjs/vue-vben-admin" }
- ]
+ { icon: 'github', link: 'https://github.com/vbenjs/vue-vben-admin' },
+ ],
},
- title: "Vben Admin",
+ title: 'y-code-platform',
vite: {
build: {
chunkSizeWarningLimit: Infinity,
- minify: "terser"
+ minify: 'terser',
},
css: {
postcss: {
plugins: [
tailwind(),
- postcssIsolateStyles({ includeFiles: [/vp-doc\.css/] })
- ]
+ postcssIsolateStyles({ includeFiles: [/vp-doc\.css/] }),
+ ],
},
preprocessorOptions: {
scss: {
- api: "modern"
- }
- }
+ api: 'modern',
+ },
+ },
},
json: {
- stringify: true
+ stringify: true,
},
plugins: [
GitChangelog({
mapAuthors: [
{
- mapByNameAliases: ["Vben"],
- name: "vben",
- username: "anncwb"
+ mapByNameAliases: ['Vben'],
+ name: 'vben',
+ username: 'anncwb',
},
{
- name: "vince",
- username: "vince292007"
+ name: 'vince',
+ username: 'vince292007',
},
{
- name: "Li Kui",
- username: "likui628"
- }
+ name: 'Li Kui',
+ username: 'likui628',
+ },
],
- repoURL: () => "https://github.com/vbenjs/vue-vben-admin"
+ repoURL: () => 'https://github.com/vbenjs/vue-vben-admin',
}),
GitChangelogMarkdownSection(),
- viteArchiverPlugin({ outputDir: ".vitepress" }),
+ viteArchiverPlugin({ outputDir: '.vitepress' }),
groupIconVitePlugin(),
- await viteVxeTableImportsPlugin()
+ await viteVxeTableImportsPlugin(),
],
server: {
fs: {
- allow: ["../.."]
+ allow: ['../..'],
},
host: true,
- port: 6173
+ port: 6173,
},
ssr: {
- external: ["@vue/repl"]
- }
- }
+ external: ['@vue/repl'],
+ },
+ },
});
function head() {
return [
- ["meta", { content: "Vbenjs Team", name: "author" }],
+ ['meta', { content: 'Vbenjs Team', name: 'author' }],
[
- "meta",
+ 'meta',
{
- content: "vben, vitejs, vite, shacdn-ui, vue",
- name: "keywords"
- }
+ content: 'vben, vitejs, vite, shacdn-ui, vue',
+ name: 'keywords',
+ },
],
- ["link", { href: "/favicon.ico", rel: "icon", type: "image/svg+xml" }],
+ ['link', { href: '/favicon.ico', rel: 'icon', type: 'image/svg+xml' }],
[
- "meta",
+ 'meta',
{
- content: "width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no",
- name: "viewport"
- }
+ content:
+ 'width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no',
+ name: 'viewport',
+ },
],
- ["meta", { content: "vben admin docs", name: "keywords" }],
- ["link", { href: "/favicon.ico", rel: "icon" }]
+ ['meta', { content: 'vben admin docs', name: 'keywords' }],
+ ['link', { href: '/favicon.ico', rel: 'icon' }],
// [
// 'script',
// {
@@ -821,53 +841,52 @@ function pwa() {
return {
includeManifestIcons: false,
manifest: {
- description: "Vben Admin is a modern admin dashboard template based on Vue 3. ",
+ description:
+ 'y-code-platform is a modern admin dashboard template based on Vue 3. ',
icons: [
{
- sizes: "192x192",
- src: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-192.png",
- type: "image/png"
+ sizes: '192x192',
+ src: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-192.png',
+ type: 'image/png',
},
{
- sizes: "512x512",
- src: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-512.png",
- type: "image/png"
- }
+ sizes: '512x512',
+ src: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/pwa-icon-512.png',
+ type: 'image/png',
+ },
],
- id: "/",
- name: "Vben Admin Doc",
- short_name: "vben_admin_doc",
- theme_color: "#ffffff"
+ id: '/',
+ name: 'y-code-platform Doc',
+ short_name: 'vben_admin_doc',
+ theme_color: '#ffffff',
},
- outDir: resolve(process.cwd(), ".vitepress/dist"),
- registerType: "autoUpdate",
+ outDir: resolve(process.cwd(), '.vitepress/dist'),
+ registerType: 'autoUpdate',
workbox: {
- globPatterns: ["**/*.{css,js,html,svg,png,ico,txt,woff2}"],
- maximumFileSizeToCacheInBytes: 5 * 1024 * 1024
- }
+ globPatterns: ['**/*.{css,js,html,svg,png,ico,txt,woff2}'],
+ maximumFileSizeToCacheInBytes: 5 * 1024 * 1024,
+ },
};
}
// .vitepress/config/index.mts
-var config_default = withPwa(
+const config_default = withPwa(
defineConfigWithTheme({
...shared,
locales: {
en: {
- label: "English",
- lang: "en",
- link: "/en/",
- ...en
+ label: 'English',
+ lang: 'en',
+ link: '/en/',
+ ...en,
},
root: {
- label: "\u7B80\u4F53\u4E2D\u6587",
- lang: "zh-CN",
- ...zh
- }
- }
- })
+ label: '\u7B80\u4F53\u4E2D\u6587',
+ lang: 'zh-CN',
+ ...zh,
+ },
+ },
+ }),
);
-export {
- config_default as default
-};
-//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLnZpdGVwcmVzcy9jb25maWcvaW5kZXgubXRzIiwgIi52aXRlcHJlc3MvY29uZmlnL2VuLm10cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLnZpdGVwcmVzcy9jb25maWcvc2hhcmVkLm10cyIsICIudml0ZXByZXNzL2NvbmZpZy9wbHVnaW5zL2RlbW8tcHJldmlldy50cyIsICIudml0ZXByZXNzL2NvbmZpZy96aC5tdHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXGluZGV4Lm10c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovQWRtaW5pc3RyYXRvci9Eb2N1bWVudHMvdnVlLXZiZW4tYWRtaW4vZG9jcy8udml0ZXByZXNzL2NvbmZpZy9pbmRleC5tdHNcIjtpbXBvcnQgeyB3aXRoUHdhIH0gZnJvbSAnQHZpdGUtcHdhL3ZpdGVwcmVzcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWdXaXRoVGhlbWUgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyBlbiB9IGZyb20gJy4vZW4ubXRzJztcbmltcG9ydCB7IHNoYXJlZCB9IGZyb20gJy4vc2hhcmVkLm10cyc7XG5pbXBvcnQgeyB6aCB9IGZyb20gJy4vemgubXRzJztcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFB3YShcbiAgZGVmaW5lQ29uZmlnV2l0aFRoZW1lKHtcbiAgICAuLi5zaGFyZWQsXG4gICAgbG9jYWxlczoge1xuICAgICAgZW46IHtcbiAgICAgICAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgICAgbGFuZzogJ2VuJyxcbiAgICAgICAgbGluazogJy9lbi8nLFxuICAgICAgICAuLi5lbixcbiAgICAgIH0sXG4gICAgICByb290OiB7XG4gICAgICAgIGxhYmVsOiAnXHU3QjgwXHU0RjUzXHU0RTJEXHU2NTg3JyxcbiAgICAgICAgbGFuZzogJ3poLUNOJyxcbiAgICAgICAgLi4uemgsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuKTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFxlbi5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3Z1ZS12YmVuLWFkbWluL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvZW4ubXRzXCI7aW1wb3J0IHR5cGUgeyBEZWZhdWx0VGhlbWUgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vLi4vLi4vcGFja2FnZS5qc29uJztcblxuZXhwb3J0IGNvbnN0IGVuID0gZGVmaW5lQ29uZmlnKHtcbiAgZGVzY3JpcHRpb246ICdWYmVuIEFkbWluICYgRW50ZXJwcmlzZSBsZXZlbCBtYW5hZ2VtZW50IHN5c3RlbSBmcmFtZXdvcmsnLFxuICBsYW5nOiAnZW4tVVMnLFxuICB0aGVtZUNvbmZpZzoge1xuICAgIGRhcmtNb2RlU3dpdGNoTGFiZWw6ICdUaGVtZScsXG4gICAgZGFya01vZGVTd2l0Y2hUaXRsZTogJ1N3aXRjaCB0byBEYXJrIE1vZGUnLFxuICAgIGRvY0Zvb3Rlcjoge1xuICAgICAgbmV4dDogJ05leHQgUGFnZScsXG4gICAgICBwcmV2OiAnUHJldmlvdXMgUGFnZScsXG4gICAgfSxcbiAgICBlZGl0TGluazoge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vZWRpdC9tYWluL2RvY3Mvc3JjLzpwYXRoJyxcbiAgICAgIHRleHQ6ICdFZGl0IHRoaXMgcGFnZSBvbiBHaXRIdWInLFxuICAgIH0sXG4gICAgZm9vdGVyOiB7XG4gICAgICBjb3B5cmlnaHQ6IGBDb3B5cmlnaHQgXHUwMEE5IDIwMjAtJHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9IFZiZW5gLFxuICAgICAgbWVzc2FnZTogJ1JlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4nLFxuICAgIH0sXG4gICAgbGFuZ01lbnVMYWJlbDogJ0xhbmd1YWdlJyxcbiAgICBsYXN0VXBkYXRlZDoge1xuICAgICAgZm9ybWF0T3B0aW9uczoge1xuICAgICAgICBkYXRlU3R5bGU6ICdzaG9ydCcsXG4gICAgICAgIHRpbWVTdHlsZTogJ21lZGl1bScsXG4gICAgICB9LFxuICAgICAgdGV4dDogJ0xhc3QgdXBkYXRlZCBvbicsXG4gICAgfSxcbiAgICBsaWdodE1vZGVTd2l0Y2hUaXRsZTogJ1N3aXRjaCB0byBMaWdodCBNb2RlJyxcbiAgICBuYXY6IG5hdigpLFxuICAgIG91dGxpbmU6IHtcbiAgICAgIGxhYmVsOiAnTmF2aWdhdGUnLFxuICAgIH0sXG4gICAgcmV0dXJuVG9Ub3BMYWJlbDogJ0JhY2sgdG8gdG9wJyxcbiAgICBzaWRlYmFyOiB7XG4gICAgICAnL2VuL2NvbW1lcmNpYWwvJzoge1xuICAgICAgICBiYXNlOiAnL2VuL2NvbW1lcmNpYWwvJyxcbiAgICAgICAgaXRlbXM6IHNpZGViYXJDb21tZXJjaWFsKCksXG4gICAgICB9LFxuICAgICAgJy9lbi9ndWlkZS8nOiB7IGJhc2U6ICcvZW4vZ3VpZGUvJywgaXRlbXM6IHNpZGViYXJHdWlkZSgpIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaWRlYmFyR3VpZGUoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB0ZXh0OiAnSW50cm9kdWN0aW9uJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdBYm91dCBWYmVuIEFkbWluJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdpbnRyb2R1Y3Rpb24vd2h5JyxcbiAgICAgICAgICB0ZXh0OiAnV2h5IENob29zZSBVcz8nLFxuICAgICAgICB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vcXVpY2stc3RhcnQnLCB0ZXh0OiAnUXVpY2sgU3RhcnQnIH0sXG4gICAgICAgIHsgbGluazogJ2ludHJvZHVjdGlvbi90aGluJywgdGV4dDogJ0xpdGUgVmVyc2lvbicgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnQmFzaWNzJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvY29uY2VwdCcsIHRleHQ6ICdCYXNpYyBDb25jZXB0cycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9kZXZlbG9wbWVudCcsIHRleHQ6ICdMb2NhbCBEZXZlbG9wbWVudCcgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9yb3V0ZScsIHRleHQ6ICdSb3V0aW5nIGFuZCBNZW51JyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3NldHRpbmdzJywgdGV4dDogJ0NvbmZpZ3VyYXRpb24nIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvaWNvbnMnLCB0ZXh0OiAnSWNvbnMnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvc3R5bGVzJywgdGV4dDogJ1N0eWxlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9leHRlcm5hbC1tb2R1bGUnLCB0ZXh0OiAnRXh0ZXJuYWwgTW9kdWxlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9idWlsZCcsIHRleHQ6ICdCdWlsZCBhbmQgRGVwbG95bWVudCcgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9zZXJ2ZXInLCB0ZXh0OiAnU2VydmVyIEludGVyYWN0aW9uIGFuZCBEYXRhIE1vY2snIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ0FkdmFuY2VkJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL2xvZ2luJywgdGV4dDogJ0xvZ2luJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC90aGVtZScsIHRleHQ6ICdUaGVtZScgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvYWNjZXNzJywgdGV4dDogJ0FjY2VzcyBDb250cm9sJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2NhbGUnLCB0ZXh0OiAnSW50ZXJuYXRpb25hbGl6YXRpb24nIH0sXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL2ZlYXR1cmVzJywgdGV4dDogJ0NvbW1vbiBGZWF0dXJlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvY2hlY2stdXBkYXRlcycsIHRleHQ6ICdDaGVjayBVcGRhdGVzJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2FkaW5nJywgdGV4dDogJ0dsb2JhbCBMb2FkaW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC91aS1mcmFtZXdvcmsnLCB0ZXh0OiAnVUkgRnJhbWV3b3JrIFN3aXRjaGluZycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnRW5naW5lZXJpbmcnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9zdGFuZGFyZCcsIHRleHQ6ICdTdGFuZGFyZHMnIH0sXG4gICAgICAgIHsgbGluazogJ3Byb2plY3QvY2xpJywgdGV4dDogJ0NMSScgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9kaXInLCB0ZXh0OiAnRGlyZWN0b3J5IEV4cGxhbmF0aW9uJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3Rlc3QnLCB0ZXh0OiAnVW5pdCBUZXN0aW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3RhaWx3aW5kY3NzJywgdGV4dDogJ1RhaWx3aW5kIENTUycgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9jaGFuZ2VzZXQnLCB0ZXh0OiAnQ2hhbmdlc2V0JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3ZpdGUnLCB0ZXh0OiAnVml0ZSBDb25maWcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ090aGVycycsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdvdGhlci9wcm9qZWN0LXVwZGF0ZScsIHRleHQ6ICdQcm9qZWN0IFVwZGF0ZScgfSxcbiAgICAgICAgeyBsaW5rOiAnb3RoZXIvcmVtb3ZlLWNvZGUnLCB0ZXh0OiAnUmVtb3ZlIENvZGUnIH0sXG4gICAgICAgIHsgbGluazogJ290aGVyL2ZhcScsIHRleHQ6ICdGQVEnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIHNpZGViYXJDb21tZXJjaWFsKCk6IERlZmF1bHRUaGVtZS5TaWRlYmFySXRlbVtdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBsaW5rOiAnY29tbXVuaXR5JyxcbiAgICAgIHRleHQ6ICdDb21tdW5pdHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbGluazogJ3RlY2huaWNhbC1zdXBwb3J0JyxcbiAgICAgIHRleHQ6ICdUZWNobmljYWwtc3VwcG9ydCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnY3VzdG9taXplZCcsXG4gICAgICB0ZXh0OiAnQ3VzdG9taXplZCcsXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gbmF2KCk6IERlZmF1bHRUaGVtZS5OYXZJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGFjdGl2ZU1hdGNoOiAnXi9lbi8oZ3VpZGV8Y29tcG9uZW50cykvJyxcbiAgICAgIHRleHQ6ICdEb2MnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2ZU1hdGNoOiAnXi9lbi9ndWlkZS8nLFxuICAgICAgICAgIGxpbms6ICcvZW4vZ3VpZGUvaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdHdWlkZScsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICBhY3RpdmVNYXRjaDogJ14vZW4vY29tcG9uZW50cy8nLFxuICAgICAgICAvLyAgIGxpbms6ICcvZW4vY29tcG9uZW50cy9pbnRyb2R1Y3Rpb24nLFxuICAgICAgICAvLyAgIHRleHQ6ICdDb21wb25lbnRzJyxcbiAgICAgICAgLy8gfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdIaXN0b3JpY2FsIFZlcnNpb25zJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9kb2MudnZiaW4uY24nLFxuICAgICAgICAgICAgICB0ZXh0OiAnMi54IFZlcnNpb24gRG9jdW1lbnRhdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ0RlbW8nLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnRGVtbyBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2FudC52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdBbnQgRGVzaWduIFZ1ZSBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL25haXZlLnZiZW4ucHJvJyxcbiAgICAgICAgICAgICAgdGV4dDogJ05haXZlIFZlcnNpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vZWxlLnZiZW4ucHJvJyxcbiAgICAgICAgICAgICAgdGV4dDogJ0VsZW1lbnQgUGx1cyBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdPdGhlcnMnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL3ZiZW4udnZiaW4uY24nLFxuICAgICAgICAgICAgICB0ZXh0OiAnVmJlbiBBZG1pbiAyLngnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6IHZlcnNpb24sXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vcmVsZWFzZXMnLFxuICAgICAgICAgIHRleHQ6ICdDaGFuZ2Vsb2cnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3ZiZW5qcy9wcm9qZWN0cy81JyxcbiAgICAgICAgICB0ZXh0OiAnUm9hZG1hcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL3ZiZW5qcy92dWUtdmJlbi1hZG1pbi9ibG9iL21haW4vLmdpdGh1Yi9jb250cmlidXRpbmcubWQnLFxuICAgICAgICAgIHRleHQ6ICdDb250cmlidXRpb24nLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC90ZWNobmljYWwtc3VwcG9ydCcsXG4gICAgICB0ZXh0OiAnXHVEODNFXHVERDg0IFRlY2ggU3VwcG9ydCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnL3Nwb25zb3IvcGVyc29uYWwnLFxuICAgICAgdGV4dDogJ1x1MjcyOCBTcG9uc29yJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC9jb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2Nlx1MjAwRFx1RDgzRFx1REM2NiBDb21tdW5pdHknLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbGluazogJy9mcmllbmQtbGlua3MvJyxcbiAgICAvLyAgIHRleHQ6ICdcdUQ4M0VcdUREMUQgRnJpZW5kIExpbmtzJyxcbiAgICAvLyB9LFxuICBdO1xufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwieS1jb2RlLW1vbm9yZXBvXCIsXG4gIFwidmVyc2lvblwiOiBcIjEuMC4wLWFscGhhLjFcIixcbiAgXCJwcml2YXRlXCI6IHRydWUsXG4gIFwia2V5d29yZHNcIjogW1xuICAgIFwibW9ub3JlcG9cIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ2dWVcIixcbiAgICBcImxvdy1jb2RlXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIndhbmd4dWVmZW5nXCIsXG4gICAgXCJlbWFpbFwiOiBcIndhbmd4dWVmZW5nQHNoaXl1ZS5jb21cIlxuICB9LFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwiY3Jvc3MtZW52IE5PREVfT1BUSU9OUz0tLW1heC1vbGQtc3BhY2Utc2l6ZT04MTkyIHR1cmJvIGJ1aWxkXCIsXG4gICAgXCJidWlsZDphbmFseXplXCI6IFwidHVyYm8gYnVpbGQ6YW5hbHl6ZVwiLFxuICAgIFwiYnVpbGQ6ZG9ja2VyXCI6IFwiLi9zY3JpcHRzL2RlcGxveS9idWlsZC1sb2NhbC1kb2NrZXItaW1hZ2Uuc2hcIixcbiAgICBcImJ1aWxkOmRvY3NcIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1AdmJlbi9kb2NzXCIsXG4gICAgXCJidWlsZDplbGVcIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1AdmJlbi93ZWItZWxlXCIsXG4gICAgXCJidWlsZDpwbGF5XCI6IFwicG5wbSBydW4gYnVpbGQgLS1maWx0ZXI9QHZiZW4vcGxheWdyb3VuZFwiLFxuICAgIFwiY2hhbmdlc2V0XCI6IFwicG5wbSBleGVjIGNoYW5nZXNldFwiLFxuICAgIFwiY2hlY2tcIjogXCJwbnBtIHJ1biBjaGVjazpjaXJjdWxhciAmJiBwbnBtIHJ1biBjaGVjazpkZXAgJiYgcG5wbSBydW4gY2hlY2s6dHlwZSAmJiBwbnBtIGNoZWNrOmNzcGVsbFwiLFxuICAgIFwiY2hlY2s6Y2lyY3VsYXJcIjogXCJ2c2ggY2hlY2stY2lyY3VsYXJcIixcbiAgICBcImNoZWNrOmNzcGVsbFwiOiBcImNzcGVsbCBsaW50ICoqLyoudHMgKiovUkVBRE1FLm1kIC5jaGFuZ2VzZXQvKi5tZCAtLW5vLXByb2dyZXNzXCIsXG4gICAgXCJjaGVjazpkZXBcIjogXCJ2c2ggY2hlY2stZGVwXCIsXG4gICAgXCJjaGVjazp0eXBlXCI6IFwidHVyYm8gcnVuIHR5cGVjaGVja1wiLFxuICAgIFwiY2xlYW5cIjogXCJub2RlIC4vc2NyaXB0cy9jbGVhbi5tanNcIixcbiAgICBcImNvbW1pdFwiOiBcImN6Z1wiLFxuICAgIFwiZGV2XCI6IFwidHVyYm8tcnVuIGRldlwiLFxuICAgIFwiZGV2OmRvY3NcIjogXCJwbnBtIC1GIEB2YmVuL2RvY3MgcnVuIGRldlwiLFxuICAgIFwiZGV2OmVsZVwiOiBcInBucG0gLUYgQHZiZW4vd2ViLWVsZSBydW4gZGV2XCIsXG4gICAgXCJkZXY6cGxheVwiOiBcInBucG0gLUYgQHZiZW4vcGxheWdyb3VuZCBydW4gZGV2XCIsXG4gICAgXCJmb3JtYXRcIjogXCJ2c2ggbGludCAtLWZvcm1hdFwiLFxuICAgIFwibGludFwiOiBcInZzaCBsaW50XCIsXG4gICAgXCJwb3N0aW5zdGFsbFwiOiBcInBucG0gLXIgcnVuIHN0dWIgLS1pZi1wcmVzZW50XCIsXG4gICAgXCJwcmVpbnN0YWxsXCI6IFwibnB4IG9ubHktYWxsb3cgcG5wbVwiLFxuICAgIFwicHJlcGFyZVwiOiBcImlzLWNpIHx8IGh1c2t5XCIsXG4gICAgXCJwcmV2aWV3XCI6IFwidHVyYm8tcnVuIHByZXZpZXdcIixcbiAgICBcInB1YmxpbnRcIjogXCJ2c2ggcHVibGludFwiLFxuICAgIFwicmVpbnN0YWxsXCI6IFwicG5wbSBjbGVhbiAtLWRlbC1sb2NrICYmIHBucG0gaW5zdGFsbFwiLFxuICAgIFwidGVzdDp1bml0XCI6IFwidml0ZXN0IHJ1biAtLWRvbVwiLFxuICAgIFwidGVzdDplMmVcIjogXCJ0dXJibyBydW4gdGVzdDplMmVcIixcbiAgICBcInVwZGF0ZTpkZXBzXCI6IFwibnB4IHRhemUgLXIgLXdcIixcbiAgICBcInZlcnNpb25cIjogXCJwbnBtIGV4ZWMgY2hhbmdlc2V0IHZlcnNpb24gJiYgcG5wbSBpbnN0YWxsIC0tbm8tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgXCJyZXNldFwiOiBcInBucG0gcnVuIGNsZWFuICYmIHBucG0gaW5zdGFsbFwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBjaGFuZ2VzZXRzL2NoYW5nZWxvZy1naXRodWJcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQGNoYW5nZXNldHMvY2xpXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcIkBwbGF5d3JpZ2h0L3Rlc3RcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHZiZW4vY29tbWl0bGludC1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vZXNsaW50LWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi9wcmV0dGllci1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vc3R5bGVsaW50LWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi90YWlsd2luZC1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdHNjb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdHVyYm8tcnVuXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3ZpdGUtY29uZmlnXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3ZzaFwiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdml0ZWpzL3BsdWdpbi12dWVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHZpdGVqcy9wbHVnaW4tdnVlLWpzeFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAdnVlL3Rlc3QtdXRpbHNcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiYXV0b3ByZWZpeGVyXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImNyb3NzLWVudlwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJjc3BlbGxcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiaGFwcHktZG9tXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImh1c2t5XCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImlzLWNpXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImxpbnQtc3RhZ2VkXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInBsYXl3cmlnaHRcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwicmltcmFmXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInRhaWx3aW5kY3NzXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInR1cmJvXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidW5idWlsZFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ2aXRlXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInZpdGVzdFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ2dWVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidnVlLXRzY1wiOiBcImNhdGFsb2c6XCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTIwLjEwLjBcIixcbiAgICBcInBucG1cIjogXCI+PTEwLjYuMlwiXG4gIH0sXG4gIFwicGFja2FnZU1hbmFnZXJcIjogXCJwbnBtQDEwLjYuMlwiLFxuICBcInBucG1cIjoge1xuICAgIFwicGVlckRlcGVuZGVuY3lSdWxlc1wiOiB7XG4gICAgICBcImFsbG93ZWRWZXJzaW9uc1wiOiB7XG4gICAgICAgIFwiZXNsaW50XCI6IFwiKlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIm92ZXJyaWRlc1wiOiB7XG4gICAgICBcIkBhc3QtZ3JlcC9uYXBpXCI6IFwiY2F0YWxvZzpcIixcbiAgICAgIFwiQGN0cmwvdGlueWNvbG9yXCI6IFwiY2F0YWxvZzpcIixcbiAgICAgIFwiY2xzeFwiOiBcImNhdGFsb2c6XCIsXG4gICAgICBcImVzYnVpbGRcIjogXCIwLjI0LjBcIixcbiAgICAgIFwicGluaWFcIjogXCJjYXRhbG9nOlwiLFxuICAgICAgXCJ2dWVcIjogXCJjYXRhbG9nOlwiXG4gICAgfSxcbiAgICBcIm5ldmVyQnVpbHREZXBlbmRlbmNpZXNcIjogW1xuICAgICAgXCJjYW52YXNcIixcbiAgICAgIFwibm9kZS1neXBcIlxuICAgIF1cbiAgfVxufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXHNoYXJlZC5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3Z1ZS12YmVuLWFkbWluL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvc2hhcmVkLm10c1wiO2ltcG9ydCB0eXBlIHsgUHdhT3B0aW9ucyB9IGZyb20gJ0B2aXRlLXB3YS92aXRlcHJlc3MnO1xuaW1wb3J0IHR5cGUgeyBIZWFkQ29uZmlnIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7XG4gIHZpdGVBcmNoaXZlclBsdWdpbixcbiAgdml0ZVZ4ZVRhYmxlSW1wb3J0c1BsdWdpbixcbn0gZnJvbSAnQHZiZW4vdml0ZS1jb25maWcnO1xuXG5pbXBvcnQge1xuICBHaXRDaGFuZ2Vsb2csXG4gIEdpdENoYW5nZWxvZ01hcmtkb3duU2VjdGlvbixcbn0gZnJvbSAnQG5vbGViYXNlL3ZpdGVwcmVzcy1wbHVnaW4tZ2l0LWNoYW5nZWxvZy92aXRlJztcbmltcG9ydCB0YWlsd2luZCBmcm9tICd0YWlsd2luZGNzcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcsIHBvc3Rjc3NJc29sYXRlU3R5bGVzIH0gZnJvbSAndml0ZXByZXNzJztcbmltcG9ydCB7XG4gIGdyb3VwSWNvbk1kUGx1Z2luLFxuICBncm91cEljb25WaXRlUGx1Z2luLFxufSBmcm9tICd2aXRlcHJlc3MtcGx1Z2luLWdyb3VwLWljb25zJztcblxuaW1wb3J0IHsgZGVtb1ByZXZpZXdQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvZGVtby1wcmV2aWV3JztcbmltcG9ydCB7IHNlYXJjaCBhcyB6aFNlYXJjaCB9IGZyb20gJy4vemgubXRzJztcblxuZXhwb3J0IGNvbnN0IHNoYXJlZCA9IGRlZmluZUNvbmZpZyh7XG4gIGFwcGVhcmFuY2U6ICdkYXJrJyxcbiAgaGVhZDogaGVhZCgpLFxuICBtYXJrZG93bjoge1xuICAgIHByZUNvbmZpZyhtZCkge1xuICAgICAgbWQudXNlKGRlbW9QcmV2aWV3UGx1Z2luKTtcbiAgICAgIG1kLnVzZShncm91cEljb25NZFBsdWdpbik7XG4gICAgfSxcbiAgfSxcbiAgcHdhOiBwd2EoKSxcbiAgc3JjRGlyOiAnc3JjJyxcbiAgdGhlbWVDb25maWc6IHtcbiAgICBpMThuUm91dGluZzogdHJ1ZSxcbiAgICBsb2dvOiAnaHR0cHM6Ly91bnBrZy5jb20vQHZiZW5qcy9zdGF0aWMtc291cmNlQDAuMS43L3NvdXJjZS9sb2dvLXYxLndlYnAnLFxuICAgIHNlYXJjaDoge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICBsb2NhbGVzOiB7XG4gICAgICAgICAgLi4uemhTZWFyY2gsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXI6ICdsb2NhbCcsXG4gICAgfSxcbiAgICBzaXRlVGl0bGU6ICdWYmVuIEFkbWluJyxcbiAgICBzb2NpYWxMaW5rczogW1xuICAgICAgeyBpY29uOiAnZ2l0aHViJywgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4nIH0sXG4gICAgXSxcbiAgfSxcbiAgdGl0bGU6ICdWYmVuIEFkbWluJyxcbiAgdml0ZToge1xuICAgIGJ1aWxkOiB7XG4gICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IEluZmluaXR5LFxuICAgICAgbWluaWZ5OiAndGVyc2VyJyxcbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcG9zdGNzczoge1xuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgdGFpbHdpbmQoKSxcbiAgICAgICAgICBwb3N0Y3NzSXNvbGF0ZVN0eWxlcyh7IGluY2x1ZGVGaWxlczogWy92cC1kb2NcXC5jc3MvXSB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBhcGk6ICdtb2Rlcm4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGpzb246IHtcbiAgICAgIHN0cmluZ2lmeTogdHJ1ZSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIEdpdENoYW5nZWxvZyh7XG4gICAgICAgIG1hcEF1dGhvcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXBCeU5hbWVBbGlhc2VzOiBbJ1ZiZW4nXSxcbiAgICAgICAgICAgIG5hbWU6ICd2YmVuJyxcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnYW5uY3diJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd2aW5jZScsXG4gICAgICAgICAgICB1c2VybmFtZTogJ3ZpbmNlMjkyMDA3JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdMaSBLdWknLFxuICAgICAgICAgICAgdXNlcm5hbWU6ICdsaWt1aTYyOCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVwb1VSTDogKCkgPT4gJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4nLFxuICAgICAgfSksXG4gICAgICBHaXRDaGFuZ2Vsb2dNYXJrZG93blNlY3Rpb24oKSxcbiAgICAgIHZpdGVBcmNoaXZlclBsdWdpbih7IG91dHB1dERpcjogJy52aXRlcHJlc3MnIH0pLFxuICAgICAgZ3JvdXBJY29uVml0ZVBsdWdpbigpLFxuICAgICAgYXdhaXQgdml0ZVZ4ZVRhYmxlSW1wb3J0c1BsdWdpbigpLFxuICAgIF0sXG4gICAgc2VydmVyOiB7XG4gICAgICBmczoge1xuICAgICAgICBhbGxvdzogWycuLi8uLiddLFxuICAgICAgfSxcbiAgICAgIGhvc3Q6IHRydWUsXG4gICAgICBwb3J0OiA2MTczLFxuICAgIH0sXG5cbiAgICBzc3I6IHtcbiAgICAgIGV4dGVybmFsOiBbJ0B2dWUvcmVwbCddLFxuICAgIH0sXG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaGVhZCgpOiBIZWFkQ29uZmlnW10ge1xuICByZXR1cm4gW1xuICAgIFsnbWV0YScsIHsgY29udGVudDogJ1ZiZW5qcyBUZWFtJywgbmFtZTogJ2F1dGhvcicgfV0sXG4gICAgW1xuICAgICAgJ21ldGEnLFxuICAgICAge1xuICAgICAgICBjb250ZW50OiAndmJlbiwgdml0ZWpzLCB2aXRlLCBzaGFjZG4tdWksIHZ1ZScsXG4gICAgICAgIG5hbWU6ICdrZXl3b3JkcycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgWydsaW5rJywgeyBocmVmOiAnL2Zhdmljb24uaWNvJywgcmVsOiAnaWNvbicsIHR5cGU6ICdpbWFnZS9zdmcreG1sJyB9XSxcbiAgICBbXG4gICAgICAnbWV0YScsXG4gICAgICB7XG4gICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgJ3dpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEsbWluaW11bS1zY2FsZT0xLjAsbWF4aW11bS1zY2FsZT0xLjAsdXNlci1zY2FsYWJsZT1ubycsXG4gICAgICAgIG5hbWU6ICd2aWV3cG9ydCcsXG4gICAgICB9LFxuICAgIF0sXG4gICAgWydtZXRhJywgeyBjb250ZW50OiAndmJlbiBhZG1pbiBkb2NzJywgbmFtZTogJ2tleXdvcmRzJyB9XSxcbiAgICBbJ2xpbmsnLCB7IGhyZWY6ICcvZmF2aWNvbi5pY28nLCByZWw6ICdpY29uJyB9XSxcbiAgICAvLyBbXG4gICAgLy8gICAnc2NyaXB0JyxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgc3JjOiAnaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tJyxcbiAgICAvLyAgIH0sXG4gICAgLy8gXSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gcHdhKCk6IFB3YU9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGluY2x1ZGVNYW5pZmVzdEljb25zOiBmYWxzZSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdWYmVuIEFkbWluIGlzIGEgbW9kZXJuIGFkbWluIGRhc2hib2FyZCB0ZW1wbGF0ZSBiYXNlZCBvbiBWdWUgMy4gJyxcbiAgICAgIGljb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgICAgIHNyYzogJ2h0dHBzOi8vdW5wa2cuY29tL0B2YmVuanMvc3RhdGljLXNvdXJjZUAwLjEuNy9zb3VyY2UvcHdhLWljb24tMTkyLnBuZycsXG4gICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaXplczogJzUxMng1MTInLFxuICAgICAgICAgIHNyYzogJ2h0dHBzOi8vdW5wa2cuY29tL0B2YmVuanMvc3RhdGljLXNvdXJjZUAwLjEuNy9zb3VyY2UvcHdhLWljb24tNTEyLnBuZycsXG4gICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaWQ6ICcvJyxcbiAgICAgIG5hbWU6ICdWYmVuIEFkbWluIERvYycsXG4gICAgICBzaG9ydF9uYW1lOiAndmJlbl9hZG1pbl9kb2MnLFxuICAgICAgdGhlbWVfY29sb3I6ICcjZmZmZmZmJyxcbiAgICB9LFxuICAgIG91dERpcjogcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCAnLnZpdGVwcmVzcy9kaXN0JyksXG4gICAgcmVnaXN0ZXJUeXBlOiAnYXV0b1VwZGF0ZScsXG4gICAgd29ya2JveDoge1xuICAgICAgZ2xvYlBhdHRlcm5zOiBbJyoqLyoue2NzcyxqcyxodG1sLHN2ZyxwbmcsaWNvLHR4dCx3b2ZmMn0nXSxcbiAgICAgIG1heGltdW1GaWxlU2l6ZVRvQ2FjaGVJbkJ5dGVzOiA1ICogMTAyNCAqIDEwMjQsXG4gICAgfSxcbiAgfTtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFxwbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXHBsdWdpbnNcXFxcZGVtby1wcmV2aWV3LnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy92dWUtdmJlbi1hZG1pbi9kb2NzLy52aXRlcHJlc3MvY29uZmlnL3BsdWdpbnMvZGVtby1wcmV2aWV3LnRzXCI7aW1wb3J0IHR5cGUgeyBNYXJrZG93bkVudiwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gJ3ZpdGVwcmVzcyc7XG5cbmltcG9ydCBjcnlwdG8gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgcmVhZGRpclN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuXG5leHBvcnQgY29uc3QgcmF3UGF0aFJlZ2V4cCA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tc3VwZXItbGluZWFyLWJhY2t0cmFja2luZywgcmVnZXhwL3N0cmljdFxuICAvXiguKz8oPzpcXC4oW1xcZGEtel0rKSk/KSgjW1xcdy1dKyk/KD86ID97KFxcZCsoPzpbLC1dXFxkKykqKT8gPyhcXFMrKT99KT8gPyg/OlxcWyguKyldKT8kLztcblxuZnVuY3Rpb24gcmF3UGF0aFRvVG9rZW4ocmF3UGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IFtcbiAgICBmaWxlcGF0aCA9ICcnLFxuICAgIGV4dGVuc2lvbiA9ICcnLFxuICAgIHJlZ2lvbiA9ICcnLFxuICAgIGxpbmVzID0gJycsXG4gICAgbGFuZyA9ICcnLFxuICAgIHJhd1RpdGxlID0gJycsXG4gIF0gPSAocmF3UGF0aFJlZ2V4cC5leGVjKHJhd1BhdGgpIHx8IFtdKS5zbGljZSgxKTtcblxuICBjb25zdCB0aXRsZSA9IHJhd1RpdGxlIHx8IGZpbGVwYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG5cbiAgcmV0dXJuIHsgZXh0ZW5zaW9uLCBmaWxlcGF0aCwgbGFuZywgbGluZXMsIHJlZ2lvbiwgdGl0bGUgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlbW9QcmV2aWV3UGx1Z2luID0gKG1kOiBNYXJrZG93blJlbmRlcmVyKSA9PiB7XG4gIG1kLmNvcmUucnVsZXIuYWZ0ZXIoJ2lubGluZScsICdkZW1vLXByZXZpZXcnLCAoc3RhdGUpID0+IHtcbiAgICBjb25zdCBpbnNlcnRDb21wb25lbnRJbXBvcnQgPSAoaW1wb3J0U3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gc3RhdGUudG9rZW5zLmZpbmRJbmRleChcbiAgICAgICAgKGkpID0+IGkudHlwZSA9PT0gJ2h0bWxfYmxvY2snICYmIGkuY29udGVudC5tYXRjaCgvPHNjcmlwdCBzZXR1cD4vZyksXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBjb25zdCBpbXBvcnRDb21wb25lbnQgPSBuZXcgc3RhdGUuVG9rZW4oJ2h0bWxfYmxvY2snLCAnJywgMCk7XG4gICAgICAgIGltcG9ydENvbXBvbmVudC5jb250ZW50ID0gYDxzY3JpcHQgc2V0dXA+XFxuJHtpbXBvcnRTdHJpbmd9XFxuPC9zY3JpcHQ+XFxuYDtcbiAgICAgICAgc3RhdGUudG9rZW5zLnNwbGljZSgwLCAwLCBpbXBvcnRDb21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXRlLnRva2Vuc1tpbmRleF0pIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RhdGUudG9rZW5zW2luZGV4XS5jb250ZW50O1xuICAgICAgICAgIHN0YXRlLnRva2Vuc1tpbmRleF0uY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShcbiAgICAgICAgICAgICc8L3NjcmlwdD4nLFxuICAgICAgICAgICAgYCR7aW1wb3J0U3RyaW5nfVxcbjwvc2NyaXB0PmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLy8gRGVmaW5lIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdGhlIGRlc2lyZWQgcGF0dGVyblxuICAgIGNvbnN0IHJlZ2V4ID0gLzxEZW1vUHJldmlld1tePl0qXFxzZGlyPVwiKFteXCJdKilcIi9nO1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgTWFya2Rvd24gY29udGVudCBhbmQgcmVwbGFjZSB0aGUgcGF0dGVyblxuICAgIHN0YXRlLnNyYyA9IHN0YXRlLnNyYy5yZXBsYWNlQWxsKHJlZ2V4LCAoX21hdGNoLCBkaXIpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NyYycsIGRpcikucmVwbGFjZUFsbChcbiAgICAgICAgJ1xcXFwnLFxuICAgICAgICAnLycsXG4gICAgICApO1xuXG4gICAgICBsZXQgY2hpbGRGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBkaXJFeGlzdHMgPSB0cnVlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZEZpbGVzID1cbiAgICAgICAgICByZWFkZGlyU3luYyhjb21wb25lbnREaXIsIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgICAgICByZWN1cnNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgd2l0aEZpbGVUeXBlczogZmFsc2UsXG4gICAgICAgICAgfSkgfHwgW107XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgZGlyRXhpc3RzID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlyRXhpc3RzKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgY29uc3QgdW5pcXVlV29yZCA9IGdlbmVyYXRlQ29udGVudEhhc2goY29tcG9uZW50RGlyKTtcblxuICAgICAgY29uc3QgQ29tcG9uZW50TmFtZSA9IGBEZW1vQ29tcG9uZW50XyR7dW5pcXVlV29yZH1gO1xuICAgICAgaW5zZXJ0Q29tcG9uZW50SW1wb3J0KFxuICAgICAgICBgaW1wb3J0ICR7Q29tcG9uZW50TmFtZX0gZnJvbSAnJHtjb21wb25lbnREaXJ9L2luZGV4LnZ1ZSdgLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgcGF0aDogX3BhdGggfSA9IHN0YXRlLmVudiBhcyBNYXJrZG93bkVudjtcblxuICAgICAgY29uc3QgaW5kZXggPSBzdGF0ZS50b2tlbnMuZmluZEluZGV4KChpKSA9PiBpLmNvbnRlbnQubWF0Y2gocmVnZXgpKTtcblxuICAgICAgaWYgKCFzdGF0ZS50b2tlbnNbaW5kZXhdKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpcnN0U3RyaW5nID0gJ2luZGV4LnZ1ZSc7XG4gICAgICBjaGlsZEZpbGVzID0gY2hpbGRGaWxlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhID09PSBmaXJzdFN0cmluZykgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYiA9PT0gZmlyc3RTdHJpbmcpIHJldHVybiAxO1xuICAgICAgICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsICdlbicsIHsgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KTtcbiAgICAgIH0pO1xuICAgICAgc3RhdGUudG9rZW5zW2luZGV4XS5jb250ZW50ID1cbiAgICAgICAgYDxEZW1vUHJldmlldyBmaWxlcz1cIiR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNoaWxkRmlsZXMpKX1cIiA+PCR7Q29tcG9uZW50TmFtZX0vPlxuICAgICAgICBgO1xuXG4gICAgICBjb25zdCBfZHVtbXlUb2tlbiA9IG5ldyBzdGF0ZS5Ub2tlbignJywgJycsIDApO1xuICAgICAgY29uc3QgdG9rZW5BcnJheTogQXJyYXk8dHlwZW9mIF9kdW1teVRva2VuPiA9IFtdO1xuICAgICAgY2hpbGRGaWxlcy5mb3JFYWNoKChmaWxlbmFtZSkgPT4ge1xuICAgICAgICAvLyBjb25zdCBzbG90TmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoZXh0bmFtZShmaWxlbmFtZSksICcnKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0ID0gbmV3IHN0YXRlLlRva2VuKCdodG1sX2lubGluZScsICcnLCAwKTtcbiAgICAgICAgdGVtcGxhdGVTdGFydC5jb250ZW50ID0gYDx0ZW1wbGF0ZSAjJHtmaWxlbmFtZX0+YDtcbiAgICAgICAgdG9rZW5BcnJheS5wdXNoKHRlbXBsYXRlU3RhcnQpO1xuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IGpvaW4oY29tcG9uZW50RGlyLCBmaWxlbmFtZSk7XG5cbiAgICAgICAgY29uc3QgeyBleHRlbnNpb24sIGZpbGVwYXRoLCBsYW5nLCBsaW5lcywgdGl0bGUgfSA9XG4gICAgICAgICAgcmF3UGF0aFRvVG9rZW4ocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgLy8gQWRkIGNvZGUgdG9rZW5zIGZvciBlYWNoIGxpbmVcbiAgICAgICAgY29uc3QgdG9rZW4gPSBuZXcgc3RhdGUuVG9rZW4oJ2ZlbmNlJywgJ2NvZGUnLCAwKTtcbiAgICAgICAgdG9rZW4uaW5mbyA9IGAke2xhbmcgfHwgZXh0ZW5zaW9ufSR7bGluZXMgPyBgeyR7bGluZXN9fWAgOiAnJ30ke1xuICAgICAgICAgIHRpdGxlID8gYFske3RpdGxlfV1gIDogJydcbiAgICAgICAgfWA7XG5cbiAgICAgICAgdG9rZW4uY29udGVudCA9IGA8PDwgJHtmaWxlcGF0aH1gO1xuICAgICAgICAodG9rZW4gYXMgYW55KS5zcmMgPSBbcmVzb2x2ZWRQYXRoXTtcbiAgICAgICAgdG9rZW5BcnJheS5wdXNoKHRva2VuKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZUVuZCA9IG5ldyBzdGF0ZS5Ub2tlbignaHRtbF9pbmxpbmUnLCAnJywgMCk7XG4gICAgICAgIHRlbXBsYXRlRW5kLmNvbnRlbnQgPSAnPC90ZW1wbGF0ZT4nO1xuICAgICAgICB0b2tlbkFycmF5LnB1c2godGVtcGxhdGVFbmQpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBlbmRUYWcgPSBuZXcgc3RhdGUuVG9rZW4oJ2h0bWxfaW5saW5lJywgJycsIDApO1xuICAgICAgZW5kVGFnLmNvbnRlbnQgPSAnPC9EZW1vUHJldmlldz4nO1xuICAgICAgdG9rZW5BcnJheS5wdXNoKGVuZFRhZyk7XG5cbiAgICAgIHN0YXRlLnRva2Vucy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi50b2tlbkFycmF5KTtcblxuICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAvLyAgIHN0YXRlLm1kLnJlbmRlcmVyLnJlbmRlcihzdGF0ZS50b2tlbnMsIHN0YXRlPy5vcHRpb25zID8/IFtdLCBzdGF0ZS5lbnYpLFxuICAgICAgLy8gKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnRIYXNoKGlucHV0OiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAvLyBcdTRGN0ZcdTc1MjggU0hBLTI1NiBcdTc1MUZcdTYyMTBcdTU0QzhcdTVFMENcdTUwM0NcbiAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoaW5wdXQpLmRpZ2VzdCgnaGV4Jyk7XG5cbiAgLy8gXHU1QzA2XHU1NEM4XHU1RTBDXHU1MDNDXHU4RjZDXHU2MzYyXHU0RTNBIEJhc2UzNiBcdTdGMTZcdTc4MDFcdUZGMENcdTVFNzZcdTUzRDZcdTYzMDdcdTVCOUFcdTk1N0ZcdTVFQTZcdTc2ODRcdTVCNTdcdTdCMjZcdTRGNUNcdTRFM0FcdTdFRDNcdTY3OUNcbiAgcmV0dXJuIE51bWJlci5wYXJzZUludChoYXNoLCAxNikudG9TdHJpbmcoMzYpLnNsaWNlKDAsIGxlbmd0aCk7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHZ1ZS12YmVuLWFkbWluXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHZ1ZS12YmVuLWFkbWluXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcXFxcemgubXRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy92dWUtdmJlbi1hZG1pbi9kb2NzLy52aXRlcHJlc3MvY29uZmlnL3poLm10c1wiO2ltcG9ydCB0eXBlIHsgRGVmYXVsdFRoZW1lIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4uLy4uLy4uL3BhY2thZ2UuanNvbic7XG5cbmV4cG9ydCBjb25zdCB6aCA9IGRlZmluZUNvbmZpZyh7XG4gIGRlc2NyaXB0aW9uOiAnVmJlbiBBZG1pbiAmIFx1NEYwMVx1NEUxQVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlx1Njg0Nlx1NjdCNicsXG4gIGxhbmc6ICd6aC1IYW5zJyxcbiAgdGhlbWVDb25maWc6IHtcbiAgICBkYXJrTW9kZVN3aXRjaExhYmVsOiAnXHU0RTNCXHU5ODk4JyxcbiAgICBkYXJrTW9kZVN3aXRjaFRpdGxlOiAnXHU1MjA3XHU2MzYyXHU1MjMwXHU2REYxXHU4MjcyXHU2QTIxXHU1RjBGJyxcbiAgICBkb2NGb290ZXI6IHtcbiAgICAgIG5leHQ6ICdcdTRFMEJcdTRFMDBcdTk4NzUnLFxuICAgICAgcHJldjogJ1x1NEUwQVx1NEUwMFx1OTg3NScsXG4gICAgfSxcbiAgICBlZGl0TGluazoge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vZWRpdC9tYWluL2RvY3Mvc3JjLzpwYXRoJyxcbiAgICAgIHRleHQ6ICdcdTU3MjggR2l0SHViIFx1NEUwQVx1N0YxNlx1OEY5MVx1NkI2NFx1OTg3NVx1OTc2MicsXG4gICAgfSxcbiAgICBmb290ZXI6IHtcbiAgICAgIGNvcHlyaWdodDogYENvcHlyaWdodCBcdTAwQTkgMjAyMC0ke25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0gVmJlbmAsXG4gICAgICBtZXNzYWdlOiAnXHU1N0ZBXHU0RThFIE1JVCBcdThCQjhcdTUzRUZcdTUzRDFcdTVFMDMuJyxcbiAgICB9LFxuICAgIGxhbmdNZW51TGFiZWw6ICdcdTU5MUFcdThCRURcdThBMDAnLFxuICAgIGxhc3RVcGRhdGVkOiB7XG4gICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgIGRhdGVTdHlsZTogJ3Nob3J0JyxcbiAgICAgICAgdGltZVN0eWxlOiAnbWVkaXVtJyxcbiAgICAgIH0sXG4gICAgICB0ZXh0OiAnXHU2NzAwXHU1NDBFXHU2NkY0XHU2NUIwXHU0RThFJyxcbiAgICB9LFxuICAgIGxpZ2h0TW9kZVN3aXRjaFRpdGxlOiAnXHU1MjA3XHU2MzYyXHU1MjMwXHU2RDQ1XHU4MjcyXHU2QTIxXHU1RjBGJyxcbiAgICBuYXY6IG5hdigpLFxuXG4gICAgb3V0bGluZToge1xuICAgICAgbGFiZWw6ICdcdTk4NzVcdTk3NjJcdTVCRkNcdTgyMkEnLFxuICAgIH0sXG4gICAgcmV0dXJuVG9Ub3BMYWJlbDogJ1x1NTZERVx1NTIzMFx1OTg3Nlx1OTBFOCcsXG5cbiAgICBzaWRlYmFyOiB7XG4gICAgICAnL2NvbW1lcmNpYWwvJzogeyBiYXNlOiAnL2NvbW1lcmNpYWwvJywgaXRlbXM6IHNpZGViYXJDb21tZXJjaWFsKCkgfSxcbiAgICAgICcvY29tcG9uZW50cy8nOiB7IGJhc2U6ICcvY29tcG9uZW50cy8nLCBpdGVtczogc2lkZWJhckNvbXBvbmVudHMoKSB9LFxuICAgICAgJy9ndWlkZS8nOiB7IGJhc2U6ICcvZ3VpZGUvJywgaXRlbXM6IHNpZGViYXJHdWlkZSgpIH0sXG4gICAgfSxcbiAgICBzaWRlYmFyTWVudUxhYmVsOiAnXHU4M0RDXHU1MzU1JyxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaWRlYmFyR3VpZGUoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB0ZXh0OiAnXHU3QjgwXHU0RUNCJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdcdTUxNzNcdTRFOEUgVmJlbiBBZG1pbicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3doeScsXG4gICAgICAgICAgdGV4dDogJ1x1NEUzQVx1NEVDMFx1NEU0OFx1OTAwOVx1NjJFOVx1NjIxMVx1NEVFQz8nLFxuICAgICAgICB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vcXVpY2stc3RhcnQnLCB0ZXh0OiAnXHU1RkVCXHU5MDFGXHU1RjAwXHU1OUNCJyB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vdGhpbicsIHRleHQ6ICdcdTdDQkVcdTdCODBcdTcyNDhcdTY3MkMnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYXNlOiAnLycsXG4gICAgICAgICAgbGluazogJ2NvbXBvbmVudHMvaW50cm9kdWN0aW9uJyxcbiAgICAgICAgICB0ZXh0OiAnXHU3RUM0XHU0RUY2XHU2NTg3XHU2ODYzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnXHU1N0ZBXHU3ODQwJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvY29uY2VwdCcsIHRleHQ6ICdcdTU3RkFcdTc4NDBcdTY5ODJcdTVGRjUnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvZGV2ZWxvcG1lbnQnLCB0ZXh0OiAnXHU2NzJDXHU1NzMwXHU1RjAwXHU1M0QxJyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3JvdXRlJywgdGV4dDogJ1x1OERFRlx1NzUzMVx1NTQ4Q1x1ODNEQ1x1NTM1NScgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9zZXR0aW5ncycsIHRleHQ6ICdcdTkxNERcdTdGNkUnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvaWNvbnMnLCB0ZXh0OiAnXHU1NkZFXHU2ODA3JyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3N0eWxlcycsIHRleHQ6ICdcdTY4MzdcdTVGMEYnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvZXh0ZXJuYWwtbW9kdWxlJywgdGV4dDogJ1x1NTkxNlx1OTBFOFx1NkEyMVx1NTc1NycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9idWlsZCcsIHRleHQ6ICdcdTY3ODRcdTVFRkFcdTRFMEVcdTkwRThcdTdGNzInIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvc2VydmVyJywgdGV4dDogJ1x1NjcwRFx1NTJBMVx1N0FFRlx1NEVBNFx1NEU5Mlx1NEUwRVx1NjU3MFx1NjM2RU1vY2snIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ1x1NkRGMVx1NTE2NScsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2dpbicsIHRleHQ6ICdcdTc2N0JcdTVGNTUnIH0sXG4gICAgICAgIC8vIHsgbGluazogJ2luLWRlcHRoL2xheW91dCcsIHRleHQ6ICdcdTVFMDNcdTVDNDAnIH0sXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL3RoZW1lJywgdGV4dDogJ1x1NEUzQlx1OTg5OCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvYWNjZXNzJywgdGV4dDogJ1x1Njc0M1x1OTY1MCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvbG9jYWxlJywgdGV4dDogJ1x1NTZGRFx1OTY0NVx1NTMxNicgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvZmVhdHVyZXMnLCB0ZXh0OiAnXHU1RTM4XHU3NTI4XHU1MjlGXHU4MEZEJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9jaGVjay11cGRhdGVzJywgdGV4dDogJ1x1NjhDMFx1NjdFNVx1NjZGNFx1NjVCMCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvbG9hZGluZycsIHRleHQ6ICdcdTUxNjhcdTVDNDBsb2FkaW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC91aS1mcmFtZXdvcmsnLCB0ZXh0OiAnXHU3RUM0XHU0RUY2XHU1RTkzXHU1MjA3XHU2MzYyJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTVERTVcdTdBMEInLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9zdGFuZGFyZCcsIHRleHQ6ICdcdTg5QzRcdTgzMDMnIH0sXG4gICAgICAgIHsgbGluazogJ3Byb2plY3QvY2xpJywgdGV4dDogJ0NMSScgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9kaXInLCB0ZXh0OiAnXHU3NkVFXHU1RjU1XHU4QkY0XHU2NjBFJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3Rlc3QnLCB0ZXh0OiAnXHU1MzU1XHU1MTQzXHU2RDRCXHU4QkQ1JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3RhaWx3aW5kY3NzJywgdGV4dDogJ1RhaWx3aW5kIENTUycgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9jaGFuZ2VzZXQnLCB0ZXh0OiAnQ2hhbmdlc2V0JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3ZpdGUnLCB0ZXh0OiAnVml0ZSBDb25maWcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ1x1NTE3Nlx1NEVENicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdvdGhlci9wcm9qZWN0LXVwZGF0ZScsIHRleHQ6ICdcdTk4NzlcdTc2RUVcdTY2RjRcdTY1QjAnIH0sXG4gICAgICAgIHsgbGluazogJ290aGVyL3JlbW92ZS1jb2RlJywgdGV4dDogJ1x1NzlGQlx1OTY2NFx1NEVFM1x1NzgwMScgfSxcbiAgICAgICAgeyBsaW5rOiAnb3RoZXIvZmFxJywgdGV4dDogJ1x1NUUzOFx1ODlDMVx1OTVFRVx1OTg5OCcgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gc2lkZWJhckNvbW1lcmNpYWwoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGxpbms6ICdjb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1NEVBNFx1NkQ0MVx1N0ZBNCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAndGVjaG5pY2FsLXN1cHBvcnQnLFxuICAgICAgdGV4dDogJ1x1NjI4MFx1NjcyRlx1NjUyRlx1NjMwMScsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnY3VzdG9taXplZCcsXG4gICAgICB0ZXh0OiAnXHU1QjlBXHU1MjM2XHU1RjAwXHU1M0QxJyxcbiAgICB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBzaWRlYmFyQ29tcG9uZW50cygpOiBEZWZhdWx0VGhlbWUuU2lkZWJhckl0ZW1bXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgdGV4dDogJ1x1N0VDNFx1NEVGNicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2ludHJvZHVjdGlvbicsXG4gICAgICAgICAgdGV4dDogJ1x1NEVDQlx1N0VDRCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgY29sbGFwc2VkOiBmYWxzZSxcbiAgICAgIHRleHQ6ICdcdTVFMDNcdTVDNDBcdTdFQzRcdTRFRjYnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdsYXlvdXQtdWkvcGFnZScsXG4gICAgICAgICAgdGV4dDogJ1BhZ2UgXHU5ODc1XHU5NzYyJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgdGV4dDogJ1x1OTAxQVx1NzUyOFx1N0VDNFx1NEVGNicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLWFwaS1jb21wb25lbnQnLFxuICAgICAgICAgIHRleHQ6ICdBcGlDb21wb25lbnQgQXBpXHU3RUM0XHU0RUY2XHU1MzA1XHU4OEM1XHU1NjY4JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1tb2RhbCcsXG4gICAgICAgICAgdGV4dDogJ01vZGFsIFx1NkEyMVx1NjAwMVx1Njg0NicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tZHJhd2VyJyxcbiAgICAgICAgICB0ZXh0OiAnRHJhd2VyIFx1NjJCRFx1NUM0OScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tZm9ybScsXG4gICAgICAgICAgdGV4dDogJ0Zvcm0gXHU4ODY4XHU1MzU1JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi12eGUtdGFibGUnLFxuICAgICAgICAgIHRleHQ6ICdWeGUgVGFibGUgXHU4ODY4XHU2ODNDJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1jb3VudC10by1hbmltYXRvcicsXG4gICAgICAgICAgdGV4dDogJ0NvdW50VG9BbmltYXRvciBcdTY1NzBcdTVCNTdcdTUyQThcdTc1M0InLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLWVsbGlwc2lzLXRleHQnLFxuICAgICAgICAgIHRleHQ6ICdFbGxpcHNpc1RleHQgXHU3NzAxXHU3NTY1XHU2NTg3XHU2NzJDJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gbmF2KCk6IERlZmF1bHRUaGVtZS5OYXZJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGFjdGl2ZU1hdGNoOiAnXi8oZ3VpZGV8Y29tcG9uZW50cykvJyxcbiAgICAgIHRleHQ6ICdcdTY1ODdcdTY4NjMnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2ZU1hdGNoOiAnXi9ndWlkZS8nLFxuICAgICAgICAgIGxpbms6ICcvZ3VpZGUvaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdcdTYzMDdcdTUzNTcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZlTWF0Y2g6ICdeL2NvbXBvbmVudHMvJyxcbiAgICAgICAgICBsaW5rOiAnL2NvbXBvbmVudHMvaW50cm9kdWN0aW9uJyxcbiAgICAgICAgICB0ZXh0OiAnXHU3RUM0XHU0RUY2JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdcdTUzODZcdTUzRjJcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2RvYy52dmJpbi5jbicsXG4gICAgICAgICAgICAgIHRleHQ6ICcyLnhcdTcyNDhcdTY3MkNcdTY1ODdcdTY4NjMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTZGMTRcdTc5M0EnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnXHU2RjE0XHU3OTNBXHU3MjQ4XHU2NzJDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2FudC52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdBbnQgRGVzaWduIFZ1ZSBcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vbmFpdmUudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnTmFpdmUgXHU3MjQ4XHU2NzJDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2VsZS52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdFbGVtZW50IFBsdXNcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ1x1NTE3Nlx1NEVENicsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vdmJlbi52dmJpbi5jbicsXG4gICAgICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluIDIueCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogdmVyc2lvbixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL3ZiZW5qcy92dWUtdmJlbi1hZG1pbi9yZWxlYXNlcycsXG4gICAgICAgICAgdGV4dDogJ1x1NjZGNFx1NjVCMFx1NjVFNVx1NUZENycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL29yZ3MvdmJlbmpzL3Byb2plY3RzLzUnLFxuICAgICAgICAgIHRleHQ6ICdcdThERUZcdTdFQkZcdTU2RkUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vYmxvYi9tYWluLy5naXRodWIvY29udHJpYnV0aW5nLm1kJyxcbiAgICAgICAgICB0ZXh0OiAnXHU4RDIxXHU3MzJFJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnL2NvbW1lcmNpYWwvdGVjaG5pY2FsLXN1cHBvcnQnLFxuICAgICAgdGV4dDogJ1x1RDgzRVx1REQ4NCBcdTYyODBcdTY3MkZcdTY1MkZcdTYzMDEnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGluazogJy9zcG9uc29yL3BlcnNvbmFsJyxcbiAgICAgIHRleHQ6ICdcdTI3MjggXHU4RDVFXHU1MkE5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC9jb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2Nlx1MjAwRFx1RDgzRFx1REM2NiBcdTRFQTRcdTZENDFcdTdGQTQnLFxuICAgICAgLy8gaXRlbXM6IFtcbiAgICAgIC8vICAge1xuICAgICAgLy8gICAgIGxpbms6ICdodHRwczovL3F1bi5xcS5jb20vcXF3ZWIvcXVucHJvL3NoYXJlP193dj0zJl93d3Y9MTI4JmFwcENoYW5uZWw9c2hhcmUmaW52aXRlQ29kZT0yMnlTemo3cEtpdyZidXNpbmVzc1R5cGU9OSZmcm9tPTI0NjYxMCZiaXo9a2EmbWFpblNvdXJjZUlkPXNoYXJlJnN1YlNvdXJjZUlkPW90aGVycyZqdW1wc291cmNlPXNob3J0dXJsIy9wYycsXG4gICAgICAvLyAgICAgdGV4dDogJ1FRXHU5ODkxXHU5MDUzJyxcbiAgICAgIC8vICAgfSxcbiAgICAgIC8vICAge1xuICAgICAgLy8gICAgIGxpbms6ICdodHRwczovL3FtLnFxLmNvbS9jZ2ktYmluL3FtL3FyP193dj0xMDI3Jms9bWpabWxoZ1Z6elV4dmR4bGxCNkMxdkhwWDhPOFFSTDAmYXV0aEtleT1EQmRGYkJ3RVJtZmFLWTk1SnZSV3FMQ0pJUkdKQW1LeVpicnB6WjQxRUtETVo1U1I2TWZiak9CYWFOUk43M2ZyJm5vdmVyaWZ5PTAmZ3JvdXBfY29kZT00Mjg2MTA5JyxcbiAgICAgIC8vICAgICB0ZXh0OiAnUVFcdTdGQTQnLFxuICAgICAgLy8gICB9LFxuICAgICAgLy8gICB7XG4gICAgICAvLyAgICAgbGluazogJ2h0dHBzOi8vZGlzY29yZC5nZy9WVTYyalRlY2FkJyxcbiAgICAgIC8vICAgICB0ZXh0OiAnRGlzY29yZCcsXG4gICAgICAvLyAgIH0sXG4gICAgICAvLyBdLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbGluazogJy9mcmllbmQtbGlua3MvJyxcbiAgICAvLyAgIHRleHQ6ICdcdUQ4M0VcdUREMUQgXHU1M0NCXHU2MEM1XHU5NEZFXHU2M0E1JyxcbiAgICAvLyB9LFxuICBdO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoOiBEZWZhdWx0VGhlbWUuQWxnb2xpYVNlYXJjaE9wdGlvbnNbJ2xvY2FsZXMnXSA9IHtcbiAgcm9vdDoge1xuICAgIHBsYWNlaG9sZGVyOiAnXHU2NDFDXHU3RDIyXHU2NTg3XHU2ODYzJyxcbiAgICB0cmFuc2xhdGlvbnM6IHtcbiAgICAgIGJ1dHRvbjoge1xuICAgICAgICBidXR0b25BcmlhTGFiZWw6ICdcdTY0MUNcdTdEMjJcdTY1ODdcdTY4NjMnLFxuICAgICAgICBidXR0b25UZXh0OiAnXHU2NDFDXHU3RDIyXHU2NTg3XHU2ODYzJyxcbiAgICAgIH0sXG4gICAgICBtb2RhbDoge1xuICAgICAgICBlcnJvclNjcmVlbjoge1xuICAgICAgICAgIGhlbHBUZXh0OiAnXHU0RjYwXHU1M0VGXHU4MEZEXHU5NzAwXHU4OTgxXHU2OEMwXHU2N0U1XHU0RjYwXHU3Njg0XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1JyxcbiAgICAgICAgICB0aXRsZVRleHQ6ICdcdTY1RTBcdTZDRDVcdTgzQjdcdTUzRDZcdTdFRDNcdTY3OUMnLFxuICAgICAgICB9LFxuICAgICAgICBmb290ZXI6IHtcbiAgICAgICAgICBjbG9zZVRleHQ6ICdcdTUxNzNcdTk1RUQnLFxuICAgICAgICAgIG5hdmlnYXRlVGV4dDogJ1x1NTIwN1x1NjM2MicsXG4gICAgICAgICAgc2VhcmNoQnlUZXh0OiAnXHU2NDFDXHU3RDIyXHU2M0QwXHU0RjlCXHU4MDA1JyxcbiAgICAgICAgICBzZWxlY3RUZXh0OiAnXHU5MDA5XHU2MkU5JyxcbiAgICAgICAgfSxcbiAgICAgICAgbm9SZXN1bHRzU2NyZWVuOiB7XG4gICAgICAgICAgbm9SZXN1bHRzVGV4dDogJ1x1NjVFMFx1NkNENVx1NjI3RVx1NTIzMFx1NzZGOFx1NTE3M1x1N0VEM1x1Njc5QycsXG4gICAgICAgICAgcmVwb3J0TWlzc2luZ1Jlc3VsdHNMaW5rVGV4dDogJ1x1NzBCOVx1NTFGQlx1NTNDRFx1OTk4OCcsXG4gICAgICAgICAgcmVwb3J0TWlzc2luZ1Jlc3VsdHNUZXh0OiAnXHU0RjYwXHU4QkE0XHU0RTNBXHU4QkU1XHU2N0U1XHU4QkUyXHU1RTk0XHU4QkU1XHU2NzA5XHU3RUQzXHU2NzlDXHVGRjFGJyxcbiAgICAgICAgICBzdWdnZXN0ZWRRdWVyeVRleHQ6ICdcdTRGNjBcdTUzRUZcdTRFRTVcdTVDMURcdThCRDVcdTY3RTVcdThCRTInLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hCb3g6IHtcbiAgICAgICAgICBjYW5jZWxCdXR0b25BcmlhTGFiZWw6ICdcdTUzRDZcdTZEODgnLFxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICdcdTUzRDZcdTZEODgnLFxuICAgICAgICAgIHJlc2V0QnV0dG9uQXJpYUxhYmVsOiAnXHU2RTA1XHU5NjY0XHU2N0U1XHU4QkUyXHU2NzYxXHU0RUY2JyxcbiAgICAgICAgICByZXNldEJ1dHRvblRpdGxlOiAnXHU2RTA1XHU5NjY0XHU2N0U1XHU4QkUyXHU2NzYxXHU0RUY2JyxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhcnRTY3JlZW46IHtcbiAgICAgICAgICBmYXZvcml0ZVNlYXJjaGVzVGl0bGU6ICdcdTY1MzZcdTg1Q0YnLFxuICAgICAgICAgIG5vUmVjZW50U2VhcmNoZXNUZXh0OiAnXHU2Q0ExXHU2NzA5XHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgICByZWNlbnRTZWFyY2hlc1RpdGxlOiAnXHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgICByZW1vdmVGYXZvcml0ZVNlYXJjaEJ1dHRvblRpdGxlOiAnXHU0RUNFXHU2NTM2XHU4NUNGXHU0RTJEXHU3OUZCXHU5NjY0JyxcbiAgICAgICAgICByZW1vdmVSZWNlbnRTZWFyY2hCdXR0b25UaXRsZTogJ1x1NEVDRVx1NjQxQ1x1N0QyMlx1NTM4Nlx1NTNGMlx1NEUyRFx1NzlGQlx1OTY2NCcsXG4gICAgICAgICAgc2F2ZVJlY2VudFNlYXJjaEJ1dHRvblRpdGxlOiAnXHU0RkREXHU1QjU4XHU4MUYzXHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXNYLFNBQVMsZUFBZTtBQUM5WSxTQUFTLDZCQUE2Qjs7O0FDQ3RDLFNBQVMsb0JBQW9COzs7QUNBM0IsY0FBVzs7O0FESU4sSUFBTSxLQUFLLGFBQWE7QUFBQSxFQUM3QixhQUFhO0FBQUEsRUFDYixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsSUFDWCxxQkFBcUI7QUFBQSxJQUNyQixxQkFBcUI7QUFBQSxJQUNyQixXQUFXO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsU0FDRTtBQUFBLE1BQ0YsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLFdBQVcsd0JBQW9CLG9CQUFJLEtBQUssR0FBRSxZQUFZLENBQUM7QUFBQSxNQUN2RCxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0EsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLE1BQ1gsZUFBZTtBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1gsV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxzQkFBc0I7QUFBQSxJQUN0QixLQUFLLElBQUk7QUFBQSxJQUNULFNBQVM7QUFBQSxNQUNQLE9B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QUFBLElBQ0w7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsSUFDUjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsTUFBOEI7QUFDckMsU0FBTztBQUFBLElBQ0w7QUFBQSxNQUNFLGFBQWE7QUFBQSxNQUNiLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMO0FBQUEsVUFDRSxhQUFhO0FBQUEsVUFDYixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU1BO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixPQUFPO0FBQUEsWUFDTDtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0w7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxZQUNMO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFB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QUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVNELE9BQThCO0FBQ3JDLFNBQU87QUFBQSxJQUNMO0FBQUEsTUFDRSxhQUFhO0FBQUEsTUFDYixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxhQUFhO0FBQUEsVUFDYixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxZQUNMO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFB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UztBQUFBLFFBQ1QsTUFBTTtBQUFBLE1BQ1I7QUFBQSxJQUNGO0FBQUEsSUFDQSxDQUFDLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUFBLElBQ3JFO0FBQUEsTUFDRTtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQ0U7QUFBQSxRQUNGLE1BQU07QUFBQSxNQUNSO0FBQUEsSUFDRjtBQUFBLElBQ0EsQ0FBQyxRQUFRLEVBQUUsU0FBUyxtQkFBbUIsTUFBTSxXQUFXLENBQUM7QUFBQSxJQUN6RCxDQUFDLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixLQUFLLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2hEO0FBQ0Y7QUFFQSxTQUFTLE1BQWtCO0FBQ3pCLFNBQU87QUFBQSxJQUNMLHNCQUFzQjtBQUFBLElBQ3RCLFVBQVU7QUFBQSxNQUNSLGFBQ0U7QUFBQSxNQUNGLE9BQU87QUFBQSxRQUNMO0FBQUEsVUFDRSxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLE1BQ0EsSUFBSTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sWUFBWTtBQUFBLE1BQ1osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFFBQVEsUUFBUSxRQUFRLElBQUksR0FBRyxpQkFBaUI7QUFBQSxJQUNoRCxjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsTUFDUCxjQUFjLENBQUMsMENBQTBDO0FBQUEsTUFDekQsK0JBQStCLElBQUksT0FBTztBQUFBLElBQzVDO0FBQUEsRUFDRjtBQUNGOzs7QUhwS0EsSUFBTyxpQkFBUTtBQUFBLEVBQ2Isc0JBQXNCO0FBQUEsSUFDcEIsR0FBRztBQUFBLElBQ0gsU0FBUztBQUFBLE1BQ1AsSUFBSTtBQUFBLFFBQ0YsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBLFFBQ04sTUFBTTtBQUFBLFFBQ04sR0FBRztBQUFBLE1BQ0w7QUFBQSxNQUNBLE1BQU07QUFBQSxRQUNKLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQSxRQUNOLEdBQUc7QUFBQSxNQUNMO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJkZWZpbmVDb25maWciLCAiZGVmaW5lQ29uZmlnIiwgImRlZmluZUNvbmZpZyIsICJuYXYiLCAic2lkZWJhckNvbW1lcmNpYWwiLCAic2lkZWJhckd1aWRlIiwgImRlZmluZUNvbmZpZyJdCn0K
+export { config_default as default };
+// # sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLnZpdGVwcmVzcy9jb25maWcvaW5kZXgubXRzIiwgIi52aXRlcHJlc3MvY29uZmlnL2VuLm10cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLnZpdGVwcmVzcy9jb25maWcvc2hhcmVkLm10cyIsICIudml0ZXByZXNzL2NvbmZpZy9wbHVnaW5zL2RlbW8tcHJldmlldy50cyIsICIudml0ZXByZXNzL2NvbmZpZy96aC5tdHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXGluZGV4Lm10c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovQWRtaW5pc3RyYXRvci9Eb2N1bWVudHMvdnVlLXZiZW4tYWRtaW4vZG9jcy8udml0ZXByZXNzL2NvbmZpZy9pbmRleC5tdHNcIjtpbXBvcnQgeyB3aXRoUHdhIH0gZnJvbSAnQHZpdGUtcHdhL3ZpdGVwcmVzcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWdXaXRoVGhlbWUgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyBlbiB9IGZyb20gJy4vZW4ubXRzJztcbmltcG9ydCB7IHNoYXJlZCB9IGZyb20gJy4vc2hhcmVkLm10cyc7XG5pbXBvcnQgeyB6aCB9IGZyb20gJy4vemgubXRzJztcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFB3YShcbiAgZGVmaW5lQ29uZmlnV2l0aFRoZW1lKHtcbiAgICAuLi5zaGFyZWQsXG4gICAgbG9jYWxlczoge1xuICAgICAgZW46IHtcbiAgICAgICAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgICAgbGFuZzogJ2VuJyxcbiAgICAgICAgbGluazogJy9lbi8nLFxuICAgICAgICAuLi5lbixcbiAgICAgIH0sXG4gICAgICByb290OiB7XG4gICAgICAgIGxhYmVsOiAnXHU3QjgwXHU0RjUzXHU0RTJEXHU2NTg3JyxcbiAgICAgICAgbGFuZzogJ3poLUNOJyxcbiAgICAgICAgLi4uemgsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuKTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFxlbi5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3Z1ZS12YmVuLWFkbWluL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvZW4ubXRzXCI7aW1wb3J0IHR5cGUgeyBEZWZhdWx0VGhlbWUgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlcHJlc3MnO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vLi4vLi4vcGFja2FnZS5qc29uJztcblxuZXhwb3J0IGNvbnN0IGVuID0gZGVmaW5lQ29uZmlnKHtcbiAgZGVzY3JpcHRpb246ICdWYmVuIEFkbWluICYgRW50ZXJwcmlzZSBsZXZlbCBtYW5hZ2VtZW50IHN5c3RlbSBmcmFtZXdvcmsnLFxuICBsYW5nOiAnZW4tVVMnLFxuICB0aGVtZUNvbmZpZzoge1xuICAgIGRhcmtNb2RlU3dpdGNoTGFiZWw6ICdUaGVtZScsXG4gICAgZGFya01vZGVTd2l0Y2hUaXRsZTogJ1N3aXRjaCB0byBEYXJrIE1vZGUnLFxuICAgIGRvY0Zvb3Rlcjoge1xuICAgICAgbmV4dDogJ05leHQgUGFnZScsXG4gICAgICBwcmV2OiAnUHJldmlvdXMgUGFnZScsXG4gICAgfSxcbiAgICBlZGl0TGluazoge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vZWRpdC9tYWluL2RvY3Mvc3JjLzpwYXRoJyxcbiAgICAgIHRleHQ6ICdFZGl0IHRoaXMgcGFnZSBvbiBHaXRIdWInLFxuICAgIH0sXG4gICAgZm9vdGVyOiB7XG4gICAgICBjb3B5cmlnaHQ6IGBDb3B5cmlnaHQgXHUwMEE5IDIwMjAtJHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9IFZiZW5gLFxuICAgICAgbWVzc2FnZTogJ1JlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4nLFxuICAgIH0sXG4gICAgbGFuZ01lbnVMYWJlbDogJ0xhbmd1YWdlJyxcbiAgICBsYXN0VXBkYXRlZDoge1xuICAgICAgZm9ybWF0T3B0aW9uczoge1xuICAgICAgICBkYXRlU3R5bGU6ICdzaG9ydCcsXG4gICAgICAgIHRpbWVTdHlsZTogJ21lZGl1bScsXG4gICAgICB9LFxuICAgICAgdGV4dDogJ0xhc3QgdXBkYXRlZCBvbicsXG4gICAgfSxcbiAgICBsaWdodE1vZGVTd2l0Y2hUaXRsZTogJ1N3aXRjaCB0byBMaWdodCBNb2RlJyxcbiAgICBuYXY6IG5hdigpLFxuICAgIG91dGxpbmU6IHtcbiAgICAgIGxhYmVsOiAnTmF2aWdhdGUnLFxuICAgIH0sXG4gICAgcmV0dXJuVG9Ub3BMYWJlbDogJ0JhY2sgdG8gdG9wJyxcbiAgICBzaWRlYmFyOiB7XG4gICAgICAnL2VuL2NvbW1lcmNpYWwvJzoge1xuICAgICAgICBiYXNlOiAnL2VuL2NvbW1lcmNpYWwvJyxcbiAgICAgICAgaXRlbXM6IHNpZGViYXJDb21tZXJjaWFsKCksXG4gICAgICB9LFxuICAgICAgJy9lbi9ndWlkZS8nOiB7IGJhc2U6ICcvZW4vZ3VpZGUvJywgaXRlbXM6IHNpZGViYXJHdWlkZSgpIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaWRlYmFyR3VpZGUoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB0ZXh0OiAnSW50cm9kdWN0aW9uJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdBYm91dCBWYmVuIEFkbWluJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdpbnRyb2R1Y3Rpb24vd2h5JyxcbiAgICAgICAgICB0ZXh0OiAnV2h5IENob29zZSBVcz8nLFxuICAgICAgICB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vcXVpY2stc3RhcnQnLCB0ZXh0OiAnUXVpY2sgU3RhcnQnIH0sXG4gICAgICAgIHsgbGluazogJ2ludHJvZHVjdGlvbi90aGluJywgdGV4dDogJ0xpdGUgVmVyc2lvbicgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnQmFzaWNzJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvY29uY2VwdCcsIHRleHQ6ICdCYXNpYyBDb25jZXB0cycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9kZXZlbG9wbWVudCcsIHRleHQ6ICdMb2NhbCBEZXZlbG9wbWVudCcgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9yb3V0ZScsIHRleHQ6ICdSb3V0aW5nIGFuZCBNZW51JyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3NldHRpbmdzJywgdGV4dDogJ0NvbmZpZ3VyYXRpb24nIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvaWNvbnMnLCB0ZXh0OiAnSWNvbnMnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvc3R5bGVzJywgdGV4dDogJ1N0eWxlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9leHRlcm5hbC1tb2R1bGUnLCB0ZXh0OiAnRXh0ZXJuYWwgTW9kdWxlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9idWlsZCcsIHRleHQ6ICdCdWlsZCBhbmQgRGVwbG95bWVudCcgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9zZXJ2ZXInLCB0ZXh0OiAnU2VydmVyIEludGVyYWN0aW9uIGFuZCBEYXRhIE1vY2snIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ0FkdmFuY2VkJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL2xvZ2luJywgdGV4dDogJ0xvZ2luJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC90aGVtZScsIHRleHQ6ICdUaGVtZScgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvYWNjZXNzJywgdGV4dDogJ0FjY2VzcyBDb250cm9sJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2NhbGUnLCB0ZXh0OiAnSW50ZXJuYXRpb25hbGl6YXRpb24nIH0sXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL2ZlYXR1cmVzJywgdGV4dDogJ0NvbW1vbiBGZWF0dXJlcycgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvY2hlY2stdXBkYXRlcycsIHRleHQ6ICdDaGVjayBVcGRhdGVzJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2FkaW5nJywgdGV4dDogJ0dsb2JhbCBMb2FkaW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC91aS1mcmFtZXdvcmsnLCB0ZXh0OiAnVUkgRnJhbWV3b3JrIFN3aXRjaGluZycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnRW5naW5lZXJpbmcnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9zdGFuZGFyZCcsIHRleHQ6ICdTdGFuZGFyZHMnIH0sXG4gICAgICAgIHsgbGluazogJ3Byb2plY3QvY2xpJywgdGV4dDogJ0NMSScgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9kaXInLCB0ZXh0OiAnRGlyZWN0b3J5IEV4cGxhbmF0aW9uJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3Rlc3QnLCB0ZXh0OiAnVW5pdCBUZXN0aW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3RhaWx3aW5kY3NzJywgdGV4dDogJ1RhaWx3aW5kIENTUycgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9jaGFuZ2VzZXQnLCB0ZXh0OiAnQ2hhbmdlc2V0JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3ZpdGUnLCB0ZXh0OiAnVml0ZSBDb25maWcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ090aGVycycsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdvdGhlci9wcm9qZWN0LXVwZGF0ZScsIHRleHQ6ICdQcm9qZWN0IFVwZGF0ZScgfSxcbiAgICAgICAgeyBsaW5rOiAnb3RoZXIvcmVtb3ZlLWNvZGUnLCB0ZXh0OiAnUmVtb3ZlIENvZGUnIH0sXG4gICAgICAgIHsgbGluazogJ290aGVyL2ZhcScsIHRleHQ6ICdGQVEnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIHNpZGViYXJDb21tZXJjaWFsKCk6IERlZmF1bHRUaGVtZS5TaWRlYmFySXRlbVtdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBsaW5rOiAnY29tbXVuaXR5JyxcbiAgICAgIHRleHQ6ICdDb21tdW5pdHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbGluazogJ3RlY2huaWNhbC1zdXBwb3J0JyxcbiAgICAgIHRleHQ6ICdUZWNobmljYWwtc3VwcG9ydCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnY3VzdG9taXplZCcsXG4gICAgICB0ZXh0OiAnQ3VzdG9taXplZCcsXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gbmF2KCk6IERlZmF1bHRUaGVtZS5OYXZJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGFjdGl2ZU1hdGNoOiAnXi9lbi8oZ3VpZGV8Y29tcG9uZW50cykvJyxcbiAgICAgIHRleHQ6ICdEb2MnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2ZU1hdGNoOiAnXi9lbi9ndWlkZS8nLFxuICAgICAgICAgIGxpbms6ICcvZW4vZ3VpZGUvaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdHdWlkZScsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICBhY3RpdmVNYXRjaDogJ14vZW4vY29tcG9uZW50cy8nLFxuICAgICAgICAvLyAgIGxpbms6ICcvZW4vY29tcG9uZW50cy9pbnRyb2R1Y3Rpb24nLFxuICAgICAgICAvLyAgIHRleHQ6ICdDb21wb25lbnRzJyxcbiAgICAgICAgLy8gfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdIaXN0b3JpY2FsIFZlcnNpb25zJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9kb2MudnZiaW4uY24nLFxuICAgICAgICAgICAgICB0ZXh0OiAnMi54IFZlcnNpb24gRG9jdW1lbnRhdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ0RlbW8nLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnRGVtbyBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2FudC52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdBbnQgRGVzaWduIFZ1ZSBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL25haXZlLnZiZW4ucHJvJyxcbiAgICAgICAgICAgICAgdGV4dDogJ05haXZlIFZlcnNpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vZWxlLnZiZW4ucHJvJyxcbiAgICAgICAgICAgICAgdGV4dDogJ0VsZW1lbnQgUGx1cyBWZXJzaW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdPdGhlcnMnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL3ZiZW4udnZiaW4uY24nLFxuICAgICAgICAgICAgICB0ZXh0OiAnVmJlbiBBZG1pbiAyLngnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6IHZlcnNpb24sXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vcmVsZWFzZXMnLFxuICAgICAgICAgIHRleHQ6ICdDaGFuZ2Vsb2cnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3ZiZW5qcy9wcm9qZWN0cy81JyxcbiAgICAgICAgICB0ZXh0OiAnUm9hZG1hcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL3ZiZW5qcy92dWUtdmJlbi1hZG1pbi9ibG9iL21haW4vLmdpdGh1Yi9jb250cmlidXRpbmcubWQnLFxuICAgICAgICAgIHRleHQ6ICdDb250cmlidXRpb24nLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC90ZWNobmljYWwtc3VwcG9ydCcsXG4gICAgICB0ZXh0OiAnXHVEODNFXHVERDg0IFRlY2ggU3VwcG9ydCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnL3Nwb25zb3IvcGVyc29uYWwnLFxuICAgICAgdGV4dDogJ1x1MjcyOCBTcG9uc29yJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC9jb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2Nlx1MjAwRFx1RDgzRFx1REM2NiBDb21tdW5pdHknLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbGluazogJy9mcmllbmQtbGlua3MvJyxcbiAgICAvLyAgIHRleHQ6ICdcdUQ4M0VcdUREMUQgRnJpZW5kIExpbmtzJyxcbiAgICAvLyB9LFxuICBdO1xufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwieS1jb2RlLW1vbm9yZXBvXCIsXG4gIFwidmVyc2lvblwiOiBcIjEuMC4wLWFscGhhLjFcIixcbiAgXCJwcml2YXRlXCI6IHRydWUsXG4gIFwia2V5d29yZHNcIjogW1xuICAgIFwibW9ub3JlcG9cIixcbiAgICBcInR1cmJvXCIsXG4gICAgXCJ2dWVcIixcbiAgICBcImxvdy1jb2RlXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIndhbmd4dWVmZW5nXCIsXG4gICAgXCJlbWFpbFwiOiBcIndhbmd4dWVmZW5nQHNoaXl1ZS5jb21cIlxuICB9LFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwiY3Jvc3MtZW52IE5PREVfT1BUSU9OUz0tLW1heC1vbGQtc3BhY2Utc2l6ZT04MTkyIHR1cmJvIGJ1aWxkXCIsXG4gICAgXCJidWlsZDphbmFseXplXCI6IFwidHVyYm8gYnVpbGQ6YW5hbHl6ZVwiLFxuICAgIFwiYnVpbGQ6ZG9ja2VyXCI6IFwiLi9zY3JpcHRzL2RlcGxveS9idWlsZC1sb2NhbC1kb2NrZXItaW1hZ2Uuc2hcIixcbiAgICBcImJ1aWxkOmRvY3NcIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1AdmJlbi9kb2NzXCIsXG4gICAgXCJidWlsZDplbGVcIjogXCJwbnBtIHJ1biBidWlsZCAtLWZpbHRlcj1AdmJlbi93ZWItZWxlXCIsXG4gICAgXCJidWlsZDpwbGF5XCI6IFwicG5wbSBydW4gYnVpbGQgLS1maWx0ZXI9QHZiZW4vcGxheWdyb3VuZFwiLFxuICAgIFwiY2hhbmdlc2V0XCI6IFwicG5wbSBleGVjIGNoYW5nZXNldFwiLFxuICAgIFwiY2hlY2tcIjogXCJwbnBtIHJ1biBjaGVjazpjaXJjdWxhciAmJiBwbnBtIHJ1biBjaGVjazpkZXAgJiYgcG5wbSBydW4gY2hlY2s6dHlwZSAmJiBwbnBtIGNoZWNrOmNzcGVsbFwiLFxuICAgIFwiY2hlY2s6Y2lyY3VsYXJcIjogXCJ2c2ggY2hlY2stY2lyY3VsYXJcIixcbiAgICBcImNoZWNrOmNzcGVsbFwiOiBcImNzcGVsbCBsaW50ICoqLyoudHMgKiovUkVBRE1FLm1kIC5jaGFuZ2VzZXQvKi5tZCAtLW5vLXByb2dyZXNzXCIsXG4gICAgXCJjaGVjazpkZXBcIjogXCJ2c2ggY2hlY2stZGVwXCIsXG4gICAgXCJjaGVjazp0eXBlXCI6IFwidHVyYm8gcnVuIHR5cGVjaGVja1wiLFxuICAgIFwiY2xlYW5cIjogXCJub2RlIC4vc2NyaXB0cy9jbGVhbi5tanNcIixcbiAgICBcImNvbW1pdFwiOiBcImN6Z1wiLFxuICAgIFwiZGV2XCI6IFwidHVyYm8tcnVuIGRldlwiLFxuICAgIFwiZGV2OmRvY3NcIjogXCJwbnBtIC1GIEB2YmVuL2RvY3MgcnVuIGRldlwiLFxuICAgIFwiZGV2OmVsZVwiOiBcInBucG0gLUYgQHZiZW4vd2ViLWVsZSBydW4gZGV2XCIsXG4gICAgXCJkZXY6cGxheVwiOiBcInBucG0gLUYgQHZiZW4vcGxheWdyb3VuZCBydW4gZGV2XCIsXG4gICAgXCJmb3JtYXRcIjogXCJ2c2ggbGludCAtLWZvcm1hdFwiLFxuICAgIFwibGludFwiOiBcInZzaCBsaW50XCIsXG4gICAgXCJwb3N0aW5zdGFsbFwiOiBcInBucG0gLXIgcnVuIHN0dWIgLS1pZi1wcmVzZW50XCIsXG4gICAgXCJwcmVpbnN0YWxsXCI6IFwibnB4IG9ubHktYWxsb3cgcG5wbVwiLFxuICAgIFwicHJlcGFyZVwiOiBcImlzLWNpIHx8IGh1c2t5XCIsXG4gICAgXCJwcmV2aWV3XCI6IFwidHVyYm8tcnVuIHByZXZpZXdcIixcbiAgICBcInB1YmxpbnRcIjogXCJ2c2ggcHVibGludFwiLFxuICAgIFwicmVpbnN0YWxsXCI6IFwicG5wbSBjbGVhbiAtLWRlbC1sb2NrICYmIHBucG0gaW5zdGFsbFwiLFxuICAgIFwidGVzdDp1bml0XCI6IFwidml0ZXN0IHJ1biAtLWRvbVwiLFxuICAgIFwidGVzdDplMmVcIjogXCJ0dXJibyBydW4gdGVzdDplMmVcIixcbiAgICBcInVwZGF0ZTpkZXBzXCI6IFwibnB4IHRhemUgLXIgLXdcIixcbiAgICBcInZlcnNpb25cIjogXCJwbnBtIGV4ZWMgY2hhbmdlc2V0IHZlcnNpb24gJiYgcG5wbSBpbnN0YWxsIC0tbm8tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgXCJyZXNldFwiOiBcInBucG0gcnVuIGNsZWFuICYmIHBucG0gaW5zdGFsbFwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBjaGFuZ2VzZXRzL2NoYW5nZWxvZy1naXRodWJcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQGNoYW5nZXNldHMvY2xpXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcIkBwbGF5d3JpZ2h0L3Rlc3RcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHZiZW4vY29tbWl0bGludC1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vZXNsaW50LWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi9wcmV0dGllci1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vc3R5bGVsaW50LWNvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdmJlbi90YWlsd2luZC1jb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdHNjb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQHZiZW4vdHVyYm8tcnVuXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3ZpdGUtY29uZmlnXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB2YmVuL3ZzaFwiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAdml0ZWpzL3BsdWdpbi12dWVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiQHZpdGVqcy9wbHVnaW4tdnVlLWpzeFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJAdnVlL3Rlc3QtdXRpbHNcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiYXV0b3ByZWZpeGVyXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImNyb3NzLWVudlwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJjc3BlbGxcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwiaGFwcHktZG9tXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImh1c2t5XCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImlzLWNpXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcImxpbnQtc3RhZ2VkXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInBsYXl3cmlnaHRcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwicmltcmFmXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInRhaWx3aW5kY3NzXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInR1cmJvXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidW5idWlsZFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ2aXRlXCI6IFwiY2F0YWxvZzpcIixcbiAgICBcInZpdGVzdFwiOiBcImNhdGFsb2c6XCIsXG4gICAgXCJ2dWVcIjogXCJjYXRhbG9nOlwiLFxuICAgIFwidnVlLXRzY1wiOiBcImNhdGFsb2c6XCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTIwLjEwLjBcIixcbiAgICBcInBucG1cIjogXCI+PTEwLjYuMlwiXG4gIH0sXG4gIFwicGFja2FnZU1hbmFnZXJcIjogXCJwbnBtQDEwLjYuMlwiLFxuICBcInBucG1cIjoge1xuICAgIFwicGVlckRlcGVuZGVuY3lSdWxlc1wiOiB7XG4gICAgICBcImFsbG93ZWRWZXJzaW9uc1wiOiB7XG4gICAgICAgIFwiZXNsaW50XCI6IFwiKlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIm92ZXJyaWRlc1wiOiB7XG4gICAgICBcIkBhc3QtZ3JlcC9uYXBpXCI6IFwiY2F0YWxvZzpcIixcbiAgICAgIFwiQGN0cmwvdGlueWNvbG9yXCI6IFwiY2F0YWxvZzpcIixcbiAgICAgIFwiY2xzeFwiOiBcImNhdGFsb2c6XCIsXG4gICAgICBcImVzYnVpbGRcIjogXCIwLjI0LjBcIixcbiAgICAgIFwicGluaWFcIjogXCJjYXRhbG9nOlwiLFxuICAgICAgXCJ2dWVcIjogXCJjYXRhbG9nOlwiXG4gICAgfSxcbiAgICBcIm5ldmVyQnVpbHREZXBlbmRlbmNpZXNcIjogW1xuICAgICAgXCJjYW52YXNcIixcbiAgICAgIFwibm9kZS1neXBcIlxuICAgIF1cbiAgfVxufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXHNoYXJlZC5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0FkbWluaXN0cmF0b3IvRG9jdW1lbnRzL3Z1ZS12YmVuLWFkbWluL2RvY3MvLnZpdGVwcmVzcy9jb25maWcvc2hhcmVkLm10c1wiO2ltcG9ydCB0eXBlIHsgUHdhT3B0aW9ucyB9IGZyb20gJ0B2aXRlLXB3YS92aXRlcHJlc3MnO1xuaW1wb3J0IHR5cGUgeyBIZWFkQ29uZmlnIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7XG4gIHZpdGVBcmNoaXZlclBsdWdpbixcbiAgdml0ZVZ4ZVRhYmxlSW1wb3J0c1BsdWdpbixcbn0gZnJvbSAnQHZiZW4vdml0ZS1jb25maWcnO1xuXG5pbXBvcnQge1xuICBHaXRDaGFuZ2Vsb2csXG4gIEdpdENoYW5nZWxvZ01hcmtkb3duU2VjdGlvbixcbn0gZnJvbSAnQG5vbGViYXNlL3ZpdGVwcmVzcy1wbHVnaW4tZ2l0LWNoYW5nZWxvZy92aXRlJztcbmltcG9ydCB0YWlsd2luZCBmcm9tICd0YWlsd2luZGNzcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcsIHBvc3Rjc3NJc29sYXRlU3R5bGVzIH0gZnJvbSAndml0ZXByZXNzJztcbmltcG9ydCB7XG4gIGdyb3VwSWNvbk1kUGx1Z2luLFxuICBncm91cEljb25WaXRlUGx1Z2luLFxufSBmcm9tICd2aXRlcHJlc3MtcGx1Z2luLWdyb3VwLWljb25zJztcblxuaW1wb3J0IHsgZGVtb1ByZXZpZXdQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvZGVtby1wcmV2aWV3JztcbmltcG9ydCB7IHNlYXJjaCBhcyB6aFNlYXJjaCB9IGZyb20gJy4vemgubXRzJztcblxuZXhwb3J0IGNvbnN0IHNoYXJlZCA9IGRlZmluZUNvbmZpZyh7XG4gIGFwcGVhcmFuY2U6ICdkYXJrJyxcbiAgaGVhZDogaGVhZCgpLFxuICBtYXJrZG93bjoge1xuICAgIHByZUNvbmZpZyhtZCkge1xuICAgICAgbWQudXNlKGRlbW9QcmV2aWV3UGx1Z2luKTtcbiAgICAgIG1kLnVzZShncm91cEljb25NZFBsdWdpbik7XG4gICAgfSxcbiAgfSxcbiAgcHdhOiBwd2EoKSxcbiAgc3JjRGlyOiAnc3JjJyxcbiAgdGhlbWVDb25maWc6IHtcbiAgICBpMThuUm91dGluZzogdHJ1ZSxcbiAgICBsb2dvOiAnaHR0cHM6Ly91bnBrZy5jb20vQHZiZW5qcy9zdGF0aWMtc291cmNlQDAuMS43L3NvdXJjZS9sb2dvLXYxLndlYnAnLFxuICAgIHNlYXJjaDoge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICBsb2NhbGVzOiB7XG4gICAgICAgICAgLi4uemhTZWFyY2gsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXI6ICdsb2NhbCcsXG4gICAgfSxcbiAgICBzaXRlVGl0bGU6ICdWYmVuIEFkbWluJyxcbiAgICBzb2NpYWxMaW5rczogW1xuICAgICAgeyBpY29uOiAnZ2l0aHViJywgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4nIH0sXG4gICAgXSxcbiAgfSxcbiAgdGl0bGU6ICdWYmVuIEFkbWluJyxcbiAgdml0ZToge1xuICAgIGJ1aWxkOiB7XG4gICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IEluZmluaXR5LFxuICAgICAgbWluaWZ5OiAndGVyc2VyJyxcbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcG9zdGNzczoge1xuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgdGFpbHdpbmQoKSxcbiAgICAgICAgICBwb3N0Y3NzSXNvbGF0ZVN0eWxlcyh7IGluY2x1ZGVGaWxlczogWy92cC1kb2NcXC5jc3MvXSB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBhcGk6ICdtb2Rlcm4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGpzb246IHtcbiAgICAgIHN0cmluZ2lmeTogdHJ1ZSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIEdpdENoYW5nZWxvZyh7XG4gICAgICAgIG1hcEF1dGhvcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXBCeU5hbWVBbGlhc2VzOiBbJ1ZiZW4nXSxcbiAgICAgICAgICAgIG5hbWU6ICd2YmVuJyxcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnYW5uY3diJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd2aW5jZScsXG4gICAgICAgICAgICB1c2VybmFtZTogJ3ZpbmNlMjkyMDA3JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdMaSBLdWknLFxuICAgICAgICAgICAgdXNlcm5hbWU6ICdsaWt1aTYyOCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVwb1VSTDogKCkgPT4gJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4nLFxuICAgICAgfSksXG4gICAgICBHaXRDaGFuZ2Vsb2dNYXJrZG93blNlY3Rpb24oKSxcbiAgICAgIHZpdGVBcmNoaXZlclBsdWdpbih7IG91dHB1dERpcjogJy52aXRlcHJlc3MnIH0pLFxuICAgICAgZ3JvdXBJY29uVml0ZVBsdWdpbigpLFxuICAgICAgYXdhaXQgdml0ZVZ4ZVRhYmxlSW1wb3J0c1BsdWdpbigpLFxuICAgIF0sXG4gICAgc2VydmVyOiB7XG4gICAgICBmczoge1xuICAgICAgICBhbGxvdzogWycuLi8uLiddLFxuICAgICAgfSxcbiAgICAgIGhvc3Q6IHRydWUsXG4gICAgICBwb3J0OiA2MTczLFxuICAgIH0sXG5cbiAgICBzc3I6IHtcbiAgICAgIGV4dGVybmFsOiBbJ0B2dWUvcmVwbCddLFxuICAgIH0sXG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaGVhZCgpOiBIZWFkQ29uZmlnW10ge1xuICByZXR1cm4gW1xuICAgIFsnbWV0YScsIHsgY29udGVudDogJ1ZiZW5qcyBUZWFtJywgbmFtZTogJ2F1dGhvcicgfV0sXG4gICAgW1xuICAgICAgJ21ldGEnLFxuICAgICAge1xuICAgICAgICBjb250ZW50OiAndmJlbiwgdml0ZWpzLCB2aXRlLCBzaGFjZG4tdWksIHZ1ZScsXG4gICAgICAgIG5hbWU6ICdrZXl3b3JkcycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgWydsaW5rJywgeyBocmVmOiAnL2Zhdmljb24uaWNvJywgcmVsOiAnaWNvbicsIHR5cGU6ICdpbWFnZS9zdmcreG1sJyB9XSxcbiAgICBbXG4gICAgICAnbWV0YScsXG4gICAgICB7XG4gICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgJ3dpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEsbWluaW11bS1zY2FsZT0xLjAsbWF4aW11bS1zY2FsZT0xLjAsdXNlci1zY2FsYWJsZT1ubycsXG4gICAgICAgIG5hbWU6ICd2aWV3cG9ydCcsXG4gICAgICB9LFxuICAgIF0sXG4gICAgWydtZXRhJywgeyBjb250ZW50OiAndmJlbiBhZG1pbiBkb2NzJywgbmFtZTogJ2tleXdvcmRzJyB9XSxcbiAgICBbJ2xpbmsnLCB7IGhyZWY6ICcvZmF2aWNvbi5pY28nLCByZWw6ICdpY29uJyB9XSxcbiAgICAvLyBbXG4gICAgLy8gICAnc2NyaXB0JyxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgc3JjOiAnaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tJyxcbiAgICAvLyAgIH0sXG4gICAgLy8gXSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gcHdhKCk6IFB3YU9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGluY2x1ZGVNYW5pZmVzdEljb25zOiBmYWxzZSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdWYmVuIEFkbWluIGlzIGEgbW9kZXJuIGFkbWluIGRhc2hib2FyZCB0ZW1wbGF0ZSBiYXNlZCBvbiBWdWUgMy4gJyxcbiAgICAgIGljb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgICAgIHNyYzogJ2h0dHBzOi8vdW5wa2cuY29tL0B2YmVuanMvc3RhdGljLXNvdXJjZUAwLjEuNy9zb3VyY2UvcHdhLWljb24tMTkyLnBuZycsXG4gICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaXplczogJzUxMng1MTInLFxuICAgICAgICAgIHNyYzogJ2h0dHBzOi8vdW5wa2cuY29tL0B2YmVuanMvc3RhdGljLXNvdXJjZUAwLjEuNy9zb3VyY2UvcHdhLWljb24tNTEyLnBuZycsXG4gICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaWQ6ICcvJyxcbiAgICAgIG5hbWU6ICdWYmVuIEFkbWluIERvYycsXG4gICAgICBzaG9ydF9uYW1lOiAndmJlbl9hZG1pbl9kb2MnLFxuICAgICAgdGhlbWVfY29sb3I6ICcjZmZmZmZmJyxcbiAgICB9LFxuICAgIG91dERpcjogcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCAnLnZpdGVwcmVzcy9kaXN0JyksXG4gICAgcmVnaXN0ZXJUeXBlOiAnYXV0b1VwZGF0ZScsXG4gICAgd29ya2JveDoge1xuICAgICAgZ2xvYlBhdHRlcm5zOiBbJyoqLyoue2NzcyxqcyxodG1sLHN2ZyxwbmcsaWNvLHR4dCx3b2ZmMn0nXSxcbiAgICAgIG1heGltdW1GaWxlU2l6ZVRvQ2FjaGVJbkJ5dGVzOiA1ICogMTAyNCAqIDEwMjQsXG4gICAgfSxcbiAgfTtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRDpcXFxcQWRtaW5pc3RyYXRvclxcXFxEb2N1bWVudHNcXFxcdnVlLXZiZW4tYWRtaW5cXFxcZG9jc1xcXFwudml0ZXByZXNzXFxcXGNvbmZpZ1xcXFxwbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxBZG1pbmlzdHJhdG9yXFxcXERvY3VtZW50c1xcXFx2dWUtdmJlbi1hZG1pblxcXFxkb2NzXFxcXC52aXRlcHJlc3NcXFxcY29uZmlnXFxcXHBsdWdpbnNcXFxcZGVtby1wcmV2aWV3LnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy92dWUtdmJlbi1hZG1pbi9kb2NzLy52aXRlcHJlc3MvY29uZmlnL3BsdWdpbnMvZGVtby1wcmV2aWV3LnRzXCI7aW1wb3J0IHR5cGUgeyBNYXJrZG93bkVudiwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gJ3ZpdGVwcmVzcyc7XG5cbmltcG9ydCBjcnlwdG8gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgcmVhZGRpclN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuXG5leHBvcnQgY29uc3QgcmF3UGF0aFJlZ2V4cCA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tc3VwZXItbGluZWFyLWJhY2t0cmFja2luZywgcmVnZXhwL3N0cmljdFxuICAvXiguKz8oPzpcXC4oW1xcZGEtel0rKSk/KSgjW1xcdy1dKyk/KD86ID97KFxcZCsoPzpbLC1dXFxkKykqKT8gPyhcXFMrKT99KT8gPyg/OlxcWyguKyldKT8kLztcblxuZnVuY3Rpb24gcmF3UGF0aFRvVG9rZW4ocmF3UGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IFtcbiAgICBmaWxlcGF0aCA9ICcnLFxuICAgIGV4dGVuc2lvbiA9ICcnLFxuICAgIHJlZ2lvbiA9ICcnLFxuICAgIGxpbmVzID0gJycsXG4gICAgbGFuZyA9ICcnLFxuICAgIHJhd1RpdGxlID0gJycsXG4gIF0gPSAocmF3UGF0aFJlZ2V4cC5leGVjKHJhd1BhdGgpIHx8IFtdKS5zbGljZSgxKTtcblxuICBjb25zdCB0aXRsZSA9IHJhd1RpdGxlIHx8IGZpbGVwYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG5cbiAgcmV0dXJuIHsgZXh0ZW5zaW9uLCBmaWxlcGF0aCwgbGFuZywgbGluZXMsIHJlZ2lvbiwgdGl0bGUgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlbW9QcmV2aWV3UGx1Z2luID0gKG1kOiBNYXJrZG93blJlbmRlcmVyKSA9PiB7XG4gIG1kLmNvcmUucnVsZXIuYWZ0ZXIoJ2lubGluZScsICdkZW1vLXByZXZpZXcnLCAoc3RhdGUpID0+IHtcbiAgICBjb25zdCBpbnNlcnRDb21wb25lbnRJbXBvcnQgPSAoaW1wb3J0U3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gc3RhdGUudG9rZW5zLmZpbmRJbmRleChcbiAgICAgICAgKGkpID0+IGkudHlwZSA9PT0gJ2h0bWxfYmxvY2snICYmIGkuY29udGVudC5tYXRjaCgvPHNjcmlwdCBzZXR1cD4vZyksXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBjb25zdCBpbXBvcnRDb21wb25lbnQgPSBuZXcgc3RhdGUuVG9rZW4oJ2h0bWxfYmxvY2snLCAnJywgMCk7XG4gICAgICAgIGltcG9ydENvbXBvbmVudC5jb250ZW50ID0gYDxzY3JpcHQgc2V0dXA+XFxuJHtpbXBvcnRTdHJpbmd9XFxuPC9zY3JpcHQ+XFxuYDtcbiAgICAgICAgc3RhdGUudG9rZW5zLnNwbGljZSgwLCAwLCBpbXBvcnRDb21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXRlLnRva2Vuc1tpbmRleF0pIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RhdGUudG9rZW5zW2luZGV4XS5jb250ZW50O1xuICAgICAgICAgIHN0YXRlLnRva2Vuc1tpbmRleF0uY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShcbiAgICAgICAgICAgICc8L3NjcmlwdD4nLFxuICAgICAgICAgICAgYCR7aW1wb3J0U3RyaW5nfVxcbjwvc2NyaXB0PmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLy8gRGVmaW5lIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdGhlIGRlc2lyZWQgcGF0dGVyblxuICAgIGNvbnN0IHJlZ2V4ID0gLzxEZW1vUHJldmlld1tePl0qXFxzZGlyPVwiKFteXCJdKilcIi9nO1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgTWFya2Rvd24gY29udGVudCBhbmQgcmVwbGFjZSB0aGUgcGF0dGVyblxuICAgIHN0YXRlLnNyYyA9IHN0YXRlLnNyYy5yZXBsYWNlQWxsKHJlZ2V4LCAoX21hdGNoLCBkaXIpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NyYycsIGRpcikucmVwbGFjZUFsbChcbiAgICAgICAgJ1xcXFwnLFxuICAgICAgICAnLycsXG4gICAgICApO1xuXG4gICAgICBsZXQgY2hpbGRGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBkaXJFeGlzdHMgPSB0cnVlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZEZpbGVzID1cbiAgICAgICAgICByZWFkZGlyU3luYyhjb21wb25lbnREaXIsIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgICAgICByZWN1cnNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgd2l0aEZpbGVUeXBlczogZmFsc2UsXG4gICAgICAgICAgfSkgfHwgW107XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgZGlyRXhpc3RzID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlyRXhpc3RzKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgY29uc3QgdW5pcXVlV29yZCA9IGdlbmVyYXRlQ29udGVudEhhc2goY29tcG9uZW50RGlyKTtcblxuICAgICAgY29uc3QgQ29tcG9uZW50TmFtZSA9IGBEZW1vQ29tcG9uZW50XyR7dW5pcXVlV29yZH1gO1xuICAgICAgaW5zZXJ0Q29tcG9uZW50SW1wb3J0KFxuICAgICAgICBgaW1wb3J0ICR7Q29tcG9uZW50TmFtZX0gZnJvbSAnJHtjb21wb25lbnREaXJ9L2luZGV4LnZ1ZSdgLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgcGF0aDogX3BhdGggfSA9IHN0YXRlLmVudiBhcyBNYXJrZG93bkVudjtcblxuICAgICAgY29uc3QgaW5kZXggPSBzdGF0ZS50b2tlbnMuZmluZEluZGV4KChpKSA9PiBpLmNvbnRlbnQubWF0Y2gocmVnZXgpKTtcblxuICAgICAgaWYgKCFzdGF0ZS50b2tlbnNbaW5kZXhdKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpcnN0U3RyaW5nID0gJ2luZGV4LnZ1ZSc7XG4gICAgICBjaGlsZEZpbGVzID0gY2hpbGRGaWxlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhID09PSBmaXJzdFN0cmluZykgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYiA9PT0gZmlyc3RTdHJpbmcpIHJldHVybiAxO1xuICAgICAgICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsICdlbicsIHsgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KTtcbiAgICAgIH0pO1xuICAgICAgc3RhdGUudG9rZW5zW2luZGV4XS5jb250ZW50ID1cbiAgICAgICAgYDxEZW1vUHJldmlldyBmaWxlcz1cIiR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNoaWxkRmlsZXMpKX1cIiA+PCR7Q29tcG9uZW50TmFtZX0vPlxuICAgICAgICBgO1xuXG4gICAgICBjb25zdCBfZHVtbXlUb2tlbiA9IG5ldyBzdGF0ZS5Ub2tlbignJywgJycsIDApO1xuICAgICAgY29uc3QgdG9rZW5BcnJheTogQXJyYXk8dHlwZW9mIF9kdW1teVRva2VuPiA9IFtdO1xuICAgICAgY2hpbGRGaWxlcy5mb3JFYWNoKChmaWxlbmFtZSkgPT4ge1xuICAgICAgICAvLyBjb25zdCBzbG90TmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoZXh0bmFtZShmaWxlbmFtZSksICcnKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0ID0gbmV3IHN0YXRlLlRva2VuKCdodG1sX2lubGluZScsICcnLCAwKTtcbiAgICAgICAgdGVtcGxhdGVTdGFydC5jb250ZW50ID0gYDx0ZW1wbGF0ZSAjJHtmaWxlbmFtZX0+YDtcbiAgICAgICAgdG9rZW5BcnJheS5wdXNoKHRlbXBsYXRlU3RhcnQpO1xuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IGpvaW4oY29tcG9uZW50RGlyLCBmaWxlbmFtZSk7XG5cbiAgICAgICAgY29uc3QgeyBleHRlbnNpb24sIGZpbGVwYXRoLCBsYW5nLCBsaW5lcywgdGl0bGUgfSA9XG4gICAgICAgICAgcmF3UGF0aFRvVG9rZW4ocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgLy8gQWRkIGNvZGUgdG9rZW5zIGZvciBlYWNoIGxpbmVcbiAgICAgICAgY29uc3QgdG9rZW4gPSBuZXcgc3RhdGUuVG9rZW4oJ2ZlbmNlJywgJ2NvZGUnLCAwKTtcbiAgICAgICAgdG9rZW4uaW5mbyA9IGAke2xhbmcgfHwgZXh0ZW5zaW9ufSR7bGluZXMgPyBgeyR7bGluZXN9fWAgOiAnJ30ke1xuICAgICAgICAgIHRpdGxlID8gYFske3RpdGxlfV1gIDogJydcbiAgICAgICAgfWA7XG5cbiAgICAgICAgdG9rZW4uY29udGVudCA9IGA8PDwgJHtmaWxlcGF0aH1gO1xuICAgICAgICAodG9rZW4gYXMgYW55KS5zcmMgPSBbcmVzb2x2ZWRQYXRoXTtcbiAgICAgICAgdG9rZW5BcnJheS5wdXNoKHRva2VuKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZUVuZCA9IG5ldyBzdGF0ZS5Ub2tlbignaHRtbF9pbmxpbmUnLCAnJywgMCk7XG4gICAgICAgIHRlbXBsYXRlRW5kLmNvbnRlbnQgPSAnPC90ZW1wbGF0ZT4nO1xuICAgICAgICB0b2tlbkFycmF5LnB1c2godGVtcGxhdGVFbmQpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBlbmRUYWcgPSBuZXcgc3RhdGUuVG9rZW4oJ2h0bWxfaW5saW5lJywgJycsIDApO1xuICAgICAgZW5kVGFnLmNvbnRlbnQgPSAnPC9EZW1vUHJldmlldz4nO1xuICAgICAgdG9rZW5BcnJheS5wdXNoKGVuZFRhZyk7XG5cbiAgICAgIHN0YXRlLnRva2Vucy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi50b2tlbkFycmF5KTtcblxuICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAvLyAgIHN0YXRlLm1kLnJlbmRlcmVyLnJlbmRlcihzdGF0ZS50b2tlbnMsIHN0YXRlPy5vcHRpb25zID8/IFtdLCBzdGF0ZS5lbnYpLFxuICAgICAgLy8gKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnRIYXNoKGlucHV0OiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAvLyBcdTRGN0ZcdTc1MjggU0hBLTI1NiBcdTc1MUZcdTYyMTBcdTU0QzhcdTVFMENcdTUwM0NcbiAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoaW5wdXQpLmRpZ2VzdCgnaGV4Jyk7XG5cbiAgLy8gXHU1QzA2XHU1NEM4XHU1RTBDXHU1MDNDXHU4RjZDXHU2MzYyXHU0RTNBIEJhc2UzNiBcdTdGMTZcdTc4MDFcdUZGMENcdTVFNzZcdTUzRDZcdTYzMDdcdTVCOUFcdTk1N0ZcdTVFQTZcdTc2ODRcdTVCNTdcdTdCMjZcdTRGNUNcdTRFM0FcdTdFRDNcdTY3OUNcbiAgcmV0dXJuIE51bWJlci5wYXJzZUludChoYXNoLCAxNikudG9TdHJpbmcoMzYpLnNsaWNlKDAsIGxlbmd0aCk7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHZ1ZS12YmVuLWFkbWluXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXEFkbWluaXN0cmF0b3JcXFxcRG9jdW1lbnRzXFxcXHZ1ZS12YmVuLWFkbWluXFxcXGRvY3NcXFxcLnZpdGVwcmVzc1xcXFxjb25maWdcXFxcemgubXRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9BZG1pbmlzdHJhdG9yL0RvY3VtZW50cy92dWUtdmJlbi1hZG1pbi9kb2NzLy52aXRlcHJlc3MvY29uZmlnL3poLm10c1wiO2ltcG9ydCB0eXBlIHsgRGVmYXVsdFRoZW1lIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZXByZXNzJztcblxuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4uLy4uLy4uL3BhY2thZ2UuanNvbic7XG5cbmV4cG9ydCBjb25zdCB6aCA9IGRlZmluZUNvbmZpZyh7XG4gIGRlc2NyaXB0aW9uOiAnVmJlbiBBZG1pbiAmIFx1NEYwMVx1NEUxQVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlx1Njg0Nlx1NjdCNicsXG4gIGxhbmc6ICd6aC1IYW5zJyxcbiAgdGhlbWVDb25maWc6IHtcbiAgICBkYXJrTW9kZVN3aXRjaExhYmVsOiAnXHU0RTNCXHU5ODk4JyxcbiAgICBkYXJrTW9kZVN3aXRjaFRpdGxlOiAnXHU1MjA3XHU2MzYyXHU1MjMwXHU2REYxXHU4MjcyXHU2QTIxXHU1RjBGJyxcbiAgICBkb2NGb290ZXI6IHtcbiAgICAgIG5leHQ6ICdcdTRFMEJcdTRFMDBcdTk4NzUnLFxuICAgICAgcHJldjogJ1x1NEUwQVx1NEUwMFx1OTg3NScsXG4gICAgfSxcbiAgICBlZGl0TGluazoge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vZWRpdC9tYWluL2RvY3Mvc3JjLzpwYXRoJyxcbiAgICAgIHRleHQ6ICdcdTU3MjggR2l0SHViIFx1NEUwQVx1N0YxNlx1OEY5MVx1NkI2NFx1OTg3NVx1OTc2MicsXG4gICAgfSxcbiAgICBmb290ZXI6IHtcbiAgICAgIGNvcHlyaWdodDogYENvcHlyaWdodCBcdTAwQTkgMjAyMC0ke25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0gVmJlbmAsXG4gICAgICBtZXNzYWdlOiAnXHU1N0ZBXHU0RThFIE1JVCBcdThCQjhcdTUzRUZcdTUzRDFcdTVFMDMuJyxcbiAgICB9LFxuICAgIGxhbmdNZW51TGFiZWw6ICdcdTU5MUFcdThCRURcdThBMDAnLFxuICAgIGxhc3RVcGRhdGVkOiB7XG4gICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgIGRhdGVTdHlsZTogJ3Nob3J0JyxcbiAgICAgICAgdGltZVN0eWxlOiAnbWVkaXVtJyxcbiAgICAgIH0sXG4gICAgICB0ZXh0OiAnXHU2NzAwXHU1NDBFXHU2NkY0XHU2NUIwXHU0RThFJyxcbiAgICB9LFxuICAgIGxpZ2h0TW9kZVN3aXRjaFRpdGxlOiAnXHU1MjA3XHU2MzYyXHU1MjMwXHU2RDQ1XHU4MjcyXHU2QTIxXHU1RjBGJyxcbiAgICBuYXY6IG5hdigpLFxuXG4gICAgb3V0bGluZToge1xuICAgICAgbGFiZWw6ICdcdTk4NzVcdTk3NjJcdTVCRkNcdTgyMkEnLFxuICAgIH0sXG4gICAgcmV0dXJuVG9Ub3BMYWJlbDogJ1x1NTZERVx1NTIzMFx1OTg3Nlx1OTBFOCcsXG5cbiAgICBzaWRlYmFyOiB7XG4gICAgICAnL2NvbW1lcmNpYWwvJzogeyBiYXNlOiAnL2NvbW1lcmNpYWwvJywgaXRlbXM6IHNpZGViYXJDb21tZXJjaWFsKCkgfSxcbiAgICAgICcvY29tcG9uZW50cy8nOiB7IGJhc2U6ICcvY29tcG9uZW50cy8nLCBpdGVtczogc2lkZWJhckNvbXBvbmVudHMoKSB9LFxuICAgICAgJy9ndWlkZS8nOiB7IGJhc2U6ICcvZ3VpZGUvJywgaXRlbXM6IHNpZGViYXJHdWlkZSgpIH0sXG4gICAgfSxcbiAgICBzaWRlYmFyTWVudUxhYmVsOiAnXHU4M0RDXHU1MzU1JyxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaWRlYmFyR3VpZGUoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB0ZXh0OiAnXHU3QjgwXHU0RUNCJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdcdTUxNzNcdTRFOEUgVmJlbiBBZG1pbicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaW50cm9kdWN0aW9uL3doeScsXG4gICAgICAgICAgdGV4dDogJ1x1NEUzQVx1NEVDMFx1NEU0OFx1OTAwOVx1NjJFOVx1NjIxMVx1NEVFQz8nLFxuICAgICAgICB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vcXVpY2stc3RhcnQnLCB0ZXh0OiAnXHU1RkVCXHU5MDFGXHU1RjAwXHU1OUNCJyB9LFxuICAgICAgICB7IGxpbms6ICdpbnRyb2R1Y3Rpb24vdGhpbicsIHRleHQ6ICdcdTdDQkVcdTdCODBcdTcyNDhcdTY3MkMnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYXNlOiAnLycsXG4gICAgICAgICAgbGluazogJ2NvbXBvbmVudHMvaW50cm9kdWN0aW9uJyxcbiAgICAgICAgICB0ZXh0OiAnXHU3RUM0XHU0RUY2XHU2NTg3XHU2ODYzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnXHU1N0ZBXHU3ODQwJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvY29uY2VwdCcsIHRleHQ6ICdcdTU3RkFcdTc4NDBcdTY5ODJcdTVGRjUnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvZGV2ZWxvcG1lbnQnLCB0ZXh0OiAnXHU2NzJDXHU1NzMwXHU1RjAwXHU1M0QxJyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3JvdXRlJywgdGV4dDogJ1x1OERFRlx1NzUzMVx1NTQ4Q1x1ODNEQ1x1NTM1NScgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9zZXR0aW5ncycsIHRleHQ6ICdcdTkxNERcdTdGNkUnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvaWNvbnMnLCB0ZXh0OiAnXHU1NkZFXHU2ODA3JyB9LFxuICAgICAgICB7IGxpbms6ICdlc3NlbnRpYWxzL3N0eWxlcycsIHRleHQ6ICdcdTY4MzdcdTVGMEYnIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvZXh0ZXJuYWwtbW9kdWxlJywgdGV4dDogJ1x1NTkxNlx1OTBFOFx1NkEyMVx1NTc1NycgfSxcbiAgICAgICAgeyBsaW5rOiAnZXNzZW50aWFscy9idWlsZCcsIHRleHQ6ICdcdTY3ODRcdTVFRkFcdTRFMEVcdTkwRThcdTdGNzInIH0sXG4gICAgICAgIHsgbGluazogJ2Vzc2VudGlhbHMvc2VydmVyJywgdGV4dDogJ1x1NjcwRFx1NTJBMVx1N0FFRlx1NEVBNFx1NEU5Mlx1NEUwRVx1NjU3MFx1NjM2RU1vY2snIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ1x1NkRGMVx1NTE2NScsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9sb2dpbicsIHRleHQ6ICdcdTc2N0JcdTVGNTUnIH0sXG4gICAgICAgIC8vIHsgbGluazogJ2luLWRlcHRoL2xheW91dCcsIHRleHQ6ICdcdTVFMDNcdTVDNDAnIH0sXG4gICAgICAgIHsgbGluazogJ2luLWRlcHRoL3RoZW1lJywgdGV4dDogJ1x1NEUzQlx1OTg5OCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvYWNjZXNzJywgdGV4dDogJ1x1Njc0M1x1OTY1MCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvbG9jYWxlJywgdGV4dDogJ1x1NTZGRFx1OTY0NVx1NTMxNicgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvZmVhdHVyZXMnLCB0ZXh0OiAnXHU1RTM4XHU3NTI4XHU1MjlGXHU4MEZEJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC9jaGVjay11cGRhdGVzJywgdGV4dDogJ1x1NjhDMFx1NjdFNVx1NjZGNFx1NjVCMCcgfSxcbiAgICAgICAgeyBsaW5rOiAnaW4tZGVwdGgvbG9hZGluZycsIHRleHQ6ICdcdTUxNjhcdTVDNDBsb2FkaW5nJyB9LFxuICAgICAgICB7IGxpbms6ICdpbi1kZXB0aC91aS1mcmFtZXdvcmsnLCB0ZXh0OiAnXHU3RUM0XHU0RUY2XHU1RTkzXHU1MjA3XHU2MzYyJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTVERTVcdTdBMEInLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9zdGFuZGFyZCcsIHRleHQ6ICdcdTg5QzRcdTgzMDMnIH0sXG4gICAgICAgIHsgbGluazogJ3Byb2plY3QvY2xpJywgdGV4dDogJ0NMSScgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9kaXInLCB0ZXh0OiAnXHU3NkVFXHU1RjU1XHU4QkY0XHU2NjBFJyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3Rlc3QnLCB0ZXh0OiAnXHU1MzU1XHU1MTQzXHU2RDRCXHU4QkQ1JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3RhaWx3aW5kY3NzJywgdGV4dDogJ1RhaWx3aW5kIENTUycgfSxcbiAgICAgICAgeyBsaW5rOiAncHJvamVjdC9jaGFuZ2VzZXQnLCB0ZXh0OiAnQ2hhbmdlc2V0JyB9LFxuICAgICAgICB7IGxpbms6ICdwcm9qZWN0L3ZpdGUnLCB0ZXh0OiAnVml0ZSBDb25maWcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogJ1x1NTE3Nlx1NEVENicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxpbms6ICdvdGhlci9wcm9qZWN0LXVwZGF0ZScsIHRleHQ6ICdcdTk4NzlcdTc2RUVcdTY2RjRcdTY1QjAnIH0sXG4gICAgICAgIHsgbGluazogJ290aGVyL3JlbW92ZS1jb2RlJywgdGV4dDogJ1x1NzlGQlx1OTY2NFx1NEVFM1x1NzgwMScgfSxcbiAgICAgICAgeyBsaW5rOiAnb3RoZXIvZmFxJywgdGV4dDogJ1x1NUUzOFx1ODlDMVx1OTVFRVx1OTg5OCcgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gc2lkZWJhckNvbW1lcmNpYWwoKTogRGVmYXVsdFRoZW1lLlNpZGViYXJJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGxpbms6ICdjb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1NEVBNFx1NkQ0MVx1N0ZBNCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAndGVjaG5pY2FsLXN1cHBvcnQnLFxuICAgICAgdGV4dDogJ1x1NjI4MFx1NjcyRlx1NjUyRlx1NjMwMScsXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnY3VzdG9taXplZCcsXG4gICAgICB0ZXh0OiAnXHU1QjlBXHU1MjM2XHU1RjAwXHU1M0QxJyxcbiAgICB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBzaWRlYmFyQ29tcG9uZW50cygpOiBEZWZhdWx0VGhlbWUuU2lkZWJhckl0ZW1bXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgdGV4dDogJ1x1N0VDNFx1NEVGNicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2ludHJvZHVjdGlvbicsXG4gICAgICAgICAgdGV4dDogJ1x1NEVDQlx1N0VDRCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgY29sbGFwc2VkOiBmYWxzZSxcbiAgICAgIHRleHQ6ICdcdTVFMDNcdTVDNDBcdTdFQzRcdTRFRjYnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdsYXlvdXQtdWkvcGFnZScsXG4gICAgICAgICAgdGV4dDogJ1BhZ2UgXHU5ODc1XHU5NzYyJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgdGV4dDogJ1x1OTAxQVx1NzUyOFx1N0VDNFx1NEVGNicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLWFwaS1jb21wb25lbnQnLFxuICAgICAgICAgIHRleHQ6ICdBcGlDb21wb25lbnQgQXBpXHU3RUM0XHU0RUY2XHU1MzA1XHU4OEM1XHU1NjY4JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1tb2RhbCcsXG4gICAgICAgICAgdGV4dDogJ01vZGFsIFx1NkEyMVx1NjAwMVx1Njg0NicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tZHJhd2VyJyxcbiAgICAgICAgICB0ZXh0OiAnRHJhd2VyIFx1NjJCRFx1NUM0OScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnY29tbW9uLXVpL3ZiZW4tZm9ybScsXG4gICAgICAgICAgdGV4dDogJ0Zvcm0gXHU4ODY4XHU1MzU1JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi12eGUtdGFibGUnLFxuICAgICAgICAgIHRleHQ6ICdWeGUgVGFibGUgXHU4ODY4XHU2ODNDJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbms6ICdjb21tb24tdWkvdmJlbi1jb3VudC10by1hbmltYXRvcicsXG4gICAgICAgICAgdGV4dDogJ0NvdW50VG9BbmltYXRvciBcdTY1NzBcdTVCNTdcdTUyQThcdTc1M0InLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2NvbW1vbi11aS92YmVuLWVsbGlwc2lzLXRleHQnLFxuICAgICAgICAgIHRleHQ6ICdFbGxpcHNpc1RleHQgXHU3NzAxXHU3NTY1XHU2NTg3XHU2NzJDJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gbmF2KCk6IERlZmF1bHRUaGVtZS5OYXZJdGVtW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGFjdGl2ZU1hdGNoOiAnXi8oZ3VpZGV8Y29tcG9uZW50cykvJyxcbiAgICAgIHRleHQ6ICdcdTY1ODdcdTY4NjMnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2ZU1hdGNoOiAnXi9ndWlkZS8nLFxuICAgICAgICAgIGxpbms6ICcvZ3VpZGUvaW50cm9kdWN0aW9uL3ZiZW4nLFxuICAgICAgICAgIHRleHQ6ICdcdTYzMDdcdTUzNTcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZlTWF0Y2g6ICdeL2NvbXBvbmVudHMvJyxcbiAgICAgICAgICBsaW5rOiAnL2NvbXBvbmVudHMvaW50cm9kdWN0aW9uJyxcbiAgICAgICAgICB0ZXh0OiAnXHU3RUM0XHU0RUY2JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdcdTUzODZcdTUzRjJcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2RvYy52dmJpbi5jbicsXG4gICAgICAgICAgICAgIHRleHQ6ICcyLnhcdTcyNDhcdTY3MkNcdTY1ODdcdTY4NjMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdcdTZGMTRcdTc5M0EnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnXHU2RjE0XHU3OTNBXHU3MjQ4XHU2NzJDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2FudC52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdBbnQgRGVzaWduIFZ1ZSBcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vbmFpdmUudmJlbi5wcm8nLFxuICAgICAgICAgICAgICB0ZXh0OiAnTmFpdmUgXHU3MjQ4XHU2NzJDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2VsZS52YmVuLnBybycsXG4gICAgICAgICAgICAgIHRleHQ6ICdFbGVtZW50IFBsdXNcdTcyNDhcdTY3MkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ1x1NTE3Nlx1NEVENicsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vdmJlbi52dmJpbi5jbicsXG4gICAgICAgICAgICAgIHRleHQ6ICdWYmVuIEFkbWluIDIueCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDogdmVyc2lvbixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL3ZiZW5qcy92dWUtdmJlbi1hZG1pbi9yZWxlYXNlcycsXG4gICAgICAgICAgdGV4dDogJ1x1NjZGNFx1NjVCMFx1NjVFNVx1NUZENycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9naXRodWIuY29tL29yZ3MvdmJlbmpzL3Byb2plY3RzLzUnLFxuICAgICAgICAgIHRleHQ6ICdcdThERUZcdTdFQkZcdTU2RkUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vZ2l0aHViLmNvbS92YmVuanMvdnVlLXZiZW4tYWRtaW4vYmxvYi9tYWluLy5naXRodWIvY29udHJpYnV0aW5nLm1kJyxcbiAgICAgICAgICB0ZXh0OiAnXHU4RDIxXHU3MzJFJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsaW5rOiAnL2NvbW1lcmNpYWwvdGVjaG5pY2FsLXN1cHBvcnQnLFxuICAgICAgdGV4dDogJ1x1RDgzRVx1REQ4NCBcdTYyODBcdTY3MkZcdTY1MkZcdTYzMDEnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGluazogJy9zcG9uc29yL3BlcnNvbmFsJyxcbiAgICAgIHRleHQ6ICdcdTI3MjggXHU4RDVFXHU1MkE5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxpbms6ICcvY29tbWVyY2lhbC9jb21tdW5pdHknLFxuICAgICAgdGV4dDogJ1x1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2Nlx1MjAwRFx1RDgzRFx1REM2NiBcdTRFQTRcdTZENDFcdTdGQTQnLFxuICAgICAgLy8gaXRlbXM6IFtcbiAgICAgIC8vICAge1xuICAgICAgLy8gICAgIGxpbms6ICdodHRwczovL3F1bi5xcS5jb20vcXF3ZWIvcXVucHJvL3NoYXJlP193dj0zJl93d3Y9MTI4JmFwcENoYW5uZWw9c2hhcmUmaW52aXRlQ29kZT0yMnlTemo3cEtpdyZidXNpbmVzc1R5cGU9OSZmcm9tPTI0NjYxMCZiaXo9a2EmbWFpblNvdXJjZUlkPXNoYXJlJnN1YlNvdXJjZUlkPW90aGVycyZqdW1wc291cmNlPXNob3J0dXJsIy9wYycsXG4gICAgICAvLyAgICAgdGV4dDogJ1FRXHU5ODkxXHU5MDUzJyxcbiAgICAgIC8vICAgfSxcbiAgICAgIC8vICAge1xuICAgICAgLy8gICAgIGxpbms6ICdodHRwczovL3FtLnFxLmNvbS9jZ2ktYmluL3FtL3FyP193dj0xMDI3Jms9bWpabWxoZ1Z6elV4dmR4bGxCNkMxdkhwWDhPOFFSTDAmYXV0aEtleT1EQmRGYkJ3RVJtZmFLWTk1SnZSV3FMQ0pJUkdKQW1LeVpicnB6WjQxRUtETVo1U1I2TWZiak9CYWFOUk43M2ZyJm5vdmVyaWZ5PTAmZ3JvdXBfY29kZT00Mjg2MTA5JyxcbiAgICAgIC8vICAgICB0ZXh0OiAnUVFcdTdGQTQnLFxuICAgICAgLy8gICB9LFxuICAgICAgLy8gICB7XG4gICAgICAvLyAgICAgbGluazogJ2h0dHBzOi8vZGlzY29yZC5nZy9WVTYyalRlY2FkJyxcbiAgICAgIC8vICAgICB0ZXh0OiAnRGlzY29yZCcsXG4gICAgICAvLyAgIH0sXG4gICAgICAvLyBdLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbGluazogJy9mcmllbmQtbGlua3MvJyxcbiAgICAvLyAgIHRleHQ6ICdcdUQ4M0VcdUREMUQgXHU1M0NCXHU2MEM1XHU5NEZFXHU2M0E1JyxcbiAgICAvLyB9LFxuICBdO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoOiBEZWZhdWx0VGhlbWUuQWxnb2xpYVNlYXJjaE9wdGlvbnNbJ2xvY2FsZXMnXSA9IHtcbiAgcm9vdDoge1xuICAgIHBsYWNlaG9sZGVyOiAnXHU2NDFDXHU3RDIyXHU2NTg3XHU2ODYzJyxcbiAgICB0cmFuc2xhdGlvbnM6IHtcbiAgICAgIGJ1dHRvbjoge1xuICAgICAgICBidXR0b25BcmlhTGFiZWw6ICdcdTY0MUNcdTdEMjJcdTY1ODdcdTY4NjMnLFxuICAgICAgICBidXR0b25UZXh0OiAnXHU2NDFDXHU3RDIyXHU2NTg3XHU2ODYzJyxcbiAgICAgIH0sXG4gICAgICBtb2RhbDoge1xuICAgICAgICBlcnJvclNjcmVlbjoge1xuICAgICAgICAgIGhlbHBUZXh0OiAnXHU0RjYwXHU1M0VGXHU4MEZEXHU5NzAwXHU4OTgxXHU2OEMwXHU2N0U1XHU0RjYwXHU3Njg0XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1JyxcbiAgICAgICAgICB0aXRsZVRleHQ6ICdcdTY1RTBcdTZDRDVcdTgzQjdcdTUzRDZcdTdFRDNcdTY3OUMnLFxuICAgICAgICB9LFxuICAgICAgICBmb290ZXI6IHtcbiAgICAgICAgICBjbG9zZVRleHQ6ICdcdTUxNzNcdTk1RUQnLFxuICAgICAgICAgIG5hdmlnYXRlVGV4dDogJ1x1NTIwN1x1NjM2MicsXG4gICAgICAgICAgc2VhcmNoQnlUZXh0OiAnXHU2NDFDXHU3RDIyXHU2M0QwXHU0RjlCXHU4MDA1JyxcbiAgICAgICAgICBzZWxlY3RUZXh0OiAnXHU5MDA5XHU2MkU5JyxcbiAgICAgICAgfSxcbiAgICAgICAgbm9SZXN1bHRzU2NyZWVuOiB7XG4gICAgICAgICAgbm9SZXN1bHRzVGV4dDogJ1x1NjVFMFx1NkNENVx1NjI3RVx1NTIzMFx1NzZGOFx1NTE3M1x1N0VEM1x1Njc5QycsXG4gICAgICAgICAgcmVwb3J0TWlzc2luZ1Jlc3VsdHNMaW5rVGV4dDogJ1x1NzBCOVx1NTFGQlx1NTNDRFx1OTk4OCcsXG4gICAgICAgICAgcmVwb3J0TWlzc2luZ1Jlc3VsdHNUZXh0OiAnXHU0RjYwXHU4QkE0XHU0RTNBXHU4QkU1XHU2N0U1XHU4QkUyXHU1RTk0XHU4QkU1XHU2NzA5XHU3RUQzXHU2NzlDXHVGRjFGJyxcbiAgICAgICAgICBzdWdnZXN0ZWRRdWVyeVRleHQ6ICdcdTRGNjBcdTUzRUZcdTRFRTVcdTVDMURcdThCRDVcdTY3RTVcdThCRTInLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hCb3g6IHtcbiAgICAgICAgICBjYW5jZWxCdXR0b25BcmlhTGFiZWw6ICdcdTUzRDZcdTZEODgnLFxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICdcdTUzRDZcdTZEODgnLFxuICAgICAgICAgIHJlc2V0QnV0dG9uQXJpYUxhYmVsOiAnXHU2RTA1XHU5NjY0XHU2N0U1XHU4QkUyXHU2NzYxXHU0RUY2JyxcbiAgICAgICAgICByZXNldEJ1dHRvblRpdGxlOiAnXHU2RTA1XHU5NjY0XHU2N0U1XHU4QkUyXHU2NzYxXHU0RUY2JyxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhcnRTY3JlZW46IHtcbiAgICAgICAgICBmYXZvcml0ZVNlYXJjaGVzVGl0bGU6ICdcdTY1MzZcdTg1Q0YnLFxuICAgICAgICAgIG5vUmVjZW50U2VhcmNoZXNUZXh0OiAnXHU2Q0ExXHU2NzA5XHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgICByZWNlbnRTZWFyY2hlc1RpdGxlOiAnXHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgICByZW1vdmVGYXZvcml0ZVNlYXJjaEJ1dHRvblRpdGxlOiAnXHU0RUNFXHU2NTM2XHU4NUNGXHU0RTJEXHU3OUZCXHU5NjY0JyxcbiAgICAgICAgICByZW1vdmVSZWNlbnRTZWFyY2hCdXR0b25UaXRsZTogJ1x1NEVDRVx1NjQxQ1x1N0QyMlx1NTM4Nlx1NTNGMlx1NEUyRFx1NzlGQlx1OTY2NCcsXG4gICAgICAgICAgc2F2ZVJlY2VudFNlYXJjaEJ1dHRvblRpdGxlOiAnXHU0RkREXHU1QjU4XHU4MUYzXHU2NDFDXHU3RDIyXHU1Mzg2XHU1M0YyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXNYLFNBQVMsZUFBZTtBQUM5WSxTQUFTLDZCQUE2Qjs7O0FDQ3RDLFNBQVMsb0JBQW9COzs7QUNBM0IsY0FBVzs7O0FESU4sSUFBTSxLQUFLLGFBQWE7QUFBQSxFQUM3QixhQUFhO0FBQUEsRUFDYixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsSUFDWCxxQkFBcUI7QUFBQSxJQUNyQixxQkFBcUI7QUFBQSxJQUNyQixXQUFXO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsU0FDRTtBQUFBLE1BQ0YsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLFdBQVcsd0JBQW9CLG9CQUFJLEtBQUssR0FBRSxZQUFZLENBQUM7QUFBQSxNQUN2RCxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0EsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLE1BQ1gsZUFBZTtBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1gsV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxzQkFBc0I7QUFBQSxJQUN0QixLQUFLLElBQUk7QUFBQSxJQUNULFNBQVM7QUFBQSxNQUNQLE9B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QUFBLElBQ0w7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsSUFDUjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsTUFBOEI7QUFDckMsU0FBTztBQUFBLElBQ0w7QUFBQSxNQUNFLGFBQWE7QUFBQSxNQUNiLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMO0FBQUEsVUFDRSxhQUFhO0FBQUEsVUFDYixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU1BO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixPQUFPO0FBQUEsWUFDTDtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0w7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxZQUNMO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFB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QUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNSO0FBQUEsUUFDQTtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVNELE9BQThCO0FBQ3JDLFNBQU87QUFBQSxJQUNMO0FBQUEsTUFDRSxhQUFhO0FBQUEsTUFDYixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUEsVUFDRSxhQUFhO0FBQUEsVUFDYixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxZQUNMO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTDtBQUFBLFVBQ0UsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFlBQ0w7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsY0FDRSxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE1BQU07QUFBQSxjQUNOLE1BQU07QUFB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UztBQUFBLFFBQ1QsTUFBTTtBQUFBLE1BQ1I7QUFBQSxJQUNGO0FBQUEsSUFDQSxDQUFDLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUFBLElBQ3JFO0FBQUEsTUFDRTtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQ0U7QUFBQSxRQUNGLE1BQU07QUFBQSxNQUNSO0FBQUEsSUFDRjtBQUFBLElBQ0EsQ0FBQyxRQUFRLEVBQUUsU0FBUyxtQkFBbUIsTUFBTSxXQUFXLENBQUM7QUFBQSxJQUN6RCxDQUFDLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixLQUFLLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2hEO0FBQ0Y7QUFFQSxTQUFTLE1BQWtCO0FBQ3pCLFNBQU87QUFBQSxJQUNMLHNCQUFzQjtBQUFBLElBQ3RCLFVBQVU7QUFBQSxNQUNSLGFBQ0U7QUFBQSxNQUNGLE9BQU87QUFBQSxRQUNMO0FBQUEsVUFDRSxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsUUFDUjtBQUFBLFFBQ0E7QUFBQSxVQUNFLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLE1BQ0EsSUFBSTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sWUFBWTtBQUFBLE1BQ1osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFFBQVEsUUFBUSxRQUFRLElBQUksR0FBRyxpQkFBaUI7QUFBQSxJQUNoRCxjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsTUFDUCxjQUFjLENBQUMsMENBQTBDO0FBQUEsTUFDekQsK0JBQStCLElBQUksT0FBTztBQUFBLElBQzVDO0FBQUEsRUFDRjtBQUNGOzs7QUhwS0EsSUFBTyxpQkFBUTtBQUFBLEVBQ2Isc0JBQXNCO0FBQUEsSUFDcEIsR0FBRztBQUFBLElBQ0gsU0FBUztBQUFBLE1BQ1AsSUFBSTtBQUFBLFFBQ0YsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBLFFBQ04sTUFBTTtBQUFBLFFBQ04sR0FBRztBQUFBLE1BQ0w7QUFBQSxNQUNBLE1BQU07QUFBQSxRQUNKLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQSxRQUNOLEdBQUc7QUFBQSxNQUNMO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJkZWZpbmVDb25maWciLCAiZGVmaW5lQ29uZmlnIiwgImRlZmluZUNvbmZpZyIsICJuYXYiLCAic2lkZWJhckNvbW1lcmNpYWwiLCAic2lkZWJhckd1aWRlIiwgImRlZmluZUNvbmZpZyJdCn0K
diff --git a/docs/.vitepress/config/shared.mts b/docs/.vitepress/config/shared.mts
index c48cc60..d6e78b0 100644
--- a/docs/.vitepress/config/shared.mts
+++ b/docs/.vitepress/config/shared.mts
@@ -44,12 +44,12 @@ export const shared = defineConfig({
},
provider: 'local',
},
- siteTitle: 'Vben Admin',
- socialLinks: [
- { icon: 'github', link: 'https://github.com/vbenjs/vue-vben-admin' },
- ],
+ siteTitle: 'y-code-platform',
+ // socialLinks: [
+ // { icon: 'github', link: 'https://github.com/vbenjs/vue-vben-admin' },
+ // ],
},
- title: 'Vben Admin',
+ title: 'y-code-platform',
vite: {
build: {
chunkSizeWarningLimit: Infinity,
@@ -144,7 +144,7 @@ function pwa(): PwaOptions {
includeManifestIcons: false,
manifest: {
description:
- 'Vben Admin is a modern admin dashboard template based on Vue 3. ',
+ 'y-code-platform is a modern admin dashboard template based on Vue 3. ',
icons: [
{
sizes: '192x192',
@@ -158,7 +158,7 @@ function pwa(): PwaOptions {
},
],
id: '/',
- name: 'Vben Admin Doc',
+ name: 'y-code-platform Doc',
short_name: 'vben_admin_doc',
theme_color: '#ffffff',
},
diff --git a/docs/.vitepress/config/zh.mts b/docs/.vitepress/config/zh.mts
index ce54439..31bf924 100644
--- a/docs/.vitepress/config/zh.mts
+++ b/docs/.vitepress/config/zh.mts
@@ -5,7 +5,7 @@ import { defineConfig } from 'vitepress';
import { version } from '../../../package.json';
export const zh = defineConfig({
- description: 'Vben Admin & 企业级管理系统框架',
+ description: '悦码 & 低代码管理系统',
lang: 'zh-Hans',
themeConfig: {
darkModeSwitchLabel: '主题',
@@ -14,16 +14,16 @@ export const zh = defineConfig({
next: '下一页',
prev: '上一页',
},
- editLink: {
- pattern:
- 'https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path',
- text: '在 GitHub 上编辑此页面',
- },
- footer: {
- copyright: `Copyright © 2020-${new Date().getFullYear()} Vben`,
- message: '基于 MIT 许可发布.',
- },
- langMenuLabel: '多语言',
+ // editLink: {
+ // pattern:
+ // 'https://github.com/vbenjs/vue-vben-admin/edit/main/docs/src/:path',
+ // text: '在 GitHub 上编辑此页面',
+ // },
+ // footer: {
+ // copyright: `Copyright © 2020-${new Date().getFullYear()} Vben`,
+ // message: '基于 MIT 许可发布.',
+ // },
+ // langMenuLabel: '多语言',
lastUpdated: {
formatOptions: {
dateStyle: 'short',
@@ -55,18 +55,13 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
text: '简介',
items: [
{
- link: 'introduction/vben',
- text: '关于 Vben Admin',
- },
- {
- link: 'introduction/why',
- text: '为什么选择我们?',
+ link: 'introduction/platform',
+ text: '关于悦码',
},
{ link: 'introduction/quick-start', text: '快速开始' },
- { link: 'introduction/thin', text: '精简版本' },
{
base: '/',
- link: 'components/introduction',
+ link: 'components/index',
text: '组件文档',
},
],
@@ -75,48 +70,20 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
text: '基础',
items: [
{ link: 'essentials/concept', text: '基础概念' },
- { link: 'essentials/development', text: '本地开发' },
- { link: 'essentials/route', text: '路由和菜单' },
- { link: 'essentials/settings', text: '配置' },
{ link: 'essentials/icons', text: '图标' },
{ link: 'essentials/styles', text: '样式' },
- { link: 'essentials/external-module', text: '外部模块' },
- { link: 'essentials/build', text: '构建与部署' },
- { link: 'essentials/server', text: '服务端交互与数据Mock' },
],
},
{
text: '深入',
- items: [
- { link: 'in-depth/login', text: '登录' },
- // { link: 'in-depth/layout', text: '布局' },
- { link: 'in-depth/theme', text: '主题' },
- { link: 'in-depth/access', text: '权限' },
- { link: 'in-depth/locale', text: '国际化' },
- { link: 'in-depth/features', text: '常用功能' },
- { link: 'in-depth/check-updates', text: '检查更新' },
- { link: 'in-depth/loading', text: '全局loading' },
- { link: 'in-depth/ui-framework', text: '组件库切换' },
- ],
- },
- {
- text: '工程',
- items: [
- { link: 'project/standard', text: '规范' },
- { link: 'project/cli', text: 'CLI' },
- { link: 'project/dir', text: '目录说明' },
- { link: 'project/test', text: '单元测试' },
- { link: 'project/tailwindcss', text: 'Tailwind CSS' },
- { link: 'project/changeset', text: 'Changeset' },
- { link: 'project/vite', text: 'Vite Config' },
- ],
+ items: [{ link: 'in-depth/features', text: '常用功能' }],
},
{
text: '其他',
items: [
- { link: 'other/project-update', text: '项目更新' },
- { link: 'other/remove-code', text: '移除代码' },
- { link: 'other/faq', text: '常见问题' },
+ // { link: 'other/project-update', text: '项目更新' },
+ // { link: 'other/remove-code', text: '移除代码' },
+ // { link: 'other/faq', text: '常见问题' },
],
},
];
@@ -132,10 +99,6 @@ function sidebarCommercial(): DefaultTheme.SidebarItem[] {
link: 'technical-support',
text: '技术支持',
},
- {
- link: 'customized',
- text: '定制开发',
- },
];
}
@@ -205,55 +168,52 @@ function nav(): DefaultTheme.NavItem[] {
items: [
{
activeMatch: '^/guide/',
- link: '/guide/introduction/vben',
- text: '指南',
+ link: '/guide/introduction/platform',
+ text: '低代码平台',
},
{
- activeMatch: '^/components/',
- link: '/components/introduction',
- text: '组件',
+ activeMatch: '^/materials/',
+ link: '/materials/index',
+ text: '物料',
},
{
- text: '历史版本',
- items: [
- {
- link: 'https://doc.vvbin.cn',
- text: '2.x版本文档',
- },
- ],
+ activeMatch: '^/renderer/',
+ link: '/renderer/index',
+ text: '渲染器',
+ },
+ {
+ activeMatch: '^/designer/',
+ link: '/designer/index',
+ text: '设计器',
},
],
},
{
- text: '演示',
+ text: '低代码管理平台',
items: [
{
- text: 'Vben Admin',
+ text: '悦码 2.0',
items: [
+ {
+ link: 'https://y-code-platform.shiyuegame.com',
+ text: '生产版本',
+ },
+ {
+ link: 'https://y-code-platform-pre.shiyue.com',
+ text: '预发布版本',
+ },
{
link: 'https://www.vben.pro',
text: '演示版本',
},
- {
- link: 'https://ant.vben.pro',
- text: 'Ant Design Vue 版本',
- },
- {
- link: 'https://naive.vben.pro',
- text: 'Naive 版本',
- },
- {
- link: 'https://ele.vben.pro',
- text: 'Element Plus版本',
- },
],
},
{
text: '其他',
items: [
{
- link: 'https://vben.vvbin.cn',
- text: 'Vben Admin 2.x',
+ link: 'https://custom-chart.shiyuegame.com/',
+ text: '悦码 1.0(已废弃,不再更新功能)',
},
],
},
@@ -267,45 +227,20 @@ function nav(): DefaultTheme.NavItem[] {
text: '更新日志',
},
{
- link: 'https://github.com/orgs/vbenjs/projects/5',
+ link: 'https://doc.weixin.qq.com/smartsheet/s3_Aa0ASwZ0AOEr2TbPuaMRoCvs1yzjA?scode=AOwAYgeoAAkoT6VFa0Aa0ASwZ0AOE&tab=q979lj&viewId=vpDUFs',
text: '路线图',
},
- {
- link: 'https://github.com/vbenjs/vue-vben-admin/blob/main/.github/contributing.md',
- text: '贡献',
- },
],
},
{
- link: '/commercial/technical-support',
- text: '🦄 技术支持',
+ text: '👨👦👦 问题反馈',
+ items: [
+ {
+ link: 'https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=22ySzj7pKiw&businessType=9&from=246610&biz=ka&mainSourceId=share&subSourceId=others&jumpsource=shorturl#/pc',
+ text: '热心大姐',
+ },
+ ],
},
- {
- link: '/sponsor/personal',
- text: '✨ 赞助',
- },
- {
- link: '/commercial/community',
- text: '👨👦👦 交流群',
- // items: [
- // {
- // link: 'https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=22ySzj7pKiw&businessType=9&from=246610&biz=ka&mainSourceId=share&subSourceId=others&jumpsource=shorturl#/pc',
- // text: 'QQ频道',
- // },
- // {
- // link: 'https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=mjZmlhgVzzUxvdxllB6C1vHpX8O8QRL0&authKey=DBdFbBwERmfaKY95JvRWqLCJIRGJAmKyZbrpzZ41EKDMZ5SR6MfbjOBaaNRN73fr&noverify=0&group_code=4286109',
- // text: 'QQ群',
- // },
- // {
- // link: 'https://discord.gg/VU62jTecad',
- // text: 'Discord',
- // },
- // ],
- },
- // {
- // link: '/friend-links/',
- // text: '🤝 友情链接',
- // },
];
}
diff --git a/docs/package.json b/docs/package.json
index 172f75e..67df129 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,6 +1,6 @@
{
- "name": "@vben/docs",
- "version": "5.5.3",
+ "name": "@sy/y-code-docs",
+ "version": "1.0.0-alpha.1",
"private": true,
"type": "module",
"scripts": {
diff --git a/docs/src/components/introduction/index.md b/docs/src/components/introduction/index.md
new file mode 100644
index 0000000..7941089
--- /dev/null
+++ b/docs/src/components/introduction/index.md
@@ -0,0 +1,111 @@
+---
+outline: deep
+---
+
+# 快速开始 {#quick-start}
+
+## 前置准备
+
+::: info 环境要求
+
+在启动项目前,你需要确保你的环境满足以下要求:
+
+- [Node.js](https://nodejs.org/en) 20.15.0 及以上版本,推荐使用 [fnm](https://github.com/Schniz/fnm) 、 [nvm](https://github.com/nvm-sh/nvm) 或者直接使用[pnpm](https://pnpm.io/cli/env) 进行版本管理。
+- [Git](https://git-scm.com/) 任意版本。
+
+验证你的环境是否满足以上要求,你可以通过以下命令查看版本:
+
+```bash
+# 出现相应 node LTS版本即可
+node -v
+# 出现相应 git 版本即可
+git -v
+```
+
+:::
+
+## 启动项目
+
+### 获取源码
+
+::: code-group
+
+```sh [GitHub]
+# clone 代码
+git clone https://github.com/vbenjs/vue-vben-admin.git
+```
+
+```sh [Gitee]
+# clone 代码
+# Gitee 的代码可能不是最新的
+git clone https://gitee.com/annsion/vue-vben-admin.git
+```
+
+:::
+
+::: danger 注意
+
+注意存放代码的目录及所有父级目录不能存在中文、韩文、日文以及空格,否则安装依赖后启动会出错。
+
+:::
+
+### 安装依赖
+
+在你的代码目录内打开终端,并执行以下命令:
+
+```bash
+# 进入项目目录
+cd vue-vben-admin
+
+# 使用项目指定的pnpm版本进行依赖安装
+corepack enable
+
+# 安装依赖
+pnpm install
+```
+
+::: tip 注意
+
+- 项目只支持使用 `pnpm` 进行依赖安装,默认会使用 `corepack` 来安装指定版本的 `pnpm`。:
+- 如果你的网络环境无法访问npm源,你可以设置系统的环境变量`COREPACK_NPM_REGISTRY=https://registry.npmmirror.com`,然后再执行`pnpm install`。
+- 如果你不想使用`corepack`,你需要禁用`corepack`,然后使用你自己的`pnpm`进行安装。
+
+:::
+
+### 运行项目
+
+#### 选择项目
+
+执行以下命令运行项目:
+
+```bash
+# 启动项目
+pnpm dev
+```
+
+此时,你会看到类似如下的输出,选择你需要运行的项目:
+
+```bash
+│
+◆ Select the app you need to run [dev]:
+│ ○ @vben/web-antd
+│ ○ @vben/web-ele
+│ ○ @vben/web-naive
+│ ○ @vben/docs
+│ ● @vben/playground
+└
+```
+
+现在,你可以在浏览器访问 `http://localhost:5555` 查看项目。
+
+#### 运行指定项目
+
+如果你不想选择项目,可以直接运行以下命令运行你需要的应用:
+
+```bash
+pnpm run dev:antd
+pnpm run dev:ele
+pnpm run dev:naive
+pnpm run dev:docs
+pnpm run dev:play
+```
diff --git a/docs/src/designer/index.md b/docs/src/designer/index.md
new file mode 100644
index 0000000..4f0d3b0
--- /dev/null
+++ b/docs/src/designer/index.md
@@ -0,0 +1 @@
+设计器
diff --git a/docs/src/guide/essentials/settings.md b/docs/src/guide/essentials/settings.md
index a75838f..29c7973 100644
--- a/docs/src/guide/essentials/settings.md
+++ b/docs/src/guide/essentials/settings.md
@@ -31,7 +31,7 @@
```bash [.env]
# 应用标题
-VITE_APP_TITLE=Vben Admin
+VITE_APP_TITLE=y-code-platform
# 应用命名空间,用于缓存、store等功能的前缀,确保隔离
VITE_APP_NAMESPACE=vben-web-antd
@@ -195,7 +195,7 @@ const defaultPreferences: Preferences = {
layout: 'sidebar-nav',
locale: 'zh-CN',
loginExpiredMode: 'modal',
- name: 'Vben Admin',
+ name: 'y-code-platform',
preferencesButtonPosition: 'auto',
watermark: false,
},
diff --git a/docs/src/guide/in-depth/locale.md b/docs/src/guide/in-depth/locale.md
index e4a4a65..90e4d5a 100644
--- a/docs/src/guide/in-depth/locale.md
+++ b/docs/src/guide/in-depth/locale.md
@@ -64,7 +64,7 @@ updateLocale('en-US');
```json
{
"about": {
- "desc": "Vben Admin 是一个现代的管理模版。"
+ "desc": "y-code-platform 是一个现代的管理模版。"
}
}
````
@@ -75,7 +75,7 @@ updateLocale('en-US');
```json
{
"about": {
- "desc": "Vben Admin is a modern management template."
+ "desc": "y-code-platform is a modern management template."
}
}
````
diff --git a/docs/src/guide/in-depth/ui-framework.md b/docs/src/guide/in-depth/ui-framework.md
index 6a7508e..8b821b3 100644
--- a/docs/src/guide/in-depth/ui-framework.md
+++ b/docs/src/guide/in-depth/ui-framework.md
@@ -11,7 +11,7 @@
3. 移除其他组件库依赖及代码,并用你的组件库进行替换相应逻辑,需要改动的地方不多。
4. 调整`locales`内的语言文件。
5. 调整 `app.vue` 内的组件。
-6. 自行适配组件库的主题,与 `Vben Admin` 契合。
+6. 自行适配组件库的主题,与 `y-code-platform` 契合。
7. 调整 `.env` 内的应用名
8. 在大仓根目录增加 `dev:xxx` 脚本
9. 执行 `pnpm install` 安装依赖
diff --git a/docs/src/guide/introduction/platform.md b/docs/src/guide/introduction/platform.md
new file mode 100644
index 0000000..88f89fb
--- /dev/null
+++ b/docs/src/guide/introduction/platform.md
@@ -0,0 +1,19 @@
+# 关于悦码
+
+::: info 你正在阅读的是 [悦码](y-code-platform.shiyuegame.com) `2.0`版本的文档
+
+## 特点
+
+- **最新技术栈**:使用 `Vue3`、`Vite`、`TypeScript` 等前端前沿技术开发。
+- **组件丰富**:提供了丰富的组件,可以满足大部分的业务需求。
+- **多UI库支持**:支持 `Ant Design Vue`、`Element Plus` 等主流 UI 库,不再限制于特定框架。
+
+## 浏览器支持
+
+- **本地开发**推荐使用`Chrome 最新版`浏览器,**不支持**`Chrome 80`以下版本。
+
+- **生产环境**支持现代浏览器,不支持 IE。
+
+| [
](http://godban.github.io/browsers-support-badges/)IE | [
](http://godban.github.io/browsers-support-badges/)Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| :-: | :-: | :-: | :-: | :-: |
+| 不支持 | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
diff --git a/docs/src/guide/introduction/quick-start.md b/docs/src/guide/introduction/quick-start.md
index 7941089..fcc0f28 100644
--- a/docs/src/guide/introduction/quick-start.md
+++ b/docs/src/guide/introduction/quick-start.md
@@ -24,6 +24,7 @@ git -v
:::
+
diff --git a/docs/src/guide/introduction/thin.md b/docs/src/guide/introduction/thin.md
deleted file mode 100644
index 8088400..0000000
--- a/docs/src/guide/introduction/thin.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-outline: deep
----
-
-# 精简版本
-
-从 `5.0` 版本开始,我们不再提供精简的仓库或者分支。我们的目标是提供一个更加一致的开发体验,同时减少维护成本。在这里,我们将如何介绍自己的项目,如何去精简以及移除不需要的功能。
-
-## 应用精简
-
-首先,确认你需要的 `UI` 组件库版本,然后删除对应的应用,比如你选择使用 `Ant Design Vue`,那么你可以删除其他应用, 只需要删除下面两个文件夹即可:
-
-```bash
-apps/web-ele
-apps/web-naive
-
-```
-
-::: tip
-
-如果项目没有内置你需要的 `UI` 组件库应用,你可以直接全部删除其他应用。然后自行新建应用即可。
-
-:::
-
-## 演示代码精简
-
-如果你不需要演示代码,你可以直接删除的`playground`文件夹。
-
-## 文档精简
-
-如果你不需要文档,你可以直接删除`docs`文件夹。
-
-## Mock 服务精简
-
-如果你不需要`Mock`服务,你可以直接删除`apps/backend-mock`文件夹。同时在你的应用下`.env.development`文件中删除`VITE_NITRO_MOCK`变量。
-
-```bash
-# 是否开启 Nitro Mock服务,true 为开启,false 为关闭
-VITE_NITRO_MOCK=false
-```
-
-## 安装依赖
-
-到这里,你已经完成了精简操作,接下来你可以安装依赖,并启动你的项目:
-
-```bash
-# 根目录下执行
-pnpm install
-
-```
-
-## 命令调整
-
-在精简后,你可能需要根据你的项目调整命令,在根目录下的`package.json`文件中,你可以调整`scripts`字段,移除你不需要的命令。
-
-```json
-{
- "scripts": {
- "build:antd": "pnpm run build --filter=@vben/web-antd",
- "build:docs": "pnpm run build --filter=@vben/docs",
- "build:ele": "pnpm run build --filter=@vben/web-ele",
- "build:naive": "pnpm run build --filter=@vben/web-naive",
- "build:play": "pnpm run build --filter=@vben/playground",
- "dev:antd": "pnpm -F @vben/web-antd run dev",
- "dev:docs": "pnpm -F @vben/docs run dev",
- "dev:ele": "pnpm -F @vben/web-ele run dev",
- "dev:play": "pnpm -F @vben/playground run dev",
- "dev:naive": "pnpm -F @vben/web-naive run dev"
- }
-}
-```
-
-## 其他
-
-如果你想更进一步精简,你可以删除参考以下文件或者文件夹的作用,判断自己是否需要,不需要删除即可:
-
-- `.changeset` 文件夹用于管理版本变更
-- `.github` 文件夹用于存放 GitHub 的配置文件
-- `.vscode` 文件夹用于存放 VSCode 的配置文件,如果你使用其他编辑器,可以删除
-- `./scripts/deploy` 文件夹用于存放部署脚本,如果你不需要docker部署,可以删除
-
-## 应用精简
-
-当你确定了某个应用,你还可以进一步精简:
-
-### 删除不需要的路由及页面
-
-- 在应用的 `src/router/routes` 文件中,你可以删除不需要的路由。其中 `core` 文件夹内,如果只需要登录和忘记密码,你可以删除其他路由,如忘记密码、注册等。路由删除后,你可以删除对应的页面文件,在 `src/views/_core` 文件夹中。
-
-- 在应用的 `src/router/routes` 文件中,你可以按需求删除不需要的路由,如`demos`、`vben` 目录等。路由删除后,你可以删除对应的页面文件,在 `src/views` 文件夹中。
-
-### 删除不需要的组件
-
-- 在应用的 `packages/effects/common-ui/src/ui` 文件夹中,你可以删除不需要的组件,如`about`、`dashboard` 目录等。删除之前请先确保你的路由中没有引用到这些组件。
diff --git a/docs/src/guide/introduction/vben.md b/docs/src/guide/introduction/vben.md
deleted file mode 100644
index a4a5f97..0000000
--- a/docs/src/guide/introduction/vben.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 关于 Vben Admin
-
-::: info 你正在阅读的是 [Vben Admin](https://github.com/vbenjs/vue-vben-admin) `5.0`版本的文档!
-
-- Vben Admin 2.x 目前已存档,仅进行重大问题修复。
-- 新版本与旧版本不兼容,如果你使用的是旧版本(v2、v3),请查看 [Vue Vben Admin 2.x 文档](https://doc.vvbin.cn)
-- 如发现文档有误,欢迎提交 [issue](https://github.com/vbenjs/vue-vben-admin/issues) 帮助我们改进。
-- 如果你只是想体验一下,你可以查看[快速开始](./quick-start.md)。
-
-:::
-
-[Vben Admin](https://github.com/vbenjs/vue-vben-admin) 是一个基于 [Vue3.0](https://github.com/vuejs/core)、[Vite](https://github.com/vitejs/vite)、 [TypeScript](https://www.typescriptlang.org/) 的中后台解决方案,目标是为开发中大型项目提供开箱即用的解决方案。包括二次封装组件、utils、hooks、动态菜单、权限校验、多主题配置、按钮级别权限控制等功能。项目会使用前端较新的技术栈,可以作为项目的启动模板,以帮助你快速搭建企业级中后台产品原型。也可以作为一个示例,用于学习 `vue3`、`vite`、`ts` 等主流技术。该项目会持续跟进最新技术,并将其应用在项目中。
-
-## 特点
-
-- **最新技术栈**:使用 `Vue3`、`Vite`、`TypeScript` 等前端前沿技术开发。
-- **国际化**:内置完善的国际化方案,支持多语言切换。
-- **权限验证**:完善的权限验证方案,按钮级别权限控制。
-- **多主题**:内置多种主题配置和黑暗模式,满足个性化需求。
-- **动态菜单**:支持动态菜单,可以根据权限配置显示菜单。
-- **Mock 数据**:基于 `Nitro` 的本地高性能 Mock 数据方案。
-- **组件丰富**:提供了丰富的组件,可以满足大部分的业务需求。
-- **规范**:代码规范,使用 `ESLint`、`Prettier`、`Stylelint`、`Publint`、`CSpell` 等工具保证代码质量。
-- **工程化**:使用 `Pnpm Monorepo`、`TurboRepo`、`Changeset` 等工具,提高开发效率。
-- **多UI库支持**:支持 `Ant Design Vue`、`Element Plus`、`Naive` 等主流 UI 库,不再限制于特定框架。
-
-## 浏览器支持
-
-- **本地开发**推荐使用`Chrome 最新版`浏览器,**不支持**`Chrome 80`以下版本。
-
-- **生产环境**支持现代浏览器,不支持 IE。
-
-| [
](http://godban.github.io/browsers-support-badges/)IE | [
](http://godban.github.io/browsers-support-badges/)Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
-| :-: | :-: | :-: | :-: | :-: |
-| 不支持 | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
-
-## 贡献
-
-- [Vben Admin](https://github.com/vbenjs/vue-vben-admin) 还在持续更新中,本项目欢迎您的参与,共同维护,逐步完善,打造更好的中后台解决方案。
-- 如果你有兴趣加入我们,可以通过以下方式开始,我们会根据你的活跃度邀请你加入。
-
-::: info 加入我们
-
-- 长期提交 `PR`。
-- 提供有价值的建议。
-- 参与讨论,帮助解决 `issue`。
-- 共同维护文档。
-
-:::
diff --git a/docs/src/guide/introduction/why.md b/docs/src/guide/introduction/why.md
deleted file mode 100644
index 4191b3e..0000000
--- a/docs/src/guide/introduction/why.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 为什么选择我们?
-
-::: info 写在前面
-
-我们不会去和其他框架做比较。我们认为每个框架都有自己的特点,适合不同的场景。我们的目标是提供一个简单、易用的框架,让开发者可以快速上手,专注于业务逻辑的开发。所以我们只会不断完善和优化我们的框架,提供更好的体验。
-
-:::
-
-我们致力于为开发者提供一个高效、现代、易用的前端框架。我们的解决方案基于最新的技术栈,如 Vue3、Vite 和 TypeScript,确保您在构建项目时始终走在技术的前沿。同时,我们注重代码的质量与规范,通过严格的工具链保证代码的一致性和可维护性。无论是初创项目还是企业级应用,我们的框架都能帮助您快速构建、迭代和部署。
-
-## 框架历程
-
-从 Vue Vben Admin 1.x 版本开始,框架经历了许多迭代和优化。从一开始使用 `Vite 0.x` 版本,没有现成的插件,开发了很多自定义插件来弥合 Webpack 和 Vite 之间的差异。虽然很多现在已经被代替,但是我们的初衷一直没有变,就是提供一个简单、易用的框架。
-
-虽然中间有段时间由社区维护,但我们一直密切关注 Vue Vben Admin 的发展。见证了许多开发者使用 Vben Admin,并提供了许多宝贵的建议和反馈。非常感谢大家的支持和贡献,这些都是我们持续改进 Vben Admin 的动力。新版本中,我们持续收集用户反馈,重新开始,不断优化框架,以提供更好的用户体验。我们的目标是让开发者能够快速上手,专注于业务逻辑的开发。
-
-## 单元测试
-
-单元测试是确保代码质量的基石。在开发过程中编写和执行单元测试,以捕捉潜在的错误并提升代码的可靠性。框架核心逻辑使用 `vitest` 做了单元测试,并在逐步增加覆盖率。通过单元测试,可以放心地进行代码重构,减少回归问题,从而提高整体开发效率。
-
-## 质量与规范
-
-我们始终高度重视代码的质量与规范。通过使用 ESLint、Prettier、Stylelint、Publint、CSpell 等工具来确保代码质量。我们的代码规范基于 Vue3、Vite、TypeScript 等现代前端技术制定,旨在提供一个简洁、易用的框架,使开发者能够快速上手并专注于业务逻辑的开发。
diff --git a/docs/src/index.md b/docs/src/index.md
index 30aaa0a..1cd78aa 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -4,22 +4,19 @@ layout: home
sidebar: false
hero:
- name: Vben Admin
- text: 企业级管理系统框架
+ name: y-code 悦码
+ text: 低代码管理平台
tagline: 全新升级,开箱即用,简单高效
image:
src: https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp
- alt: Vben Admin
+ alt: y-code-platform
actions:
- theme: brand
text: 快速开始 ->
- link: /guide/introduction/vben
+ link: /guide/introduction/platform
- theme: alt
text: 在线预览
link: https://www.vben.pro
- - theme: alt
- text: 在 GitHub 查看
- link: https://github.com/vbenjs/vue-vben-admin
features:
- icon: 🚀
@@ -27,50 +24,11 @@ features:
details: 基于 Vue3、Pinia、Vue Router、TypeScript、等最新技术栈。
link: /guide/introduction/quick-start
linkText: 快速开始
- - icon: 🦄
- title: 丰富的配置
- details: 企业级中后台前端解决方案,提供丰富的组件和模板以及 N 种偏好设置组合方案。
- link: /guide/essentials/settings
- linkText: 配置文档
- - icon: 🎨
- title: 主题定制
- details: 通过简单的配置,即可实现各种主题切换,满足个性化需求。
- link: /guide/in-depth/theme
- linkText: 主题文档
- - icon: 🌐
- title: 国际化
- details: 内置国际化方案,支持多语言切换,满足国际化需求。
- link: /guide/in-depth/locale
- linkText: 国际化文档
- - icon: 🔐
- title: 权限管理
- details: 内置权限管理方案,支持多种权限控制方式,满足各种权限需求。
- link: /guide/in-depth/access
- linkText: 权限文档
- - title: Vite
- icon:
- src: /logos/vite.svg
- details: 现代化的前端构建工具,快速冷启动,瞬间热更新。
- link: https://vitejs.dev/
- linkText: 官方站点
- - title: Shadcn UI
- icon:
- src: /logos/shadcn-ui.svg
- details: 核心基于 Shadcn UI + Tailwindcss,业务可支持任意的 UI 框架。
- link: https://www.shadcn-vue.com/
- linkText: 官方站点
- - title: Turbo Repo
- icon:
- src: /logos/turborepo.svg
- details: 规范且标准的大仓架构,使用 pnpm + monorepo + turbo 工程管理模式,提供企业级开发规范。
- link: https://turbo.build/
- linkText: 官方站点
- - title: Nitro Mock Server
- icon:
- src: /logos/nitro.svg
- details: 内置 Nitro Mock 服务,让你的 mock 服务更加强大。
- link: https://nitro.unjs.io/
- linkText: 官方站点
+ # - icon: 🦄
+ # title: 丰富的配置
+ # details: 企业级中后台前端解决方案,提供丰富的组件和模板以及 N 种偏好设置组合方案。
+ # link: /guide/essentials/settings
+ # linkText: 配置文档
---
-
+
diff --git a/docs/src/materials/index.md b/docs/src/materials/index.md
new file mode 100644
index 0000000..347e840
--- /dev/null
+++ b/docs/src/materials/index.md
@@ -0,0 +1 @@
+物料
diff --git a/docs/src/renderer/index.md b/docs/src/renderer/index.md
new file mode 100644
index 0000000..e8cb514
--- /dev/null
+++ b/docs/src/renderer/index.md
@@ -0,0 +1 @@
+渲染器
diff --git a/vben-admin.code-workspace b/vben-admin.code-workspace
index e2084e4..440cedf 100644
--- a/vben-admin.code-workspace
+++ b/vben-admin.code-workspace
@@ -17,7 +17,7 @@
"path": "apps/y-code-v1",
},
{
- "name": "@vben/docs",
+ "name": "@sy/y-code-docs",
"path": "docs",
},
{