From 6ef87e318bb750115b9693ada808bec5e88640d1 Mon Sep 17 00:00:00 2001 From: raon0211 Date: Sun, 25 Aug 2024 22:22:21 +0900 Subject: [PATCH] feat(upperFirst, lowerFirst): Add some docs for lowerFirst & upperFirst --- docs/.vitepress/en.mts | 2 + docs/.vitepress/ko.mts | 2 + docs/.vitepress/zh_hans.mts | 2 + docs/ko/reference/string/lowerFirst.md | 27 +++ docs/ko/reference/string/upperFirst.md | 27 +++ docs/reference/string/lowerFirst.md | 7 +- docs/zh_hans/reference/string/lowerFirst.md | 27 +++ docs/zh_hans/reference/string/upperFirst.md | 27 +++ ....timestamp-1724591156352-c37ec5d37daab.mjs | 190 ------------------ 9 files changed, 118 insertions(+), 193 deletions(-) create mode 100644 docs/ko/reference/string/lowerFirst.md create mode 100644 docs/ko/reference/string/upperFirst.md create mode 100644 docs/zh_hans/reference/string/lowerFirst.md create mode 100644 docs/zh_hans/reference/string/upperFirst.md delete mode 100644 vitest.config.mts.timestamp-1724591156352-c37ec5d37daab.mjs diff --git a/docs/.vitepress/en.mts b/docs/.vitepress/en.mts index bdf4bcf3..c7c26eca 100644 --- a/docs/.vitepress/en.mts +++ b/docs/.vitepress/en.mts @@ -214,6 +214,8 @@ function sidebar(): DefaultTheme.Sidebar { { text: 'startCase', link: '/reference/string/startCase' }, { text: 'pascalCase', link: '/reference/string/pascalCase' }, { text: 'capitalize', link: '/reference/string/capitalize' }, + { text: 'lowerFirst', link: '/reference/string/lowerFirst' }, + { text: 'upperFirst', link: '/reference/string/upperFirst' }, { text: 'startsWith (compat)', link: '/reference/compat/string/startsWith' }, { text: 'endsWith (compat)', link: '/reference/compat/string/endsWith' }, { text: 'padStart (compat)', link: '/reference/compat/string/padStart' }, diff --git a/docs/.vitepress/ko.mts b/docs/.vitepress/ko.mts index 3c75a6df..1035b120 100644 --- a/docs/.vitepress/ko.mts +++ b/docs/.vitepress/ko.mts @@ -227,6 +227,8 @@ function sidebar(): DefaultTheme.Sidebar { { text: 'startCase', link: '/ko/reference/string/startCase' }, { text: 'pascalCase', link: '/ko/reference/string/pascalCase' }, { text: 'capitalize', link: '/ko/reference/string/capitalize' }, + { text: 'lowerFirst', link: '/ko/reference/string/lowerFirst' }, + { text: 'upperFirst', link: '/ko/reference/string/upperFirst' }, { text: 'startsWith (호환성)', link: '/ko/reference/compat/string/startsWith' }, { text: 'endsWith (호환성)', link: '/ko/reference/compat/string/endsWith' }, { text: 'padStart (호환성)', link: '/ko/reference/compat/string/padStart' }, diff --git a/docs/.vitepress/zh_hans.mts b/docs/.vitepress/zh_hans.mts index 815d4ddf..af12d713 100644 --- a/docs/.vitepress/zh_hans.mts +++ b/docs/.vitepress/zh_hans.mts @@ -210,6 +210,8 @@ function sidebar(): DefaultTheme.Sidebar { { text: 'startCase', link: '/zh_hans/reference/string/startCase' }, { text: 'pascalCase', link: '/zh_hans/reference/string/pascalCase' }, { text: 'capitalize', link: '/zh_hans/reference/string/capitalize' }, + { text: 'lowerFirst', link: '/zh_hans/reference/string/lowerFirst' }, + { text: 'upperFirst', link: '/zh_hans/reference/string/upperFirst' }, { text: 'startsWith (兼容性)', link: '/zh_hans/reference/compat/string/startsWith' }, { text: 'endsWith (兼容性)', link: '/zh_hans/reference/compat/string/endsWith' }, { text: 'padStart (兼容性)', link: '/zh_hans/reference/compat/string/padStart' }, diff --git a/docs/ko/reference/string/lowerFirst.md b/docs/ko/reference/string/lowerFirst.md new file mode 100644 index 00000000..42b451ee --- /dev/null +++ b/docs/ko/reference/string/lowerFirst.md @@ -0,0 +1,27 @@ +# lowerFirst + +문자열의 첫 글자를 소문자로 바꿔요. + +## 인터페이스 + +```typescript +function lowerFirst(str: string): string; +``` + +### 파라미터 + +- `str` (`string`): 바꿀 문자열. + +### 반환 값 + +(`string`) 첫 글자가 소문자로 바뀐 문자열. + +## 예시 + +```typescript +import { lowerFirst } from 'es-toolkit/string'; + +lowerFirst('fred'); // 반환 값은 'fred' +lowerFirst('Fred'); // 반환 값은 'fred' +lowerFirst('FRED'); // 반환 값은 'fRED' +``` diff --git a/docs/ko/reference/string/upperFirst.md b/docs/ko/reference/string/upperFirst.md new file mode 100644 index 00000000..aa0b6711 --- /dev/null +++ b/docs/ko/reference/string/upperFirst.md @@ -0,0 +1,27 @@ +# upperFirst + +문자열의 첫 글자를 대문자로 바꿔요. + +## 인터페이스 + +```typescript +function upperFirst(str: string): string; +``` + +### 파라미터 + +- `str` (`string`): 바꿀 문자열. + +### 반환 값 + +(`string`) 첫 글자가 대문자로 바뀐 문자열. + +## 예시 + +```typescript +import { upperFirst } from 'es-toolkit/string'; + +upperFirst('fred') // 반환 값은 'Fred' +upperFirst('Fred') // 반환 값은 'Fred' +upperFirst('FRED') // 반환 값은 'FRED' +``` \ No newline at end of file diff --git a/docs/reference/string/lowerFirst.md b/docs/reference/string/lowerFirst.md index a880abac..43faa717 100644 --- a/docs/reference/string/lowerFirst.md +++ b/docs/reference/string/lowerFirst.md @@ -21,6 +21,7 @@ function lowerFirst(str: string): string; ```typescript import { lowerFirst } from 'es-toolkit/string'; -upperCase('Fred') // returns 'fred' -upperCase('FRED') // returns 'fRED' -``` \ No newline at end of file +lowerFirst('fred'); // returns 'fred' +lowerFirst('Fred'); // returns 'fred' +lowerFirst('FRED'); // returns 'fRED' +``` diff --git a/docs/zh_hans/reference/string/lowerFirst.md b/docs/zh_hans/reference/string/lowerFirst.md new file mode 100644 index 00000000..7e059fc9 --- /dev/null +++ b/docs/zh_hans/reference/string/lowerFirst.md @@ -0,0 +1,27 @@ +# lowerFirst + +将字符串的第一个字符转换为小写。 + +## 签名 + +```typescript +function lowerFirst(str: string): string; +``` + +### 参数 + +- `str` (`string`): 要修改的字符串。 + +### 返回值 + +(`string`): 转换后的字符串。 + +## 示例 + +```typescript +import { lowerFirst } from 'es-toolkit/string'; + +lowerFirst('fred'); // 返回 'fred' +lowerFirst('Fred'); // 返回 'fred' +lowerFirst('FRED'); // 返回 'fRED' +``` diff --git a/docs/zh_hans/reference/string/upperFirst.md b/docs/zh_hans/reference/string/upperFirst.md new file mode 100644 index 00000000..087d73a9 --- /dev/null +++ b/docs/zh_hans/reference/string/upperFirst.md @@ -0,0 +1,27 @@ +# upperFirst + +将字符串的第一个字符转换为大写。 + +## 签名 + +```typescript +function upperFirst(str: string): string; +``` + +### 参数 + +- `str` (`string`): 要修改的字符串。 + +### 返回值 + +(`string`): 转换后的字符串。 + +## 示例 + +```typescript +import { upperFirst } from 'es-toolkit/string'; + +upperFirst('fred') // 返回 'Fred' +upperFirst('Fred') // 返回 'Fred' +upperFirst('FRED') // 返回 'FRED' +``` \ No newline at end of file diff --git a/vitest.config.mts.timestamp-1724591156352-c37ec5d37daab.mjs b/vitest.config.mts.timestamp-1724591156352-c37ec5d37daab.mjs deleted file mode 100644 index a059ed52..00000000 --- a/vitest.config.mts.timestamp-1724591156352-c37ec5d37daab.mjs +++ /dev/null @@ -1,190 +0,0 @@ -// vitest.config.mts -import { defineConfig } from "file:///Users/raon0211/dev/es-toolkit/.yarn/__virtual__/vitest-virtual-b78ba7e19b/3/.yarn/berry/cache/vitest-npm-1.5.2-db4ab193ee-10c0.zip/node_modules/vitest/dist/config.js"; - -// package.json -var package_default = { - name: "es-toolkit", - description: "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.", - version: "1.16.0", - homepage: "https://es-toolkit.slash.page", - bugs: "https://github.com/toss/es-toolkit/issues", - repository: { - type: "git", - url: "https://github.com/toss/es-toolkit.git" - }, - license: "MIT", - workspaces: [ - "docs", - "benchmarks" - ], - packageManager: "yarn@4.2.2", - exports: { - ".": "./src/index.ts", - "./array": "./src/array/index.ts", - "./compat": "./src/compat/index.ts", - "./function": "./src/function/index.ts", - "./math": "./src/math/index.ts", - "./object": "./src/object/index.ts", - "./predicate": "./src/predicate/index.ts", - "./promise": "./src/promise/index.ts", - "./string": "./src/string/index.ts", - "./package.json": "./package.json" - }, - files: [ - "dist", - "*.d.ts" - ], - publishConfig: { - access: "public", - main: "./dist/index.js", - module: "./dist/index.mjs", - types: "./dist/index.d.ts", - browser: "./dist/browser.global.js", - exports: { - ".": { - import: { - types: "./dist/index.d.mts", - default: "./dist/index.mjs" - }, - require: { - types: "./dist/index.d.ts", - default: "./dist/index.js" - } - }, - "./array": { - import: { - types: "./dist/array/index.d.mts", - default: "./dist/array/index.mjs" - }, - require: { - types: "./dist/array/index.d.ts", - default: "./dist/array/index.js" - } - }, - "./function": { - import: { - types: "./dist/function/index.d.mts", - default: "./dist/function/index.mjs" - }, - require: { - types: "./dist/function/index.d.ts", - default: "./dist/function/index.js" - } - }, - "./math": { - import: { - types: "./dist/math/index.d.mts", - default: "./dist/math/index.mjs" - }, - require: { - types: "./dist/math/index.d.ts", - default: "./dist/math/index.js" - } - }, - "./object": { - import: { - types: "./dist/object/index.d.mts", - default: "./dist/object/index.mjs" - }, - require: { - types: "./dist/object/index.d.ts", - default: "./dist/object/index.js" - } - }, - "./predicate": { - import: { - types: "./dist/predicate/index.d.mts", - default: "./dist/predicate/index.mjs" - }, - require: { - types: "./dist/predicate/index.d.ts", - default: "./dist/predicate/index.js" - } - }, - "./promise": { - import: { - types: "./dist/promise/index.d.mts", - default: "./dist/promise/index.mjs" - }, - require: { - types: "./dist/promise/index.d.ts", - default: "./dist/promise/index.js" - } - }, - "./string": { - import: { - types: "./dist/string/index.d.mts", - default: "./dist/string/index.mjs" - }, - require: { - types: "./dist/string/index.d.ts", - default: "./dist/string/index.js" - } - }, - "./compat": { - import: { - types: "./dist/compat/index.d.mts", - default: "./dist/compat/index.mjs" - }, - require: { - types: "./dist/compat/index.d.ts", - default: "./dist/compat/index.js" - } - }, - "./package.json": "./package.json" - } - }, - devDependencies: { - "@arethetypeswrong/cli": "^0.15.3", - "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.1", - "@eslint/js": "^9.9.0", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^11.1.6", - "@types/broken-link-checker": "^0", - "@types/eslint": "^9", - "@types/node": "^20.12.11", - "@types/tar": "^6.1.13", - "@vitest/coverage-istanbul": "^1.5.2", - "broken-link-checker": "^0.7.8", - eslint: "^9.9.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jsdoc": "^50.2.2", - execa: "^9.3.0", - globals: "^15.9.0", - prettier: "^3.2.5", - rollup: "^4.19.0", - "rollup-plugin-dts": "^6.1.1", - tar: "^6", - tslib: "^2.6.3", - typescript: "^5.4.5", - "typescript-eslint": "^8.1.0", - vitest: "^1.5.2" - }, - sideEffects: false, - scripts: { - prepack: "yarn build", - build: "rollup -c rollup.config.mjs && ./.scripts/postbuild.sh", - test: "vitest run --coverage --typecheck", - bench: "vitest bench", - lint: "eslint --config eslint.config.mjs", - format: "prettier --write ." - } -}; - -// vitest.config.mts -var vitest_config_default = defineConfig({ - test: { - name: package_default.name, - exclude: ["./benchmarks/**/*"], - coverage: { - provider: "istanbul", - include: ["src/**/*"], - exclude: ["src/compat/_internal/**/*"] - } - } -}); -export { - vitest_config_default as default -}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZXN0LmNvbmZpZy5tdHMiLCAicGFja2FnZS5qc29uIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3Jhb24wMjExL2Rldi9lcy10b29sa2l0XCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcmFvbjAyMTEvZGV2L2VzLXRvb2xraXQvdml0ZXN0LmNvbmZpZy5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3Jhb24wMjExL2Rldi9lcy10b29sa2l0L3ZpdGVzdC5jb25maWcubXRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZXN0L2NvbmZpZyc7XG5pbXBvcnQgcGFja2FnZUpzb24gZnJvbSAnLi9wYWNrYWdlLmpzb24nO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICB0ZXN0OiB7XG4gICAgbmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICBleGNsdWRlOiBbJy4vYmVuY2htYXJrcy8qKi8qJ10sXG4gICAgY292ZXJhZ2U6IHtcbiAgICAgIHByb3ZpZGVyOiAnaXN0YW5idWwnLFxuICAgICAgaW5jbHVkZTogWydzcmMvKiovKiddLFxuICAgICAgZXhjbHVkZTogWydzcmMvY29tcGF0L19pbnRlcm5hbC8qKi8qJ10sXG4gICAgfSxcbiAgfSxcbn0pO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiZXMtdG9vbGtpdFwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQSBzdGF0ZS1vZi10aGUtYXJ0LCBoaWdoLXBlcmZvcm1hbmNlIEphdmFTY3JpcHQgdXRpbGl0eSBsaWJyYXJ5IHdpdGggYSBzbWFsbCBidW5kbGUgc2l6ZSBhbmQgc3Ryb25nIHR5cGUgYW5ub3RhdGlvbnMuXCIsXG4gIFwidmVyc2lvblwiOiBcIjEuMTYuMFwiLFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9lcy10b29sa2l0LnNsYXNoLnBhZ2VcIixcbiAgXCJidWdzXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL3Rvc3MvZXMtdG9vbGtpdC9pc3N1ZXNcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS90b3NzL2VzLXRvb2xraXQuZ2l0XCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiTUlUXCIsXG4gIFwid29ya3NwYWNlc1wiOiBbXG4gICAgXCJkb2NzXCIsXG4gICAgXCJiZW5jaG1hcmtzXCJcbiAgXSxcbiAgXCJwYWNrYWdlTWFuYWdlclwiOiBcInlhcm5ANC4yLjJcIixcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi5cIjogXCIuL3NyYy9pbmRleC50c1wiLFxuICAgIFwiLi9hcnJheVwiOiBcIi4vc3JjL2FycmF5L2luZGV4LnRzXCIsXG4gICAgXCIuL2NvbXBhdFwiOiBcIi4vc3JjL2NvbXBhdC9pbmRleC50c1wiLFxuICAgIFwiLi9mdW5jdGlvblwiOiBcIi4vc3JjL2Z1bmN0aW9uL2luZGV4LnRzXCIsXG4gICAgXCIuL21hdGhcIjogXCIuL3NyYy9tYXRoL2luZGV4LnRzXCIsXG4gICAgXCIuL29iamVjdFwiOiBcIi4vc3JjL29iamVjdC9pbmRleC50c1wiLFxuICAgIFwiLi9wcmVkaWNhdGVcIjogXCIuL3NyYy9wcmVkaWNhdGUvaW5kZXgudHNcIixcbiAgICBcIi4vcHJvbWlzZVwiOiBcIi4vc3JjL3Byb21pc2UvaW5kZXgudHNcIixcbiAgICBcIi4vc3RyaW5nXCI6IFwiLi9zcmMvc3RyaW5nL2luZGV4LnRzXCIsXG4gICAgXCIuL3BhY2thZ2UuanNvblwiOiBcIi4vcGFja2FnZS5qc29uXCJcbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0XCIsXG4gICAgXCIqLmQudHNcIlxuICBdLFxuICBcInB1Ymxpc2hDb25maWdcIjoge1xuICAgIFwiYWNjZXNzXCI6IFwicHVibGljXCIsXG4gICAgXCJtYWluXCI6IFwiLi9kaXN0L2luZGV4LmpzXCIsXG4gICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QvaW5kZXgubWpzXCIsXG4gICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgXCJicm93c2VyXCI6IFwiLi9kaXN0L2Jyb3dzZXIuZ2xvYmFsLmpzXCIsXG4gICAgXCJleHBvcnRzXCI6IHtcbiAgICAgIFwiLlwiOiB7XG4gICAgICAgIFwiaW1wb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2luZGV4LmQubXRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2luZGV4LmpzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiLi9hcnJheVwiOiB7XG4gICAgICAgIFwiaW1wb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2FycmF5L2luZGV4LmQubXRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2FycmF5L2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9hcnJheS9pbmRleC5kLnRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2FycmF5L2luZGV4LmpzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiLi9mdW5jdGlvblwiOiB7XG4gICAgICAgIFwiaW1wb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2Z1bmN0aW9uL2luZGV4LmQubXRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2Z1bmN0aW9uL2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9mdW5jdGlvbi9pbmRleC5kLnRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2Z1bmN0aW9uL2luZGV4LmpzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiLi9tYXRoXCI6IHtcbiAgICAgICAgXCJpbXBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbWF0aC9pbmRleC5kLm10c1wiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9tYXRoL2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9tYXRoL2luZGV4LmQudHNcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCIuL2Rpc3QvbWF0aC9pbmRleC5qc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIi4vb2JqZWN0XCI6IHtcbiAgICAgICAgXCJpbXBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3Qvb2JqZWN0L2luZGV4LmQubXRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L29iamVjdC9pbmRleC5tanNcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVpcmVcIjoge1xuICAgICAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3Qvb2JqZWN0L2luZGV4LmQudHNcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCIuL2Rpc3Qvb2JqZWN0L2luZGV4LmpzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiLi9wcmVkaWNhdGVcIjoge1xuICAgICAgICBcImltcG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9wcmVkaWNhdGUvaW5kZXguZC5tdHNcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCIuL2Rpc3QvcHJlZGljYXRlL2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9wcmVkaWNhdGUvaW5kZXguZC50c1wiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9wcmVkaWNhdGUvaW5kZXguanNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCIuL3Byb21pc2VcIjoge1xuICAgICAgICBcImltcG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9wcm9taXNlL2luZGV4LmQubXRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L3Byb21pc2UvaW5kZXgubWpzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlXCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L3Byb21pc2UvaW5kZXguZC50c1wiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9wcm9taXNlL2luZGV4LmpzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiLi9zdHJpbmdcIjoge1xuICAgICAgICBcImltcG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9zdHJpbmcvaW5kZXguZC5tdHNcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCIuL2Rpc3Qvc3RyaW5nL2luZGV4Lm1qc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9zdHJpbmcvaW5kZXguZC50c1wiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9zdHJpbmcvaW5kZXguanNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCIuL2NvbXBhdFwiOiB7XG4gICAgICAgIFwiaW1wb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2NvbXBhdC9pbmRleC5kLm10c1wiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9jb21wYXQvaW5kZXgubWpzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlXCI6IHtcbiAgICAgICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2NvbXBhdC9pbmRleC5kLnRzXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiLi9kaXN0L2NvbXBhdC9pbmRleC5qc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIi4vcGFja2FnZS5qc29uXCI6IFwiLi9wYWNrYWdlLmpzb25cIlxuICAgIH1cbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGFyZXRoZXR5cGVzd3JvbmcvY2xpXCI6IFwiXjAuMTUuM1wiLFxuICAgIFwiQGNoYW5nZXNldHMvY2hhbmdlbG9nLWdpdGh1YlwiOiBcIl4wLjUuMFwiLFxuICAgIFwiQGNoYW5nZXNldHMvY2xpXCI6IFwiXjIuMjcuMVwiLFxuICAgIFwiQGVzbGludC9qc1wiOiBcIl45LjkuMFwiLFxuICAgIFwiQHJvbGx1cC9wbHVnaW4tdGVyc2VyXCI6IFwiXjAuNC40XCIsXG4gICAgXCJAcm9sbHVwL3BsdWdpbi10eXBlc2NyaXB0XCI6IFwiXjExLjEuNlwiLFxuICAgIFwiQHR5cGVzL2Jyb2tlbi1saW5rLWNoZWNrZXJcIjogXCJeMFwiLFxuICAgIFwiQHR5cGVzL2VzbGludFwiOiBcIl45XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4yMC4xMi4xMVwiLFxuICAgIFwiQHR5cGVzL3RhclwiOiBcIl42LjEuMTNcIixcbiAgICBcIkB2aXRlc3QvY292ZXJhZ2UtaXN0YW5idWxcIjogXCJeMS41LjJcIixcbiAgICBcImJyb2tlbi1saW5rLWNoZWNrZXJcIjogXCJeMC43LjhcIixcbiAgICBcImVzbGludFwiOiBcIl45LjkuMFwiLFxuICAgIFwiZXNsaW50LWNvbmZpZy1wcmV0dGllclwiOiBcIl45LjEuMFwiLFxuICAgIFwiZXNsaW50LXBsdWdpbi1qc2RvY1wiOiBcIl41MC4yLjJcIixcbiAgICBcImV4ZWNhXCI6IFwiXjkuMy4wXCIsXG4gICAgXCJnbG9iYWxzXCI6IFwiXjE1LjkuMFwiLFxuICAgIFwicHJldHRpZXJcIjogXCJeMy4yLjVcIixcbiAgICBcInJvbGx1cFwiOiBcIl40LjE5LjBcIixcbiAgICBcInJvbGx1cC1wbHVnaW4tZHRzXCI6IFwiXjYuMS4xXCIsXG4gICAgXCJ0YXJcIjogXCJeNlwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjNcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJeNS40LjVcIixcbiAgICBcInR5cGVzY3JpcHQtZXNsaW50XCI6IFwiXjguMS4wXCIsXG4gICAgXCJ2aXRlc3RcIjogXCJeMS41LjJcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwicHJlcGFja1wiOiBcInlhcm4gYnVpbGRcIixcbiAgICBcImJ1aWxkXCI6IFwicm9sbHVwIC1jIHJvbGx1cC5jb25maWcubWpzICYmIC4vLnNjcmlwdHMvcG9zdGJ1aWxkLnNoXCIsXG4gICAgXCJ0ZXN0XCI6IFwidml0ZXN0IHJ1biAtLWNvdmVyYWdlIC0tdHlwZWNoZWNrXCIsXG4gICAgXCJiZW5jaFwiOiBcInZpdGVzdCBiZW5jaFwiLFxuICAgIFwibGludFwiOiBcImVzbGludCAtLWNvbmZpZyBlc2xpbnQuY29uZmlnLm1qc1wiLFxuICAgIFwiZm9ybWF0XCI6IFwicHJldHRpZXIgLS13cml0ZSAuXCJcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFrUixTQUFTLG9CQUFvQjs7O0FDQS9TO0FBQUEsRUFDRSxNQUFRO0FBQUEsRUFDUixhQUFlO0FBQUEsRUFDZixTQUFXO0FBQUEsRUFDWCxVQUFZO0FBQUEsRUFDWixNQUFRO0FBQUEsRUFD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