From 4074bbdc74fa3ce2d31be786b6ecfd55f5048c7d Mon Sep 17 00:00:00 2001 From: louis <869322496@qq.com> Date: Tue, 27 Feb 2024 17:22:27 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E6=90=AD=E5=BB=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .browserslistrc | 5 + .cz-config.js | 94 + .dockerignore | 19 + .env | 9 + .env.development | 10 + .env.production | 11 + .eslintignore | 19 + .eslintrc.js | 110 + .gitignore | 32 + .husky/commit-msg | 4 + .husky/pre-commit | 7 + .npmrc | 18 + .prettierignore | 9 + .stylelintignore | 2 + .versionrc.js | 19 + .vscode/extensions.json | 14 + .vscode/launch.json | 13 + .vscode/settings.json | 106 + .vscode/vue3.3.code-snippets | 20 + CHANGELOG.md | 0 Dockerfile | 29 + README.md | 77 + commitlint.config.cjs | 24 + docker-compose.yml | 14 + index.html | 14 + lint-staged.config.js | 10 + mocks/_util.ts | 83 + mocks/demo/hero/_heroList.json | 1978 +++ mocks/demo/hero/_lolHeroList.json | 7380 +++++++++ mocks/demo/hero/index.ts | 37 + mocks/demo/select.ts | 23 + mocks/index.ts | 25 + mocks/list.ts | 28 + mocks/user.ts | 24 + openapi.config.ts | 67 + package.json | 155 + pnpm-lock.yaml | 12319 ++++++++++++++++ prettier.config.js | 13 + public/favicon.ico | Bin 0 -> 4286 bytes public/iconfont.js | 1 + src/App.vue | 23 + src/api/backend/api/account.ts | 59 + src/api/backend/api/auth.ts | 27 + src/api/backend/api/authEmail.ts | 15 + src/api/backend/api/businessTodo.ts | 82 + src/api/backend/api/captcha.ts | 22 + src/api/backend/api/health.ts | 68 + src/api/backend/api/index.ts | 52 + src/api/backend/api/netDiskManage.ts | 128 + src/api/backend/api/netDiskOverview.ts | 11 + src/api/backend/api/systemDept.ts | 77 + src/api/backend/api/systemDictItem.ts | 91 + src/api/backend/api/systemDictType.ts | 99 + src/api/backend/api/systemEmail.ts | 15 + src/api/backend/api/systemLog.ts | 90 + src/api/backend/api/systemMenu.ts | 95 + src/api/backend/api/systemOnline.ts | 23 + src/api/backend/api/systemParamConfig.ts | 91 + src/api/backend/api/systemRole.ts | 91 + src/api/backend/api/systemServe.ts | 11 + src/api/backend/api/systemSse.ts | 17 + src/api/backend/api/systemTask.ts | 136 + src/api/backend/api/systemUser.ts | 110 + src/api/backend/api/toolsStorage.ts | 44 + src/api/backend/api/toolsUpload.ts | 35 + src/api/backend/api/typings.d.ts | 1271 ++ src/api/demo/hero.ts | 30 + src/api/demo/select.ts | 13 + src/api/index.ts | 5 + src/api/typings.d.ts | 36 + src/assets/404.gif | Bin 0 -> 164227 bytes src/assets/analysis.svg | 1 + src/assets/icons/dark.svg | 39 + src/assets/icons/file-type-code.svg | 1 + src/assets/icons/file-type-dir.svg | 1 + src/assets/icons/file-type-docx.svg | 1 + src/assets/icons/file-type-excel.svg | 1 + src/assets/icons/file-type-img.svg | 1 + src/assets/icons/file-type-music.svg | 1 + src/assets/icons/file-type-office.svg | 1 + src/assets/icons/file-type-pdf.svg | 1 + src/assets/icons/file-type-ppt.svg | 1 + src/assets/icons/file-type-psd.svg | 1 + src/assets/icons/file-type-txt.svg | 1 + src/assets/icons/file-type-unknown.svg | 1 + src/assets/icons/file-type-video.svg | 1 + src/assets/icons/file-type-zip.svg | 1 + src/assets/icons/light.svg | 39 + src/assets/icons/locale.svg | 14 + src/assets/icons/login.svg | 68 + src/assets/icons/logo.svg | 48 + src/assets/icons/moon.svg | 1 + src/assets/icons/realDark.svg | 39 + src/assets/icons/sidemenu.svg | 39 + src/assets/icons/sun.svg | 1 + src/assets/icons/topmenu.svg | 39 + src/assets/images/logo.png | Bin 0 -> 23369 bytes src/assets/images/logowithtext.png | Bin 0 -> 2873 bytes src/assets/images/no-preview.png | Bin 0 -> 1530 bytes src/assets/images/tool.png | Bin 0 -> 2629 bytes src/assets/login.svg | 68 + src/components/basic/README.md | 6 + src/components/basic/basic-arrow/index.ts | 1 + src/components/basic/basic-arrow/index.vue | 24 + src/components/basic/basic-help/index.vue | 94 + src/components/basic/button/button.ts | 22 + src/components/basic/button/button.vue | 51 + src/components/basic/button/index.ts | 9 + src/components/basic/check-box/index.vue | 54 + src/components/basic/context-menu/index.ts | 3 + .../basic/context-menu/src/ContextMenu.vue | 136 + .../context-menu/src/createContextMenu.ts | 78 + .../basic/context-menu/src/typing.ts | 38 + src/components/basic/excel/index.ts | 8 + .../basic/excel/src/Export2Excel.ts | 59 + .../basic/excel/src/ExportExcelModal.tsx | 78 + .../basic/excel/src/ImportExcel.vue | 159 + src/components/basic/excel/src/typing.ts | 27 + src/components/basic/icon/Icon.vue | 58 + src/components/basic/icon/index.ts | 8 + src/components/basic/icon/src/IconPicker.vue | 121 + src/components/basic/icon/src/SvgIcon.vue | 33 + src/components/basic/icon/src/icon-font.tsx | 73 + src/components/basic/icon/src/icons.data.ts | 14 + src/components/basic/icon/src/props.ts | 30 + src/components/basic/iframe-page/index.ts | 3 + src/components/basic/iframe-page/index.vue | 37 + src/components/basic/locale-picker/index.ts | 1 + src/components/basic/locale-picker/index.vue | 60 + .../basic/lockscreen/huawei-charge.vue | 194 + src/components/basic/lockscreen/index.ts | 3 + src/components/basic/lockscreen/index.vue | 69 + .../basic/lockscreen/lockscreen-page.vue | 259 + .../basic/lockscreen/xiaomi-charge.vue | 272 + .../basic/pro-config-provider/index.vue | 27 + src/components/basic/progress/index.vue | 34 + src/components/basic/split-panel/index.ts | 3 + src/components/basic/split-panel/index.vue | 104 + src/components/basic/tinymce/constants.ts | 37 + src/components/basic/tinymce/index.ts | 5 + src/components/basic/tinymce/index.vue | 53 + src/components/basic/tinymce/langs/index.ts | 7 + src/components/basic/tinymce/langs/zh_CN.js | 428 + src/components/basic/tinymce/plugins.ts | 50 + src/components/basic/tinymce/props.ts | 49 + src/components/basic/title-i18n/index.ts | 1 + src/components/basic/title-i18n/index.vue | 26 + src/components/business/README.md | 3 + src/components/core/README.md | 7 + src/components/core/draggable-modal/index.ts | 1 + src/components/core/draggable-modal/index.vue | 364 + src/components/core/dynamic-table/index.ts | 12 + .../src/components/editable-cell/index.vue | 161 + .../dynamic-table/src/components/index.ts | 3 + .../src/components/table-action.vue | 130 + .../table-settings/column-setting.vue | 194 + .../src/components/table-settings/index.vue | 16 + .../table-settings/refresh-setting.vue | 21 + .../table-settings/search-setting.vue | 23 + .../table-settings/size-setting.vue | 47 + .../src/components/tool-bar/index.vue | 71 + .../dynamic-table/src/dynamic-table.config.ts | 40 + .../core/dynamic-table/src/dynamic-table.ts | 140 + .../core/dynamic-table/src/dynamic-table.vue | 176 + .../core/dynamic-table/src/hooks/index.ts | 21 + .../dynamic-table/src/hooks/useColumns.ts | 157 + .../dynamic-table/src/hooks/useEditable.ts | 172 + .../src/hooks/useExportData2Excel.ts | 53 + .../core/dynamic-table/src/hooks/useScroll.ts | 56 + .../core/dynamic-table/src/hooks/useTable.tsx | 64 + .../src/hooks/useTableContext.ts | 12 + .../dynamic-table/src/hooks/useTableExpand.ts | 71 + .../dynamic-table/src/hooks/useTableForm.ts | 77 + .../src/hooks/useTableMethods.ts | 234 + .../dynamic-table/src/hooks/useTableState.ts | 139 + .../core/dynamic-table/src/types/column.ts | 69 + .../core/dynamic-table/src/types/index.ts | 3 + .../core/dynamic-table/src/types/table.ts | 41 + .../dynamic-table/src/types/tableAction.ts | 73 + src/components/core/schema-form/index.ts | 12 + .../core/schema-form/src/componentMap.ts | 66 + .../schema-form/src/components/ApiSelect.vue | 142 + .../src/components/form-action.vue | 133 + .../core/schema-form/src/components/index.ts | 1 + src/components/core/schema-form/src/helper.ts | 70 + .../core/schema-form/src/hooks/index.ts | 13 + .../core/schema-form/src/hooks/useAdvanced.ts | 154 + .../core/schema-form/src/hooks/useForm.tsx | 61 + .../schema-form/src/hooks/useFormContext.ts | 12 + .../schema-form/src/hooks/useFormEvents.ts | 314 + .../schema-form/src/hooks/useFormMethods.ts | 126 + .../schema-form/src/hooks/useFormState.ts | 86 + .../schema-form/src/hooks/useLabelWidth.ts | 40 + .../core/schema-form/src/schema-form-item.ts | 23 + .../core/schema-form/src/schema-form-item.vue | 469 + .../core/schema-form/src/schema-form.ts | 126 + .../core/schema-form/src/schema-form.vue | 104 + .../core/schema-form/src/types/component.ts | 112 + .../core/schema-form/src/types/form.ts | 172 + .../core/schema-form/src/types/hooks.ts | 6 + .../core/schema-form/src/types/index.ts | 3 + src/constants/env.ts | 7 + src/enums/breakpointEnum.ts | 28 + src/enums/cacheEnum.ts | 18 + src/enums/httpEnum.ts | 34 + src/enums/roleEnum.ts | 7 + src/hooks/event/useBreakpoint.ts | 90 + src/hooks/event/useEventListener.ts | 58 + src/hooks/event/useIntersectionObserver.ts | 49 + src/hooks/event/useScroll.ts | 65 + src/hooks/event/useScrollTo.ts | 59 + src/hooks/event/useWindowSizeFn.ts | 35 + src/hooks/functions/useContextMenu.ts | 13 + src/hooks/index.ts | 8 + src/hooks/useBattery.ts | 92 + src/hooks/useDomWidth.ts | 23 + src/hooks/useEventbus.ts | 48 + src/hooks/useI18n.ts | 65 + src/hooks/useModal/index.ts | 11 + src/hooks/useModal/modal.tsx | 87 + src/hooks/useModal/types.ts | 25 + src/hooks/useModal/useFormModal.tsx | 60 + src/hooks/useModal/useModal.tsx | 82 + src/hooks/useOnline.ts | 30 + src/hooks/useSortable.ts | 21 + src/hooks/useTime.ts | 55 + src/layout/footer/index.module.less | 22 + src/layout/footer/index.tsx | 38 + .../header/components/fullscreen/index.vue | 24 + src/layout/header/components/index.ts | 3 + .../search/components/SearchFooter.vue | 31 + .../search/components/SearchResult.vue | 60 + src/layout/header/components/search/index.vue | 145 + .../header/components/setting/constant.ts | 82 + .../header/components/setting/index.vue | 132 + src/layout/header/index.vue | 226 + src/layout/index.vue | 63 + src/layout/logo/index.vue | 37 + src/layout/menu/menu-item-content.vue | 23 + src/layout/menu/menu-item.vue | 62 + src/layout/menu/menu.vue | 127 + src/layout/routerView/index.vue | 22 + src/layout/tabs/index.ts | 3 + src/layout/tabs/tabs-view.vue | 333 + src/locales/config.ts | 21 + src/locales/helper.ts | 36 + src/locales/index.ts | 38 + src/locales/lang/en.ts | 13 + src/locales/lang/en/common.json | 20 + src/locales/lang/en/component.json | 28 + src/locales/lang/en/layout.json | 108 + src/locales/lang/en/routes/account.json | 4 + src/locales/lang/en/routes/basic.json | 4 + src/locales/lang/en/routes/dashboard.json | 6 + src/locales/lang/en/routes/demo.json | 20 + src/locales/lang/zh-CN/common.json | 22 + src/locales/lang/zh-CN/component.json | 32 + src/locales/lang/zh-CN/layout.json | 108 + src/locales/lang/zh-CN/routes/account.json | 4 + src/locales/lang/zh-CN/routes/basic.json | 4 + src/locales/lang/zh-CN/routes/dashboard.json | 6 + src/locales/lang/zh-CN/routes/demo.json | 20 + src/locales/lang/zh_CN.ts | 11 + src/locales/useLocale.ts | 68 + src/main.ts | 44 + src/permission/index.ts | 41 + src/permission/permCode.ts | 85 + src/plugins/antd.ts | 7 + src/plugins/assets.ts | 6 + src/plugins/globalMethods.ts | 16 + src/plugins/index.ts | 3 + src/polyfill.ts | 1 + src/router/asyncModules/index.ts | 18 + src/router/constant.ts | 14 + src/router/helper/routeHelper.tsx | 75 + src/router/index.ts | 35 + src/router/router-guards.ts | 109 + src/router/routes/basic.ts | 78 + src/router/routes/index.ts | 22 + src/router/routes/modules/account.ts | 33 + src/router/routes/modules/dashboard.ts | 31 + src/router/routes/modules/demos.ts | 228 + src/router/routes/modules/index.ts | 5 + src/router/routes/outsideLayout.ts | 16 + src/store/index.ts | 10 + src/store/modules/keepAlive.ts | 43 + src/store/modules/layoutSetting.ts | 108 + src/store/modules/locale.ts | 32 + src/store/modules/lockscreen.ts | 35 + src/store/modules/tabsView.ts | 113 + src/store/modules/user.ts | 145 + src/styles/antdv.override.less | 13 + src/styles/common.less | 23 + src/styles/index.less | 7 + src/styles/reset.css | 8 + src/styles/theme.less | 50 + src/styles/transition.less | 60 + src/styles/variables.less | 5 + src/utils/Export2Excel.ts | 239 + src/utils/Storage.ts | 128 + src/utils/awaitTo.ts | 24 + src/utils/browser-type.ts | 142 + src/utils/common.ts | 207 + src/utils/dateUtil.ts | 17 + src/utils/downloadFile.ts | 90 + src/utils/helper/tsxHelper.tsx | 35 + src/utils/index.ts | 93 + src/utils/is/index.ts | 109 + src/utils/log.ts | 9 + src/utils/performanceMonitor.ts | 191 + src/utils/propTypes.ts | 35 + src/utils/request.ts | 158 + src/utils/urlUtils.ts | 33 + src/utils/validate.ts | 7 + src/utils/ws-axios/WsAxios.js | 173 + src/utils/ws-axios/index.js | 28 + src/views/account/about.vue | 72 + src/views/account/settings.vue | 1 + src/views/dashboard/welcome/index.vue | 82 + src/views/demos/button.vue | 38 + src/views/demos/custom-modal.vue | 62 + .../demos/form/basic-form/form-schema.tsx | 513 + src/views/demos/form/basic-form/index.vue | 119 + src/views/demos/form/custom-form/index.vue | 115 + .../form/custom-form/input-number-range.vue | 41 + .../demos/form/dynamic-form/form-schema.ts | 114 + src/views/demos/form/dynamic-form/index.vue | 84 + .../demos/form/request-form/form-schema.ts | 88 + src/views/demos/form/request-form/index.vue | 46 + src/views/demos/form/rule-form/form-schema.ts | 183 + src/views/demos/form/rule-form/index.vue | 50 + src/views/demos/form/use-form/form-schema.ts | 113 + src/views/demos/form/use-form/index.vue | 86 + src/views/demos/nested-routes/index.vue | 46 + src/views/demos/nested-routes/route-one.vue | 7 + src/views/demos/nested-routes/route-three.vue | 7 + src/views/demos/nested-routes/route-two.vue | 7 + .../demos/tables/edit-row-table/columns.tsx | 187 + .../demos/tables/edit-row-table/index.vue | 108 + src/views/demos/tables/lol-table/columns.tsx | 69 + src/views/demos/tables/lol-table/heroInfo.vue | 140 + src/views/demos/tables/lol-table/index.vue | 106 + .../demos/tables/search-table/columns.tsx | 164 + src/views/demos/tables/search-table/index.vue | 68 + src/views/demos/tables/wzry-table/columns.tsx | 65 + src/views/demos/tables/wzry-table/index.vue | 86 + src/views/error/404.vue | 30 + src/views/error/comp-not-found.vue | 13 + src/views/login/index.vue | 145 + src/views/netdisk/columns.tsx | 81 + .../components/file-operate-button-list.vue | 244 + .../components/file-preview-drawer.vue | 154 + .../netdisk/components/file-upload-drawer.vue | 176 + .../components/overview-header-item.vue | 59 + src/views/netdisk/formSchemas.ts | 80 + src/views/netdisk/manage.vue | 296 + src/views/netdisk/overview.vue | 226 + src/views/system/dept/columns.tsx | 26 + src/views/system/dept/formSchemas.ts | 38 + src/views/system/dept/index.vue | 108 + src/views/system/dict-item/columns.tsx | 80 + src/views/system/dict-item/formSchemas.ts | 61 + src/views/system/dict-item/index.vue | 137 + src/views/system/dict-type/columns.tsx | 78 + src/views/system/dict-type/formSchemas.ts | 36 + src/views/system/dict-type/index.vue | 137 + src/views/system/menu/columns.tsx | 114 + src/views/system/menu/formSchemas.tsx | 256 + src/views/system/menu/index.vue | 118 + src/views/system/monitor/log/login/index.vue | 72 + src/views/system/monitor/online/index.vue | 7 + src/views/system/monitor/serve/index.vue | 207 + src/views/system/param-config/columns.tsx | 48 + src/views/system/param-config/formSchemas.ts | 37 + src/views/system/param-config/index.vue | 110 + src/views/system/role/columns.tsx | 69 + src/views/system/role/formSchemas.ts | 60 + src/views/system/role/index.vue | 136 + src/views/system/schedule/log/index.vue | 89 + src/views/system/schedule/task/columns.tsx | 68 + src/views/system/schedule/task/formSchemas.ts | 129 + src/views/system/schedule/task/index.vue | 204 + src/views/system/user/AvatarUpload.vue | 111 + src/views/system/user/DeptTree.vue | 113 + src/views/system/user/columns.tsx | 114 + src/views/system/user/formSchemas.tsx | 120 + src/views/system/user/index.vue | 214 + src/views/tool/email/formSchemas.tsx | 40 + src/views/tool/email/index.vue | 67 + src/views/tool/storage/columns.tsx | 153 + src/views/tool/storage/index.vue | 77 + src/views/tool/storage/upload-modal.vue | 131 + stylelint.config.js | 95 + tsconfig.json | 49 + types/env.d.ts | 21 + types/global.d.ts | 107 + types/index.d.ts | 27 + types/modules.d.ts | 21 + types/polyfill.d.ts | 20 + types/shims/shims-app.d.ts | 67 + types/shims/shims-tsx.d.ts | 18 + types/shims/shims-vue.d.ts | 25 + types/utils.d.ts | 74 + types/vue-router.d.ts | 51 + unocss.config.ts | 25 + vite.config.ts | 158 + 406 files changed, 48908 insertions(+) create mode 100644 .browserslistrc create mode 100644 .cz-config.js create mode 100644 .dockerignore create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .husky/commit-msg create mode 100644 .husky/pre-commit create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .stylelintignore create mode 100644 .versionrc.js create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/vue3.3.code-snippets create mode 100644 CHANGELOG.md create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 commitlint.config.cjs create mode 100644 docker-compose.yml create mode 100644 index.html create mode 100644 lint-staged.config.js create mode 100644 mocks/_util.ts create mode 100644 mocks/demo/hero/_heroList.json create mode 100644 mocks/demo/hero/_lolHeroList.json create mode 100644 mocks/demo/hero/index.ts create mode 100644 mocks/demo/select.ts create mode 100644 mocks/index.ts create mode 100644 mocks/list.ts create mode 100644 mocks/user.ts create mode 100644 openapi.config.ts create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 prettier.config.js create mode 100644 public/favicon.ico create mode 100644 public/iconfont.js create mode 100644 src/App.vue create mode 100644 src/api/backend/api/account.ts create mode 100644 src/api/backend/api/auth.ts create mode 100644 src/api/backend/api/authEmail.ts create mode 100644 src/api/backend/api/businessTodo.ts create mode 100644 src/api/backend/api/captcha.ts create mode 100644 src/api/backend/api/health.ts create mode 100644 src/api/backend/api/index.ts create mode 100644 src/api/backend/api/netDiskManage.ts create mode 100644 src/api/backend/api/netDiskOverview.ts create mode 100644 src/api/backend/api/systemDept.ts create mode 100644 src/api/backend/api/systemDictItem.ts create mode 100644 src/api/backend/api/systemDictType.ts create mode 100644 src/api/backend/api/systemEmail.ts create mode 100644 src/api/backend/api/systemLog.ts create mode 100644 src/api/backend/api/systemMenu.ts create mode 100644 src/api/backend/api/systemOnline.ts create mode 100644 src/api/backend/api/systemParamConfig.ts create mode 100644 src/api/backend/api/systemRole.ts create mode 100644 src/api/backend/api/systemServe.ts create mode 100644 src/api/backend/api/systemSse.ts create mode 100644 src/api/backend/api/systemTask.ts create mode 100644 src/api/backend/api/systemUser.ts create mode 100644 src/api/backend/api/toolsStorage.ts create mode 100644 src/api/backend/api/toolsUpload.ts create mode 100644 src/api/backend/api/typings.d.ts create mode 100644 src/api/demo/hero.ts create mode 100644 src/api/demo/select.ts create mode 100644 src/api/index.ts create mode 100644 src/api/typings.d.ts create mode 100644 src/assets/404.gif create mode 100644 src/assets/analysis.svg create mode 100644 src/assets/icons/dark.svg create mode 100644 src/assets/icons/file-type-code.svg create mode 100644 src/assets/icons/file-type-dir.svg create mode 100644 src/assets/icons/file-type-docx.svg create mode 100644 src/assets/icons/file-type-excel.svg create mode 100644 src/assets/icons/file-type-img.svg create mode 100644 src/assets/icons/file-type-music.svg create mode 100644 src/assets/icons/file-type-office.svg create mode 100644 src/assets/icons/file-type-pdf.svg create mode 100644 src/assets/icons/file-type-ppt.svg create mode 100644 src/assets/icons/file-type-psd.svg create mode 100644 src/assets/icons/file-type-txt.svg create mode 100644 src/assets/icons/file-type-unknown.svg create mode 100644 src/assets/icons/file-type-video.svg create mode 100644 src/assets/icons/file-type-zip.svg create mode 100644 src/assets/icons/light.svg create mode 100644 src/assets/icons/locale.svg create mode 100644 src/assets/icons/login.svg create mode 100644 src/assets/icons/logo.svg create mode 100644 src/assets/icons/moon.svg create mode 100644 src/assets/icons/realDark.svg create mode 100644 src/assets/icons/sidemenu.svg create mode 100644 src/assets/icons/sun.svg create mode 100644 src/assets/icons/topmenu.svg create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/logowithtext.png create mode 100644 src/assets/images/no-preview.png create mode 100644 src/assets/images/tool.png create mode 100644 src/assets/login.svg create mode 100644 src/components/basic/README.md create mode 100644 src/components/basic/basic-arrow/index.ts create mode 100644 src/components/basic/basic-arrow/index.vue create mode 100644 src/components/basic/basic-help/index.vue create mode 100644 src/components/basic/button/button.ts create mode 100644 src/components/basic/button/button.vue create mode 100644 src/components/basic/button/index.ts create mode 100644 src/components/basic/check-box/index.vue create mode 100644 src/components/basic/context-menu/index.ts create mode 100644 src/components/basic/context-menu/src/ContextMenu.vue create mode 100644 src/components/basic/context-menu/src/createContextMenu.ts create mode 100644 src/components/basic/context-menu/src/typing.ts create mode 100644 src/components/basic/excel/index.ts create mode 100644 src/components/basic/excel/src/Export2Excel.ts create mode 100644 src/components/basic/excel/src/ExportExcelModal.tsx create mode 100644 src/components/basic/excel/src/ImportExcel.vue create mode 100644 src/components/basic/excel/src/typing.ts create mode 100644 src/components/basic/icon/Icon.vue create mode 100644 src/components/basic/icon/index.ts create mode 100644 src/components/basic/icon/src/IconPicker.vue create mode 100644 src/components/basic/icon/src/SvgIcon.vue create mode 100644 src/components/basic/icon/src/icon-font.tsx create mode 100644 src/components/basic/icon/src/icons.data.ts create mode 100644 src/components/basic/icon/src/props.ts create mode 100644 src/components/basic/iframe-page/index.ts create mode 100644 src/components/basic/iframe-page/index.vue create mode 100644 src/components/basic/locale-picker/index.ts create mode 100644 src/components/basic/locale-picker/index.vue create mode 100644 src/components/basic/lockscreen/huawei-charge.vue create mode 100644 src/components/basic/lockscreen/index.ts create mode 100644 src/components/basic/lockscreen/index.vue create mode 100644 src/components/basic/lockscreen/lockscreen-page.vue create mode 100644 src/components/basic/lockscreen/xiaomi-charge.vue create mode 100644 src/components/basic/pro-config-provider/index.vue create mode 100644 src/components/basic/progress/index.vue create mode 100644 src/components/basic/split-panel/index.ts create mode 100644 src/components/basic/split-panel/index.vue create mode 100644 src/components/basic/tinymce/constants.ts create mode 100644 src/components/basic/tinymce/index.ts create mode 100644 src/components/basic/tinymce/index.vue create mode 100644 src/components/basic/tinymce/langs/index.ts create mode 100644 src/components/basic/tinymce/langs/zh_CN.js create mode 100644 src/components/basic/tinymce/plugins.ts create mode 100644 src/components/basic/tinymce/props.ts create mode 100644 src/components/basic/title-i18n/index.ts create mode 100644 src/components/basic/title-i18n/index.vue create mode 100644 src/components/business/README.md create mode 100644 src/components/core/README.md create mode 100644 src/components/core/draggable-modal/index.ts create mode 100644 src/components/core/draggable-modal/index.vue create mode 100644 src/components/core/dynamic-table/index.ts create mode 100644 src/components/core/dynamic-table/src/components/editable-cell/index.vue create mode 100644 src/components/core/dynamic-table/src/components/index.ts create mode 100644 src/components/core/dynamic-table/src/components/table-action.vue create mode 100644 src/components/core/dynamic-table/src/components/table-settings/column-setting.vue create mode 100644 src/components/core/dynamic-table/src/components/table-settings/index.vue create mode 100644 src/components/core/dynamic-table/src/components/table-settings/refresh-setting.vue create mode 100644 src/components/core/dynamic-table/src/components/table-settings/search-setting.vue create mode 100644 src/components/core/dynamic-table/src/components/table-settings/size-setting.vue create mode 100644 src/components/core/dynamic-table/src/components/tool-bar/index.vue create mode 100644 src/components/core/dynamic-table/src/dynamic-table.config.ts create mode 100644 src/components/core/dynamic-table/src/dynamic-table.ts create mode 100644 src/components/core/dynamic-table/src/dynamic-table.vue create mode 100644 src/components/core/dynamic-table/src/hooks/index.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useColumns.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useEditable.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useExportData2Excel.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useScroll.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useTable.tsx create mode 100644 src/components/core/dynamic-table/src/hooks/useTableContext.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useTableExpand.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useTableForm.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useTableMethods.ts create mode 100644 src/components/core/dynamic-table/src/hooks/useTableState.ts create mode 100644 src/components/core/dynamic-table/src/types/column.ts create mode 100644 src/components/core/dynamic-table/src/types/index.ts create mode 100644 src/components/core/dynamic-table/src/types/table.ts create mode 100644 src/components/core/dynamic-table/src/types/tableAction.ts create mode 100644 src/components/core/schema-form/index.ts create mode 100644 src/components/core/schema-form/src/componentMap.ts create mode 100644 src/components/core/schema-form/src/components/ApiSelect.vue create mode 100644 src/components/core/schema-form/src/components/form-action.vue create mode 100644 src/components/core/schema-form/src/components/index.ts create mode 100644 src/components/core/schema-form/src/helper.ts create mode 100644 src/components/core/schema-form/src/hooks/index.ts create mode 100644 src/components/core/schema-form/src/hooks/useAdvanced.ts create mode 100644 src/components/core/schema-form/src/hooks/useForm.tsx create mode 100644 src/components/core/schema-form/src/hooks/useFormContext.ts create mode 100644 src/components/core/schema-form/src/hooks/useFormEvents.ts create mode 100644 src/components/core/schema-form/src/hooks/useFormMethods.ts create mode 100644 src/components/core/schema-form/src/hooks/useFormState.ts create mode 100644 src/components/core/schema-form/src/hooks/useLabelWidth.ts create mode 100644 src/components/core/schema-form/src/schema-form-item.ts create mode 100644 src/components/core/schema-form/src/schema-form-item.vue create mode 100644 src/components/core/schema-form/src/schema-form.ts create mode 100644 src/components/core/schema-form/src/schema-form.vue create mode 100644 src/components/core/schema-form/src/types/component.ts create mode 100644 src/components/core/schema-form/src/types/form.ts create mode 100644 src/components/core/schema-form/src/types/hooks.ts create mode 100644 src/components/core/schema-form/src/types/index.ts create mode 100644 src/constants/env.ts create mode 100644 src/enums/breakpointEnum.ts create mode 100644 src/enums/cacheEnum.ts create mode 100644 src/enums/httpEnum.ts create mode 100644 src/enums/roleEnum.ts create mode 100644 src/hooks/event/useBreakpoint.ts create mode 100644 src/hooks/event/useEventListener.ts create mode 100644 src/hooks/event/useIntersectionObserver.ts create mode 100644 src/hooks/event/useScroll.ts create mode 100644 src/hooks/event/useScrollTo.ts create mode 100644 src/hooks/event/useWindowSizeFn.ts create mode 100644 src/hooks/functions/useContextMenu.ts create mode 100644 src/hooks/index.ts create mode 100644 src/hooks/useBattery.ts create mode 100644 src/hooks/useDomWidth.ts create mode 100644 src/hooks/useEventbus.ts create mode 100644 src/hooks/useI18n.ts create mode 100644 src/hooks/useModal/index.ts create mode 100644 src/hooks/useModal/modal.tsx create mode 100644 src/hooks/useModal/types.ts create mode 100644 src/hooks/useModal/useFormModal.tsx create mode 100644 src/hooks/useModal/useModal.tsx create mode 100644 src/hooks/useOnline.ts create mode 100644 src/hooks/useSortable.ts create mode 100644 src/hooks/useTime.ts create mode 100644 src/layout/footer/index.module.less create mode 100644 src/layout/footer/index.tsx create mode 100644 src/layout/header/components/fullscreen/index.vue create mode 100644 src/layout/header/components/index.ts create mode 100644 src/layout/header/components/search/components/SearchFooter.vue create mode 100644 src/layout/header/components/search/components/SearchResult.vue create mode 100644 src/layout/header/components/search/index.vue create mode 100644 src/layout/header/components/setting/constant.ts create mode 100644 src/layout/header/components/setting/index.vue create mode 100644 src/layout/header/index.vue create mode 100644 src/layout/index.vue create mode 100644 src/layout/logo/index.vue create mode 100644 src/layout/menu/menu-item-content.vue create mode 100644 src/layout/menu/menu-item.vue create mode 100644 src/layout/menu/menu.vue create mode 100644 src/layout/routerView/index.vue create mode 100644 src/layout/tabs/index.ts create mode 100644 src/layout/tabs/tabs-view.vue create mode 100644 src/locales/config.ts create mode 100644 src/locales/helper.ts create mode 100644 src/locales/index.ts create mode 100644 src/locales/lang/en.ts create mode 100644 src/locales/lang/en/common.json create mode 100644 src/locales/lang/en/component.json create mode 100644 src/locales/lang/en/layout.json create mode 100644 src/locales/lang/en/routes/account.json create mode 100644 src/locales/lang/en/routes/basic.json create mode 100644 src/locales/lang/en/routes/dashboard.json create mode 100644 src/locales/lang/en/routes/demo.json create mode 100644 src/locales/lang/zh-CN/common.json create mode 100644 src/locales/lang/zh-CN/component.json create mode 100644 src/locales/lang/zh-CN/layout.json create mode 100644 src/locales/lang/zh-CN/routes/account.json create mode 100644 src/locales/lang/zh-CN/routes/basic.json create mode 100644 src/locales/lang/zh-CN/routes/dashboard.json create mode 100644 src/locales/lang/zh-CN/routes/demo.json create mode 100644 src/locales/lang/zh_CN.ts create mode 100644 src/locales/useLocale.ts create mode 100644 src/main.ts create mode 100644 src/permission/index.ts create mode 100644 src/permission/permCode.ts create mode 100644 src/plugins/antd.ts create mode 100644 src/plugins/assets.ts create mode 100644 src/plugins/globalMethods.ts create mode 100644 src/plugins/index.ts create mode 100644 src/polyfill.ts create mode 100644 src/router/asyncModules/index.ts create mode 100644 src/router/constant.ts create mode 100644 src/router/helper/routeHelper.tsx create mode 100644 src/router/index.ts create mode 100644 src/router/router-guards.ts create mode 100644 src/router/routes/basic.ts create mode 100644 src/router/routes/index.ts create mode 100644 src/router/routes/modules/account.ts create mode 100644 src/router/routes/modules/dashboard.ts create mode 100644 src/router/routes/modules/demos.ts create mode 100644 src/router/routes/modules/index.ts create mode 100644 src/router/routes/outsideLayout.ts create mode 100644 src/store/index.ts create mode 100644 src/store/modules/keepAlive.ts create mode 100644 src/store/modules/layoutSetting.ts create mode 100644 src/store/modules/locale.ts create mode 100644 src/store/modules/lockscreen.ts create mode 100644 src/store/modules/tabsView.ts create mode 100644 src/store/modules/user.ts create mode 100644 src/styles/antdv.override.less create mode 100644 src/styles/common.less create mode 100644 src/styles/index.less create mode 100644 src/styles/reset.css create mode 100644 src/styles/theme.less create mode 100644 src/styles/transition.less create mode 100644 src/styles/variables.less create mode 100644 src/utils/Export2Excel.ts create mode 100644 src/utils/Storage.ts create mode 100644 src/utils/awaitTo.ts create mode 100644 src/utils/browser-type.ts create mode 100644 src/utils/common.ts create mode 100644 src/utils/dateUtil.ts create mode 100644 src/utils/downloadFile.ts create mode 100644 src/utils/helper/tsxHelper.tsx create mode 100644 src/utils/index.ts create mode 100644 src/utils/is/index.ts create mode 100644 src/utils/log.ts create mode 100644 src/utils/performanceMonitor.ts create mode 100644 src/utils/propTypes.ts create mode 100644 src/utils/request.ts create mode 100644 src/utils/urlUtils.ts create mode 100644 src/utils/validate.ts create mode 100644 src/utils/ws-axios/WsAxios.js create mode 100644 src/utils/ws-axios/index.js create mode 100644 src/views/account/about.vue create mode 100644 src/views/account/settings.vue create mode 100644 src/views/dashboard/welcome/index.vue create mode 100644 src/views/demos/button.vue create mode 100644 src/views/demos/custom-modal.vue create mode 100644 src/views/demos/form/basic-form/form-schema.tsx create mode 100644 src/views/demos/form/basic-form/index.vue create mode 100644 src/views/demos/form/custom-form/index.vue create mode 100644 src/views/demos/form/custom-form/input-number-range.vue create mode 100644 src/views/demos/form/dynamic-form/form-schema.ts create mode 100644 src/views/demos/form/dynamic-form/index.vue create mode 100644 src/views/demos/form/request-form/form-schema.ts create mode 100644 src/views/demos/form/request-form/index.vue create mode 100644 src/views/demos/form/rule-form/form-schema.ts create mode 100644 src/views/demos/form/rule-form/index.vue create mode 100644 src/views/demos/form/use-form/form-schema.ts create mode 100644 src/views/demos/form/use-form/index.vue create mode 100644 src/views/demos/nested-routes/index.vue create mode 100644 src/views/demos/nested-routes/route-one.vue create mode 100644 src/views/demos/nested-routes/route-three.vue create mode 100644 src/views/demos/nested-routes/route-two.vue create mode 100644 src/views/demos/tables/edit-row-table/columns.tsx create mode 100644 src/views/demos/tables/edit-row-table/index.vue create mode 100644 src/views/demos/tables/lol-table/columns.tsx create mode 100644 src/views/demos/tables/lol-table/heroInfo.vue create mode 100644 src/views/demos/tables/lol-table/index.vue create mode 100644 src/views/demos/tables/search-table/columns.tsx create mode 100644 src/views/demos/tables/search-table/index.vue create mode 100644 src/views/demos/tables/wzry-table/columns.tsx create mode 100644 src/views/demos/tables/wzry-table/index.vue create mode 100644 src/views/error/404.vue create mode 100644 src/views/error/comp-not-found.vue create mode 100644 src/views/login/index.vue create mode 100644 src/views/netdisk/columns.tsx create mode 100644 src/views/netdisk/components/file-operate-button-list.vue create mode 100644 src/views/netdisk/components/file-preview-drawer.vue create mode 100644 src/views/netdisk/components/file-upload-drawer.vue create mode 100644 src/views/netdisk/components/overview-header-item.vue create mode 100644 src/views/netdisk/formSchemas.ts create mode 100644 src/views/netdisk/manage.vue create mode 100644 src/views/netdisk/overview.vue create mode 100644 src/views/system/dept/columns.tsx create mode 100644 src/views/system/dept/formSchemas.ts create mode 100644 src/views/system/dept/index.vue create mode 100644 src/views/system/dict-item/columns.tsx create mode 100644 src/views/system/dict-item/formSchemas.ts create mode 100644 src/views/system/dict-item/index.vue create mode 100644 src/views/system/dict-type/columns.tsx create mode 100644 src/views/system/dict-type/formSchemas.ts create mode 100644 src/views/system/dict-type/index.vue create mode 100644 src/views/system/menu/columns.tsx create mode 100644 src/views/system/menu/formSchemas.tsx create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/monitor/log/login/index.vue create mode 100644 src/views/system/monitor/online/index.vue create mode 100644 src/views/system/monitor/serve/index.vue create mode 100644 src/views/system/param-config/columns.tsx create mode 100644 src/views/system/param-config/formSchemas.ts create mode 100644 src/views/system/param-config/index.vue create mode 100644 src/views/system/role/columns.tsx create mode 100644 src/views/system/role/formSchemas.ts create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/schedule/log/index.vue create mode 100644 src/views/system/schedule/task/columns.tsx create mode 100644 src/views/system/schedule/task/formSchemas.ts create mode 100644 src/views/system/schedule/task/index.vue create mode 100644 src/views/system/user/AvatarUpload.vue create mode 100644 src/views/system/user/DeptTree.vue create mode 100644 src/views/system/user/columns.tsx create mode 100644 src/views/system/user/formSchemas.tsx create mode 100644 src/views/system/user/index.vue create mode 100644 src/views/tool/email/formSchemas.tsx create mode 100644 src/views/tool/email/index.vue create mode 100644 src/views/tool/storage/columns.tsx create mode 100644 src/views/tool/storage/index.vue create mode 100644 src/views/tool/storage/upload-modal.vue create mode 100644 stylelint.config.js create mode 100644 tsconfig.json create mode 100644 types/env.d.ts create mode 100644 types/global.d.ts create mode 100644 types/index.d.ts create mode 100644 types/modules.d.ts create mode 100644 types/polyfill.d.ts create mode 100644 types/shims/shims-app.d.ts create mode 100644 types/shims/shims-tsx.d.ts create mode 100644 types/shims/shims-vue.d.ts create mode 100644 types/utils.d.ts create mode 100644 types/vue-router.d.ts create mode 100644 unocss.config.ts create mode 100644 vite.config.ts diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..b133c49 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,5 @@ +> 1% +last 2 versions +not dead +not ie 11 +chrome 79 diff --git a/.cz-config.js b/.cz-config.js new file mode 100644 index 0000000..57d4806 --- /dev/null +++ b/.cz-config.js @@ -0,0 +1,94 @@ +// 请使用npm run c提交代码。遵循代码提交规范 +module.exports = { + types: [ + { value: 'feat', name: '功能: ✨ 新增功能', emoji: ':sparkles:' }, + { value: 'fix', name: '修复: 🐛 修复缺陷', emoji: ':bug:' }, + { value: 'docs', name: '文档: 📝 文档变更', emoji: ':memo:' }, + { + value: 'style', + name: '格式: 🌈 代码格式(不影响功能,例如空格、分号等格式修正)', + emoji: ':lipstick:', + }, + { + value: 'refactor', + name: '重构: 🔄 代码重构(不包括 bug 修复、功能新增)', + emoji: ':recycle:', + }, + { value: 'perf', name: '性能: 🚀 性能优化', emoji: ':zap:' }, + { + value: 'test', + name: '测试: 🧪 添加疏漏测试或已有测试改动', + emoji: ':white_check_mark:', + }, + { + value: 'build', + name: '构建: 📦️ 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)', + emoji: ':package:', + }, + { + value: 'ci', + name: '集成: ⚙️ 修改 CI 配置、脚本', + emoji: ':ferris_wheel:', + }, + { value: 'revert', name: '回退: ↩️ 回滚 commit', emoji: ':rewind:' }, + { + value: 'chore', + name: '其他: 🛠️ 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)', + emoji: ':hammer:', + }, + ], + useEmoji: true, + emojiAlign: 'center', + useAI: false, + aiNumber: 1, + themeColorCode: '', + scopes: [], + allowCustomScopes: true, + allowEmptyScopes: true, + customScopesAlign: 'bottom', + customScopesAlias: 'custom', + emptyScopesAlias: 'empty', + upperCaseSubject: false, + markBreakingChangeMode: false, + breaklineNumber: 100, + breaklineChar: '|', + issuePrefixes: [ + { value: 'closed', name: 'closed: ISSUES has been processed' }, + ], + customIssuePrefixAlign: 'top', + emptyIssuePrefixAlias: 'skip', + customIssuePrefixAlias: 'custom', + allowCustomIssuePrefix: true, + allowEmptyIssuePrefix: true, + confirmColorize: true, + maxHeaderLength: Infinity, + maxSubjectLength: Infinity, + minSubjectLength: 0, + scopeOverrides: undefined, + defaultBody: '', + defaultIssues: '', + defaultScope: '', + defaultSubject: '', + messages: { + type: '选择一种你期望的提交类型(type):', + // scope: '选择一个更改的范围(scope) (可选):', + // used if allowCustomScopes is true + // customScope: 'Denote the SCOPE of this change:', + subject: '输入本次commit记录说明:\n', + // body: '长说明,使用"|"换行(可选):\n', + // breaking: '非兼容性说明 (可选):\n', + // footer: '关联关闭的issue,例如:#31, #34(可选):\n', + confirmCommit: '确定提交说明?', + }, + skipQuestions: ['scope', 'body', 'breaking', 'footer'], + allowBreakingChanges: [ + 'fix', + 'feat', + 'update', + 'refactor', + 'perf', + 'build', + 'revert', + ], + subjectLimit: 500, // 提交长度限制500 +}; diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..54adfc6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,19 @@ +.DS_Store +node_modules/ +dist/ +.vscode/ + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +tests/**/coverage/ + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln + \ No newline at end of file diff --git a/.env b/.env new file mode 100644 index 0000000..692c263 --- /dev/null +++ b/.env @@ -0,0 +1,9 @@ +# 项目名称 +VITE_APP_TITLE = Admin + +# 网站前缀 +VITE_BASE_URL = / + +# enable mock in production +VITE_MOCK_IN_PROD = false + diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..76dead8 --- /dev/null +++ b/.env.development @@ -0,0 +1,10 @@ +# 只在开发模式中被载入 +ENV = 'development' + +# 公共基础路径, 所有资源的路径都将据此配置重写。 +VITE_BASE_URL = / + +# base api url +VITE_BASE_API_URL = '/api' + +VITE_DROP_CONSOLE = false diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..8ef2daa --- /dev/null +++ b/.env.production @@ -0,0 +1,11 @@ +# 只在生产模式中被载入 +ENV = 'production' + +# base api url +# VITE_BASE_API_URL = 'https://nest-api.buqiyuan.site' +VITE_BASE_API_URL = 'http://localhost:7001' + +# 公共基础路径, 所有资源的路径都将据此配置重写。 +VITE_BASE_URL = /api + +VITE_DROP_CONSOLE = true diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..13dc310 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,19 @@ + +*.sh +node_modules +*.md +*.woff +*.ttf +.vscode +.idea +dist +/public +/docs +.husky +.local +/bin +/src/mock +Dockerfile +commitlint.config.js + +components.d.ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..7de04ca --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,110 @@ +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true, + }, + parser: 'vue-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2020, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true, + tsx: true, + }, + }, + plugins: ['vue', '@typescript-eslint', 'import'], + extends: [ + 'eslint:recommended', + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + overrides: [ + { + files: ['*.ts', '*.js', '*.tsx', '*.vue'], + rules: { + 'no-undef': 'off', + }, + }, + ], + rules: { + 'no-unused-vars': 'off', + + // js/ts + // 'no-console': ['warn', { allow: ['error'] }], + 'no-restricted-syntax': ['error', 'LabeledStatement', 'WithStatement'], + camelcase: ['error', { properties: 'never' }], + + 'no-var': 'error', + 'no-empty': ['error', { allowEmptyCatch: true }], + 'no-void': 'error', + 'prefer-const': ['warn', { destructuring: 'all', ignoreReadBeforeAssign: true }], + 'prefer-template': 'error', + 'object-shorthand': ['error', 'always', { ignoreConstructors: false, avoidQuotes: true }], + 'block-scoped-var': 'error', + 'no-constant-condition': ['error', { checkLoops: false }], + + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'error', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-non-null-asserted-optional-chain': 'off', + // '@typescript-eslint/consistent-type-imports': ['error', { disallowTypeAnnotations: false }], + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + + // vue + 'vue/no-v-html': 'off', + 'vue/require-default-prop': 'off', + 'vue/require-explicit-emits': 'off', + 'vue/multi-word-component-names': 'off', + + // prettier + 'prettier/prettier': 'error', + + // import + 'import/first': 'error', + 'import/no-duplicates': 'error', + 'import/order': [ + 'error', + { + groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], + + pathGroups: [ + { + pattern: 'vue', + group: 'external', + position: 'before', + }, + { + pattern: '@vue/**', + group: 'external', + position: 'before', + }, + { + pattern: 'ant-design-vue', + group: 'internal', + }, + ], + pathGroupsExcludedImportTypes: ['type'], + }, + ], + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8337796 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +node_modules +.DS_Store +dist +.cache + +tests/server/static +tests/server/static/upload + +.local +# local env files +.env.local +.env.*.local +.eslintcache + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +*pnpm-debug.log* + +# Editor directories and files +.idea +# .vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# auto generate file +types/auto-imports.d.ts +types/components.d.ts diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..35ed753 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npm run commitlint diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..3bb6316 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,7 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +#推送之前运行eslint检查 +npx lint-staged +##推送之前运行单元测试检查 +#npm run test:unit diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..c929035 --- /dev/null +++ b/.npmrc @@ -0,0 +1,18 @@ +# 使用淘宝镜像源 +registry = https://registry.npmmirror.com +# registry = https://registry.npmjs.org + +# 根据需要提升含有以下的依赖包到根 node_modules 目录下 +public-hoist-pattern[]=husky +public-hoist-pattern[]=*eslint* +public-hoist-pattern[]=*prettier* +public-hoist-pattern[]=lint-staged +public-hoist-pattern[]=*stylelint* +public-hoist-pattern[]=@commitlint/cli +public-hoist-pattern[]=core-js + +# 提升所有依赖到根 node_modules 目录下,相当于 public-hoist-pattern[]=*,与上面一种方式一般二选一使用 +# 极不推荐用这样的方式解决依赖问题,这样没有充分利用 pnpm 依赖访问安全性的优势,又走回了 npm / yarn 的老路。 +# shamefully-hoist=true + +enable-pre-post-scripts=true \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..f7e39e6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +/dist/* +.local +.output.js +/node_modules/** + +**/*.svg +**/*.sh + +/public/* diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..46e88b0 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,2 @@ +/dist/* +/public/* diff --git a/.versionrc.js b/.versionrc.js new file mode 100644 index 0000000..e4ad6c6 --- /dev/null +++ b/.versionrc.js @@ -0,0 +1,19 @@ +//发布应用 生成commit日志记录。 + +module.exports = { + types: [ + { type: 'feat', section: '✨ Features | 新功能' }, + { type: 'fix', section: '🐛 Bug Fixes | Bug 修复' }, + { type: 'init', section: '📦️ Init | 初始化' }, + { type: 'docs', section: '📝 Documentation | 文档' }, + { type: 'style', section: '🌈 Styles | 风格' }, + { type: 'refactor', section: '🔄 Code Refactoring | 代码重构' }, + { type: 'perf', section: '🚀 Performance Improvements | 性能优化' }, + { type: 'test', section: '🧪 Tests | 测试' }, + { type: 'revert', section: '↩️ Revert | 回退' }, + { type: 'build', section: '📦️ Build System | 打包构建' }, + { type: 'update', section: '⚙️ update | 构建/工程依赖/工具升级' }, + { type: 'tool', section: '🛠️ tool | 工具升级' }, + { type: 'ci', section: '⚙️ Continuous Integration | CI 配置' }, + ], +}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..1c8376a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,14 @@ +{ + "recommendations": [ + "Vue.volar", + "Vue.vscode-typescript-vue-plugin", + "dbaeumer.vscode-eslint", + "stylelint.vscode-stylelint", + "esbenp.prettier-vscode", + "mrmlnc.vscode-less", + "lokalise.i18n-ally", + "antfu.iconify", + "mikestead.dotenv", + "heybourn.headwind" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..1b6d776 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Chrome", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}/src", + "sourceMaps": true + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bd1d447 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,106 @@ +{ + "typescript.tsdk": "./node_modules/typescript/lib", + "volar.tsPlugin": true, + "volar.tsPluginStatus": false, + "npm.packageManager": "pnpm", + "editor.tabSize": 2, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "files.eol": "\n", + "search.exclude": { + "**/node_modules": true, + "**/*.log": true, + "**/*.log*": true, + "**/bower_components": true, + "**/dist": true, + "**/elehukouben": true, + "**/.git": true, + "**/.gitignore": true, + "**/.svn": true, + "**/.DS_Store": true, + "**/.idea": true, + "**/.vscode": false, + "**/yarn.lock": true, + "**/tmp": true, + "out": true, + "dist": true, + "node_modules": true, + "CHANGELOG.md": true, + "examples": true, + "res": true, + "screenshots": true, + "yarn-error.log": true, + "**/.yarn": true + }, + "files.exclude": { + "**/.cache": true, + "**/.editorconfig": true, + "**/.eslintcache": true, + "**/bower_components": true, + "**/.idea": true, + "**/tmp": true, + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true + }, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/.vscode/**": true, + "**/node_modules/**": true, + "**/tmp/**": true, + "**/bower_components/**": true, + "**/dist/**": true, + "**/yarn.lock": true + }, + "stylelint.enable": true, + "stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"], + "path-intellisense.mappings": { + "@/": "${workspaceRoot}/src" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[html]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[css]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[less]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[scss]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" + }, + "[vue]": { + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "i18n-ally.localesPaths": ["src/locales/lang"], + "i18n-ally.keystyle": "nested", + "i18n-ally.sortKeys": true, + "i18n-ally.namespace": true, + "i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}", + "i18n-ally.enabledParsers": ["json"], + "i18n-ally.sourceLanguage": "en", + "i18n-ally.displayLanguage": "zh-CN", + "i18n-ally.enabledFrameworks": ["vue", "react"] +} diff --git a/.vscode/vue3.3.code-snippets b/.vscode/vue3.3.code-snippets new file mode 100644 index 0000000..c4625ad --- /dev/null +++ b/.vscode/vue3.3.code-snippets @@ -0,0 +1,20 @@ +{ + "Vue3.3+defineOptions快速生成模板": { + "scope": "vue", + "prefix": "Vue3.3+", + "body": [ + "\n", + "\n", + "", + "$2" + ], + "description": "Vue3.3+defineOptions快速生成模板" + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2da473c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ + +# https://stackoverflow.com/questions/53681522/share-variable-in-multi-stage-dockerfile-arg-before-from-not-substituted +ARG PROJECT_DIR=/huaxin-base-frontend + +FROM node:20-slim as builder +ARG PROJECT_DIR +WORKDIR $PROJECT_DIR + +# 安装pnpm +RUN npm install -g pnpm + +COPY . ./ +# 安装依赖 +# 若网络不通,可以使用淘宝源 +# RUN pnpm config set registry https://registry.npmmirror.com +RUN pnpm install + +# 构建项目 +ENV VITE_BASE_URL=/ +RUN pnpm build + + +FROM nginx:alpine as production +ARG PROJECT_DIR + +COPY --from=builder $PROJECT_DIR/dist/ /usr/share/nginx/html +# COPY --from=builder $PROJECT_DIR/nginx.conf /etc/nginx/nginx.conf + +EXPOSE 80 diff --git a/README.md b/README.md new file mode 100644 index 0000000..017f883 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Huaxin-admin + +基于 vite5.x + vue3.x + antd-design-vue4.x + typescript5.x + +- 账号:admin,密码:a123456 +- [swagger 文档](http://localhost:7001/api-docs/) + +## 技术要求 + +- [Vue](https://cn.vuejs.org/) +- [Ant desgin](https://www.antdv.com/components/overview-cn) +- [TypeScript](https://www.tslang.cn/index.html) +- [Nestjs](https://docs.nestjs.cn/8/) +- [TypeORM](https://typeorm.biunav.com/) +- Mysql +- Redis + +## 技术选型 + +1. **前端技术** + +- vue3 +- ant design +- axios +- pinia +- vue-router @3.4.9 +- less-loader @10.1.1 + +2. **后端技术** + +- nest +- mysql2 +- swagger-ui-express +- typeorm +- ioredis + +## 安装使用 + +- 安装依赖 + +```bash +pnpm install +``` + +- 运行 + +```bash +pnpm dev +``` + +- 打包 + +```bash +pnpm build +``` + +## Git 贡献提交规范 + +```bash +yarn c +``` + +- 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)) + + - `feat` 增加新功能 + - `fix` 修复问题/BUG + - `style` 代码风格相关无影响运行结果的 + - `perf` 优化/性能提升 + - `refactor` 重构 + - `revert` 撤销修改 + - `test` 测试相关 + - `docs` 文档/注释 + - `chore` 依赖更新/脚手架配置修改等 + - `workflow` 工作流改进 + - `ci` 持续集成 + - `types` 类型定义文件更改 + - `wip` 开发中 diff --git a/commitlint.config.cjs b/commitlint.config.cjs new file mode 100644 index 0000000..7576451 --- /dev/null +++ b/commitlint.config.cjs @@ -0,0 +1,24 @@ +// 请使用npm run c/yarn c提交代码。 +module.exports = { + extends: ['@commitlint/config-conventional'], + rules: { + 'type-enum': [ + 2, + 'always', + [ + 'feat', // 新增功能 + 'fix', // 修复缺陷 + 'docs', // 文档变更 + 'style', // 代码格式(不影响功能,例如空格、分号等格式修正) + 'refactor', // 代码重构(不包括 bug 修复、功能新增) + 'perf', // 性能优化 + 'test', // 添加疏漏测试或已有测试改动 + 'build', // 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等) + 'ci', // 修改 CI 配置、脚本 + 'revert', // 回滚 commit + 'chore', // 对构建过程或辅助工具和库的更改(不影响源文件、测试用例) + ], + ], + 'subject-case': [0], // subject大小写不做校验 + }, +}; diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..96ece10 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3' + +services: + huaxin-base-frontend: + # 从当前路径构建镜像 + build: + context: . + dockerfile: Dockerfile + target: production + ports: + - '80:80' + env_file: + - .env + - .env.production diff --git a/index.html b/index.html new file mode 100644 index 0000000..ca8fe44 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + 华信Admin + + +
+ + + diff --git a/lint-staged.config.js b/lint-staged.config.js new file mode 100644 index 0000000..425a9c3 --- /dev/null +++ b/lint-staged.config.js @@ -0,0 +1,10 @@ +/** + * @type {import('stylelint').Config} + */ +module.exports = { + '*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'], + '*.json': ['prettier --write'], + '*.vue': ['eslint --fix', 'prettier --write', 'stylelint --fix --allow-empty-input'], + '*.{scss,less,styl,html}': ['stylelint --fix --allow-empty-input', 'prettier --write'], + '*.md': ['prettier --write'], +}; diff --git a/mocks/_util.ts b/mocks/_util.ts new file mode 100644 index 0000000..2164d18 --- /dev/null +++ b/mocks/_util.ts @@ -0,0 +1,83 @@ +// Interface data format used to return a unified format +import type { DefaultBodyType, StrictRequest } from 'msw'; +import { ResultEnum } from '@/enums/httpEnum'; +import { uniqueSlash } from '@/utils/urlUtils'; + +const baseApiUrl = new URL(import.meta.env.VITE_BASE_API_URL, location.origin).toString(); + +/** + * msw 官方不支持配置 baseUrl, 需要自己手动处理 + * @see https://github.com/mswjs/msw/issues/397#issuecomment-751230924 + */ +export const serverApi = (path: string) => { + return uniqueSlash(baseApiUrl + path); +}; + +export function resultSuccess(data: T, { message = 'ok' } = {}) { + return { + code: ResultEnum.SUCCESS, + data, + message, + type: 'success', + }; +} + +export function resultPageSuccess( + page: number, + pageSize: number, + list: T[], + { message = 'ok' } = {}, +) { + const pageData = pagination(page, pageSize, list); + + return { + ...resultSuccess({ + items: pageData, + meta: { + currentPage: ~~page, + totalItems: list.length, + totalPages: Math.ceil(list.length / pageSize), + }, + }), + message, + }; +} + +export function resultError( + message = 'Request failed', + { code = ResultEnum.ERROR, data = null } = {}, +) { + return { + code, + data, + message, + type: 'error', + }; +} + +export function pagination(pageNo: number, pageSize: number, array: T[]): T[] { + const offset = (pageNo - 1) * Number(pageSize); + return offset + Number(pageSize) >= array.length + ? array.slice(offset, array.length) + : array.slice(offset, offset + Number(pageSize)); +} + +export interface requestParams { + method: string; + body: any; + headers?: { authorization?: string }; + query: any; +} + +/** + * @description 本函数用于从request数据中获取token,请根据项目的实际情况修改 + * + */ +export function getRequestToken({ headers }: requestParams): string | undefined { + return headers?.authorization; +} + +export const getQuery = (request: StrictRequest) => { + const url = new URL(request.url); + return Object.fromEntries(url.searchParams.entries()); +}; diff --git a/mocks/demo/hero/_heroList.json b/mocks/demo/hero/_heroList.json new file mode 100644 index 0000000..0531065 --- /dev/null +++ b/mocks/demo/hero/_heroList.json @@ -0,0 +1,1978 @@ +[ + { + "title": "正义爆轰", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=105&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "105", + "appointHeroid": "7", + "removeHeroid": "0", + "occupation": "坦克", + "num": "107", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200428/80750919757873.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200428/117411278918332.jpg", + "pinyin": "lianpo", + "ename": 105, + "cname": "廉颇", + "new_type": 0, + "hero_type": 3, + "skin_name": "正义爆轰|地狱岩魂" + }, + { + "title": "恋之微风", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=106&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "106", + "appointHeroid": "13", + "removeHeroid": "1", + "occupation": "法师", + "num": "106", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/237121077716001.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/1102737314499.jpg", + "pinyin": "xiaoqiao", + "ename": 106, + "cname": "小乔", + "new_type": 0, + "hero_type": 2, + "skin_name": "恋之微风|万圣前夜|天鹅之梦|纯白花嫁|缤纷独角兽" + }, + { + "title": "苍天翔龙", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=107&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "107", + "appointHeroid": "1", + "removeHeroid": "0", + "occupation": "战士/刺客", + "num": "105", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/422841175180785.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/225211269527745.jpg", + "pinyin": "zhaoyun", + "ename": 107, + "cname": "赵云", + "new_type": 0, + "hero_type": 1, + "hero_type2": 4, + "skin_name": "苍天翔龙|忍●炎影|未来纪元|皇家上将|嘻哈天王|白执事|引擎之心" + }, + { + "title": "和平守望", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=108&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "108", + "appointHeroid": "18", + "removeHeroid": "0", + "occupation": "法师/战士", + "num": "104", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/62651469219485.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/141381416202595.jpg", + "pinyin": "mozi", + "ename": 108, + "cname": "墨子", + "new_type": 0, + "hero_type": 2, + "hero_type2": 1, + "skin_name": "和平守望|金属风暴|龙骑士|进击墨子号" + }, + { + "title": "魅力之狐", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=109&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "109", + "appointHeroid": "2", + "removeHeroid": "1", + "occupation": "法师", + "num": "103", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/782471528444287.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/699631230814498.jpg", + "pinyin": "daji", + "ename": 109, + "cname": "妲己", + "pay_type": 11, + "new_type": 0, + "hero_type": 2, + "skin_name": "魅惑之狐|女仆咖啡|魅力维加斯|仙境爱丽丝|少女阿狸|热情桑巴" + }, + { + "title": "王者独尊", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=110&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "110", + "appointHeroid": "8", + "removeHeroid": "1", + "occupation": "法师", + "num": "10", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200323/9558902611675.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200323/278721395811583.jpg", + "pinyin": "yingzheng", + "ename": 110, + "cname": "嬴政", + "new_type": 0, + "hero_type": 2, + "skin_name": "王者独尊|摇滚巨星|暗夜贵公子|优雅恋人|白昼王子" + }, + { + "title": "千金重弩", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=111&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "111", + "appointHeroid": "25", + "removeHeroid": "1", + "occupation": "射手", + "num": "102", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/528761277746534.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/573321328636709.jpg", + "pinyin": "sunshangxiang", + "ename": 111, + "cname": "孙尚香", + "new_type": 0, + "hero_type": 5, + "skin_name": "千金重弩|火炮千金|水果甜心|蔷薇恋人|杀手不太冷|末日机甲|沉稳之力" + }, + { + "title": "机关造物", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=112&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "112", + "appointHeroid": "14", + "removeHeroid": "1", + "occupation": "射手", + "num": "101", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/175711332695893.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/43936199005239.png", + "pinyin": "lubanqihao", + "ename": 112, + "cname": "鲁班七号", + "new_type": 0, + "hero_type": 5, + "skin_name": "机关造物|木偶奇遇记|福禄兄弟|电玩小子|星空梦想" + }, + { + "title": "逍遥梦幻", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=113&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "113", + "appointHeroid": "19", + "removeHeroid": "0", + "occupation": "辅助/坦克", + "num": "100", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/36407803861490.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/77101394382651.png", + "pinyin": "zhuangzhou", + "ename": 113, + "cname": "庄周", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "逍遥幻梦|鲤鱼之梦|蜃楼王|云端筑梦师" + }, + { + "title": "暴走机关", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=114&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "114", + "appointHeroid": "26", + "removeHeroid": "0", + "occupation": "辅助/坦克", + "num": "14", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/6266887523314.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190823/29306987419076.jpg", + "pinyin": "liushan", + "ename": 114, + "cname": "刘禅", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "暴走机关|英喵野望|绅士熊喵|天才门将" + }, + { + "title": "叛逆吟游", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=115&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "115", + "appointHeroid": "3", + "removeHeroid": "2", + "occupation": "法师", + "num": "99", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/84899525679925.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/23817580712911.jpg", + "pinyin": "gaojianli", + "ename": 115, + "cname": "高渐离", + "new_type": 0, + "hero_type": 2, + "skin_name": "叛逆吟游|金属狂潮|死亡摇滚" + }, + { + "title": "信念之刃", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=116&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "116", + "appointHeroid": "9", + "removeHeroid": "2", + "occupation": "刺客", + "num": "98", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/977331090834512.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/99651112048573.jpg", + "pinyin": "jingke", + "ename": 116, + "cname": "阿轲", + "new_type": 0, + "hero_type": 4, + "skin_name": "信念之刃|爱心护理|暗夜猫娘|致命风华|节奏热浪" + }, + { + "title": "野蛮之锤", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=117&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "117", + "appointHeroid": "15", + "removeHeroid": "0", + "occupation": "战士/坦克", + "num": "97", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/4638371386568.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/35122420479789.jpg", + "pinyin": "zhongwuyan", + "ename": 117, + "cname": "钟无艳", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "野蛮之锤|生化警戒|王者之锤|海滩丽影" + }, + { + "title": "逆流之时", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=118&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "118", + "appointHeroid": "20", + "removeHeroid": "0", + "occupation": "辅助/法师", + "num": "16", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/70493764453797.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190717/68582301165891.jpg", + "pinyin": "sunbin", + "ename": 118, + "cname": "孙膑", + "pay_type": 10, + "new_type": 0, + "hero_type": 6, + "hero_type2": 2, + "skin_name": "逆流之时|未来旅行|天使之翼|妖精王" + }, + { + "title": "善恶怪医", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=119&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "119", + "appointHeroid": "27", + "removeHeroid": "1", + "occupation": "法师", + "num": "96", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/59618194648034.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/836271081336597.png", + "pinyin": "bianque", + "ename": 119, + "cname": "扁鹊", + "new_type": 0, + "hero_type": 2, + "skin_name": "善恶怪医|救世之瞳|化身博士|炼金王" + }, + { + "title": "最终兵器", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=120&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "120", + "appointHeroid": "4", + "removeHeroid": "1", + "occupation": "坦克", + "num": "95", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200326/155221210224517.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200326/6570235067207.jpg", + "pinyin": "baiqi", + "ename": 120, + "cname": "白起", + "new_type": 0, + "hero_type": 3, + "skin_name": "最终兵器|白色死神|狰|星夜王子" + }, + { + "title": "永恒之月", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=121&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "121", + "appointHeroid": "37", + "removeHeroid": "1", + "occupation": "法师/坦克", + "num": "94", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/4519469508162.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170613/47620969119925.jpg", + "pinyin": "miyue", + "ename": 121, + "cname": "芈月", + "new_type": 0, + "hero_type": 2, + "hero_type2": 3, + "skin_name": "永恒之月|红桃皇后|大秦宣太后|重明" + }, + { + "title": "无双之魔", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=123&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "123", + "appointHeroid": "39", + "removeHeroid": "2", + "occupation": "战士/坦克", + "num": "93", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/664211000977024.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/321961310548288.png", + "pinyin": "lvbu", + "ename": 123, + "cname": "吕布", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "无双之魔|圣诞狂欢|天魔缭乱|末日机甲|猎兽之王" + }, + { + "title": "铁血都督", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=124&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "124", + "appointHeroid": "34", + "removeHeroid": "1", + "occupation": "法师", + "num": "92", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/86934792945830.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170908/307111124323013.jpg", + "pinyin": "zhouyu", + "ename": 124, + "cname": "周瑜", + "new_type": 0, + "hero_type": 2, + "skin_name": "铁血都督|海军大将|真爱至上" + }, + { + "title": "不羁之风", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=126&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "126", + "appointHeroid": "54", + "removeHeroid": "2", + "occupation": "坦克/战士", + "num": "61", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/7593351277808.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/64439961036621.jpg", + "pinyin": "xiahoudun", + "ename": 126, + "cname": "夏侯惇", + "pay_type": 10, + "new_type": 0, + "hero_type": 3, + "hero_type2": 1, + "skin_name": "不羁之风|战争骑士|乘风破浪|无限飓风号" + }, + { + "title": "洛神降临", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=127&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "127", + "appointHeroid": "10", + "removeHeroid": "2", + "occupation": "法师", + "num": "91", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/8706478784651.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/126691414817402.jpg", + "pinyin": "zhenji", + "ename": 127, + "cname": "甄姬", + "new_type": 0, + "hero_type": 2, + "skin_name": "洛神降临|冰雪圆舞曲|花好人间|游园惊梦" + }, + { + "title": "鲜血枭雄", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=128&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "128", + "appointHeroid": "33", + "removeHeroid": "2", + "occupation": "战士", + "num": "90", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/128165944821.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/397691359908498.png", + "pinyin": "caocao", + "ename": 128, + "cname": "曹操", + "new_type": 0, + "hero_type": 1, + "skin_name": "鲜血枭雄|超能战警|幽灵船长|死神来了|烛龙" + }, + { + "title": "狂战士", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=129&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "129", + "appointHeroid": "21", + "removeHeroid": "2", + "occupation": "战士", + "num": "89", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/744831059647720.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/20454559634867.png", + "pinyin": "dianwei", + "ename": 129, + "cname": "典韦", + "new_type": 0, + "hero_type": 1, + "skin_name": "狂战士|黄金武士|穷奇" + }, + { + "title": "剑圣", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=130&ADTAG=pvp.storyweb", + "camptype": "8", + "heroid": "130", + "appointHeroid": "28", + "removeHeroid": "", + "occupation": "战士", + "num": "55", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/46551546090153.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160727/941571076869491.png", + "pinyin": "gongbenwuzang", + "ename": 130, + "cname": "宫本武藏", + "new_type": 0, + "hero_type": 1, + "skin_name": "剑圣|鬼剑武藏|未来纪元|万象初新|地狱之眼|霸王丸" + }, + { + "title": "青莲剑仙", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=131&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "131", + "appointHeroid": "46", + "removeHeroid": "0", + "occupation": "刺客", + "num": "88", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/54178532140165.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/48767445393807.png", + "pinyin": "libai", + "ename": 131, + "cname": "李白", + "pay_type": 10, + "new_type": 0, + "hero_type": 4, + "skin_name": "青莲剑仙|范海辛|千年之狐|凤求凰|敏锐之力" + }, + { + "title": "远游之枪", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=132&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "132", + "appointHeroid": "56", + "removeHeroid": "1", + "occupation": "射手", + "num": "59", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/213931307900110.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181029/120341325343790.jpg", + "pinyin": "makeboluo", + "ename": 132, + "cname": "马可波罗", + "new_type": 0, + "hero_type": 5, + "skin_name": "远游之枪|激情绿茵|逐梦之星" + }, + { + "title": "断案大师", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=133&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "133", + "appointHeroid": "16", + "removeHeroid": "0", + "occupation": "射手", + "num": "87", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/5043088753153.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/64476830268821.jpg", + "pinyin": "direnjie", + "ename": 133, + "cname": "狄仁杰", + "pay_type": 11, + "new_type": 0, + "hero_type": 5, + "skin_name": "断案大师|锦衣卫|魔术师|超时空战士|阴阳师" + }, + { + "title": "拳僧", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=134&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "134", + "appointHeroid": "22", + "removeHeroid": "0", + "occupation": "战士/坦克", + "num": "52", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/48361745905777.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/28376554913969.png", + "pinyin": "damo", + "ename": 134, + "cname": "达摩", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "拳僧|大发明家|拳王" + }, + { + "title": "霸王", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=135&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "135", + "appointHeroid": "29", + "removeHeroid": "2", + "occupation": "坦克", + "num": "86", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/640041141757817.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/35024839042519.png", + "pinyin": "xiangyu", + "ename": 135, + "cname": "项羽", + "new_type": 0, + "hero_type": 3, + "skin_name": "霸王|帝国元帅|苍穹之光|海滩派对|职棒王牌|霸王别姬|科学大爆炸" + }, + { + "title": "女帝", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=136&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "136", + "appointHeroid": "5", + "removeHeroid": "0", + "occupation": "法师", + "num": "62", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/8645575620272.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190627/834011412951609.jpg", + "pinyin": "wuzetian", + "ename": 136, + "cname": "武则天", + "new_type": 0, + "hero_type": 2, + "skin_name": "女帝|东方不败|海洋之心" + }, + { + "title": "万古长明", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=139&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "139", + "appointHeroid": "11", + "removeHeroid": "0", + "occupation": "战士", + "num": "47", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/56207935501606.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/58017735021814.png", + "pinyin": "laofuzi", + "ename": 139, + "cname": "老夫子", + "new_type": 0, + "hero_type": 1, + "skin_name": "万古长明|潮流仙人|圣诞老人|功夫老勺" + }, + { + "title": "一骑当千", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=140&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "140", + "appointHeroid": "52", + "removeHeroid": "0", + "occupation": "战士", + "num": "46", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/275341569174044.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/18154342091729.png", + "pinyin": "guanyu", + "ename": 140, + "cname": "关羽", + "new_type": 0, + "hero_type": 1, + "skin_name": "一骑当千|天启骑士|冰锋战神|龙腾万里" + }, + { + "title": "绝世舞姬", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=141&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "141", + "appointHeroid": "38", + "removeHeroid": "2", + "occupation": "法师/刺客", + "num": "85", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/1559492280407.png", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/55547119153305.png", + "pinyin": "diaochan", + "ename": 141, + "cname": "貂蝉", + "pay_type": 10, + "new_type": 0, + "hero_type": 2, + "hero_type2": 4, + "skin_name": "绝世舞姬|异域舞娘|圣诞恋歌|逐梦之音|仲夏夜之梦" + }, + { + "title": "暗夜萝莉", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=142&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "142", + "appointHeroid": "32", + "removeHeroid": "0", + "occupation": "法师", + "num": "84", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/4412162996520.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/18901316660134.png", + "pinyin": "anqila", + "ename": 142, + "cname": "安琪拉", + "new_type": 0, + "hero_type": 2, + "skin_name": "暗夜萝莉|玩偶对对碰|魔法小厨娘|心灵骇客|如懿" + }, + { + "title": "热烈之斧", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=144&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "144", + "appointHeroid": "30", + "removeHeroid": "0", + "occupation": "坦克/战士", + "num": "83", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/632001118049593.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/12835477027157.png", + "pinyin": "chengyaojin", + "ename": 144, + "cname": "程咬金", + "new_type": 0, + "hero_type": 3, + "hero_type2": 1, + "skin_name": "热烈之斧|爱与正义|星际陆战队|华尔街大亨|功夫厨神" + }, + { + "title": "月光之女", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=146&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "146", + "appointHeroid": "6", + "removeHeroid": "1", + "occupation": "战士/法师", + "num": "82", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/63581396650488.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/119971138563496.jpg", + "pinyin": "luna", + "ename": 146, + "cname": "露娜", + "new_type": 0, + "hero_type": 1, + "hero_type2": 2, + "skin_name": "月光之女|哥特玫瑰|绯红之刃|紫霞仙子|一生所爱" + }, + { + "title": "太古魔导", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=148&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "148", + "appointHeroid": "12", + "removeHeroid": "1", + "occupation": "法师/辅助", + "num": "81", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/107021158349230.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/21386894863581.png", + "pinyin": "jiangziya", + "ename": 148, + "cname": "姜子牙", + "new_type": 0, + "hero_type": 2, + "skin_name": "太古魔导|时尚教父" + }, + { + "title": "双面君主", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=149&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "149", + "appointHeroid": "49", + "removeHeroid": "1", + "occupation": "坦克", + "num": "80", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/71567211286504.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190627/1611520684982.jpg", + "pinyin": "liubang", + "ename": 149, + "cname": "刘邦", + "new_type": 0, + "hero_type": 3, + "skin_name": "双面君主|圣殿之光|德古拉伯爵" + }, + { + "title": "国士无双", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=150&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "150", + "appointHeroid": "23", + "removeHeroid": "1", + "occupation": "刺客", + "num": "79", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/26620610693151.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/558661233757564.png", + "pinyin": "hanxin", + "ename": 150, + "cname": "韩信", + "new_type": 0, + "hero_type": 4, + "skin_name": "国士无双|街头霸王|教廷特使|白龙吟|逐梦之影" + }, + { + "title": "冰雪之华", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=152&ADTAG=pvp.storyweb", + "camptype": "2", + "heroid": "152", + "appointHeroid": "31", + "removeHeroid": "0", + "occupation": "法师", + "num": "78", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/605981185208690.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/28141313400127.jpg", + "pinyin": "wangzhaojun", + "ename": 152, + "cname": "王昭君", + "new_type": 0, + "hero_type": 2, + "skin_name": "冰雪之华|精灵公主|偶像歌手|凤凰于飞|幻想奇妙夜" + }, + { + "title": "暗影刀锋", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=153&ADTAG=pvp.storyweb", + "camptype": "9", + "heroid": "153", + "appointHeroid": "44", + "removeHeroid": "0", + "occupation": "刺客", + "num": "77", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210114/34030207140278.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210114/9912813909230.jpg", + "pinyin": "lanlingwang", + "ename": 153, + "cname": "兰陵王", + "new_type": 0, + "hero_type": 4, + "skin_name": "暗影刀锋|隐刃|暗隐猎兽者" + }, + { + "title": "传说之刃", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=154&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "154", + "appointHeroid": "40", + "removeHeroid": "2", + "occupation": "战士/刺客", + "num": "76", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/3685977620263.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170308/34782968648244.jpg", + "pinyin": "huamulan", + "ename": 154, + "cname": "花木兰", + "new_type": 0, + "hero_type": 1, + "hero_type2": 4, + "skin_name": "传说之刃|剑舞者|兔女郎|水晶猎龙者|青春决赛季|冠军飞将|瑞麟志" + }, + { + "title": "言灵之书", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=156&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "156", + "appointHeroid": "17", + "removeHeroid": "1", + "occupation": "法师", + "num": "75", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/2248336605405.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/55913224991097.jpg", + "pinyin": "zhangliang", + "ename": 156, + "cname": "张良", + "new_type": 0, + "hero_type": 2, + "skin_name": "言灵之书|天堂福音|一千零一夜|幽兰居士" + }, + { + "title": "明媚烈焰", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=157&ADTAG=pvp.storyweb", + "camptype": "8", + "heroid": "157", + "appointHeroid": "50", + "removeHeroid": "", + "occupation": "法师/刺客", + "num": "74", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/579210012886.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/63399584503206.png", + "pinyin": "buzhihuowu", + "ename": 157, + "cname": "不知火舞", + "new_type": 0, + "hero_type": 2, + "hero_type2": 4, + "skin_name": "明媚烈焰" + }, + { + "title": "鹰之守护", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=162&ADTAG=pvp.storyweb", + "camptype": "8", + "heroid": "162", + "appointHeroid": "45", + "removeHeroid": "", + "occupation": "刺客", + "num": "73", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/548681020090103.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/31519374723603.png", + "pinyin": "nakelulu", + "ename": 162, + "cname": "娜可露露", + "new_type": 0, + "hero_type": 4, + "skin_name": "鹰之守护" + }, + { + "title": "神梦一刀", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=163&ADTAG=pvp.storyweb", + "camptype": "8", + "heroid": "163", + "appointHeroid": "57", + "removeHeroid": "", + "occupation": "刺客/战士", + "num": "58", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/58109651771952.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160830/20769120063270.jpg", + "pinyin": "juyoujing", + "ename": 163, + "cname": "橘右京", + "new_type": 0, + "hero_type": 4, + "hero_type2": 1, + "skin_name": "神梦一刀" + }, + { + "title": "圣骑之力", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=166&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "166", + "appointHeroid": "24", + "removeHeroid": "0", + "occupation": "战士/坦克", + "num": "72", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/45701468188203.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190116/93251107128088.jpg", + "pinyin": "yase", + "ename": 166, + "cname": "亚瑟", + "pay_type": 11, + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "圣骑之力|死亡骑士|狮心王|心灵战警" + }, + { + "title": "齐天大圣", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=167&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "167", + "appointHeroid": "36", + "removeHeroid": "2", + "occupation": "刺客/战士", + "num": "71", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/46014866033037.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/37425581339924.png", + "pinyin": "sunwukong", + "ename": 167, + "cname": "孙悟空", + "new_type": 0, + "hero_type": 4, + "hero_type2": 1, + "skin_name": "齐天大圣|地狱火|西部大镖客|美猴王|至尊宝|全息碎影|大圣娶亲" + }, + { + "title": "精英酋长", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=168&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "168", + "appointHeroid": "35", + "removeHeroid": "2", + "occupation": "辅助/坦克", + "num": "70", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/775111569812043.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/873611252975639.png", + "pinyin": "niumo", + "ename": 168, + "cname": "牛魔", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "精英酋长|西部大镖客|制霸全明星" + }, + { + "title": "半神之弓", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=169&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "169", + "appointHeroid": "41", + "removeHeroid": "2", + "occupation": "射手", + "num": "69", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/64275801657630.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/7521729121819.jpg", + "pinyin": "houyi", + "ename": 169, + "cname": "后羿", + "new_type": 0, + "hero_type": 5, + "skin_name": "半神之弓|精灵王|阿尔法小队|辉光之辰|黄金射手座" + }, + { + "title": "仁德义枪", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=170&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "170", + "appointHeroid": "43", + "removeHeroid": "0", + "occupation": "战士", + "num": "68", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/980091411957883.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/16495784782816.png", + "pinyin": "liubei", + "ename": 170, + "cname": "刘备", + "new_type": 0, + "hero_type": 1, + "skin_name": "仁德义枪|万事如意|纽约教父|汉昭烈帝" + }, + { + "title": "禁血狂兽", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=171&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "171", + "appointHeroid": "42", + "removeHeroid": "0", + "occupation": "辅助/坦克", + "num": "67", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/184661526306200.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/941221097359270.png", + "pinyin": "zhangfei", + "ename": 171, + "cname": "张飞", + "new_type": 0, + "hero_type": 3, + "hero_type2": 6, + "skin_name": "禁血狂兽|五福同心|乱世虎臣" + }, + { + "title": "王都密探", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=173&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "173", + "appointHeroid": "48", + "removeHeroid": "0", + "occupation": "射手", + "num": "66", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/536601401910051.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181025/289431194455887.jpg", + "pinyin": "liyuanfang", + "ename": 173, + "cname": "李元芳", + "pay_type": 10, + "new_type": 0, + "hero_type": 5, + "skin_name": "王都密探|特种部队|黑猫爱糖果|逐浪之夏" + }, + { + "title": "森之风灵", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=174&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "174", + "appointHeroid": "51", + "removeHeroid": "2", + "occupation": "射手", + "num": "64", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/85572974862749.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180327/75023658143716.jpg", + "pinyin": "yuji", + "ename": 174, + "cname": "虞姬", + "new_type": 0, + "hero_type": 5, + "skin_name": "森之风灵|加勒比小姐|霸王别姬|凯尔特女王" + }, + { + "title": "虚灵城判", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=175&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "175", + "appointHeroid": "47", + "removeHeroid": "0", + "occupation": "法师/战士", + "num": "65", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/203361241905570.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180122/79835640494001.jpg", + "pinyin": "zhongkui", + "ename": 175, + "cname": "钟馗", + "new_type": 0, + "hero_type": 6, + "hero_type2": 2, + "skin_name": "虚灵城判|地府判官" + }, + { + "title": "苍狼末裔", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=177&ADTAG=pvp.storyweb", + "camptype": "2", + "heroid": "177", + "appointHeroid": "58", + "removeHeroid": "0", + "occupation": "射手", + "num": "57", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/669879518974.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160918/21931014171659.jpg", + "pinyin": "chengjisihan", + "ename": 177, + "cname": "成吉思汗", + "new_type": 0, + "hero_type": 5, + "skin_name": "苍狼末裔|维京掠夺者" + }, + { + "title": "根源之目", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=178&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "178", + "appointHeroid": "59", + "removeHeroid": "1", + "occupation": "战士", + "num": "56", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/365511150355588.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20161008/81211237899931.jpg", + "pinyin": "yangjian", + "ename": 178, + "cname": "杨戬", + "new_type": 0, + "hero_type": 1, + "skin_name": "根源之目|埃及法老|永曜之星" + }, + { + "title": "圣域余晖", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=183&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "183", + "appointHeroid": "55", + "removeHeroid": "0", + "occupation": "战士", + "num": "60", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/44483332637077.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190524/64614584030878.jpg", + "pinyin": "yadianna", + "ename": 183, + "cname": "雅典娜", + "new_type": 0, + "hero_type": 1, + "skin_name": "圣域余晖|战争女神|冰冠公主|神奇女侠" + }, + { + "title": "天籁弦音", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=184&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "184", + "appointHeroid": "53", + "removeHeroid": "2", + "occupation": "辅助", + "num": "63", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/9456290393768.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20160726/8277177112204.png", + "pinyin": "caiwenji", + "ename": 184, + "cname": "蔡文姬", + "new_type": 0, + "hero_type": 6, + "skin_name": "天籁弦音|蔷薇王座|舞动绿茵|奇迹圣诞" + }, + { + "title": "炼金大师", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=186&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "186", + "appointHeroid": "60", + "removeHeroid": "1", + "occupation": "辅助/坦克", + "num": "54", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/524241070493059.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20161124/29648640143170.jpg", + "pinyin": "taiyizhenren", + "ename": 186, + "cname": "太乙真人", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "炼金大师|圆桌骑士|饕餮|华丽摇滚" + }, + { + "title": "桀骜炎枪", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=180&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "180", + "appointHeroid": "61", + "removeHeroid": "1", + "occupation": "战士", + "num": "53", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/652021297028542.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170104/952661342083635.jpg", + "pinyin": "nezha", + "ename": 180, + "cname": "哪吒", + "new_type": 0, + "hero_type": 1, + "skin_name": "桀骜炎枪|三太子|逐梦之翼" + }, + { + "title": "绝代智谋", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=190&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "190", + "appointHeroid": "62", + "removeHeroid": "0", + "occupation": "法师", + "num": "51", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/29138566540861.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170118/48646263962066.jpg", + "pinyin": "zhugeliang", + "ename": 190, + "cname": "诸葛亮", + "new_type": 0, + "hero_type": 2, + "skin_name": "绝代智谋|星航指挥官|黄金分割率|武陵仙君|掌控之力" + }, + { + "title": "燃魂重炮", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=192&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "192", + "appointHeroid": "63", + "removeHeroid": "0", + "occupation": "射手", + "num": "50", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/85062883647203.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170203/81719401485448.jpg", + "pinyin": "huangzhong", + "ename": 192, + "cname": "黄忠", + "new_type": 0, + "hero_type": 5, + "skin_name": "燃魂重炮|芝加哥教父" + }, + { + "title": "沧海之曜", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=191&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "191", + "appointHeroid": "64", + "removeHeroid": "1", + "occupation": "辅助", + "num": "49", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/39697765755935.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170217/62422276203551.jpg", + "pinyin": "daqiao", + "ename": 191, + "cname": "大乔", + "new_type": 0, + "hero_type": 6, + "skin_name": "沧海之曜|伊势巫女|守护之力|猫狗日记" + }, + { + "title": "噬灭日蚀", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=187&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "187", + "appointHeroid": "65", + "removeHeroid": "0", + "occupation": "辅助/坦克", + "num": "48", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/33388656891546.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170317/94767842334793.jpg", + "pinyin": "donghuangtaiyi", + "ename": 187, + "cname": "东皇太一", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "噬灭日蚀|东海龙王|逐梦之光" + }, + { + "title": "淬命双剑", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=182&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "182", + "appointHeroid": "66", + "removeHeroid": "0", + "occupation": "法师", + "num": "45", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/42817207621092.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170524/87618567096649.jpg", + "pinyin": "ganjiangmoye", + "ename": 182, + "cname": "干将莫邪", + "new_type": 0, + "hero_type": 2, + "skin_name": "淬命双剑|第七人偶|冰霜恋舞曲" + }, + { + "title": "万物有灵", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=189&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "189", + "appointHeroid": "67", + "removeHeroid": "0", + "occupation": "辅助", + "num": "44", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/88527151660191.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170621/886741128494673.jpg", + "pinyin": "guiguzi", + "ename": 189, + "cname": "鬼谷子", + "new_type": 0, + "hero_type": 6, + "skin_name": "万物有灵|阿摩司公爵|幻乐之宴" + }, + { + "title": "破灭刃锋", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=193&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "193", + "appointHeroid": "68", + "removeHeroid": "2", + "occupation": "战士/坦克", + "num": "43", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/40660475542197.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170703/82350987230843.jpg", + "pinyin": "kai", + "ename": 193, + "cname": "铠", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "破灭刃锋|龙域领主|曙光守护者|青龙志" + }, + { + "title": "静谧之眼", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=196&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "196", + "appointHeroid": "69", + "removeHeroid": "2", + "occupation": "射手", + "num": "42", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/973981525713211.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170728/457611237008978.jpg", + "pinyin": "bailishouyue", + "ename": 196, + "cname": "百里守约", + "new_type": 0, + "hero_type": 5, + "hero_type2": 4, + "skin_name": "静谧之眼|绝影神枪|特工魅影|朱雀志" + }, + { + "title": "嚣狂之镰", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=195&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "195", + "appointHeroid": "70", + "removeHeroid": "2", + "occupation": "刺客", + "num": "41", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/70144136701374.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170817/84625581125048.jpg", + "pinyin": "bailixuance", + "ename": 195, + "cname": "百里玄策", + "new_type": 0, + "hero_type": 4, + "skin_name": "嚣狂之镰|威尼斯狂欢|白虎志" + }, + { + "title": "不屈铁壁", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=194&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "194", + "appointHeroid": "71", + "removeHeroid": "2", + "occupation": "坦克/战士", + "num": "40", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/75102223449716.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20170921/73767796416726.jpg", + "pinyin": "sulie", + "ename": 194, + "cname": "苏烈", + "new_type": 0, + "hero_type": 3, + "hero_type2": 1, + "skin_name": "不屈铁壁|爱与和平|坚韧之力|玄武志" + }, + { + "title": "入梦之灵", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=198&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "198", + "appointHeroid": "72", + "removeHeroid": "1", + "occupation": "战士/坦克", + "num": "39", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210510/88228768602449.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210510/23016587216986.jpg", + "pinyin": "mengqi", + "ename": 198, + "cname": "梦奇", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "入梦之灵|美梦成真|胖达荣荣" + }, + { + "title": "至高创世", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=179&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "179", + "appointHeroid": "73", + "removeHeroid": "1", + "occupation": "法师", + "num": "38", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/957611093104192.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20171116/969111664137.jpg", + "pinyin": "nvwa", + "ename": 179, + "cname": "女娲", + "new_type": 0, + "hero_type": 2, + "skin_name": "至高创世|尼罗河女神" + }, + { + "title": "灵魂劫卜", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=501&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "501", + "appointHeroid": "74", + "removeHeroid": "1", + "occupation": "辅助", + "num": "37", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/950592351878.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20171204/28305587201309.jpg", + "pinyin": "mingshiyin", + "ename": 501, + "cname": "明世隐", + "new_type": 0, + "hero_type": 6, + "skin_name": "灵魂劫卜|占星术士|虹云星官" + }, + { + "title": "幻舞玲珑", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=199&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "199", + "appointHeroid": "75", + "removeHeroid": "1", + "occupation": "射手", + "num": "36", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/85961165268981.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180117/403241369215383.jpg", + "pinyin": "gongsunli", + "ename": 199, + "cname": "公孙离", + "new_type": 0, + "hero_type": 5, + "skin_name": "幻舞玲珑|花间舞|蜜橘之夏" + }, + { + "title": "霓裳风华", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=176&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "176", + "appointHeroid": "76", + "removeHeroid": "1", + "occupation": "法师/辅助", + "num": "35", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/316771484611139.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180205/26781833129059.jpg", + "pinyin": "yangyuhuan", + "ename": 176, + "cname": "杨玉环", + "new_type": 0, + "hero_type": 2, + "skin_name": "风华霓裳|霓裳曲|遇见飞天" + }, + { + "title": "六合虎拳", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=502&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "502", + "appointHeroid": "77", + "removeHeroid": "1", + "occupation": "刺客/战士", + "num": "26", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/69916960929378.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180208/24328465009145.jpg", + "pinyin": "peiqinhu", + "ename": 502, + "cname": "裴擒虎", + "new_type": 0, + "hero_type": 4, + "hero_type2": 1, + "skin_name": "六合虎拳|街头霸王|梅西" + }, + { + "title": "天元之弈", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=197&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "197", + "appointHeroid": "78", + "removeHeroid": "1", + "occupation": "法师", + "num": "34", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210922/84992915823949.png", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210922/47732222929767.png", + "pinyin": "yixing", + "ename": 197, + "cname": "弈星", + "new_type": 0, + "hero_type": 2, + "skin_name": "天元之弈|踏雪寻梅" + }, + { + "title": "战车意志", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=503&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "503", + "appointHeroid": "79", + "removeHeroid": "1", + "occupation": "战士", + "num": "33", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/7239917087550.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180412/546911293826154.jpg", + "pinyin": "kuangtie", + "ename": 503, + "cname": "狂铁", + "new_type": 0, + "hero_type": 1, + "skin_name": "战车意志|命运角斗场|御狮" + }, + { + "title": "筑城者", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=504&ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "504", + "appointHeroid": "80", + "removeHeroid": "1", + "occupation": "法师", + "num": "32", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/46616375519675.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180510/96802286473688.jpg", + "pinyin": "milaidi", + "ename": 504, + "cname": "米莱狄", + "new_type": 0, + "hero_type": 2, + "skin_name": "筑城者|精准探案法|御霄" + }, + { + "title": "无间傀儡", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=125&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "125", + "appointHeroid": "81", + "removeHeroid": "0", + "occupation": "刺客", + "num": "31", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/227131284204645.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180628/795971480753540.jpg", + "pinyin": "yuange", + "ename": 125, + "cname": "元歌", + "new_type": 0, + "hero_type": 4, + "skin_name": "无间傀儡|午夜歌剧院" + }, + { + "title": "光明之海", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=510&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "510", + "appointHeroid": "82", + "removeHeroid": "1", + "occupation": "战士/坦克", + "num": "30", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/67846590935414.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180717/10339910137309.jpg", + "pinyin": "sunce", + "ename": 510, + "cname": "孙策", + "new_type": 0, + "hero_type": 3, + "hero_type2": 1, + "skin_name": "光明之海|海之征途|猫狗日记" + }, + { + "title": "寂灭之心", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=137&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "137", + "appointHeroid": "83", + "removeHeroid": "2", + "occupation": "刺客/法师", + "num": "29", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/332921188655301.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180816/813571069462033.jpg", + "pinyin": "simayi", + "ename": 137, + "cname": "司马懿", + "new_type": 0, + "hero_type": 4, + "hero_type2": 2, + "skin_name": "寂灭之心|魇语军师" + }, + { + "title": "无尽之盾", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=509&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "509", + "appointHeroid": "84", + "removeHeroid": "2", + "occupation": "辅助/坦克", + "num": "28", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/953261427583808.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180904/71811613439812.jpg", + "pinyin": "dunshan", + "ename": 509, + "cname": "盾山", + "new_type": 0, + "hero_type": 6, + "hero_type2": 3, + "skin_name": "无尽之盾|极冰防御线" + }, + { + "title": "破魔之箭", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=508&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "508", + "appointHeroid": "85", + "removeHeroid": "2", + "occupation": "射手", + "num": "27", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/15595309331581.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20180921/75205278535459.jpg", + "pinyin": "jialuo", + "ename": 508, + "cname": "伽罗", + "new_type": 0, + "hero_type": 5, + "skin_name": "破魔之箭|花见巫女" + }, + { + "title": "爆弹怪猫", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=312&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "312", + "appointHeroid": "86", + "removeHeroid": "2", + "occupation": "法师", + "num": "25", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/293661177557011.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181019/13265340386756.jpg", + "pinyin": "shenmengxi", + "ename": 312, + "cname": "沈梦溪", + "new_type": 0, + "hero_type": 2, + "skin_name": "爆弹怪猫|棒球奇才" + }, + { + "title": "谋世之战", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=507&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "507", + "appointHeroid": "87", + "removeHeroid": "2", + "occupation": "战士", + "num": "24", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/45330314537943.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181120/7804990460330.jpg", + "pinyin": "lixin", + "ename": 507, + "cname": "李信", + "pay_type": 10, + "new_type": 0, + "hero_type": 1, + "skin_name": "谋世之战|灼热之刃" + }, + { + "title": "惊鸿之笔", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=513&ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "513", + "appointHeroid": "88", + "removeHeroid": "0", + "occupation": "法师", + "num": "23", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/218171149641279.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20181211/715691338489128.jpg", + "pinyin": "shangguanwaner", + "ename": 513, + "cname": "上官婉儿", + "new_type": 0, + "hero_type": 2, + "hero_type2": 4, + "skin_name": "惊鸿之笔|修竹墨客" + }, + { + "title": "寒月公主", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=515&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "515", + "appointHeroid": "89", + "removeHeroid": "2", + "occupation": "法师/坦克", + "num": "22", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/353911202229544.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190111/868981192916415.jpg", + "pinyin": "change", + "ename": 515, + "cname": "嫦娥", + "new_type": 0, + "hero_type": 2, + "hero_type2": 3, + "skin_name": "寒月公主|露花倒影" + }, + { + "title": "无忧猛士", + "infourl": "//pvp.qq.com/act/a20180905herostory/index.html?id=511&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "511", + "appointHeroid": "90", + "removeHeroid": "2", + "occupation": "坦克", + "num": "21", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/99063960055644.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190121/59935186584184.jpg", + "pinyin": "zhubajie", + "ename": 511, + "cname": "猪八戒", + "new_type": 0, + "hero_type": 3, + "skin_name": "无忧猛士|年年有余" + }, + { + "title": "破晓之神", + "infourl": "https://pvp.qq.com/act/a20180905herostory/index.html?id=529&ADTAG=pvp.storyweb", + "camptype": "0", + "heroid": "529", + "appointHeroid": "91", + "removeHeroid": "1", + "occupation": "战士", + "num": "20", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/19615858476334.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190218/16716956397489.jpg", + "pinyin": "pangu", + "ename": 529, + "cname": "盘古", + "new_type": 0, + "hero_type": 1, + "skin_name": "破晓之神" + }, + { + "title": "鹿灵守心", + "infourl": "https://pvp.qq.com/act/a20180905herostory/index.html?id=505&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "505", + "appointHeroid": "92", + "removeHeroid": "0", + "occupation": "辅助", + "num": "19", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/757821175652297.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190415/22946736869045.jpg", + "pinyin": "yao", + "ename": 505, + "cname": "瑶", + "new_type": 0, + "hero_type": 6, + "skin_name": "森" + }, + { + "title": "流云之翼", + "infourl": "https://pvp.qq.com/act/a20180905herostory/index.html?id=506&ADTAG=pvp.storyweb", + "camptype": "3", + "heroid": "506", + "appointHeroid": "93", + "removeHeroid": "0", + "occupation": "刺客/战士", + "num": "18", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/86214230515643.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190510/38160378200548.jpg", + "pinyin": "yunzhongjun", + "ename": 506, + "cname": "云中君", + "pay_type": 10, + "new_type": 0, + "hero_type": 4, + "hero_type2": 1, + "skin_name": "荷鲁斯之眼" + }, + { + "title": "星辰之子", + "infourl": "https://pvp.qq.com/act/a20180905herostory/index.html?id=522&ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "522", + "appointHeroid": "94", + "removeHeroid": "0", + "occupation": "战士", + "num": "17", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/770901264838612.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190625/86727196039895.jpg", + "pinyin": "yao", + "ename": 522, + "cname": "曜", + "new_type": 0, + "hero_type": 1, + "skin_name": "归虚梦演" + }, + { + "title": "冷晖之枪", + "infourl": "https://pvp.qq.com/act/a20180905herostory/index.html?id=518&ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "518", + "appointHeroid": "95", + "removeHeroid": "0", + "occupation": "战士", + "num": "15", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/33883177785525.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190813/47880503928005.jpg", + "pinyin": "machao", + "ename": 518, + "cname": "马超", + "new_type": 0, + "hero_type": 1, + "hero_type2": 4, + "skin_name": "冷晖之枪|幸存者|神威" + }, + { + "title": "幻纱之灵", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/523?ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "523", + "appointHeroid": "95", + "removeHeroid": "0", + "occupation": "法师", + "num": "13", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191010/87864951621394.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20190920/52701914999686.jpg", + "pinyin": "xishi", + "ename": 523, + "cname": "西施", + "new_type": 0, + "hero_type": 2, + "skin_name": "幻纱之灵|归虚梦演" + }, + { + "title": "神匠", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/525?ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "525", + "appointHeroid": "96", + "removeHeroid": "0", + "occupation": "辅助", + "num": "12", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191126/72226651341391.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20191126/57064767888562.jpg", + "pinyin": "luban", + "ename": 525, + "cname": "鲁班大师", + "new_type": 0, + "hero_type": 6, + "skin_name": "神匠|归虚梦演" + }, + { + "title": "烈炮小子", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/524?ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "524", + "appointHeroid": "97", + "removeHeroid": "0", + "occupation": "射手", + "num": "11", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200109/645021221580209.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200109/769101262329107.jpg", + "pinyin": "mengya", + "ename": 524, + "cname": "蒙犽", + "new_type": 0, + "hero_type": 5, + "skin_name": "烈炮小子|归虚梦演" + }, + { + "title": "破镜之刃", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/531?ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "531", + "appointHeroid": "98", + "removeHeroid": "1", + "occupation": "刺客", + "num": "9", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200327/25718162647590.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200327/396541250647794.jpg", + "pinyin": "jing", + "ename": 531, + "cname": "镜", + "new_type": 0, + "hero_type": 4, + "skin_name": "破镜之刃|冰刃幻境" + }, + { + "title": "秩序统将", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/527?ADTAG=pvp.storyweb", + "camptype": "1", + "heroid": "527", + "appointHeroid": "99", + "removeHeroid": "1", + "occupation": "战士/坦克", + "num": "8", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200601/79145982836583.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200601/97479618556133.jpg", + "pinyin": "mengtian", + "ename": 527, + "cname": "蒙恬", + "new_type": 0, + "hero_type": 1, + "hero_type2": 3, + "skin_name": "秩序统将|秩序猎龙将" + }, + { + "title": "山林之子", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/533?ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "533", + "appointHeroid": "100", + "removeHeroid": "0", + "occupation": "坦克/辅助", + "num": "7", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200730/908422776017.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200730/2465499023977.jpg", + "pinyin": "aguduo", + "ename": 533, + "cname": "阿古朵", + "new_type": 0, + "hero_type": 3, + "hero_type2": 6, + "skin_name": "山林之子" + }, + { + "title": "玫瑰剑士", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/536?ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "536", + "appointHeroid": "101", + "removeHeroid": "0", + "occupation": "战士", + "num": "6", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200921/27859854994324.png", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20200921/438831094577151.png", + "pinyin": "xialuote", + "ename": 536, + "cname": "夏洛特", + "new_type": 0, + "hero_type": 1, + "skin_name": "玫瑰剑士" + }, + { + "title": "鲨之猎刃", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/528?ADTAG=pvp.storyweb", + "camptype": "4", + "heroid": "528", + "appointHeroid": "102", + "removeHeroid": "1", + "occupation": "刺客", + "num": "5", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20201208/35161952266060.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20201208/644721207778332.jpg", + "pinyin": "lan", + "ename": 528, + "cname": "澜", + "new_type": 0, + "hero_type": 4, + "skin_name": "鲨之猎刃|孤猎" + }, + { + "title": "雷霆之王", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/537?ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "537", + "appointHeroid": "103", + "removeHeroid": "0", + "occupation": "战士/法师", + "num": "4", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210112/85473239526448.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210112/98246362641488.jpg", + "pinyin": "sikongzhen", + "ename": 537, + "cname": "司空震", + "new_type": 0, + "hero_type": 1, + "hero_type2": 2, + "skin_name": "雷霆之王|启蛰" + }, + { + "title": "精灵之舞", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/155?ADTAG=pvp.storyweb", + "camptype": "6", + "heroid": "155", + "appointHeroid": "104", + "removeHeroid": "0", + "occupation": "射手", + "num": "3", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210407/384301448271504.png", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210407/571741466946835.png", + "pinyin": "ailin", + "ename": 155, + "cname": "艾琳", + "new_type": 0, + "hero_type": 5, + "skin_name": "精灵之舞|女武神" + }, + { + "title": "燎原之心", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/538?ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "538", + "appointHeroid": "105", + "removeHeroid": "0", + "occupation": "战士", + "num": "2", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210621/45838846827439.jpg", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20210621/23553953591021.jpg", + "pinyin": "yunying", + "ename": 538, + "cname": "云缨", + "new_type": 0, + "hero_type": 1, + "hero_type2": 4, + "skin_name": "燎原之心|赤焰之缨" + }, + { + "title": "渡世行者", + "infourl": "https://pvp.qq.com/story201904/index.html#/heroDetail/index/540?ADTAG=pvp.storyweb", + "camptype": "7", + "heroid": "540", + "appointHeroid": "106", + "removeHeroid": "0", + "occupation": "法师", + "num": "1", + "heroimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20211116/10927593674507.png", + "faceimg": "//ossweb-img.qq.com/upload/webplat/info/yxzj/20211115/730421262848940.png", + "pinyin": "jinchan", + "ename": 540, + "cname": "金蝉", + "new_type": 1, + "hero_type": 2, + "hero_type2": 6, + "skin_name": "渡世行者|前尘" + } +] diff --git a/mocks/demo/hero/_lolHeroList.json b/mocks/demo/hero/_lolHeroList.json new file mode 100644 index 0000000..8806da5 --- /dev/null +++ b/mocks/demo/hero/_lolHeroList.json @@ -0,0 +1,7380 @@ +[ + { + "heroId": "1", + "name": "黑暗之女", + "alias": "Annie", + "title": "安妮", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "3", + "magic": "10", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/1.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/1.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "安妮,黑暗之女,火女,Annie,anni,heianzhinv,huonv,an,hazn,hn", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/1000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Annie.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big1000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big1013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/1000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/1013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/1000.jpg" + }, + { + "heroId": "2", + "name": "狂战士", + "alias": "Olaf", + "title": "奥拉夫", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "9", + "defense": "5", + "magic": "3", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/2.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/2.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "1500", + "camp": "", + "campId": "", + "keywords": "狂战士,奥拉夫,kzs,alf,Olaf,kuangzhanshi,aolafu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/2000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Olaf.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big2000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big2016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/2000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/2016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/2000.jpg" + }, + { + "heroId": "3", + "name": "正义巨像", + "alias": "Galio", + "title": "加里奥", + "roles": ["tank", "mage"], + "isWeekFree": "0", + "attack": "1", + "defense": "10", + "magic": "6", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/3.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/3.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "正义巨像,加里奥,Galio,jla,zyjx,zhengyijuxiang,jialiao", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/3000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Galio.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big3000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big3013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/3000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/3013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/3000.jpg" + }, + { + "heroId": "4", + "name": "卡牌大师", + "alias": "TwistedFate", + "title": "崔斯特", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "6", + "defense": "2", + "magic": "6", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/4.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/4.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "卡牌大师,崔斯特,卡牌,TwistedFate,kp,cst,kpds,kapaidashi,cuisite,kapai", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/4000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/TwistedFate.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big4000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big4013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/4000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/4013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/4000.jpg" + }, + { + "heroId": "5", + "name": "德邦总管", + "alias": "XinZhao", + "title": "赵信", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "8", + "defense": "6", + "magic": "3", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/5.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/5.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "德邦总管,德邦,赵信,XinZhao,db,dbzg,zx,debangzongguan,debang,zhaoxin", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/5000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/XinZhao.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big5000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big5013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/5000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/5017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/5000.jpg" + }, + { + "heroId": "6", + "name": "无畏战车", + "alias": "Urgot", + "title": "厄加特", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/6.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/6.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "1350", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "无畏战车,厄加特,ejt,wwzc,Urgot,wuweizhanche,ejiate", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/6000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Urgot.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big6000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big6001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big6002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big6003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big6009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big6015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/6000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/6015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/6000.jpg" + }, + { + "heroId": "7", + "name": "诡术妖姬", + "alias": "Leblanc", + "title": "乐芙兰", + "roles": ["assassin", "mage"], + "isWeekFree": "0", + "attack": "1", + "defense": "4", + "magic": "10", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/7.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/7.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "诡术妖姬,妖姬,乐芙兰,Leblanc,lfl,yj,gsyj,guishuyaoji,yaoji,lefulan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/7000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Leblanc.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big7000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big7012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/7000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/7012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/7000.jpg" + }, + { + "heroId": "8", + "name": "猩红收割者", + "alias": "Vladimir", + "title": "弗拉基米尔", + "roles": ["mage"], + "isWeekFree": "1", + "attack": "2", + "defense": "6", + "magic": "8", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/8.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/8.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "猩红收割者,吸血鬼,弗拉基米尔,fljme,xxg,xhsgz,Vladimir,xinghongshougezhe,xixiegui,fulajimier", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/8000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Vladimir.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big8000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big8014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/8000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/8014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/8000.jpg" + }, + { + "heroId": "9", + "name": "远古恐惧", + "alias": "FiddleSticks", + "title": "费德提克", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "2", + "defense": "3", + "magic": "9", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/9.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/9.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "远古恐惧,费德提克,稻草人,FiddleSticks,yuangukongju,feidetike,daocaoren,dcr,fdtk,ygkj", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/9000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/FiddleSticks.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big9000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big9009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/9000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/9009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/9000.jpg" + }, + { + "heroId": "10", + "name": "正义天使", + "alias": "Kayle", + "title": "凯尔", + "roles": ["fighter", "support"], + "isWeekFree": "1", + "attack": "6", + "defense": "6", + "magic": "7", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/10.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/10.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "正义天使,凯尔,天使,ts,zyts,ke,Kayle,zhengyitianshi,kaier,tianshi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/10000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kayle.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big10000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big10009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/10000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/10015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/10000.jpg" + }, + { + "heroId": "11", + "name": "无极剑圣", + "alias": "MasterYi", + "title": "易", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "10", + "defense": "4", + "magic": "2", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/11.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/11.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "无极剑圣,易,剑圣,js,y,wjjs,MasterYi,wujijiansheng,yi,jiansheng", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/11000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/MasterYi.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big11000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big11017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/11000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/11017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/11000.jpg" + }, + { + "heroId": "12", + "name": "牛头酋长", + "alias": "Alistar", + "title": "阿利斯塔", + "roles": ["tank", "support"], + "isWeekFree": "1", + "attack": "6", + "defense": "9", + "magic": "5", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/12.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/12.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "阿利斯塔,牛头,牛头酋长,酋长,alisita,niutou,niutouqiuzhang,qiuzhang,Alistar,alst,nt,ntqz,qz", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/12000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Alistar.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big12001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big12010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/12000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/12017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/12000.jpg" + }, + { + "heroId": "13", + "name": "符文法师", + "alias": "Ryze", + "title": "瑞兹", + "roles": ["mage", "fighter"], + "isWeekFree": "1", + "attack": "2", + "defense": "2", + "magic": "10", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/13.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/13.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "1", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "符文法师,瑞兹,Ryze,光头,rz,fwfs,gt,fuwenfashi,ruizi,guangtou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/13000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ryze.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big13000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big13011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/13000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/13013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/13000.jpg" + }, + { + "heroId": "14", + "name": "亡灵战神", + "alias": "Sion", + "title": "赛恩", + "roles": ["tank", "fighter"], + "isWeekFree": "1", + "attack": "5", + "defense": "9", + "magic": "3", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/14.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/14.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "亡灵战神,塞恩,赛恩,se,wlzs,Sion,wanglingzhanshen,saien", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/14000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sion.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big14000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big14014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/14000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/14014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/14000.jpg" + }, + { + "heroId": "15", + "name": "战争女神", + "alias": "Sivir", + "title": "希维尔", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "9", + "defense": "3", + "magic": "1", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/15.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/15.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "战争女神,轮子妈,希维尔,lzm,xwe,zzns,Sivir,zhanzhengnvshen,lunzima,xiweier", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/15000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sivir.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big15000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big15016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/15000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/15016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/15000.jpg" + }, + { + "heroId": "16", + "name": "众星之子", + "alias": "Soraka", + "title": "索拉卡", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "5", + "magic": "7", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/16.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/16.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "众星之子,索拉卡,星妈,奶妈,xm,nm,slk,zxzz,Soraka,zhongxingzhizi,suolaka,xingma,naima", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/16000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Soraka.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big16001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big16016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/16000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/16017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/16000.jpg" + }, + { + "heroId": "17", + "name": "迅捷斥候", + "alias": "Teemo", + "title": "提莫", + "roles": ["marksman", "assassin"], + "isWeekFree": "1", + "attack": "5", + "defense": "3", + "magic": "7", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/17.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/17.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "1", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "迅捷斥候,提莫,timo,Teemo,tm,xjch,xunjiechihou,timo", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/17000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Teemo.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big17000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big17014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/17000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/17017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/17000.jpg" + }, + { + "heroId": "18", + "name": "麦林炮手", + "alias": "Tristana", + "title": "崔丝塔娜", + "roles": ["marksman", "assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "3", + "magic": "5", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/18.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/18.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "麦林炮手,小炮,崔丝塔娜,xp,cstn,mlps,Tristana,mailinpaoshou,xiaopao,cuisitana", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/18000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Tristana.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big18001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big18012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/18000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/18017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/18000.jpg" + }, + { + "heroId": "19", + "name": "祖安怒兽", + "alias": "Warwick", + "title": "沃里克", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "9", + "defense": "5", + "magic": "3", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/19.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/19.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "祖安怒兽,沃里克,狼人,lr,wlk,zans,Warwick,zuannushou,wolike,langren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/19000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Warwick.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big19003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big19016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/19000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/19016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/19000.jpg" + }, + { + "heroId": "20", + "name": "雪原双子", + "alias": "Nunu", + "title": "努努和威朗普", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "6", + "magic": "7", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/20.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/20.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "雪原双子,努努和威朗普,努努,雪人,Nunu,nn,xr,xysz,mmhwlp,xueyuanshuangzi,nunuheweilangpu,nunu,xueren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/20000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nunu.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big20005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big20016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/20000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/20016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/20000.jpg" + }, + { + "heroId": "21", + "name": "赏金猎人", + "alias": "MissFortune", + "title": "厄运小姐", + "roles": ["marksman"], + "isWeekFree": "1", + "attack": "8", + "defense": "2", + "magic": "5", + "difficulty": "1", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/21.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/21.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "赏金猎人,赏金,厄运小姐,MF,MissFortune,sj,sjlr,eyxj,shangjinlieren,shangjin,eyunxiaojie", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/21000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/MissFortune.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big21001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big21017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/21000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/21017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/21000.jpg" + }, + { + "heroId": "22", + "name": "寒冰射手", + "alias": "Ashe", + "title": "艾希", + "roles": ["marksman", "support"], + "isWeekFree": "1", + "attack": "7", + "defense": "3", + "magic": "2", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/22.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/22.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "1", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "艾希,寒冰,爱射,艾射,冰弓,Ashe,aixi,hanbing,aishe,aishe,binggong,ax,hb,as,bg", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/22000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ashe.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big22006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big22017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/22003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/22010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/22000.jpg" + }, + { + "heroId": "23", + "name": "蛮族之王", + "alias": "Tryndamere", + "title": "泰达米尔", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "10", + "defense": "5", + "magic": "2", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/23.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/23.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "蛮族之王,蛮王,泰达米尔,Tryndamere,tdme,mw,mzzw,manzuzhiwang,manwang,taidamier", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/23000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Tryndamere.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big23001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big23010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/23000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/23005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/23000.jpg" + }, + { + "heroId": "24", + "name": "武器大师", + "alias": "Jax", + "title": "贾克斯", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "7", + "defense": "5", + "magic": "7", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/24.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/24.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "武器大师,贾克斯,武器,Jax,wq,jks,wqds,wuqidashi,jiakesi,wuqi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/24000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Jax.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big24001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big24014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/24000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/24013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/24000.jpg" + }, + { + "heroId": "25", + "name": "堕落天使", + "alias": "Morgana", + "title": "莫甘娜", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "6", + "magic": "8", + "difficulty": "1", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/25.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/25.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "堕落天使,莫甘娜,MGN,dlts,Morgana,duoluotianshi,moganna", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/25000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Morgana.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big25001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big25017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/25002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/25017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/25000.jpg" + }, + { + "heroId": "26", + "name": "时光守护者", + "alias": "Zilean", + "title": "基兰", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "5", + "magic": "8", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/26.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/26.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "时光守护者,基兰,Zilean,jl,sgshz,时光老人,时光老头,shiguangshouhuzhe,jilan,shiguanglaoren,shiguanglaotou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/26000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Zilean.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big26000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big26005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/26006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/26003.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/26000.jpg" + }, + { + "heroId": "27", + "name": "炼金术士", + "alias": "Singed", + "title": "辛吉德", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "8", + "magic": "7", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/27.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/27.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "炼金术士,辛吉德,炼金,lj,xjd,ljss,Singed,lianjinshushi,xinjide,lianjin", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/27000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Singed.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big27000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big27010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/27003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/27009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/27000.jpg" + }, + { + "heroId": "28", + "name": "痛苦之拥", + "alias": "Evelynn", + "title": "伊芙琳", + "roles": ["assassin", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "2", + "magic": "7", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/28.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/28.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "痛苦之拥,伊芙琳,寡妇,Evelynn,tongkuzhiyong,yifulin,guafu,gf,tkzy,yfl", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/28000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Evelynn.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big28001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big28015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/28000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/28015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/28000.jpg" + }, + { + "heroId": "29", + "name": "瘟疫之源", + "alias": "Twitch", + "title": "图奇", + "roles": ["marksman", "assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "2", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/29.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/29.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "瘟疫之源,图奇,老鼠,Twitch,ls,tq,wyzy,wenyizhiyuan,tuqi,laoshu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/29000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Twitch.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big29001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big29012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/29001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/29009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/29000.jpg" + }, + { + "heroId": "30", + "name": "死亡颂唱者", + "alias": "Karthus", + "title": "卡尔萨斯", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "2", + "magic": "10", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/30.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/30.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "死亡颂唱者,卡尔萨斯,死歌,Karthus,sg,kess,swscz,siwangsongchangzhe,kaersasi,sige", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/30000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Karthus.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big30005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big30017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/30000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/30017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/30000.jpg" + }, + { + "heroId": "31", + "name": "虚空恐惧", + "alias": "Chogath", + "title": "科加斯", + "roles": ["tank", "mage"], + "isWeekFree": "1", + "attack": "3", + "defense": "7", + "magic": "7", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/31.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/31.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "1500", + "camp": "", + "campId": "", + "keywords": "虚空恐惧,科加斯,大虫子,虫子,Chogath,xukongkongju,kejiasi,dachongzi,chongzi,xkkj,kjs,dcz,cz", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/31000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Chogath.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big31001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big31014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/31001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/31010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/31000.jpg" + }, + { + "heroId": "32", + "name": "殇之木乃伊", + "alias": "Amumu", + "title": "阿木木", + "roles": ["tank", "mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "6", + "magic": "8", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/32.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/32.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "阿木木,木乃伊,分头,殇之木乃伊,木木,伤之木乃伊,amumu,munaiyi,fentou,shangzhimunaiyi,amm,szmny,mny,ft,mm,mumu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/32000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Amumu.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big32000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big32017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/32000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/32014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/32000.jpg" + }, + { + "heroId": "33", + "name": "披甲龙龟", + "alias": "Rammus", + "title": "拉莫斯", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "10", + "magic": "5", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/33.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/33.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "披甲龙龟,拉莫斯,龙龟,lg,pjlg,lms,Rammus,pijialonggui,lamosi,longgui", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/33000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Rammus.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big33000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big33017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/33000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/33015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/33000.jpg" + }, + { + "heroId": "34", + "name": "冰晶凤凰", + "alias": "Anivia", + "title": "艾尼维亚", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "4", + "magic": "10", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/34.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/34.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "凤凰,冰晶凤凰,艾尼维亚,Anivia,fenghuang,bingjingfenghuang,ainiweiya,anwy,bjfh,fh", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/34000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Anivia.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big34000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big34017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/34000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/34017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/34000.jpg" + }, + { + "heroId": "35", + "name": "恶魔小丑", + "alias": "Shaco", + "title": "萨科", + "roles": ["assassin"], + "isWeekFree": "0", + "attack": "8", + "defense": "4", + "magic": "6", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/35.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/35.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "恶魔小丑,小丑,沙扣,沙口,萨科,xc,emxc,sk,emoxiaochou,xiaochou,sake,Shaco", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/35000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Shaco.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big35000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big35015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/35004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/35008.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/35000.jpg" + }, + { + "heroId": "36", + "name": "祖安狂人", + "alias": "DrMundo", + "title": "蒙多医生", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "5", + "defense": "7", + "magic": "6", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/36.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/36.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "祖安狂人,蒙多医生,蒙多,DrMundo,zuankuangren,mengduoyisheng,mengduo,md,mdys,zakr", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/36000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/DrMundo.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big36000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big36009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/36000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/36010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/36000.jpg" + }, + { + "heroId": "37", + "name": "琴瑟仙女", + "alias": "Sona", + "title": "娑娜", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "5", + "defense": "2", + "magic": "8", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/37.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/37.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "琴瑟仙女,琴女,娑娜,sn,qn,qsxn,Sona,qinsexiannv,qinnv,suona", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/37000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sona.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big37000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big37017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/37000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/37016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/37000.jpg" + }, + { + "heroId": "38", + "name": "虚空行者", + "alias": "Kassadin", + "title": "卡萨丁", + "roles": ["assassin", "mage"], + "isWeekFree": "0", + "attack": "3", + "defense": "5", + "magic": "8", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/38.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/38.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "虚空行者,卡萨丁,ksd,xkxz,Kassadin,xukongxingzhe,kasading", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/38000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kassadin.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big38000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big38014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/38000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/38014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/38000.jpg" + }, + { + "heroId": "39", + "name": "刀锋舞者", + "alias": "Irelia", + "title": "艾瑞莉娅", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "7", + "defense": "4", + "magic": "5", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/39.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/39.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4000", + "camp": "", + "campId": "", + "keywords": "刀锋舞者,艾瑞莉娅,女刀,女刀锋,Irelia,nd,ndf,dfwz,arly,daofengwuzhe,airuiliya,nvdao,nvdaofeng", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/39000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Irelia.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big39001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big39017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/39000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/39017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/39000.jpg" + }, + { + "heroId": "40", + "name": "风暴之怒", + "alias": "Janna", + "title": "迦娜", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "3", + "defense": "5", + "magic": "7", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/40.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/40.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "风暴之怒,迦娜,风女,fn,jn,fbzn,Janna,fengbaozhinu,jiana,fengnv", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/40000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Janna.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big40000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big40013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/40000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/40011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/40000.jpg" + }, + { + "heroId": "41", + "name": "海洋之灾", + "alias": "Gangplank", + "title": "普朗克", + "roles": ["fighter"], + "isWeekFree": "0", + "attack": "7", + "defense": "6", + "magic": "4", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/41.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/41.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "海洋之灾,普朗克,船长,plk,cz,hyzz,Gangplank,haiyangzhizai,pulangke,chuanzhang", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/41000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Gangplank.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big41000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big41014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/41000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/41017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/41000.jpg" + }, + { + "heroId": "42", + "name": "英勇投弹手", + "alias": "Corki", + "title": "库奇", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "3", + "magic": "6", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/42.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/42.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "英勇投弹手,库奇,飞机,Corki,yingyongtoudanshou,kuqi,feiji,fj,kq,yytds", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/42000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Corki.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big42000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big42008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/42000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/42017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/42000.jpg" + }, + { + "heroId": "43", + "name": "天启者", + "alias": "Karma", + "title": "卡尔玛", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "7", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/43.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/43.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "天启者,卡尔玛,扇子妈,Karma,szm,kem,tqz,tianqizhe,kaerma,shanzima", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/43000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Karma.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big43000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big43008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/43000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/43008.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/43000.jpg" + }, + { + "heroId": "44", + "name": "瓦洛兰之盾", + "alias": "Taric", + "title": "塔里克", + "roles": ["support", "fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "8", + "magic": "5", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/44.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/44.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "1500", + "camp": "", + "campId": "", + "keywords": "瓦洛兰之盾,塔里克,宝石,bs,tlk,wllzd,Taric,waluolanzhidun,talike,baoshi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/44000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Taric.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big44000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big44001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big44002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big44003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big44004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big44009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/44000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/44009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/44000.jpg" + }, + { + "heroId": "45", + "name": "邪恶小法师", + "alias": "Veigar", + "title": "维迦", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "2", + "magic": "10", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/45.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/45.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "邪恶小法师,小法师,维迦,xfs,xexfs,wj,Veigar,xieexiaofashi,xiaofashi,weijia", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/45000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Veigar.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big45000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big45013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/45000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/45013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/45000.jpg" + }, + { + "heroId": "48", + "name": "巨魔之王", + "alias": "Trundle", + "title": "特朗德尔", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "7", + "defense": "6", + "magic": "2", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/48.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/48.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "巨魔之王,巨魔,特朗德尔,Trundle,jm,jmzw,tlde,jumozhiwang,jumo,telangdeer", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/48000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Trundle.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big48000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big48006.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/48000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/48006.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/48000.jpg" + }, + { + "heroId": "50", + "name": "诺克萨斯统领", + "alias": "Swain", + "title": "斯维因", + "roles": ["mage", "fighter"], + "isWeekFree": "0", + "attack": "2", + "defense": "6", + "magic": "9", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/50.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/50.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "诺克萨斯统领,乌鸦,斯维因,swy,wy,nksstl,Swain,nuokesasitongling,wuya,siweiyin", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/50000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Swain.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big50000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big50012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/50000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/50012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/50000.jpg" + }, + { + "heroId": "51", + "name": "皮城女警", + "alias": "Caitlyn", + "title": "凯特琳", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "2", + "magic": "2", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/51.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/51.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "皮城女警,凯特琳,女警,皮城,Caitlyn,pichengnvjing,kaitelin,nvjing,picheng,pc,nj,pcnj,ctl", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/51000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Caitlyn.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big51000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big51013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/51000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/51017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/51000.jpg" + }, + { + "heroId": "53", + "name": "蒸汽机器人", + "alias": "Blitzcrank", + "title": "布里茨", + "roles": ["tank", "fighter", "support"], + "isWeekFree": "0", + "attack": "4", + "defense": "8", + "magic": "5", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/53.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/53.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "蒸汽机器人,布里茨,机器人,Blitzcrank,zhengqijiqiren,bulici,jiqiren,zqjqr,jqr,blc", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/53000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Blitzcrank.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big53000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big53011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/53000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/53015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/53000.jpg" + }, + { + "heroId": "54", + "name": "熔岩巨兽", + "alias": "Malphite", + "title": "墨菲特", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "5", + "defense": "9", + "magic": "7", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/54.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/54.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "熔岩巨兽,墨菲特,石头人,Malphite,str,mft,ryjs,rongyanjushou,mofeite,shitouren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/54000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Malphite.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big54000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big54016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/54000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/54016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/54000.jpg" + }, + { + "heroId": "55", + "name": "不祥之刃", + "alias": "Katarina", + "title": "卡特琳娜", + "roles": ["assassin", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "3", + "magic": "9", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/55.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/55.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "不祥之刃,卡特琳娜,卡特,kt,ktln,bxzr,不详,bx,Katarina,buxiangzhiren,katelinna,kate,buxiang", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/55000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Katarina.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big55002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big55009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/55000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/55012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/55000.jpg" + }, + { + "heroId": "56", + "name": "永恒梦魇", + "alias": "Nocturne", + "title": "魔腾", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "9", + "defense": "5", + "magic": "2", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/56.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/56.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "永恒梦魇,魔腾,noc,Nocturne,梦魇,my,yhmy,mt,yonghengmengyan,moteng,mengyan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/56000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nocturne.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big56007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big56016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/56000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/56016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/56000.jpg" + }, + { + "heroId": "57", + "name": "扭曲树精", + "alias": "Maokai", + "title": "茂凯", + "roles": ["tank", "mage"], + "isWeekFree": "0", + "attack": "3", + "defense": "8", + "magic": "6", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/57.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/57.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "扭曲树精,茂凯,大树,ds,mk,nqsj,Maokai,niuqushujing,maokai,dashu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/57000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Maokai.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big57001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big57016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/57000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/57016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/57000.jpg" + }, + { + "heroId": "58", + "name": "荒漠屠夫", + "alias": "Renekton", + "title": "雷克顿", + "roles": ["fighter", "tank"], + "isWeekFree": "1", + "attack": "8", + "defense": "5", + "magic": "2", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/58.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/58.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "荒漠屠夫,鳄鱼,雷克顿,ey,lkd,mmtf,huangmotufu,eyu,leikedun", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/58000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Renekton.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big58000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big58017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/58000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/58017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/58000.jpg" + }, + { + "heroId": "59", + "name": "德玛西亚皇子", + "alias": "JarvanIV", + "title": "嘉文四世", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "6", + "defense": "8", + "magic": "3", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/59.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/59.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "德玛西亚皇子,嘉文四世,皇子,嘉文,JarvanIV,jw,hz,dmxyhz,jwss,demaxiyahuangzi,jiawensishi,huangzi,jiawen", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/59000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/JarvanIV.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big59001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big59009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/59000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/59011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/59000.jpg" + }, + { + "heroId": "60", + "name": "蜘蛛女皇", + "alias": "Elise", + "title": "伊莉丝", + "roles": ["mage", "fighter"], + "isWeekFree": "0", + "attack": "6", + "defense": "5", + "magic": "7", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/60.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/60.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "蜘蛛女皇,伊莉丝,蜘蛛,Elise,zz,zznh,yls,zhizhunvhuang,yilisi,zhizhu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/60000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Elise.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big60000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big60006.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/60000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/60006.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/60000.jpg" + }, + { + "heroId": "61", + "name": "发条魔灵", + "alias": "Orianna", + "title": "奥莉安娜", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "4", + "defense": "3", + "magic": "9", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/61.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/61.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "发条魔灵,奥莉安娜,发条,Orianna,ftml,ft,alan,fatiaomoling,aolianna,fatiao", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/61000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Orianna.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big61007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big61011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/61000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/61011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/61000.jpg" + }, + { + "heroId": "62", + "name": "齐天大圣", + "alias": "MonkeyKing", + "title": "孙悟空", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "2", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/62.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/62.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "齐天大圣,孙悟空,MonkeyKing,猴子,hz,qtds,swk,qitiandasheng,sunwukong,houzi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/62000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/MonkeyKing.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big62000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big62007.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/62000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/62007.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/62000.jpg" + }, + { + "heroId": "63", + "name": "复仇焰魂", + "alias": "Brand", + "title": "布兰德", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "2", + "magic": "9", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/63.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/63.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "复仇焰魂,布兰德,火男,Brand,fuchouyanhun,bulande,huonan,cfyh,bld,hn", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/63000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Brand.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big63000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big63008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/63000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/63008.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/63000.jpg" + }, + { + "heroId": "64", + "name": "盲僧", + "alias": "LeeSin", + "title": "李青", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/64.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/64.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "盲僧,瞎子,李青,lq,xz,ms,LeeSin,mangseng,xiazi,liqing", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/64000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/LeeSin.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big64000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big64010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/64000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/64017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/64000.jpg" + }, + { + "heroId": "67", + "name": "暗夜猎手", + "alias": "Vayne", + "title": "薇恩", + "roles": ["marksman", "assassin"], + "isWeekFree": "0", + "attack": "10", + "defense": "1", + "magic": "1", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/67.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/67.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "暗夜猎手,薇恩,vn,Vayne,ve,ayls,anyelieshou,weien", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/67000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Vayne.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big67001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big67015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/67000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/67015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/67000.jpg" + }, + { + "heroId": "68", + "name": "机械公敌", + "alias": "Rumble", + "title": "兰博", + "roles": ["fighter", "mage"], + "isWeekFree": "0", + "attack": "3", + "defense": "6", + "magic": "8", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/68.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/68.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "机械公敌,兰博,Rumble,lb,jxgd,jixiegongdi,lanbo", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/68000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Rumble.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big68000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big68003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big68001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big68002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big68004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big68013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/68000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/68013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/68000.jpg" + }, + { + "heroId": "69", + "name": "魔蛇之拥", + "alias": "Cassiopeia", + "title": "卡西奥佩娅", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "3", + "magic": "9", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/69.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/69.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "魔蛇之拥,卡西奥佩娅,蛇女,Cassiopeia,moshezhiyong,kaxiaopeiya,shenv,mszy,kxapy,sn", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/69000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Cassiopeia.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big69000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big69009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/69000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/69009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/69000.jpg" + }, + { + "heroId": "72", + "name": "水晶先锋", + "alias": "Skarner", + "title": "斯卡纳", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "7", + "defense": "6", + "magic": "5", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/72.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/72.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "水晶先锋,斯卡纳,skn,sjxf,蝎子,xz,Skarner,shuijingxianfeng,sikana,xiezi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/72000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Skarner.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big72003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big72001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big72000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big72002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big72004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big72005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/72000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/72001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/72002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/72003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/72004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/72005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/72000.jpg" + }, + { + "heroId": "74", + "name": "大发明家", + "alias": "Heimerdinger", + "title": "黑默丁格", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "2", + "defense": "6", + "magic": "8", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/74.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/74.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "大发明家,黑默丁格,大头,Heimerdinger,dt,dfmj,hmdg,dafamingjia,heimodingge,datou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/74000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Heimerdinger.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big74000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big74015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/74000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/74015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/74000.jpg" + }, + { + "heroId": "75", + "name": "沙漠死神", + "alias": "Nasus", + "title": "内瑟斯", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "7", + "defense": "5", + "magic": "6", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/75.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/75.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "沙漠死神,内瑟斯,狗头,gt,nss,smss,Nasus,shamosishen,neisesi,goutou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/75000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nasus.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big75000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big75016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/75000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/75016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/75000.jpg" + }, + { + "heroId": "76", + "name": "狂野女猎手", + "alias": "Nidalee", + "title": "奈德丽", + "roles": ["assassin", "mage"], + "isWeekFree": "0", + "attack": "5", + "defense": "4", + "magic": "7", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/76.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/76.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "狂野女猎手,奈德丽,豹女,bn,ndl,kynls,Nidalee,kuangyenvlieshou,naideli,baonv", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/76000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nidalee.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big76000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big76011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/76000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/76011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/76000.jpg" + }, + { + "heroId": "77", + "name": "兽灵行者", + "alias": "Udyr", + "title": "乌迪尔", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "7", + "magic": "4", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/77.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/77.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "兽灵行者,乌迪尔,Udyr,wde,slxz,UD,shoulingxingzhe,wudier", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/77000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Udyr.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big77000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big77001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big77002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big77003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big77005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big77004.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/77000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/77001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/77002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/77003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/77004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/77005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/77000.jpg" + }, + { + "heroId": "78", + "name": "圣锤之毅", + "alias": "Poppy", + "title": "波比", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "6", + "defense": "7", + "magic": "2", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/78.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/78.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "450", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "圣锤之毅,波比,bb,sczy,Poppy,shengchuizhiyi,bobi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/78000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Poppy.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big78005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big78016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/78000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/78016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/78000.jpg" + }, + { + "heroId": "79", + "name": "酒桶", + "alias": "Gragas", + "title": "古拉加斯", + "roles": ["fighter", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "7", + "magic": "6", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/79.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/79.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "酒桶,古拉加斯,啤酒人,肉蛋葱鸡,Gragas,pjr,jt,gljs,rdcj,jiutong,gulajiasi,pijiuren,roudancongji", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/79000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Gragas.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big79006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big79010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/79000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/79011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/79000.jpg" + }, + { + "heroId": "80", + "name": "不屈之枪", + "alias": "Pantheon", + "title": "潘森", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "4", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/80.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/80.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "1500", + "camp": "", + "campId": "", + "keywords": "不屈之枪,潘森,Pantheon,PS,bqzq,buquzhiqiang,pansen", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/80000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Pantheon.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big80000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big80008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/80000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/80016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/80000.jpg" + }, + { + "heroId": "81", + "name": "探险家", + "alias": "Ezreal", + "title": "伊泽瑞尔", + "roles": ["marksman", "mage"], + "isWeekFree": "1", + "attack": "7", + "defense": "2", + "magic": "6", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/81.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/81.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "探险家,伊泽瑞尔,ez,Ezreal,tanxianjia,yizeruier,txj,yzrr", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/81000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ezreal.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big81003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big81009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/81000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/81015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/81000.jpg" + }, + { + "heroId": "82", + "name": "铁铠冥魂", + "alias": "Mordekaiser", + "title": "莫德凯撒", + "roles": ["fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "6", + "magic": "7", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/82.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/82.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "1500", + "camp": "", + "campId": "", + "keywords": "铁铠冥魂,莫德凯撒,铁男,Mordekaiser,tn,mdks,tkmh,tiekaiminghun,modekaisa,tienan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/82000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Mordekaiser.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big82000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big82013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/82000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/82013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/82000.jpg" + }, + { + "heroId": "83", + "name": "牧魂人", + "alias": "Yorick", + "title": "约里克", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "6", + "defense": "6", + "magic": "4", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/83.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/83.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "牧魂人,约里克,掘墓人,jmr,mhr,ylk,Yorick,muhunren,yuelike,juemuren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/83000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Yorick.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big83000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big83001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big83002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big83003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big83004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big83012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/83000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/83001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/83002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/83003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/83004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/83012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/83000.jpg" + }, + { + "heroId": "84", + "name": "离群之刺", + "alias": "Akali", + "title": "阿卡丽", + "roles": ["assassin"], + "isWeekFree": "0", + "attack": "5", + "defense": "3", + "magic": "8", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/84.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/84.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "阿卡丽,离群之刺,akali,liqunzhici,akl,lqzc", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/84000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Akali.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big84000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big84015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/84000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/84015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/84000.jpg" + }, + { + "heroId": "85", + "name": "狂暴之心", + "alias": "Kennen", + "title": "凯南", + "roles": ["mage", "marksman"], + "isWeekFree": "0", + "attack": "6", + "defense": "4", + "magic": "7", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/85.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/85.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "狂暴之心,凯南,kn,kbzx,Kennen,kuangbaozhixin,kainan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/85000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kennen.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big85000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big85008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/85000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/85008.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/85000.jpg" + }, + { + "heroId": "86", + "name": "德玛西亚之力", + "alias": "Garen", + "title": "盖伦", + "roles": ["fighter", "tank"], + "isWeekFree": "1", + "attack": "7", + "defense": "7", + "magic": "1", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/86.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/86.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "1", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "1000", + "camp": "", + "campId": "", + "keywords": "德玛西亚之力,盖伦,大宝剑,Garen,dbj,gl,dmxyzl,demaxiyazhili,gailun,dabaojian", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/86000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Garen.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big86000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big86014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/86000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/86014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/86000.jpg" + }, + { + "heroId": "89", + "name": "曙光女神", + "alias": "Leona", + "title": "蕾欧娜", + "roles": ["tank", "support"], + "isWeekFree": "0", + "attack": "4", + "defense": "8", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/89.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/89.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "曙光女神,蕾欧娜,日女,曙光,女坦,nt,rn,sg,lon,sgns,shuguangnvshen,leiouna,rinv,shuguang,Leona,nvtan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/89000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Leona.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big89000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big89012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/89000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/89012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/89000.jpg" + }, + { + "heroId": "90", + "name": "虚空先知", + "alias": "Malzahar", + "title": "玛尔扎哈", + "roles": ["mage", "assassin"], + "isWeekFree": "0", + "attack": "2", + "defense": "2", + "magic": "9", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/90.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/90.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "虚空先知,玛尔扎哈,蚂蚱,马尔扎哈,Malzahar,mz,mezh,xkxz,xukongxianzhi,maerzhaha,mazha,maerzhaha", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/90000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Malzahar.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big90000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big90009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/90000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/90009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/90000.jpg" + }, + { + "heroId": "91", + "name": "刀锋之影", + "alias": "Talon", + "title": "泰隆", + "roles": ["assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "3", + "magic": "1", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/91.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/91.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "刀锋之影,男刀,泰隆,tl,nd,dfzy,Talon,daofengzhiying,nandao,tailong", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/91000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Talon.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big91000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big91012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/91000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/91012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/91000.jpg" + }, + { + "heroId": "92", + "name": "放逐之刃", + "alias": "Riven", + "title": "锐雯", + "roles": ["fighter", "assassin"], + "isWeekFree": "1", + "attack": "8", + "defense": "5", + "magic": "1", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/92.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/92.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "放逐之刃,锐雯,Riven,rw,fzzr,fangzhuzhiren,ruiwen", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/92000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Riven.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big92000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big92016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/92000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/92017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/92000.jpg" + }, + { + "heroId": "96", + "name": "深渊巨口", + "alias": "KogMaw", + "title": "克格莫", + "roles": ["marksman", "mage"], + "isWeekFree": "0", + "attack": "8", + "defense": "2", + "magic": "5", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/96.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/96.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "深渊巨口,克格莫,大嘴,KogMaw,dz,kgm,syjk,shenyuanjukou,kegemo,dazui", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/96000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/KogMaw.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big96000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big96010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/96000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/96017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/96000.jpg" + }, + { + "heroId": "98", + "name": "暮光之眼", + "alias": "Shen", + "title": "慎", + "roles": ["tank"], + "isWeekFree": "1", + "attack": "3", + "defense": "9", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/98.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/98.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "1350", + "couponPrice": "2000", + "camp": "", + "campId": "", + "keywords": "暮光之眼,慎,yaozi,s,mgzy,Shen,muguangzhiyan,shen", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/98000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Shen.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big98000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big98016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/98001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/98016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/98000.jpg" + }, + { + "heroId": "99", + "name": "光辉女郎", + "alias": "Lux", + "title": "拉克丝", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "2", + "defense": "4", + "magic": "9", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/99.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/99.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "3150", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "光辉女郎,拉克丝,光辉,lux,lks,gh,ghnl,guanghuinvlang,lakesi,guanghui", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/99000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Lux.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big99000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big99017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/99000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/99017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/99000.jpg" + }, + { + "heroId": "101", + "name": "远古巫灵", + "alias": "Xerath", + "title": "泽拉斯", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "1", + "defense": "3", + "magic": "10", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/101.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/101.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "远古巫灵,泽拉斯,guancaiban,gbc,zls,ygwl,Xerath,yuanguwuling,zelasi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/101000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Xerath.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big101001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big101012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/101000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/101012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/101000.jpg" + }, + { + "heroId": "102", + "name": "龙血武姬", + "alias": "Shyvana", + "title": "希瓦娜", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "6", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/102.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/102.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "龙血武姬,龙女,希瓦娜,ln,xwn,lxwj,Shyvana,longxuewuji,longnv,xiwana", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/102000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Shyvana.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big102000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big102008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/102000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/102008.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/102000.jpg" + }, + { + "heroId": "103", + "name": "九尾妖狐", + "alias": "Ahri", + "title": "阿狸", + "roles": ["mage", "assassin"], + "isWeekFree": "0", + "attack": "3", + "defense": "4", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/103.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/103.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "九尾,九尾妖狐,狐狸,阿狸,jiuwei,jiuweiyaohu,huli,ali,ahri,jwyh,al,hl,jw", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/103000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ahri.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big103000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big103017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/103000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/103017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/103000.jpg" + }, + { + "heroId": "104", + "name": "法外狂徒", + "alias": "Graves", + "title": "格雷福斯", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/104.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/104.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "法外狂徒,格雷福斯,男枪,Graves,nq,glfs,fwkt,fawaikuangtu,geleifusi,nanqiang", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/104000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Graves.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big104000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big104014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/104000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/104014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/104000.jpg" + }, + { + "heroId": "105", + "name": "潮汐海灵", + "alias": "Fizz", + "title": "菲兹", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "6", + "defense": "4", + "magic": "7", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/105.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/105.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "潮汐海灵,菲兹,小鱼人,Fizz,fz,xyr,cxhl,chaoxihailing,feizi,xiaoyuren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/105000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Fizz.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big105000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big105016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/105000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/105016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/105000.jpg" + }, + { + "heroId": "106", + "name": "不灭狂雷", + "alias": "Volibear", + "title": "沃利贝尔", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "7", + "defense": "7", + "magic": "4", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/106.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/106.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "不灭狂雷,沃利贝尔,Volibear,狗熊,gx,wlbe,bmkl,bumiekuanglei,wolibeier,gouxiong", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/106000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Volibear.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big106000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big106009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/106000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/106009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/106000.jpg" + }, + { + "heroId": "107", + "name": "傲之追猎者", + "alias": "Rengar", + "title": "雷恩加尔", + "roles": ["assassin", "fighter"], + "isWeekFree": "1", + "attack": "7", + "defense": "4", + "magic": "2", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/107.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/107.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "傲之追猎者,狮子狗,雷恩加尔,szg,leje,azzlz,Rengar,aozhizhuiliezhe,shizigou,leienjiaer", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/107000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Rengar.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big107000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big107001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big107002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big107003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big107008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big107015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/107000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/107015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/107000.jpg" + }, + { + "heroId": "110", + "name": "惩戒之箭", + "alias": "Varus", + "title": "韦鲁斯", + "roles": ["marksman", "mage"], + "isWeekFree": "0", + "attack": "7", + "defense": "3", + "magic": "4", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/110.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/110.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "惩戒之箭,韦鲁斯,维鲁斯,wls,cjzj,Varus,chengjiezhijian,weilusi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/110000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Varus.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big110000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big110017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/110000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/110017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/110000.jpg" + }, + { + "heroId": "111", + "name": "深海泰坦", + "alias": "Nautilus", + "title": "诺提勒斯", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "4", + "defense": "6", + "magic": "6", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/111.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/111.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "深海泰坦,诺提勒斯,泰坦,Nautilus,tt,ntls,shtt,shenhaitaitan,nuotileisi,taitan", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/111000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nautilus.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big111000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big111009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/111000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/111009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/111000.jpg" + }, + { + "heroId": "112", + "name": "机械先驱", + "alias": "Viktor", + "title": "维克托", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "4", + "magic": "10", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/112.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/112.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "2500", + "camp": "", + "campId": "", + "keywords": "机械先驱,维克托,三只手,szs,wkt,jxxq,Viktor,jixiexianqu,weiketuo,sanzhishou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/112000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Viktor.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big112000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big112002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big112001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big112003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big112004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big112005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/112000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/112001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/112002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/112003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/112004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/112005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/112000.jpg" + }, + { + "heroId": "113", + "name": "北地之怒", + "alias": "Sejuani", + "title": "瑟庄妮", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "5", + "defense": "7", + "magic": "6", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/113.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/113.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "北地之怒,猪妹,瑟庄妮,zm,szn,bdzn,Sejuani,beidizhinu,zhumei,sezhuangni", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/113000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sejuani.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big113000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big113016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/113000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/113016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/113000.jpg" + }, + { + "heroId": "114", + "name": "无双剑姬", + "alias": "Fiora", + "title": "菲奥娜", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "10", + "defense": "4", + "magic": "2", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/114.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/114.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "无双剑姬,菲奥娜,剑姬,Fiora,jj,wsjj,fan,wushuangjianji,feiaona,jianji", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/114000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Fiora.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big114000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big114001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big114002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big114003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big114004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big114005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/114000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/114017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/114000.jpg" + }, + { + "heroId": "115", + "name": "爆破鬼才", + "alias": "Ziggs", + "title": "吉格斯", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "4", + "magic": "9", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/115.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/115.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "爆破鬼才,炸弹人,吉格斯,Ziggs,jgs,zdr,bpgc,baopoguicai,zhadanren,jigesi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/115000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ziggs.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big115000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big115014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/115000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/115014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/115000.jpg" + }, + { + "heroId": "117", + "name": "仙灵女巫", + "alias": "Lulu", + "title": "璐璐", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "5", + "magic": "7", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/117.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/117.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "仙灵女巫,璐璐,ll,xlnw,Lulu,xianlingnvwu,lulu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/117000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Lulu.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big117000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big117015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/117000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/117015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/117000.jpg" + }, + { + "heroId": "119", + "name": "荣耀行刑官", + "alias": "Draven", + "title": "德莱文", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "9", + "defense": "3", + "magic": "1", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/119.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/119.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "荣耀行刑官,德莱文,Draven,rongyaoxingxingguan,delaiwen,ryxxg,dlw", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/119000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Draven.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big119000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big119013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/119000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/119013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/119000.jpg" + }, + { + "heroId": "120", + "name": "战争之影", + "alias": "Hecarim", + "title": "赫卡里姆", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "6", + "magic": "4", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/120.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/120.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "战争之影,赫卡里姆,人马,Hecarim,rm,zzzy,hlkm,zhanzhengzhiying,hekalimu,renma", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/120000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Hecarim.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big120000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big120014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/120000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/120014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/120000.jpg" + }, + { + "heroId": "121", + "name": "虚空掠夺者", + "alias": "Khazix", + "title": "卡兹克", + "roles": ["assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "4", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/121.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/121.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "虚空掠夺者,螳螂,卡兹克,kzk,tl,xkldz,Khazix,xukonglueduozhe,tanglang,kazike", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/121000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Khazix.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big121000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big121001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big121002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big121003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big121004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big121011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/121000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/121001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/121002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/121003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/121004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/121011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/121000.jpg" + }, + { + "heroId": "122", + "name": "诺克萨斯之手", + "alias": "Darius", + "title": "德莱厄斯", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "9", + "defense": "5", + "magic": "1", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/122.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/122.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "诺克萨斯之手,德莱厄斯,诺手,Darius,nuokesasizhishou,delaiesi,nuoshou,nksszs,ns,dles", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/122000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Darius.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big122003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big122016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/122000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/122016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/122000.jpg" + }, + { + "heroId": "126", + "name": "未来守护者", + "alias": "Jayce", + "title": "杰斯", + "roles": ["fighter", "marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "4", + "magic": "3", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/126.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/126.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "未来守护者,杰斯,Jayce,js,wlshz,weilaishouhuzhe,jiesi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/126000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Jayce.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big126000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big126015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/126000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/126015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/126000.jpg" + }, + { + "heroId": "127", + "name": "冰霜女巫", + "alias": "Lissandra", + "title": "丽桑卓", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "5", + "magic": "8", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/127.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/127.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "冰霜女巫,冰女,丽桑卓,Lissandra,bn,lsz,bsnw,bingshuangnvwu,bingnv,lisangzhuo", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/127000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Lissandra.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big127000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big127001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big127003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big127002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big127004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big127012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/127000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/127001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/127002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/127003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/127004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/127012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/127000.jpg" + }, + { + "heroId": "131", + "name": "皎月女神", + "alias": "Diana", + "title": "黛安娜", + "roles": ["fighter", "mage"], + "isWeekFree": "0", + "attack": "7", + "defense": "6", + "magic": "8", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/131.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/131.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "皎月女神,黛安娜,皎月,Diana,jiaoyuenvshen,daianna,jiaoyue,jy,dan,jyns", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/131000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Diana.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big131000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big131001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big131002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big131003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big131012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big131011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/131000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/131012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/131000.jpg" + }, + { + "heroId": "133", + "name": "德玛西亚之翼", + "alias": "Quinn", + "title": "奎因", + "roles": ["marksman", "assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "4", + "magic": "2", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/133.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/133.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "德玛西亚之翼,奎因,鸟人,ky,dmxyzz,Quinn,nr,demaxiyazhiyi,kuiyin,niaoren", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/133000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Quinn.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big133001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big133004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big133000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big133002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big133003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big133005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/133000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/133001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/133002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/133003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/133004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/133005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/133000.jpg" + }, + { + "heroId": "134", + "name": "暗黑元首", + "alias": "Syndra", + "title": "辛德拉", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "2", + "defense": "3", + "magic": "9", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/134.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/134.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "暗黑元首,球女,辛德拉,qn,xdl,ahyy,Syndra,anheiyuanshou,qiunv,xindela", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/134000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Syndra.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big134001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big134016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/134000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/134016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/134000.jpg" + }, + { + "heroId": "136", + "name": "铸星龙王", + "alias": "AurelionSol", + "title": "奥瑞利安索尔", + "roles": ["mage"], + "isWeekFree": "1", + "attack": "2", + "defense": "3", + "magic": "8", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/136.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/136.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "铸星龙王,奥瑞利安索尔,索尔,龙王,AurelionSol,zhuxinglongwang,aoruiliansuoer,suoer,longwang,zxlw,lw,se,arlasr", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/136000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/AurelionSol.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big136000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big136001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big136002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big136011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/136000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/136001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/136002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/136011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/136000.jpg" + }, + { + "heroId": "141", + "name": "影流之镰", + "alias": "Kayn", + "title": "凯隐", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "10", + "defense": "6", + "magic": "1", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/141.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/141.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "影流之镰,凯隐,ky,ylzl,Kayn,yingliuzhilian,kaiyin", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/141000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kayn.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big141000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big141002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big141001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big141009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big141008.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/141000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/141001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/141002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/141008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/141009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/141000.jpg" + }, + { + "heroId": "142", + "name": "暮光星灵", + "alias": "Zoe", + "title": "佐伊", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "7", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/142.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/142.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "暮光星灵,佐伊,zy,mgxl,Zoe,muguangxingling,zuoyi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/142000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Zoe.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big142000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big142002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big142001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big142009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/142000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/142001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/142002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/142009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/142000.jpg" + }, + { + "heroId": "143", + "name": "荆棘之兴", + "alias": "Zyra", + "title": "婕拉", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "4", + "defense": "3", + "magic": "8", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/143.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/143.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "荆棘之兴,婕拉,jl,jjzx,Zyra,jingjizhixing,jiela", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/143000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Zyra.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big143001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big143016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/143000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/143016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/143000.jpg" + }, + { + "heroId": "145", + "name": "虚空之女", + "alias": "Kaisa", + "title": "卡莎", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/145.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/145.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "虚空之女,卡莎,ks,xkzn,Kaisa,xukongzhinv,kasha", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/145000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kaisa.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big145000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big145001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big145014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big145015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big145016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big145017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/145000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/145001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/145014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/145015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/145016.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/145017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/145000.jpg" + }, + { + "heroId": "147", + "name": "星籁歌姬", + "alias": "Seraphine", + "title": "萨勒芬妮", + "roles": ["mage", "support"], + "isWeekFree": "1", + "attack": "0", + "defense": "0", + "magic": "0", + "difficulty": "0", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/147.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/147.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "萨勒芬妮,星籁歌姬,Seraphine,saleifenni,xinglaigeji", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/147000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Seraphine.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big147000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big147001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big147004.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/147000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/147001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/147004.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/147000.jpg" + }, + { + "heroId": "150", + "name": "迷失之牙", + "alias": "Gnar", + "title": "纳尔", + "roles": ["fighter", "tank"], + "isWeekFree": "1", + "attack": "6", + "defense": "5", + "magic": "5", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/150.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/150.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "迷失之牙,纳尔,Gnar,ne,mszy,mishizhiya,naer", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/150000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Gnar.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big150001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big150015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/150000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/150015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/150000.jpg" + }, + { + "heroId": "154", + "name": "生化魔人", + "alias": "Zac", + "title": "扎克", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "3", + "defense": "7", + "magic": "7", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/154.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/154.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3000", + "camp": "", + "campId": "", + "keywords": "生化魔人,扎克,Zac,shenghuamoren,zhake,zk,shmr", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/154000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Zac.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big154002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big154000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big154006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big154001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big154007.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/154000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/154001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/154002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/154006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/154007.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/154000.jpg" + }, + { + "heroId": "157", + "name": "疾风剑豪", + "alias": "Yasuo", + "title": "亚索", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "8", + "defense": "4", + "magic": "4", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/157.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/157.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "疾风剑豪,剑豪,亚索,Yasuo,ys,jh,jfjh,jifengjianhao,jianhao,yasuo", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/157000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Yasuo.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big157002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157017.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big157010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/157000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/157017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/157000.jpg" + }, + { + "heroId": "161", + "name": "虚空之眼", + "alias": "Velkoz", + "title": "维克兹", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "2", + "defense": "2", + "magic": "10", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/161.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/161.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "虚空之眼,大眼,维克兹,wkz,dy,xkzy,Velkoz,xukongzhiyan,dayan,weikezi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/161000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Velkoz.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big161001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big161000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big161002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big161003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big161004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big161011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/161002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/161003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/161004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/161001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/161000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/161011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/161000.jpg" + }, + { + "heroId": "163", + "name": "岩雀", + "alias": "Taliyah", + "title": "塔莉垭", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "7", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/163.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/163.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "岩雀,小鸟,塔莉垭,tly,xn,yq,Taliyah,yanque,xiaoniao,taliya", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/163000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Taliyah.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big163000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big163003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big163001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big163002.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/163000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/163002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/163001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/163003.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/163000.jpg" + }, + { + "heroId": "164", + "name": "青钢影", + "alias": "Camille", + "title": "卡蜜尔", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "6", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/164.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/164.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "青钢影,卡蜜尔,卡密尔,Camille,腿女,qinggangying,kamier,kamier,tuinv,qgy,kme,tn", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/164000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Camille.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big164000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big164001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big164002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big164010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big164011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/164002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/164001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/164000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/164010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/164011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/164000.jpg" + }, + { + "heroId": "166", + "name": "影哨", + "alias": "Akshan", + "title": "阿克尚", + "roles": ["marksman", "assassin"], + "isWeekFree": "0", + "attack": "0", + "defense": "0", + "magic": "0", + "difficulty": "0", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/166.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/166.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "影哨,阿克尚,阿克,阿,yingshao,akeshang,ake,a", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/166000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Akshan.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big166000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big166001.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/166000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/166001.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/166000.jpg" + }, + { + "heroId": "201", + "name": "弗雷尔卓德之心", + "alias": "Braum", + "title": "布隆", + "roles": ["support", "tank"], + "isWeekFree": "0", + "attack": "3", + "defense": "9", + "magic": "4", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/201.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/201.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "弗雷尔卓德之心,布隆,bl,Braum,flezdzx,fuleierzhuodezhixin,bulong", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/201000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Braum.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big201000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big201001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big201010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big201002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big201003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big201011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/201001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/201000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/201003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/201002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/201010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/201011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/201000.jpg" + }, + { + "heroId": "202", + "name": "戏命师", + "alias": "Jhin", + "title": "烬", + "roles": ["marksman", "mage"], + "isWeekFree": "0", + "attack": "10", + "defense": "2", + "magic": "6", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/202.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/202.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "戏命师,烬,Jhin,j,xms,ximingshi,jin", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/202000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Jhin.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big202000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big202014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/202000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/202014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/202000.jpg" + }, + { + "heroId": "203", + "name": "永猎双子", + "alias": "Kindred", + "title": "千珏", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "2", + "magic": "2", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/203.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/203.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "永猎双子,千珏,Kindred,qj,ylsz,yonglieshuangzi,qianjue", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/203000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kindred.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big203000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big203001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big203002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big203003.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/203000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/203002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/203003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/203001.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/203000.jpg" + }, + { + "heroId": "222", + "name": "暴走萝莉", + "alias": "Jinx", + "title": "金克丝", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "9", + "defense": "2", + "magic": "4", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/222.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/222.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "暴走萝莉,萝莉,金克丝,Jinx,jks,ll,bzll,baozouluoli,luoli,jinkesi,金克丝", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/222000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Jinx.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big222004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big222013.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/222000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/222013.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/222000.jpg" + }, + { + "heroId": "223", + "name": "河流之王", + "alias": "TahmKench", + "title": "塔姆", + "roles": ["support", "tank"], + "isWeekFree": "0", + "attack": "3", + "defense": "9", + "magic": "6", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/223.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/223.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "河流之王,hama,塔姆,tm,hlzw,TahmKench,heliuzhiwang,tamu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/223000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/TahmKench.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big223000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big223001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big223002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big223003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big223011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/223002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/223000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/223003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/223001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/223011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/223000.jpg" + }, + { + "heroId": "234", + "name": "破败之王", + "alias": "Viego", + "title": "佛耶戈", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "6", + "defense": "4", + "magic": "2", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/234.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/234.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "破败之王,佛耶戈,破败,佛,pobaizhiwang,fuyege,pobai,fu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/234000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Viego.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big234000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big234001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big234010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/234001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/234000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/234010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/234000.jpg" + }, + { + "heroId": "235", + "name": "涤魂圣枪", + "alias": "Senna", + "title": "赛娜", + "roles": ["marksman", "support"], + "isWeekFree": "0", + "attack": "7", + "defense": "2", + "magic": "6", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/235.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/235.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "涤魂圣枪,赛娜,奶枪,Senna,nq,sn,qhsq,dihunshengqiang,saina,naiqiang", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/235000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Senna.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big235000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big235001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big235009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big235010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big235016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/235001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/235000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/235009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/235010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/235016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/235000.jpg" + }, + { + "heroId": "236", + "name": "圣枪游侠", + "alias": "Lucian", + "title": "卢锡安", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/236.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/236.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "圣枪游侠,卢锡安,奥巴马,Lucian,abm,lxa,sqyx,shengqiangyouxia,luxian,aobama", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/236000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Lucian.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big236001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big236009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/236000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/236017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/236000.jpg" + }, + { + "heroId": "238", + "name": "影流之主", + "alias": "Zed", + "title": "劫", + "roles": ["assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "2", + "magic": "1", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/238.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/238.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "影流之主,劫,j,ylzz,Zed,yingliuzhizhu,jie", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/238000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Zed.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big238000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big238015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/238000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/238014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/238000.jpg" + }, + { + "heroId": "240", + "name": "暴怒骑士", + "alias": "Kled", + "title": "克烈", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "2", + "magic": "2", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/240.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/240.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "暴怒骑士,克烈,kl,bnqs,baonuqishi,kelie", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/240000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kled.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big240000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big240001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big240002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big240009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/240000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/240002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/240001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/240009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/240000.jpg" + }, + { + "heroId": "245", + "name": "时间刺客", + "alias": "Ekko", + "title": "艾克", + "roles": ["assassin", "fighter"], + "isWeekFree": "1", + "attack": "5", + "defense": "3", + "magic": "7", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/245.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/245.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "时间刺客,艾克,Ekko,shijiancike,aike,ak,sjck", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/245000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ekko.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big245000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big245001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big245003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big245002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big245011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big245012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/245000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/245001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/245002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/245003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/245011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/245012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/245000.jpg" + }, + { + "heroId": "246", + "name": "元素女皇", + "alias": "Qiyana", + "title": "奇亚娜", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "0", + "defense": "2", + "magic": "4", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/246.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/246.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "元素女皇,奇亚娜,qyn,ysnh,Qiyana,yuansunvhuang,qiyana", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/246000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Qiyana.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big246000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big246001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big246002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big246010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big246011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/246000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/246001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/246002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/246008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/246010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/246011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/246000.jpg" + }, + { + "heroId": "254", + "name": "皮城执法官", + "alias": "Vi", + "title": "蔚", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/254.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/254.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "皮城执法官,拳女,蔚,v,qv,pczfg,Vi,pichengzhifaguan,quannv,wei", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/254000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Vi.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big254002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big254012.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/254000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/254012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/254000.jpg" + }, + { + "heroId": "266", + "name": "暗裔剑魔", + "alias": "Aatrox", + "title": "亚托克斯", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "4", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/266.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/266.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "剑魔,亚托克斯,暗裔剑魔,jianmo,yatuokesi,anyijianmo,Aatrox,jm,ayjm,ytks", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/266000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Aatrox.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big266002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big266011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/266000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/266011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/266000.jpg" + }, + { + "heroId": "267", + "name": "唤潮鲛姬", + "alias": "Nami", + "title": "娜美", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "3", + "magic": "7", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/267.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/267.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "4800", + "couponPrice": "3500", + "camp": "", + "campId": "", + "keywords": "唤潮鲛姬,鲛姬,娜美,nm,jj,hcjj,Nami,huanchaojiaoji,jiaoji,namei", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/267000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Nami.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big267000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big267015.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/267000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267007.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/267015.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/267000.jpg" + }, + { + "heroId": "268", + "name": "沙漠皇帝", + "alias": "Azir", + "title": "阿兹尔", + "roles": ["mage", "marksman"], + "isWeekFree": "0", + "attack": "6", + "defense": "3", + "magic": "8", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/268.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/268.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "沙漠皇帝,阿兹尔,沙皇,Azir,shamohuangdi,azier,shahuang,smhd,aze,sh", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/268000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Azir.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big268004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big268003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big268000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big268002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big268001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big268005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/268000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/268001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/268002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/268003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/268004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/268005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/268000.jpg" + }, + { + "heroId": "350", + "name": "魔法猫咪", + "alias": "Yuumi", + "title": "悠米", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "5", + "defense": "1", + "magic": "8", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/350.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/350.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "魔法猫咪,猫,猫咪,悠米,cat,m,mm,mfmm,ym,Yuumi,mofamaomi,mao,maomi,youmi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/350000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Yuumi.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big350001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big350000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big350011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/350000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/350001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/350011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/350000.jpg" + }, + { + "heroId": "360", + "name": "沙漠玫瑰", + "alias": "Samira", + "title": "莎弥拉", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "3", + "difficulty": "6", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/360.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/360.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "莎弥拉,沙漠玫瑰,Samira,sml,smmg,shamila,shamomeigui", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/360000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Samira.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big360001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big360000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big360010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/360000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/360001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/360010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/360000.jpg" + }, + { + "heroId": "412", + "name": "魂锁典狱长", + "alias": "Thresh", + "title": "锤石", + "roles": ["support", "fighter"], + "isWeekFree": "1", + "attack": "5", + "defense": "6", + "magic": "6", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/412.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/412.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "魂锁典狱长,锤石,Thresh,cs,hsdyz,hunsuodianyuzhang,chuishi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/412000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Thresh.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big412003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big412017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/412000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412014.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412015.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/412017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/412000.jpg" + }, + { + "heroId": "420", + "name": "海兽祭司", + "alias": "Illaoi", + "title": "俄洛伊", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "6", + "magic": "3", + "difficulty": "4", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/420.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/420.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "海兽祭司,俄洛伊,触手妈,Illaoi,csm,ely,hsjs,haishoujisi,eluoyi,chushouma", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/420000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Illaoi.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big420000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big420001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big420002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big420010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/420000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/420001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/420002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/420010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/420000.jpg" + }, + { + "heroId": "421", + "name": "虚空遁地兽", + "alias": "RekSai", + "title": "雷克塞", + "roles": ["fighter"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "2", + "difficulty": "3", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/421.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/421.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "虚空遁地兽,挖掘机,雷克赛,雷克塞,lks,wjj,xkdds,RekSai,xukongdundishou,wajueji,leikesai,leikesai", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/421000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/RekSai.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big421002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big421001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big421000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big421009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/421000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/421001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/421002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/421009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/421000.jpg" + }, + { + "heroId": "427", + "name": "翠神", + "alias": "Ivern", + "title": "艾翁", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "3", + "defense": "5", + "magic": "7", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/427.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/427.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "改动英雄", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "翠神,艾翁,小菊,Ivern,xj,cs,aw,cuishen,aiweng,xiaoju", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/427000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ivern.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big427000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big427001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big427002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big427011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/427000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/427001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/427002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/427011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/427000.jpg" + }, + { + "heroId": "429", + "name": "复仇之矛", + "alias": "Kalista", + "title": "卡莉丝塔", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "8", + "defense": "2", + "magic": "4", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/429.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/429.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "复仇之矛,卡莉丝塔,Kalista,fczm,klst,fuchouzhimao,kalisita", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/429000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Kalista.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big429001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big429000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big429002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big429003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big429005.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/429000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/429001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/429002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/429003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/429005.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/429000.jpg" + }, + { + "heroId": "432", + "name": "星界游神", + "alias": "Bard", + "title": "巴德", + "roles": ["support", "mage"], + "isWeekFree": "0", + "attack": "4", + "defense": "4", + "magic": "5", + "difficulty": "9", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/432.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/432.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "星界游神,巴德,Bard,xingjieyoushen,bade,xjys,bd", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/432000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Bard.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big432001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big432005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big432000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big432008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big432006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big432017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/432000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/432001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/432005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/432006.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/432008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/432017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/432000.jpg" + }, + { + "heroId": "497", + "name": "幻翎", + "alias": "Rakan", + "title": "洛", + "roles": ["support"], + "isWeekFree": "0", + "attack": "2", + "defense": "4", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/497.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/497.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "幻翎,洛,l,hl,Rakan,huanling,luo", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/497000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Rakan.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big497005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big497009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/497000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497005.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/497009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/497000.jpg" + }, + { + "heroId": "498", + "name": "逆羽", + "alias": "Xayah", + "title": "霞", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "10", + "defense": "6", + "magic": "1", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/498.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/498.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "逆羽,霞,x,ny,Xayah,niyu,xia", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/498000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Xayah.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big498000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big498017.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/498000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498002.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498003.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498004.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/498017.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/498000.jpg" + }, + { + "heroId": "516", + "name": "山隐之焰", + "alias": "Ornn", + "title": "奥恩", + "roles": ["tank", "fighter"], + "isWeekFree": "0", + "attack": "5", + "defense": "9", + "magic": "3", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/516.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/516.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "山隐之焰,奥恩,Ornn,an,syzy,shanyinzhiyan,aoen", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/516000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Ornn.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big516001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big516000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big516002.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/516000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/516001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/516002.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/516000.jpg" + }, + { + "heroId": "517", + "name": "解脱者", + "alias": "Sylas", + "title": "塞拉斯", + "roles": ["mage", "assassin"], + "isWeekFree": "0", + "attack": "3", + "defense": "4", + "magic": "8", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/517.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/517.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "解脱者,塞拉斯,sls,suannan,sn,jtz,Sylas,jietuozhe,sailasi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/517000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sylas.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big517000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big517001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big517013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big517008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big517014.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/517000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/517001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/517008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/517013.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/517014.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/517000.jpg" + }, + { + "heroId": "518", + "name": "万花通灵", + "alias": "Neeko", + "title": "妮蔻", + "roles": ["mage", "support"], + "isWeekFree": "0", + "attack": "1", + "defense": "1", + "magic": "9", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/518.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/518.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "万花通灵,妮蔻,neeko,nk,whtl,wanhuatongling,nikou", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/518000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Neeko.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big518000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big518001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big518012.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big518011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big518010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/518000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/518001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/518010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/518011.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/518012.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/518000.jpg" + }, + { + "heroId": "523", + "name": "残月之肃", + "alias": "Aphelios", + "title": "厄斐琉斯", + "roles": ["marksman"], + "isWeekFree": "0", + "attack": "6", + "defense": "2", + "magic": "1", + "difficulty": "10", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/523.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/523.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "残月之肃,厄斐琉斯,Aphelios,efls,cyzs,canyuezhisu,efeiliusi", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/523000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Aphelios.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big523000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big523001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big523009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/523000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/523001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/523009.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/523000.jpg" + }, + { + "heroId": "526", + "name": "镕铁少女", + "alias": "Rell", + "title": "芮尔", + "roles": ["tank", "support"], + "isWeekFree": "0", + "attack": "0", + "defense": "0", + "magic": "0", + "difficulty": "0", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/526.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/526.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "7800", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "镕铁少女,芮尔,镕铁,,rongtieshaonv,ruier,rongtie", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/526000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Rell.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big526000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big526001.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/526000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/526001.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/526000.jpg" + }, + { + "heroId": "555", + "name": "血港鬼影", + "alias": "Pyke", + "title": "派克", + "roles": ["support", "assassin"], + "isWeekFree": "0", + "attack": "9", + "defense": "3", + "magic": "1", + "difficulty": "7", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/555.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/555.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "血港鬼影,派克,pk,xggy,Pyke,xuegangguiying,paike", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/555000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Pyke.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big555000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big555001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big555009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big555016.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/555000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/555001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/555009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/555016.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/555000.jpg" + }, + { + "heroId": "711", + "name": "愁云使者", + "alias": "Vex", + "title": "薇古丝", + "roles": ["mage"], + "isWeekFree": "0", + "attack": "0", + "defense": "0", + "magic": "0", + "difficulty": "0", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/711.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/711.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/711000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Vex.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big711000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big711001.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/711000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/711001.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/711000.jpg" + }, + { + "heroId": "777", + "name": "封魔剑魂", + "alias": "Yone", + "title": "永恩", + "roles": ["assassin", "fighter"], + "isWeekFree": "0", + "attack": "8", + "defense": "4", + "magic": "4", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/777.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/777.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "永恩,封魔剑魂,ye,fmjh,Yone,yongen,fengmojianhun", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/777000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Yone.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big777000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big777001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big777010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/777000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/777001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/777010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/777000.jpg" + }, + { + "heroId": "875", + "name": "腕豪", + "alias": "Sett", + "title": "瑟提", + "roles": ["fighter", "tank"], + "isWeekFree": "0", + "attack": "8", + "defense": "5", + "magic": "1", + "difficulty": "2", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/875.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/875.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "腕豪,瑟提,jinfu,jf,Sett,st,wh,wanhao,seti", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/875000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Sett.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big875000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big875001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big875008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big875010.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big875009.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/875000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/875001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/875008.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/875009.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/875010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/875000.jpg" + }, + { + "heroId": "876", + "name": "含羞蓓蕾", + "alias": "Lillia", + "title": "莉莉娅", + "roles": ["fighter", "mage"], + "isWeekFree": "0", + "attack": "0", + "defense": "2", + "magic": "10", + "difficulty": "8", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/876.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/876.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "含羞蓓蕾,莉莉娅,小鹿,lly,hxbl,Lillia,hanxiubeilei,liliya,xiaolu", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/876000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Lillia.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big876000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big876001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big876010.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/876000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/876001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/876010.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/876000.jpg" + }, + { + "heroId": "887", + "name": "灵罗娃娃", + "alias": "Gwen", + "title": "格温", + "roles": ["fighter", "assassin"], + "isWeekFree": "0", + "attack": "7", + "defense": "4", + "magic": "5", + "difficulty": "5", + "selectAudio": "https://game.gtimg.cn/images/lol/act/img/vo/choose/887.ogg", + "banAudio": "https://game.gtimg.cn/images/lol/act/img/vo/ban/887.ogg", + "isARAMweekfree": "0", + "ispermanentweekfree": "0", + "changeLabel": "无改动", + "goldPrice": "6300", + "couponPrice": "4500", + "camp": "", + "campId": "", + "keywords": "灵罗娃娃,格温,灵,娃wa,gw,Gw,,lingluowawa,gewen,ling,wa", + "bigImg": "https://game.gtimg.cn/images/lol/act/img/skinloading/887000.jpg", + "avatar": "https://game.gtimg.cn/images/lol/act/img/champion/Gwen.png", + "skins": [ + "https://game.gtimg.cn/images/lol/act/img/skin/big887000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big887001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skin/big887011.jpg" + ], + "posters": [ + "https://game.gtimg.cn/images/lol/act/img/skinloading/887000.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/887001.jpg", + "https://game.gtimg.cn/images/lol/act/img/skinloading/887011.jpg" + ], + "big_avatar": "https://game.gtimg.cn/images/lol/act/img/skinloading/887000.jpg" + } +] diff --git a/mocks/demo/hero/index.ts b/mocks/demo/hero/index.ts new file mode 100644 index 0000000..4748fec --- /dev/null +++ b/mocks/demo/hero/index.ts @@ -0,0 +1,37 @@ +import { HttpResponse, delay, http } from 'msw'; +import { getQuery, resultPageSuccess, resultSuccess, serverApi } from '../../_util'; +import heroListJson from './_heroList.json'; +import heroLoLListJson from './_lolHeroList.json'; + +export default [ + http.get(serverApi('/demo/wzry/hero_list'), async ({ request }) => { + await delay(500); + const { page = 1, pageSize = 10, cname = '', title = '' } = getQuery(request); + + const filterResult = heroListJson.filter((n) => { + return n.cname.includes(cname) && n.title.includes(title); + }); + + return HttpResponse.json(resultPageSuccess(page, pageSize, filterResult)); + }), + http.get(serverApi('/demo/lol/hero_list'), async ({ request }) => { + // 接口地址: https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js + await delay(500); + + const { page = 1, pageSize = 10, title = '', name = '' } = getQuery(request); + + const filterResult = heroLoLListJson.filter((n) => { + return n.title.includes(title) && n.name.includes(name); + }); + + return HttpResponse.json(resultPageSuccess(page, pageSize, filterResult)); + }), + http.get(serverApi('/demo/lol/hero_info/:id'), async ({ params }) => { + await delay(300); + const { id } = params; + + const result = heroLoLListJson.find((n) => n.heroId == id); + + return HttpResponse.json(resultSuccess(result)); + }), +]; diff --git a/mocks/demo/select.ts b/mocks/demo/select.ts new file mode 100644 index 0000000..e9d47a1 --- /dev/null +++ b/mocks/demo/select.ts @@ -0,0 +1,23 @@ +import { http, HttpResponse, delay } from 'msw'; +import { getQuery, resultSuccess, serverApi } from '../_util'; + +const demoList = (keyword, count = 20) => { + const result = [] as any[]; + + for (let index = 0; index < count; index++) { + result.push({ + name: `${keyword ?? ''}选项${index}`, + id: `${index}`, + }); + } + return result; +}; + +export default [ + http.get(serverApi('/select/getDemoOptions'), async ({ request }) => { + await delay(1000); + const { keyword, count } = getQuery(request); + + return HttpResponse.json(resultSuccess(demoList(keyword, count))); + }), +]; diff --git a/mocks/index.ts b/mocks/index.ts new file mode 100644 index 0000000..59e28de --- /dev/null +++ b/mocks/index.ts @@ -0,0 +1,25 @@ +// import { enableMocking } from '@admin-pkg/vite-plugin-msw'; +// import { HttpHandler } from 'msw'; + +// const modules = import.meta.glob('./**/*.ts', { +// eager: true, +// }); + +// export const setupMock = async () => { +// const handlers = Object.values(modules).reduce((prev, curr) => { +// const arr = curr?.default; +// if (Array.isArray(arr)) { +// arr.forEach((item) => { +// if (item instanceof HttpHandler) { +// prev.push(item); +// } +// }); +// } +// return prev; +// }, []); +// console.log('handlers', handlers); +// await enableMocking(handlers, { +// // 设置为 true 则不会在浏览器控制台输出 log 信息 +// quiet: false, +// }); +// }; diff --git a/mocks/list.ts b/mocks/list.ts new file mode 100644 index 0000000..074ea96 --- /dev/null +++ b/mocks/list.ts @@ -0,0 +1,28 @@ +import { http, HttpResponse, delay } from 'msw'; +import { faker } from '@faker-js/faker/locale/zh_CN'; +import { serverApi } from './_util'; + +export default [ + http.get(serverApi('/list'), async () => { + await delay(1000); + return HttpResponse.json( + Array.from({ length: 10 }).map(() => ({ + fullname: faker.person.fullName(), + email: faker.internet.email(), + avatar: faker.image.avatar(), + address: faker.location.streetAddress(), + })), + ); + }), + http.get(serverApi('/list'), async () => { + await delay(1000); + return HttpResponse.json( + Array.from({ length: 10 }).map(() => ({ + fullname: faker.person.fullName(), + email: faker.internet.email(), + avatar: faker.image.avatar(), + address: faker.location.streetAddress(), + })), + ); + }), +]; diff --git a/mocks/user.ts b/mocks/user.ts new file mode 100644 index 0000000..99db5f2 --- /dev/null +++ b/mocks/user.ts @@ -0,0 +1,24 @@ +import { http, HttpResponse, delay } from 'msw'; +import { faker } from '@faker-js/faker/locale/zh_CN'; +import { serverApi } from './_util'; + +export default [ + http.get(serverApi('/user/:id'), async () => { + await delay(1000); + return HttpResponse.json( + Array.from({ length: 10 }).map(() => ({ + fullname: faker.person.fullName(), + email: faker.internet.email(), + avatar: faker.image.avatar(), + address: faker.location.streetAddress(), + })), + ); + }), + http.get(serverApi('/login'), async () => { + await delay(1000); + return HttpResponse.json({ + code: 200, + data: '登录成功', + }); + }), +]; diff --git a/openapi.config.ts b/openapi.config.ts new file mode 100644 index 0000000..94cf06e --- /dev/null +++ b/openapi.config.ts @@ -0,0 +1,67 @@ +import { generateService } from '@umijs/openapi'; +import type { RequestOptions } from './src/utils/request'; + +const re = /controller[-_ .](\w)/gi; + +// swagger-typescript-api +generateService({ + schemaPath: 'http://127.0.0.1:7001/api-docs-json', + serversPath: './src/api/backend', + requestOptionsType: 'RequestOptions', + // 自定义网络请求函数路径 + requestImportStatement: 'import { request, type RequestOptions } from "@/utils/request";', + hook: { + // @ts-ignore + customFunctionName(operationObject, apiPath) { + const { operationId } = operationObject; + + if (!operationId) { + console.warn('[Warning] no operationId', apiPath); + return; + } + + const funcName = operationId.replace(re, (_all, letter) => letter.toUpperCase()); + + operationObject.operationId = funcName; + + return funcName; + }, + // @ts-ignore + customFileNames(operationObject, apiPath) { + const { operationId } = operationObject; + + if (!operationId) { + console.warn('[Warning] no operationId', apiPath); + return; + } + const controllerName = operationId.split(re)[0]; + const moduleName = operationObject.tags?.[0].split(' - ')[0]; + + if (moduleName === controllerName) { + return [controllerName]; + } else if (moduleName && moduleName !== controllerName) { + return [`${moduleName}_${controllerName}`]; + } + return; + }, + customType(schemaObject, namespace, defaultGetType) { + const type = defaultGetType(schemaObject, namespace); + // 提取出 data 的类型 + const regex = /API\.ResOp & { 'data'\?: (.+); }/; + return type.replace(regex, '$1'); + }, + customOptionsDefaultValue(data): RequestOptions { + const { summary } = data; + + if (summary?.startsWith('创建') || summary?.startsWith('新增')) { + return { successMsg: '创建成功' }; + } else if (summary?.startsWith('更新')) { + return { successMsg: '更新成功' }; + } else if (summary?.startsWith('删除')) { + return { successMsg: '删除成功' }; + } + + return {}; + }, + }, +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..b74a464 --- /dev/null +++ b/package.json @@ -0,0 +1,155 @@ +{ + "name": "huaxin-base-frontend", + "version": "1.0.0", + "packageManager": "pnpm@8.10.2", + "engines": { + "node": ">=18" + }, + "author": { + "name": "luzixun", + "email": "869322496@qq.com", + "url": "https://github.com/869322496" + }, + "scripts": { + "bootstrap": "pnpm install", + "serve": "npm run dev", + "dev": "vite", + "build": "rimraf dist && cross-env NODE_ENV=production vite build", + "build:watch": "rimraf dist && cross-env NODE_ENV=production vite build --watch", + "preview": "npm run build && vite preview", + "preview:dist": "vite preview", + "deploy": "bash deploy.sh", + "openapi": "npx tsx openapi.config.ts", + "clean:cache": "npx rimraf node_modules/.cache/ && npx rimraf node_modules/.vite", + "clean:lib": "npx rimraf node_modules packages/*/node_modules", + "format": "prettier --write .", + "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx,.md,.json --max-warnings 0 && pretty-quick --check --branch main", + "lint:fix": "eslint --fix . --ext .vue,.js,.ts,.jsx,.tsx,.md,.json && pretty-quick --branch main", + "lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock}/**/*.{vue,ts,tsx}\" --fix", + "lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"", + "lint:stylelint": "stylelint --cache --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", + "lint:lint-staged": "lint-staged", + "gen:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md", + "reinstall": "rimraf pnpm-lock.yaml && rimraf package.lock.json && rimraf node_modules && npm run bootstrap", + "test:gzip": "npx http-server dist --cors --gzip -c-1", + "test:br": "npx http-server dist --cors --brotli -c-1", + "commitlint": "commitlint --config commitlint.config.cjs -e -V", + "c": "git add . && git cz && git push", + "release": "standard-version" + }, + "dependencies": { + "@ant-design/icons-vue": "~7.0.1", + "@iconify/vue": "^4.1.1", + "@tinymce/tinymce-vue": "^5.1.1", + "@vueuse/core": "~10.8.0", + "ant-design-vue": "~4.1.2", + "axios": "~1.6.7", + "dayjs": "~1.11.10", + "echarts": "^5.5.0", + "file-saver": "~2.0.5", + "lodash-es": "~4.17.21", + "mitt": "~3.0.1", + "nprogress": "~1.0.0-1", + "pinia": "~2.1.7", + "qiniu-js": "^3.4.2", + "qs": "~6.11.2", + "sortablejs": "~1.15.2", + "tinymce": "^6.8.3", + "vue": "~3.4.19", + "vue-echarts": "^6.6.9", + "vue-i18n": "9.9.1", + "vue-router": "~4.3.0", + "vue-types": "~5.1.1", + "vue-virtual-scroller": "2.0.0-beta.8", + "xlsx": "~0.18.5" + }, + "devDependencies": { + "@commitlint/cli": "~18.6.0", + "@commitlint/config-conventional": "~18.6.0", + "@faker-js/faker": "^8.4.1", + "@iconify-json/ant-design": "^1.1.15", + "@iconify-json/ep": "^1.1.14", + "@iconify/json": "^2.2.180", + "@types/lodash-es": "~4.17.12", + "@types/node": "~20.11.16", + "@typescript-eslint/eslint-plugin": "~7.0.2", + "@typescript-eslint/parser": "~7.0.2", + "@umijs/openapi": "^1.10.1", + "@vitejs/plugin-vue": "~5.0.4", + "@vitejs/plugin-vue-jsx": "~3.1.0", + "@vue/tsconfig": "^0.5.1", + "commitizen": "~4.3.0", + "cliui": "^8.0.1", + "cz-customizable": "^7.0.0", + "conventional-changelog-cli": "~4.1.0", + "standard-version": "^9.5.0", + "core-js": "^3.36.0", + "cross-env": "~7.0.3", + "eslint": "~8.57.0", + "eslint-config-prettier": "~9.1.0", + "eslint-define-config": "~2.1.0", + "eslint-plugin-import": "~2.29.1", + "eslint-plugin-prettier": "~5.1.3", + "eslint-plugin-vue": "~9.22.0", + "husky": "~9.0.10", + "less": "~4.2.0", + "lightningcss": "^1.24.0", + "lint-staged": "~15.2.2", + "mockjs": "~1.1.0", + "msw": "^2.2.1", + "postcss": "~8.4.34", + "postcss-html": "~1.6.0", + "postcss-less": "~6.0.0", + "prettier": "~3.2.5", + "pretty-quick": "~4.0.0", + "rimraf": "~5.0.5", + "stylelint": "~16.2.1", + "stylelint-config-property-sort-order-smacss": "^10.0.0", + "stylelint-config-recommended": "~14.0.0", + "stylelint-config-recommended-vue": "~1.5.0", + "stylelint-config-standard": "~36.0.0", + "stylelint-order": "~6.0.4", + "stylelint-prettier": "^5.0.0", + "terser": "~5.28.1", + "ts-node": "^10.9.2", + "typescript": "~5.3.3", + "unocss": "^0.58.5", + "unplugin-vue-components": "~0.26.0", + "vite": "~5.1.4", + "vite-plugin-checker": "~0.6.4", + "vite-plugin-mkcert": "^1.17.3", + "vite-plugin-svg-icons": "~2.0.1", + "vue-eslint-parser": "~9.4.2", + "vue-tsc": "~1.8.27" + }, + "keywords": [ + "vue", + "ant-design-vue", + "vue3", + "ts", + "tsx", + "admin", + "typescript" + ], + "target": "web", + "pnpm": { + "peerDependencyRules": { + "ignoreMissing": [ + "rollup" + ], + "allowedVersions": { + "postcss": "5" + } + } + }, + "config": { + "commitizen": { + "path": "cz-customizable" + } + }, + "lint-staged": { + "*.{js,ts,jsx,tsx,vue}": [ + "npm run lint" + ] + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..8bf0290 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,12319 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@ant-design/icons-vue': + specifier: ~7.0.1 + version: 7.0.1(vue@3.4.19) + '@iconify/vue': + specifier: ^4.1.1 + version: 4.1.1(vue@3.4.19) + '@tinymce/tinymce-vue': + specifier: ^5.1.1 + version: 5.1.1(vue@3.4.19) + '@vueuse/core': + specifier: ~10.8.0 + version: 10.8.0(vue@3.4.19) + ant-design-vue: + specifier: ~4.1.2 + version: 4.1.2(vue@3.4.19) + axios: + specifier: ~1.6.7 + version: 1.6.7(debug@4.3.4) + dayjs: + specifier: ~1.11.10 + version: 1.11.10 + echarts: + specifier: ^5.5.0 + version: 5.5.0 + file-saver: + specifier: ~2.0.5 + version: 2.0.5 + lodash-es: + specifier: ~4.17.21 + version: 4.17.21 + mitt: + specifier: ~3.0.1 + version: 3.0.1 + nprogress: + specifier: ~1.0.0-1 + version: 1.0.0-1 + pinia: + specifier: ~2.1.7 + version: 2.1.7(typescript@5.3.3)(vue@3.4.19) + qiniu-js: + specifier: ^3.4.2 + version: 3.4.2 + qs: + specifier: ~6.11.2 + version: 6.11.2 + sortablejs: + specifier: ~1.15.2 + version: 1.15.2 + tinymce: + specifier: ^6.8.3 + version: 6.8.3 + vue: + specifier: ~3.4.19 + version: 3.4.19(typescript@5.3.3) + vue-echarts: + specifier: ^6.6.9 + version: 6.6.9(echarts@5.5.0)(vue@3.4.19) + vue-i18n: + specifier: 9.9.1 + version: 9.9.1(vue@3.4.19) + vue-router: + specifier: ~4.3.0 + version: 4.3.0(vue@3.4.19) + vue-types: + specifier: ~5.1.1 + version: 5.1.1(vue@3.4.19) + vue-virtual-scroller: + specifier: 2.0.0-beta.8 + version: 2.0.0-beta.8(vue@3.4.19) + xlsx: + specifier: ~0.18.5 + version: 0.18.5 + +devDependencies: + '@commitlint/cli': + specifier: ~18.6.0 + version: 18.6.0(@types/node@20.11.16)(typescript@5.3.3) + '@commitlint/config-conventional': + specifier: ~18.6.0 + version: 18.6.0 + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@iconify-json/ant-design': + specifier: ^1.1.15 + version: 1.1.15 + '@iconify-json/ep': + specifier: ^1.1.14 + version: 1.1.14 + '@iconify/json': + specifier: ^2.2.180 + version: 2.2.180 + '@types/lodash-es': + specifier: ~4.17.12 + version: 4.17.12 + '@types/node': + specifier: ~20.11.16 + version: 20.11.16 + '@typescript-eslint/eslint-plugin': + specifier: ~7.0.2 + version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ~7.0.2 + version: 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@umijs/openapi': + specifier: ^1.10.1 + version: 1.10.1 + '@vitejs/plugin-vue': + specifier: ~5.0.4 + version: 5.0.4(vite@5.1.4)(vue@3.4.19) + '@vitejs/plugin-vue-jsx': + specifier: ~3.1.0 + version: 3.1.0(vite@5.1.4)(vue@3.4.19) + '@vue/tsconfig': + specifier: ^0.5.1 + version: 0.5.1 + cliui: + specifier: ^8.0.1 + version: 8.0.1 + commitizen: + specifier: ~4.3.0 + version: 4.3.0(@types/node@20.11.16)(typescript@5.3.3) + conventional-changelog-cli: + specifier: ~4.1.0 + version: 4.1.0 + core-js: + specifier: ^3.36.0 + version: 3.36.0 + cross-env: + specifier: ~7.0.3 + version: 7.0.3 + cz-customizable: + specifier: ^7.0.0 + version: 7.0.0 + eslint: + specifier: ~8.57.0 + version: 8.57.0 + eslint-config-prettier: + specifier: ~9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-define-config: + specifier: ~2.1.0 + version: 2.1.0 + eslint-plugin-import: + specifier: ~2.29.1 + version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + eslint-plugin-prettier: + specifier: ~5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-vue: + specifier: ~9.22.0 + version: 9.22.0(eslint@8.57.0) + husky: + specifier: ~9.0.10 + version: 9.0.10 + less: + specifier: ~4.2.0 + version: 4.2.0 + lightningcss: + specifier: ^1.24.0 + version: 1.24.0 + lint-staged: + specifier: ~15.2.2 + version: 15.2.2 + mockjs: + specifier: ~1.1.0 + version: 1.1.0 + msw: + specifier: ^2.2.1 + version: 2.2.1(typescript@5.3.3) + postcss: + specifier: ~8.4.34 + version: 8.4.34 + postcss-html: + specifier: ~1.6.0 + version: 1.6.0 + postcss-less: + specifier: ~6.0.0 + version: 6.0.0(postcss@8.4.34) + prettier: + specifier: ~3.2.5 + version: 3.2.5 + pretty-quick: + specifier: ~4.0.0 + version: 4.0.0(prettier@3.2.5) + rimraf: + specifier: ~5.0.5 + version: 5.0.5 + standard-version: + specifier: ^9.5.0 + version: 9.5.0 + stylelint: + specifier: ~16.2.1 + version: 16.2.1(typescript@5.3.3) + stylelint-config-property-sort-order-smacss: + specifier: ^10.0.0 + version: 10.0.0(stylelint@16.2.1) + stylelint-config-recommended: + specifier: ~14.0.0 + version: 14.0.0(stylelint@16.2.1) + stylelint-config-recommended-vue: + specifier: ~1.5.0 + version: 1.5.0(postcss-html@1.6.0)(stylelint@16.2.1) + stylelint-config-standard: + specifier: ~36.0.0 + version: 36.0.0(stylelint@16.2.1) + stylelint-order: + specifier: ~6.0.4 + version: 6.0.4(stylelint@16.2.1) + stylelint-prettier: + specifier: ^5.0.0 + version: 5.0.0(prettier@3.2.5)(stylelint@16.2.1) + terser: + specifier: ~5.28.1 + version: 5.28.1 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@20.11.16)(typescript@5.3.3) + typescript: + specifier: ~5.3.3 + version: 5.3.3 + unocss: + specifier: ^0.58.5 + version: 0.58.5(postcss@8.4.34)(vite@5.1.4) + unplugin-vue-components: + specifier: ~0.26.0 + version: 0.26.0(vue@3.4.19) + vite: + specifier: ~5.1.4 + version: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + vite-plugin-checker: + specifier: ~0.6.4 + version: 0.6.4(eslint@8.57.0)(stylelint@16.2.1)(typescript@5.3.3)(vite@5.1.4)(vue-tsc@1.8.27) + vite-plugin-mkcert: + specifier: ^1.17.3 + version: 1.17.3(vite@5.1.4) + vite-plugin-svg-icons: + specifier: ~2.0.1 + version: 2.0.1(vite@5.1.4) + vue-eslint-parser: + specifier: ~9.4.2 + version: 9.4.2(eslint@8.57.0) + vue-tsc: + specifier: ~1.8.27 + version: 1.8.27(typescript@5.3.3) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@ant-design/colors@6.0.0: + resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + dev: false + + /@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} + dev: false + + /@ant-design/icons-vue@7.0.1(vue@3.4.19): + resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==} + peerDependencies: + vue: '>=3.0.3' + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-svg': 4.3.1 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + dev: true + + /@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} + dev: true + + /@babel/code-frame@7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + dependencies: + '@babel/highlight': 7.23.4 + dev: true + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.8 + '@babel/parser': 7.23.9 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.9 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@7.32.0): + resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + + /@babel/eslint-parser@7.23.3(@babel/core@7.23.9)(eslint@7.32.0): + resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.23.9 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.9): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.7): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/helpers@7.23.8: + resolution: {integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.7): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-decorators@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.7): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.7): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.23.9 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.7): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.7): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/types': 7.23.9 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.23.9(@babel/core@7.23.7): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.7) + core-js-compat: 3.35.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 + esutils: 2.0.3 + dev: true + + /@babel/preset-react@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/preset-typescript@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) + dev: true + + /@babel/preset-typescript@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime-corejs2@7.23.8: + resolution: {integrity: sha512-U7JI0Qne1eSenXriL+BynbS4GyJE5nwGW/L72RnqOPJ+lgAZvEHS/jHtfU001R8NxD0Y/fqWKrHBoSBg8g2Vqw==} + engines: {node: '>=6.9.0'} + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.14.1 + dev: false + + /@babel/runtime@7.23.8: + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@bundled-es-modules/cookie@2.0.0: + resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} + dependencies: + cookie: 0.5.0 + dev: true + + /@bundled-es-modules/statuses@1.0.1: + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + dependencies: + statuses: 2.0.1 + dev: true + + /@commitlint/cli@18.6.0(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-FiH23cr9QG8VdfbmvJJZmdfHGVMCouOOAzoXZ3Cd7czGC52RbycwNt8YCI7SA69pAl+t30vh8LMaO/N+kcel6w==} + engines: {node: '>=v18'} + hasBin: true + dependencies: + '@commitlint/format': 18.6.0 + '@commitlint/lint': 18.6.0 + '@commitlint/load': 18.6.0(@types/node@20.11.16)(typescript@5.3.3) + '@commitlint/read': 18.6.0 + '@commitlint/types': 18.6.0 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true + + /@commitlint/config-conventional@18.6.0: + resolution: {integrity: sha512-CDCOf2eJz9D/TL44IBks0stM9TmdLCNE2B48owIU3YCadwzts/bobXPScagIgPQF6hhKYMEdj5zpUDlmbwuqwQ==} + engines: {node: '>=v18'} + dependencies: + conventional-changelog-conventionalcommits: 7.0.2 + dev: true + + /@commitlint/config-validator@18.6.0: + resolution: {integrity: sha512-Ptfa865arNozlkjxrYG3qt6wT9AlhNUHeuDyKEZiTL/l0ftncFhK/KN0t/EAMV2tec+0Mwxo0FmhbESj/bI+1g==} + engines: {node: '>=v18'} + requiresBuild: true + dependencies: + '@commitlint/types': 18.6.0 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@18.6.0: + resolution: {integrity: sha512-xY07NmOBJ7JuhX3tic021PaeLepZARIQyqpAQoNQZoml1keBFfB6MbA7XlWZv0ebbarUFE4yhKxOPw+WFv7/qw==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.6.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@18.4.4: + resolution: {integrity: sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==} + engines: {node: '>=v18'} + requiresBuild: true + dev: true + + /@commitlint/format@18.6.0: + resolution: {integrity: sha512-8UNWfs2slPPSQiiVpLGJTnPHv7Jkd5KYxfbNXbmLL583bjom4RrylvyrCVnmZReA8nNad7pPXq6mDH4FNVj6xg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.6.0 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@18.6.0: + resolution: {integrity: sha512-Xjx/ZyyJ4FdLuz0FcOvqiqSFgiO2yYj3QN9XlvyrxqbXTxPVC7QFEXJYBVPulUSN/gR7WXH1Udw+HYYfD17xog==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.6.0 + semver: 7.5.4 + dev: true + + /@commitlint/lint@18.6.0: + resolution: {integrity: sha512-ycbuDWfyykPmslgiHzhz8dL6F0BJYltXLVfc+M49z0c+FNITM0v+r0Vd2+Tdtq06VTc894p2+YSmZhulY8Jn3Q==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/is-ignored': 18.6.0 + '@commitlint/parse': 18.6.0 + '@commitlint/rules': 18.6.0 + '@commitlint/types': 18.6.0 + dev: true + + /@commitlint/load@18.6.0(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-RRssj7TmzT0bowoEKlgwg8uQ7ORXWkw7lYLsZZBMi9aInsJuGNLNWcMxJxRZbwxG3jkCidGUg85WmqJvRjsaDA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.6.0 + '@commitlint/execute-rule': 18.4.4 + '@commitlint/resolve-extends': 18.6.0 + '@commitlint/types': 18.6.0 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.16)(cosmiconfig@8.3.6)(typescript@5.3.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true + + /@commitlint/message@18.4.4: + resolution: {integrity: sha512-lHF95mMDYgAI1LBXveJUyg4eLaMXyOqJccCK3v55ZOEUsMPrDi8upqDjd/NmzWmESYihaOMBTAnxm+6oD1WoDQ==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/parse@18.6.0: + resolution: {integrity: sha512-Y/G++GJpATFw54O0jikc/h2ibyGHgghtPnwsOk3O/aU092ydJ5XEHYcd7xGNQYuLweLzQis2uEwRNk9AVIPbQQ==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.6.0 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + dev: true + + /@commitlint/read@18.6.0: + resolution: {integrity: sha512-w39ji8VfWhPKRquPhRHB3Yd8XIHwaNHgOh28YI1QEmZ59qVpuVUQo6h/NsVb+uoC6LbXZiofTZv2iFR084jKEA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/top-level': 18.4.4 + '@commitlint/types': 18.6.0 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@18.6.0: + resolution: {integrity: sha512-k2Xp+Fxeggki2i90vGrbiLDMefPius3zGSTFFlRAPKce/SWLbZtI+uqE9Mne23mHO5lmcSV8z5m6ziiJwGpOcg==} + engines: {node: '>=v18'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 18.6.0 + '@commitlint/types': 18.6.0 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@18.6.0: + resolution: {integrity: sha512-pTalvCEvuCWrBWZA/YqO/3B3nZnY3Ncc+TmQsRajBdC1tkQIm5Iovdo4Ec7f2Dw1tVvpYMUUNAgcWqsY0WckWg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/ensure': 18.6.0 + '@commitlint/message': 18.4.4 + '@commitlint/to-lines': 18.4.4 + '@commitlint/types': 18.6.0 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@18.4.4: + resolution: {integrity: sha512-mwe2Roa59NCz/krniAdCygFabg7+fQCkIhXqBHw00XQ8Y7lw4poZLLxeGI3p3bLpcEOXdqIDrEGLwHmG5lBdwQ==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/top-level@18.4.4: + resolution: {integrity: sha512-PBwW1drgeavl9CadB7IPRUk6rkUP/O8jEkxjlC+ofuh3pw0bzJdAT+Kw7M1Yc9KtTb9xTaqUB8uvRtaybHa/tQ==} + engines: {node: '>=v18'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@18.6.0: + resolution: {integrity: sha512-oavoKLML/eJa2rJeyYSbyGAYzTxQ6voG5oeX3OrxpfrkRWhJfm4ACnhoRf5tgiybx2MZ+EVFqC1Lw3W8/uwpZA==} + engines: {node: '>=v18'} + dependencies: + chalk: 4.1.2 + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.2.3 + dependencies: + '@csstools/css-tokenizer': 2.2.3 + dev: true + + /@csstools/css-tokenizer@2.2.3: + resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-tokenizer': ^2.2.3 + dependencies: + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + dev: true + + /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.15 + dev: true + + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: false + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + dev: false + + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@7.32.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 7.32.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@0.4.3: + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 7.3.1 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@exodus/schemasafe@1.3.0: + resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} + dev: true + + /@faker-js/faker@8.4.1: + resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array@0.5.0: + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@hutson/parse-repository-url@3.0.2: + resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@hutson/parse-repository-url@5.0.0: + resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} + engines: {node: '>=10.13.0'} + dev: true + + /@iconify-json/ant-design@1.1.15: + resolution: {integrity: sha512-E8XLyDo2HWVeVT8ViNTxF2+0Vgcox8FC73G4v64AM+lvlWpERcY90g7jXoBOeykl1pQCf1awkQUwjkynZ8Xb7A==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify-json/ep@1.1.14: + resolution: {integrity: sha512-F5tuycil4mEYNLtKcHRcPVOFOiN9nT+9wjTSUm27aIH/ylrKEoZWmB6sBXSLa1IUvsqPOlWXgz3ohISzknSQ5A==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/json@2.2.180: + resolution: {integrity: sha512-Kww6uD6fi+9qSeXAUGo6bQgTm5vprMEvTENVaZXL3qfa9KHICWZaGsVETpjn3WiTwcUPgN6P2/GXLzhuFulm7w==} + dependencies: + '@iconify/types': 2.0.0 + pathe: 1.1.2 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + /@iconify/utils@2.1.22: + resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.7 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@iconify/vue@4.1.1(vue@3.4.19): + resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /@inquirer/confirm@3.0.0: + resolution: {integrity: sha512-LHeuYP1D8NmQra1eR4UqvZMXwxEdDXyElJmmZfU44xdNLL6+GcQBS0uE16vyfZVjH8c22p9e+DStROfE/hyHrg==} + engines: {node: '>=18'} + dependencies: + '@inquirer/core': 7.0.0 + '@inquirer/type': 1.2.0 + dev: true + + /@inquirer/core@7.0.0: + resolution: {integrity: sha512-g13W5yEt9r1sEVVriffJqQ8GWy94OnfxLCreNSOTw0HPVcszmc/If1KIf7YBmlwtX4klmvwpZHnQpl3N7VX2xA==} + engines: {node: '>=18'} + dependencies: + '@inquirer/type': 1.2.0 + '@types/mute-stream': 0.0.4 + '@types/node': 20.11.16 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + figures: 3.2.0 + mute-stream: 1.0.0 + run-async: 3.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /@inquirer/type@1.2.0: + resolution: {integrity: sha512-/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA==} + engines: {node: '>=18'} + dev: true + + /@intlify/core-base@9.9.1: + resolution: {integrity: sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==} + engines: {node: '>= 16'} + dependencies: + '@intlify/message-compiler': 9.9.1 + '@intlify/shared': 9.9.1 + dev: false + + /@intlify/message-compiler@9.9.1: + resolution: {integrity: sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.9.1 + source-map-js: 1.0.2 + dev: false + + /@intlify/shared@9.9.1: + resolution: {integrity: sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==} + engines: {node: '>= 16'} + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@mswjs/cookies@1.1.0: + resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} + engines: {node: '>=18'} + dev: true + + /@mswjs/interceptors@0.25.16: + resolution: {integrity: sha512-8QC8JyKztvoGAdPgyZy49c9vSHHAZjHagwl4RY9E8carULk8ym3iTaiawrT1YoLF/qb449h48f71XDPgkUSOUg==} + engines: {node: '>=18'} + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.2 + strict-event-emitter: 0.5.1 + dev: true + + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + dev: true + + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + dev: true + + /@octokit/core@5.1.0: + resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.2 + '@octokit/request': 8.1.6 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + dev: true + + /@octokit/endpoint@9.0.4: + resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: true + + /@octokit/graphql@7.0.2: + resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request': 8.1.6 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: true + + /@octokit/openapi-types@19.1.0: + resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} + dev: true + + /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.1.0): + resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.4.0 + dev: true + + /@octokit/plugin-request-log@4.0.0(@octokit/core@5.1.0): + resolution: {integrity: sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.1.0 + dev: true + + /@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.1.0): + resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.4.0 + dev: true + + /@octokit/request-error@5.0.1: + resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.4.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + + /@octokit/request@8.1.6: + resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/endpoint': 9.0.4 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: true + + /@octokit/rest@20.0.2: + resolution: {integrity: sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/core': 5.1.0 + '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.1.0) + '@octokit/plugin-request-log': 4.0.0(@octokit/core@5.1.0) + '@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.1.0) + dev: true + + /@octokit/types@12.4.0: + resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} + dependencies: + '@octokit/openapi-types': 19.1.0 + dev: true + + /@open-draft/deferred-promise@2.2.0: + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + dev: true + + /@open-draft/logger@0.3.0: + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.2 + dev: true + + /@open-draft/until@2.1.0: + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + dev: true + + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.9.6: + resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.6: + resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.6: + resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.6: + resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@simonwep/pickr@1.8.2: + resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==} + dependencies: + core-js: 3.36.0 + nanopop: 2.4.1 + dev: false + + /@stylelint/postcss-css-in-js@0.37.3(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + peerDependencies: + postcss: '>=7.0.0 || 5' + postcss-syntax: '>=0.36.2' + dependencies: + '@babel/core': 7.23.9 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34) + transitivePeerDependencies: + - supports-color + dev: true + + /@stylelint/postcss-markdown@0.36.2(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==} + deprecated: 'Use the original unforked package instead: postcss-markdown' + peerDependencies: + postcss: '>=7.0.0 || 5' + postcss-syntax: '>=0.36.2' + dependencies: + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34) + remark: 13.0.0 + unist-util-find-all-after: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@tinymce/tinymce-vue@5.1.1(vue@3.4.19): + resolution: {integrity: sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + tinymce: 6.8.3 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + dev: true + + /@types/eslint@7.29.0: + resolution: {integrity: sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.11.16 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + dependencies: + '@types/lodash': 4.14.202 + dev: true + + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + dev: true + + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: true + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true + + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true + + /@types/mute-stream@0.0.4: + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + dependencies: + '@types/node': 20.11.16 + dev: true + + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true + + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: true + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/statuses@2.0.4: + resolution: {integrity: sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==} + dev: true + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 20.11.16 + dev: true + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + dev: false + + /@types/wrap-ansi@3.0.0: + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + dev: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare-lite: 1.4.0 + semver: 7.6.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/type-utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils@4.33.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.15 + '@typescript-eslint/scope-manager': 4.33.0 + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.9.5) + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@7.32.0) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@4.33.0: + resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + dev: true + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/scope-manager@7.0.2: + resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/type-utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@4.33.0: + resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types@7.0.2: + resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@4.33.0(typescript@4.9.5): + resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3): + resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 7.32.0 + eslint-scope: 5.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + eslint: 8.57.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@4.33.0: + resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.33.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@typescript-eslint/visitor-keys@7.0.2: + resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.0.2 + eslint-visitor-keys: 3.4.3 + dev: true + + /@umijs/fabric@2.14.1: + resolution: {integrity: sha512-fOyXcbViOB+/jW+g2rCiK9XjSZVn4OzFuMZpSCriCdR/KxhxLTokvJWFm3CzBEmg9vXfrBFQ4c/ykmqoVacHtw==} + hasBin: true + dependencies: + '@babel/core': 7.23.7 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@7.32.0) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/preset-env': 7.23.9(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + chalk: 4.1.2 + eslint: 7.32.0 + eslint-config-prettier: 8.10.0(eslint@7.32.0) + eslint-formatter-pretty: 4.1.0 + eslint-plugin-babel: 5.3.1(eslint@7.32.0) + eslint-plugin-jest: 24.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@7.32.0)(typescript@4.9.5) + eslint-plugin-promise: 6.1.1(eslint@7.32.0) + eslint-plugin-react: 7.33.2(eslint@7.32.0) + eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) + eslint-plugin-unicorn: 20.1.0(eslint@7.32.0) + fast-glob: 3.3.2 + os-locale: 5.0.0 + prettier: 2.8.8 + prettier-plugin-packagejson: 2.3.0(prettier@2.8.8) + prettier-plugin-two-style-order: 1.0.1(prettier@2.8.8) + stylelint: 13.13.1 + stylelint-config-css-modules: 2.3.0(stylelint@13.13.1) + stylelint-config-prettier: 8.0.2(stylelint@13.13.1) + stylelint-config-standard: 20.0.0(stylelint@13.13.1) + stylelint-declaration-block-no-ignored-properties: 2.8.0(stylelint@13.13.1) + typescript: 4.9.5 + transitivePeerDependencies: + - postcss-jsx + - postcss-markdown + - supports-color + dev: true + + /@umijs/openapi@1.10.1: + resolution: {integrity: sha512-9wfTgJ9ByeOJ2IJVfObeTx1DjNZS/4iLooIv5SJO3pxCi9NUevKkEGkRU2WHmxRwJzkWiQXewnoNkBO/rXHPWw==} + dependencies: + '@umijs/fabric': 2.14.1 + chalk: 4.1.2 + dayjs: 1.11.10 + glob: 7.2.3 + lodash: 4.17.21 + memoizee: 0.4.15 + mock.js: 0.2.0 + mockjs: 1.1.0 + node-fetch: 2.7.0 + nunjucks: 3.2.4 + openapi3-ts: 2.0.2 + prettier: 2.8.8 + reserved-words: 0.1.2 + rimraf: 3.0.2 + swagger2openapi: 7.0.8 + tiny-pinyin: 1.3.2 + transitivePeerDependencies: + - chokidar + - encoding + - postcss-jsx + - postcss-markdown + - supports-color + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@unocss/astro@0.58.5(vite@5.1.4): + resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@unocss/core': 0.58.5 + '@unocss/reset': 0.58.5 + '@unocss/vite': 0.58.5(vite@5.1.4) + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/cli@0.58.5: + resolution: {integrity: sha512-FzVVXO9ghsGtJpu9uR4o7JeM9gUfWNbVZZ/IfH+0WbDJuyx4rO/jwN55z0yA5QDkhvOz9DvzwPCBzLpTJ5q+Lw==} + engines: {node: '>=14'} + hasBin: true + dependencies: + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.1.0 + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/preset-uno': 0.58.5 + cac: 6.7.14 + chokidar: 3.5.3 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.7 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/config@0.58.5: + resolution: {integrity: sha512-O1pLSeNXfG11QHaLSVwS9rJKvE4b9304IQ3UvOdbYN+7SAT4YTZ7JDU4ngO1KWyOFBO6RD0WspCR95pgqOqJiQ==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.58.5 + unconfig: 0.3.11 + dev: true + + /@unocss/core@0.58.5: + resolution: {integrity: sha512-qbPqL+46hf1/UelQOwUwpAuvm6buoss43DPYHOPdfNJ+NTWkSpATQMF0JKT04QE0QRQbHNSHdMe9ariG+IIlCw==} + dev: true + + /@unocss/extractor-arbitrary-variants@0.58.5: + resolution: {integrity: sha512-KJQX0OJKzy4YjJo09h2la2Q+cn5IJ1JdyPVJJkzovHnv7jSBWzsfct+bj/6a+SJ4p4JBIqEJz3M/qxHv4EPJyA==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/inspector@0.58.5: + resolution: {integrity: sha512-cbJlIHEZ14puTtttf7sl+VZFDscV1DJiSseh9sSe0xJ/1NVBT9Bvkm09/1tnpLYAgF5gfa1CaCcjKmURgYzKrA==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 + gzip-size: 6.0.0 + sirv: 2.0.4 + dev: true + + /@unocss/postcss@0.58.5(postcss@8.4.34): + resolution: {integrity: sha512-m4L2YRdYfT6CV306Kl2VwEwbqa/92EpW4GE2Kqak1RuJyFJXBnWEEMJV4Uy6B1jWKLlCEWkuVUW33JUg7X6BxQ==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 || 5 + dependencies: + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.7 + postcss: 8.4.34 + dev: true + + /@unocss/preset-attributify@0.58.5: + resolution: {integrity: sha512-OR4gUHamHCb4/LB/zZHlibaraTyILfFvRIzgmJnEb6lITGApQUl86qaJcTbTyfTfLVRufLG/JVeuz2HLUBPRXw==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/preset-icons@0.58.5: + resolution: {integrity: sha512-LDNXavHtWaIvMvBezT9O8yiqHJChVCEfTRO6YFVY0yy+wo5jHiuMh6iKeHVcwbYdn3NqHYmpi7b/hrXPMtODzA==} + dependencies: + '@iconify/utils': 2.1.22 + '@unocss/core': 0.58.5 + ofetch: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@unocss/preset-mini@0.58.5: + resolution: {integrity: sha512-WqD31fKUAN28OCUOyi1uremmLk0eTMqtCizjbbXsY/DP6RKYUT7trFAtppTcHWFhSQcknb4FURfAZppACsTVQQ==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/extractor-arbitrary-variants': 0.58.5 + '@unocss/rule-utils': 0.58.5 + dev: true + + /@unocss/preset-tagify@0.58.5: + resolution: {integrity: sha512-UB9IXi8vA/SzmmRLMWR7bzeBpxpiRo7y9xk3ruvDddYlsyiwIeDIMwG23YtcA6q41FDQvkrmvTxUEH9LFlv6aA==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/preset-typography@0.58.5: + resolution: {integrity: sha512-rFny4a9yxgY34XOom5euCqQaOLV8PpbTg0Pn+5FelUMG4OfMevTwBCe9JttFJcUc3cNTL2enkzIdMa3l66114g==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 + dev: true + + /@unocss/preset-uno@0.58.5: + resolution: {integrity: sha512-vgq/R4f7RDmdROy+pX+PeE38I3SgYKd4LL7Wb1HJUaVwz7PkF0XHCynOTbwrPXnK1kp1cnZYYEww7/RiYp+IQQ==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/preset-wind': 0.58.5 + '@unocss/rule-utils': 0.58.5 + dev: true + + /@unocss/preset-web-fonts@0.58.5: + resolution: {integrity: sha512-WKZ5raSClFXhqzfAhApef3+fuMq6cjKBxvhJ1FBIxFKcSOvN8e2czty2iGQVl02yMsxBWMv0Bpfm7np+cCoI1w==} + dependencies: + '@unocss/core': 0.58.5 + ofetch: 1.3.3 + dev: true + + /@unocss/preset-wind@0.58.5: + resolution: {integrity: sha512-54RkjLmlqMUlC8o8nDCVzB25D1zzK4eth+/3uQzt739qU0U92NxuZKY21ADj9Rp/mVhKBV5FKuXPjmYc6yTQRQ==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/rule-utils': 0.58.5 + dev: true + + /@unocss/reset@0.58.5: + resolution: {integrity: sha512-2wMrkCj3SSb5hrx9TKs5jZa34QIRkHv9FotbJutAPo7o8hx+XXn56ogzdoUrcFPJZJUx2R2nyOVbSlGMIjtFtw==} + dev: true + + /@unocss/rule-utils@0.58.5: + resolution: {integrity: sha512-w0sGJoeUGwMWLVFLEE9PDiv/fQcQqZnTIIQLYNCjTdqXDRlwTp9ACW0h47x/hAAIXdOtEOOBuTfjGD79GznUmA==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.58.5 + magic-string: 0.30.7 + dev: true + + /@unocss/scope@0.58.5: + resolution: {integrity: sha512-vSentagAwYTnThGRCjzZ6eNSSRuzdWBl21L1BbvVNM91Ss/FugQnZ1hd0m3TrVvvStYXnFVHMQ/MjCAEJ4cMYg==} + dev: true + + /@unocss/transformer-attributify-jsx-babel@0.58.5: + resolution: {integrity: sha512-IAWSSKN3V0D87DE8bqaaPrZBWOdWQ06QNfi9vRuQJfRWOui87ezi9+NffjcnQw/ap9xMk1O6z74/WOW3zo6uYA==} + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) + '@unocss/core': 0.58.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@unocss/transformer-attributify-jsx@0.58.5: + resolution: {integrity: sha512-sItEALyvAt3PZLd9Q1tlIATjaj3kWbS/qI3otUVsYBdZjP4UudzJ3D1fcWNL2WPlgz8KtlVzRUuxob8TQ4ibZg==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/transformer-compile-class@0.58.5: + resolution: {integrity: sha512-4MaxjaZo1rf5uHvDGa2mbnXxAYVYoj1+oRNpL4fE3FoExS1Ka2CiNGQn/S4bHMF51vmXMSWtOzurJpPD4BaJUQ==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/transformer-directives@0.58.5: + resolution: {integrity: sha512-allspF5TlT1B2bJSZ1houHScXOTaTPlatLiEmgQKzr/m93rCvktokaO5J6qeN2VXQdpTIsxdA5B8//7UkfTuIA==} + dependencies: + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 + css-tree: 2.3.1 + dev: true + + /@unocss/transformer-variant-group@0.58.5: + resolution: {integrity: sha512-SjUwGzKK5CVqn7Gg+3v3hV47ZUll7GcGu0vR3RCLO4gqEfFlZWMTHml1Sl2sY1WAca2iVcDRu+dp0RLxRG/dUA==} + dependencies: + '@unocss/core': 0.58.5 + dev: true + + /@unocss/vite@0.58.5(vite@5.1.4): + resolution: {integrity: sha512-p4o1XNX1rvjmoUqSSdua8XyWNg/d+YUChDd2L/xEty+6j2qv0wUaohs3UQ87vWlv632/UmgdX+2MbrgtqthCtw==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + dependencies: + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.1.0 + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/inspector': 0.58.5 + '@unocss/scope': 0.58.5 + '@unocss/transformer-directives': 0.58.5 + chokidar: 3.5.3 + fast-glob: 3.3.2 + magic-string: 0.30.7 + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + transitivePeerDependencies: + - rollup + dev: true + + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.19): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) + '@vue/babel-plugin-jsx': 1.2.0(@babel/core@7.23.7) + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + vue: 3.4.19(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.19): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + vue: 3.4.19(typescript@5.3.3) + dev: true + + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/babel-helper-vue-transform-on@1.2.0: + resolution: {integrity: sha512-Zn6iRYAVvWl835GCcNsLUroy+jwNjH1yd83hvKNSgbiCkzeZwXvEFCC1u0lVKwoqL7z0IcrtY3dkBMuMxwB1fw==} + dev: true + + /@vue/babel-plugin-jsx@1.2.0(@babel/core@7.23.7): + resolution: {integrity: sha512-z0t7fjk03TqncyWYoChKQ4rWx1LXJaw1kNEDrUU5tbPWI2zkCPv2imQJOYlJ8GyTDoQ6/nD82asFcSxDRJ8YgQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + '@vue/babel-helper-vue-transform-on': 1.2.0 + '@vue/babel-plugin-resolve-type': 1.2.0-beta.0(@babel/core@7.23.7) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/babel-plugin-resolve-type@1.2.0-beta.0(@babel/core@7.23.7): + resolution: {integrity: sha512-zG5nXU+89UjXHVvvf0yehU0MDF1caJssCUF+bU5HWevEoR5qoRLt7wX6rNTtG/ZKHFUvB8BibIKL62Ix167Wxg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/parser': 7.23.6 + '@vue/compiler-sfc': 3.4.19 + dev: true + + /@vue/compiler-core@3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + + /@vue/compiler-dom@3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} + dependencies: + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 + + /@vue/compiler-sfc@3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + estree-walker: 2.0.2 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 + + /@vue/compiler-ssr@3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + dev: false + + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 + dev: true + + /@vue/reactivity@3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + dependencies: + '@vue/shared': 3.4.19 + + /@vue/runtime-core@3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + dependencies: + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 + + /@vue/runtime-dom@3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + dependencies: + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 + + /@vue/server-renderer@3.4.19(vue@3.4.19): + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + peerDependencies: + vue: 3.4.19 + dependencies: + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19(typescript@5.3.3) + + /@vue/shared@3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} + + /@vue/tsconfig@0.5.1: + resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} + dev: true + + /@vueuse/core@10.8.0(vue@3.4.19): + resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.8.0 + '@vueuse/shared': 10.8.0(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@10.8.0: + resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==} + dev: false + + /@vueuse/shared@10.8.0(vue@3.4.19): + resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} + dependencies: + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /a-sync-waterfall@1.0.1: + resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} + dev: true + + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /add-stream@1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + dev: true + + /adler-32@1.3.1: + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} + engines: {node: '>=0.8'} + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.13.1 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /ant-design-vue@4.1.2(vue@3.4.19): + resolution: {integrity: sha512-ynFkDJLlHgumeK6Hr1UZ7PvQNZ1uBcri/pmejBdS3kRqHeA5VRsxneYDwa8YxA+uYB5YfT2jpYsSHsiMiCjRGg==} + engines: {node: '>=12.22.0'} + peerDependencies: + vue: '>=3.2.0' + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-vue': 7.0.1(vue@3.4.19) + '@babel/runtime': 7.23.8 + '@ctrl/tinycolor': 3.6.1 + '@emotion/hash': 0.9.1 + '@emotion/unitless': 0.8.1 + '@simonwep/pickr': 1.8.2 + array-tree-filter: 2.1.0 + async-validator: 4.2.5 + csstype: 3.1.3 + dayjs: 1.11.10 + dom-align: 1.12.4 + dom-scroll-into-view: 2.0.1 + lodash: 4.17.21 + lodash-es: 4.17.21 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + shallow-equal: 1.2.1 + stylis: 4.3.1 + throttle-debounce: 5.0.0 + vue: 3.4.19(typescript@5.3.3) + vue-types: 3.0.2(vue@3.4.19) + warning: 4.0.3 + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /autoprefixer@9.8.8: + resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} + hasBin: true + dependencies: + browserslist: 4.22.2 + caniuse-lite: 1.0.30001579 + normalize-range: 0.1.2 + num2fraction: 1.2.2 + picocolors: 0.2.1 + postcss: 7.0.39 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axios@1.6.7(debug@4.3.4): + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + dependencies: + follow-redirects: 1.15.5(debug@4.3.4) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.7): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.7): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.7) + core-js-compat: 3.35.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.7): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.7) + transitivePeerDependencies: + - supports-color + dev: true + + /bail@1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001579 + electron-to-chromium: 1.4.640 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001588 + electron-to-chromium: 1.4.679 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.2.0 + + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001579: + resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + dev: true + + /caniuse-lite@1.0.30001588: + resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==} + dev: true + + /cfb@1.2.2: + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} + engines: {node: '>=0.8'} + dependencies: + adler-32: 1.3.1 + crc-32: 1.2.2 + dev: false + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + dependencies: + restore-cursor: 2.0.0 + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + dependencies: + slice-ansi: 5.0.0 + string-width: 7.0.0 + dev: true + + /cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: true + + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-regexp@2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /codepage@1.15.0: + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} + engines: {node: '>=0.8'} + dev: false + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /commitizen@4.3.0(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} + hasBin: true + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(@types/node@20.11.16)(typescript@5.3.3) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: true + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + dev: true + + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /conventional-changelog-angular@5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-atom@2.0.8: + resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-atom@4.0.0: + resolution: {integrity: sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-cli@4.1.0: + resolution: {integrity: sha512-MscvILWZ6nWOoC+p/3Nn3D2cVLkjeQjyZPUr0bQ+vUORE/SPrkClJh8BOoMNpS4yk+zFJ5LlgXACxH6XGQoRXA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + add-stream: 1.0.0 + conventional-changelog: 5.1.0 + meow: 12.1.1 + tempfile: 5.0.0 + dev: true + + /conventional-changelog-codemirror@2.0.8: + resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-codemirror@4.0.0: + resolution: {integrity: sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-config-spec@2.1.0: + resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==} + dev: true + + /conventional-changelog-conventionalcommits@4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-core@4.2.4: + resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} + engines: {node: '>=10'} + dependencies: + add-stream: 1.0.0 + conventional-changelog-writer: 5.0.1 + conventional-commits-parser: 3.2.4 + dateformat: 3.0.3 + get-pkg-repo: 4.2.1 + git-raw-commits: 2.0.11 + git-remote-origin-url: 2.0.0 + git-semver-tags: 4.1.1 + lodash: 4.17.21 + normalize-package-data: 3.0.3 + q: 1.5.1 + read-pkg: 3.0.0 + read-pkg-up: 3.0.0 + through2: 4.0.2 + dev: true + + /conventional-changelog-core@7.0.0: + resolution: {integrity: sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==} + engines: {node: '>=16'} + dependencies: + '@hutson/parse-repository-url': 5.0.0 + add-stream: 1.0.0 + conventional-changelog-writer: 7.0.1 + conventional-commits-parser: 5.0.0 + git-raw-commits: 4.0.0 + git-semver-tags: 7.0.1 + hosted-git-info: 7.0.1 + normalize-package-data: 6.0.0 + read-pkg: 8.1.0 + read-pkg-up: 10.1.0 + dev: true + + /conventional-changelog-ember@2.0.9: + resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-ember@4.0.0: + resolution: {integrity: sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-eslint@3.0.9: + resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-eslint@5.0.0: + resolution: {integrity: sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-express@2.0.6: + resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-express@4.0.0: + resolution: {integrity: sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-jquery@3.0.11: + resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-jquery@5.0.0: + resolution: {integrity: sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-jshint@2.0.9: + resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-jshint@4.0.0: + resolution: {integrity: sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-preset-loader@2.3.4: + resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} + engines: {node: '>=10'} + dev: true + + /conventional-changelog-preset-loader@4.1.0: + resolution: {integrity: sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-writer@5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + conventional-commits-filter: 2.0.7 + dateformat: 3.0.3 + handlebars: 4.7.8 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + meow: 8.1.2 + semver: 6.3.1 + split: 1.0.1 + through2: 4.0.2 + dev: true + + /conventional-changelog-writer@7.0.1: + resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + conventional-commits-filter: 4.0.0 + handlebars: 4.7.8 + json-stringify-safe: 5.0.1 + meow: 12.1.1 + semver: 7.6.0 + split2: 4.2.0 + dev: true + + /conventional-changelog@3.1.25: + resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} + engines: {node: '>=10'} + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-changelog-atom: 2.0.8 + conventional-changelog-codemirror: 2.0.8 + conventional-changelog-conventionalcommits: 4.6.3 + conventional-changelog-core: 4.2.4 + conventional-changelog-ember: 2.0.9 + conventional-changelog-eslint: 3.0.9 + conventional-changelog-express: 2.0.6 + conventional-changelog-jquery: 3.0.11 + conventional-changelog-jshint: 2.0.9 + conventional-changelog-preset-loader: 2.3.4 + dev: true + + /conventional-changelog@5.1.0: + resolution: {integrity: sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==} + engines: {node: '>=16'} + dependencies: + conventional-changelog-angular: 7.0.0 + conventional-changelog-atom: 4.0.0 + conventional-changelog-codemirror: 4.0.0 + conventional-changelog-conventionalcommits: 7.0.2 + conventional-changelog-core: 7.0.0 + conventional-changelog-ember: 4.0.0 + conventional-changelog-eslint: 5.0.0 + conventional-changelog-express: 4.0.0 + conventional-changelog-jquery: 5.0.0 + conventional-changelog-jshint: 4.0.0 + conventional-changelog-preset-loader: 4.1.0 + dev: true + + /conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + dev: true + + /conventional-commits-filter@2.0.7: + resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} + engines: {node: '>=10'} + dependencies: + lodash.ismatch: 4.4.0 + modify-values: 1.0.1 + dev: true + + /conventional-commits-filter@4.0.0: + resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} + engines: {node: '>=16'} + dev: true + + /conventional-commits-parser@3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true + + /conventional-recommended-bump@6.1.0: + resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + concat-stream: 2.0.0 + conventional-changelog-preset-loader: 2.3.4 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + git-raw-commits: 2.0.11 + git-semver-tags: 4.1.1 + meow: 8.1.2 + q: 1.5.1 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /core-js-compat@3.35.1: + resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} + dependencies: + browserslist: 4.23.0 + dev: true + + /core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + requiresBuild: true + dev: false + + /core-js@3.36.0: + resolution: {integrity: sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==} + requiresBuild: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.16)(cosmiconfig@8.3.6)(typescript@5.3.3): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + requiresBuild: true + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + dependencies: + '@types/node': 20.11.16 + cosmiconfig: 8.3.6(typescript@5.3.3) + jiti: 1.21.0 + typescript: 5.3.3 + dev: true + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + requiresBuild: true + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.3.3 + dev: true + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-functions-list@3.2.1: + resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==} + engines: {node: '>=12 || >=16'} + dev: true + + /css-property-sort-order-smacss@2.2.0: + resolution: {integrity: sha512-nXutswsivIEBOrPo/OZw2KQjFPLvtg68aovJf6Kqrm3L6FmTvvFPaeDrk83hh0+pRJGuP3PeKJwMS0E6DFipdQ==} + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /cz-conventional-changelog@3.3.0(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0(@types/node@20.11.16)(typescript@5.3.3) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.5 + optionalDependencies: + '@commitlint/load': 18.6.0(@types/node@20.11.16)(typescript@5.3.3) + transitivePeerDependencies: + - '@types/node' + - typescript + dev: true + + /cz-customizable@7.0.0: + resolution: {integrity: sha512-pQKkGSm+8SY9VY/yeJqDOla1MjrGaG7WG4EYLLEV4VNctGO7WdzdGtWEr2ydKSkrpmTs7f8fmBksg/FaTrUAyw==} + hasBin: true + dependencies: + editor: 1.0.0 + find-config: 1.0.0 + inquirer: 6.5.2 + lodash: 4.17.21 + temp: 0.9.4 + word-wrap: 1.2.5 + dev: true + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: true + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + dev: true + + /dateformat@3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.7 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + dev: true + + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: true + + /destr@2.0.2: + resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-align@1.12.4: + resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} + dev: false + + /dom-scroll-into-view@2.0.1: + resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==} + dev: false + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /dotgitignore@2.1.0: + resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + minimatch: 3.1.2 + dev: true + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /echarts@5.5.0: + resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} + dependencies: + tslib: 2.3.0 + zrender: 5.5.0 + dev: false + + /editor@1.0.0: + resolution: {integrity: sha512-SoRmbGStwNYHgKfjOrX2L0mUvp9bUVv0uPppZSOMAntEbcFtoC3MKF5b3T6HQPXKIV+QGY3xPO3JK5it5lVkuw==} + dev: true + + /electron-to-chromium@1.4.640: + resolution: {integrity: sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==} + dev: true + + /electron-to-chromium@1.4.679: + resolution: {integrity: sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==} + dev: true + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.2 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.0 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: true + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: true + + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + dev: true + + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + dev: true + + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-ast-utils@1.1.0: + resolution: {integrity: sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==} + engines: {node: '>=4'} + dependencies: + lodash.get: 4.4.2 + lodash.zip: 4.2.0 + dev: true + + /eslint-config-prettier@8.10.0(eslint@7.32.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 7.32.0 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-define-config@2.1.0: + resolution: {integrity: sha512-QUp6pM9pjKEVannNAbSJNeRuYwW3LshejfyBBpjeMGaJjaDUpVps4C6KVR8R7dWZnD3i0synmrE36znjTkJvdQ==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>=8.6.0'} + dev: true + + /eslint-formatter-pretty@4.1.0: + resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==} + engines: {node: '>=10'} + dependencies: + '@types/eslint': 7.29.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + eslint-rule-docs: 1.1.235 + log-symbols: 4.1.0 + plur: 4.0.0 + string-width: 4.2.3 + supports-hyperlinks: 2.3.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-babel@5.3.1(eslint@7.32.0): + resolution: {integrity: sha512-VsQEr6NH3dj664+EyxJwO4FCYm/00JhYb3Sk3ft8o+fpKuIfQ9TaW6uVUfvwMXHcf/lsnRIoyFPsLMyiWCSL/g==} + engines: {node: '>=4'} + peerDependencies: + eslint: '>=4.0.0' + dependencies: + eslint: 7.32.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@24.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==} + engines: {node: '>=10'} + peerDependencies: + '@typescript-eslint/eslint-plugin': '>= 4' + eslint: '>=5' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@4.9.5) + eslint: 7.32.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + dev: true + + /eslint-plugin-promise@6.1.1(eslint@7.32.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 7.32.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@7.32.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 7.32.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@7.32.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 7.32.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-plugin-unicorn@20.1.0(eslint@7.32.0): + resolution: {integrity: sha512-XQxLBJT/gnwyRR6cfYsIK1AdekQchAt5tmcsnldevGjgR2xoZsRUa5/i6e0seNHy2RoT57CkTnbVHwHF8No8LA==} + engines: {node: '>=10'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + ci-info: 2.0.0 + clean-regexp: 1.0.0 + eslint: 7.32.0 + eslint-ast-utils: 1.1.0 + eslint-template-visitor: 2.3.2(eslint@7.32.0) + eslint-utils: 2.1.0 + import-modules: 2.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + reserved-words: 0.1.2 + safe-regex: 2.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-vue@9.22.0(eslint@8.57.0): + resolution: {integrity: sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.15 + semver: 7.6.0 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + + /eslint-rule-docs@1.1.235: + resolution: {integrity: sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-template-visitor@2.3.2(eslint@7.32.0): + resolution: {integrity: sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@babel/core': 7.23.9 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.9)(eslint@7.32.0) + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + esquery: 1.5.0 + multimap: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@7.32.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@7.32.0: + resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + enquirer: 2.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.6.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.8.1 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + dev: true + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /execall@2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + dependencies: + reusify: 1.0.4 + dev: true + + /figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + dependencies: + flat-cache: 4.0.0 + dev: true + + /file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + dev: false + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-config@1.0.0: + resolution: {integrity: sha512-Z+suHH+7LSE40WfUeZPIxSxypCWvrzdVc60xAjUShZeT5eMWM0/FQUduq3HjluyfAHWvC/aOBkT1pTZktyF/jg==} + engines: {node: '>= 0.12'} + dependencies: + user-home: 2.0.0 + dev: true + + /find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + + /findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flat-cache@4.0.0: + resolution: {integrity: sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==} + engines: {node: '>=16'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 5.0.5 + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + + /follow-redirects@1.15.5(debug@4.3.4): + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4 + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /frac@1.1.2: + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} + engines: {node: '>=0.8'} + dev: false + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + /get-pkg-repo@4.2.1: + resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} + engines: {node: '>=6.9.0'} + hasBin: true + dependencies: + '@hutson/parse-repository-url': 3.0.2 + hosted-git-info: 4.1.0 + through2: 2.0.5 + yargs: 16.2.0 + dev: true + + /get-stdin@8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + dev: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /git-hooks-list@1.0.3: + resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true + + /git-remote-origin-url@2.0.0: + resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} + engines: {node: '>=4'} + dependencies: + gitconfiglocal: 1.0.0 + pify: 2.3.0 + dev: true + + /git-semver-tags@4.1.1: + resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + meow: 8.1.2 + semver: 6.3.1 + dev: true + + /git-semver-tags@7.0.1: + resolution: {integrity: sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==} + engines: {node: '>=16'} + hasBin: true + dependencies: + meow: 12.1.1 + semver: 7.6.0 + dev: true + + /gitconfiglocal@1.0.0: + resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} + dependencies: + ini: 1.3.8 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@10.0.0: + resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /gonzales-pe@4.3.0: + resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} + engines: {node: '>=0.6.0'} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 + dev: true + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /headers-polyfill@4.0.2: + resolution: {integrity: sha512-EWGTfnTqAO2L/j5HZgoM/3z82L7necsJ0pO9Tp0X1wil3PDLrkypTBRgVO2ExehEEvUycejZD3FuRaXpZZc3kw==} + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + lru-cache: 10.1.0 + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /http2-client@1.3.5: + resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} + dev: true + + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /husky@9.0.10: + resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==} + engines: {node: '>=18'} + hasBin: true + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + safer-buffer: 2.1.2 + dev: true + optional: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /import-modules@2.1.0: + resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} + engines: {node: '>=8'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + dev: true + + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /invert-kv@3.0.1: + resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} + engines: {node: '>=8'} + dev: true + + /irregular-plurals@3.5.0: + resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} + engines: {node: '>=8'} + dev: true + + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@3.0.1: + resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} + engines: {node: '>=0.10.0'} + dev: false + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + dependencies: + text-extensions: 2.4.0 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-tokens@8.0.2: + resolution: {integrity: sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /known-css-properties@0.21.0: + resolution: {integrity: sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==} + dev: true + + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + dev: true + + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + + /lcid@3.1.1: + resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} + engines: {node: '>=8'} + dependencies: + invert-kv: 3.0.1 + dev: true + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lightningcss-darwin-arm64@1.24.0: + resolution: {integrity: sha512-rTNPkEiynOu4CfGdd5ZfVOQe2gd2idfQd4EfX1l2ZUUwd+2SwSdbb7cG4rlwfnZckbzCAygm85xkpekRE5/wFw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /lightningcss-darwin-x64@1.24.0: + resolution: {integrity: sha512-4KCeF2RJjzp9xdGY8zIH68CUtptEg8uz8PfkHvsIdrP4t9t5CIgfDBhiB8AmuO75N6SofdmZexDZIKdy9vA7Ww==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /lightningcss-freebsd-x64@1.24.0: + resolution: {integrity: sha512-FJAYlek1wXuVTsncNU0C6YD41q126dXcIUm97KAccMn9C4s/JfLSqGWT2gIzAblavPFkyGG2gIADTWp3uWfN1g==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm-gnueabihf@1.24.0: + resolution: {integrity: sha512-N55K6JqzMx7C0hYUu1YmWqhkHwzEJlkQRMA6phY65noO0I1LOAvP4wBIoFWrzRE+O6zL0RmXJ2xppqyTbk3sYw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm64-gnu@1.24.0: + resolution: {integrity: sha512-MqqUB2TpYtFWeBvvf5KExDdClU3YGLW5bHKs50uKKootcvG9KoS7wYwd5UichS+W3mYLc5yXUPGD1DNWbLiYKw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm64-musl@1.24.0: + resolution: {integrity: sha512-5wn4d9tFwa5bS1ao9mLexYVJdh3nn09HNIipsII6ZF7z9ZA5J4dOEhMgKoeCl891axTGTUYd8Kxn+Hn3XUSYRQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-x64-gnu@1.24.0: + resolution: {integrity: sha512-3j5MdTh+LSDF3o6uDwRjRUgw4J+IfDCVtdkUrJvKxL79qBLUujXY7CTe5X3IQDDLKEe/3wu49r8JKgxr0MfjbQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-x64-musl@1.24.0: + resolution: {integrity: sha512-HI+rNnvaLz0o36z6Ki0gyG5igVGrJmzczxA5fznr6eFTj3cHORoR/j2q8ivMzNFR4UKJDkTWUH5LMhacwOHWBA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /lightningcss-win32-x64-msvc@1.24.0: + resolution: {integrity: sha512-oeije/t7OZ5N9vSs6amyW/34wIYoBCpE6HUlsSKcP2SR1CVgx9oKEM00GtQmtqNnYiMIfsSm7+ppMb4NLtD5vg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /lightningcss@1.24.0: + resolution: {integrity: sha512-y36QEEDVx4IM7/yIZNsZJMRREIu26WzTsauIysf5s76YeCmlSbRZS7aC97IGPuoFRnyZ5Wx43OBsQBFB5Ne7ng==} + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.24.0 + lightningcss-darwin-x64: 1.24.0 + lightningcss-freebsd-x64: 1.24.0 + lightningcss-linux-arm-gnueabihf: 1.24.0 + lightningcss-linux-arm64-gnu: 1.24.0 + lightningcss-linux-arm64-musl: 1.24.0 + lightningcss-linux-x64-gnu: 1.24.0 + lightningcss-linux-x64-musl: 1.24.0 + lightningcss-win32-x64-msvc: 1.24.0 + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lines-and-columns@2.0.4: + resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + engines: {node: '>=18.0.0'} + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.1 + wrap-ansi: 9.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.5.0 + pkg-types: 1.0.3 + dev: true + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + + /lodash.ismatch@4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + requiresBuild: true + dev: true + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true + + /lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + requiresBuild: true + dev: true + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + requiresBuild: true + dev: true + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: true + + /lodash.zip@4.2.0: + resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + dev: true + + /longest-streak@2.0.4: + resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} + dev: true + + /longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} + dependencies: + es5-ext: 0.10.62 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + dev: true + optional: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-markdown@0.6.5: + resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} + dependencies: + '@types/unist': 2.0.10 + longest-streak: 2.0.4 + mdast-util-to-string: 2.0.0 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + zwitch: 1.0.5 + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /mem@5.1.1: + resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} + engines: {node: '>=8'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: true + + /memoizee@0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.7 + dev: true + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + dev: true + + /meow@13.1.0: + resolution: {integrity: sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==} + engines: {node: '>=18'} + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + dev: true + + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mitt@2.1.0: + resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} + dev: false + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + + /mock.js@0.2.0: + resolution: {integrity: sha512-DKI8Rh/h7Mma+fg+6aD0uUvwn0QXAjKG6q3s+lTaCboCQ/kvQMBN9IXRBzgEaz4aPiYoRnKU9jVsfZp0mHpWrQ==} + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 11.1.0 + dev: true + + /modify-values@1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} + dev: true + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /msw@2.2.1(typescript@5.3.3): + resolution: {integrity: sha512-DCsZAQwan+2onEcpD86fiEnCKW4IvYzqcwDq/2TIoeNrmBqNp/mJW4wHQyxcoYrRPwgujin7wDFflqiSO1iT/w==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + peerDependencies: + typescript: '>= 4.7.x <= 5.3.x' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@bundled-es-modules/cookie': 2.0.0 + '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 3.0.0 + '@mswjs/cookies': 1.1.0 + '@mswjs/interceptors': 0.25.16 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.4 + chalk: 4.1.2 + graphql: 16.8.1 + headers-polyfill: 4.0.2 + is-node-process: 1.2.0 + outvariant: 1.4.2 + path-to-regexp: 6.2.1 + strict-event-emitter: 0.5.1 + type-fest: 4.9.0 + typescript: 5.3.3 + yargs: 17.7.2 + dev: true + + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + + /multimap@1.1.0: + resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} + dev: true + + /mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + dev: true + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /nanopop@2.4.1: + resolution: {integrity: sha512-hhtYHTaQPmclHHCWmh2EJpWQ9FCA47kj2r/vXqI0ACeMi/qR9qFYDQRSx+luami7qw1OkBR4luJqS6ADoC3FPQ==} + dev: false + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.3.0 + dev: true + optional: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: true + + /node-fetch-h2@2.3.0: + resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==} + engines: {node: 4.x || >=6.0.0} + dependencies: + http2-client: 1.3.5 + dev: true + + /node-fetch-native@1.6.1: + resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} + dev: true + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-readfiles@0.2.0: + resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} + dependencies: + es6-promise: 3.3.1 + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.1 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + is-core-module: 2.13.1 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-selector@0.2.0: + resolution: {integrity: sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nprogress@1.0.0-1: + resolution: {integrity: sha512-Gr/Km0nIMbR7hOB0fjGx7nR0oRjTy9M61dXiQL5bfTBq0cQ+hNgt6gxE062j7Bxm+L/IjNVOr41iu2hrDeuedw==} + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /num2fraction@1.2.2: + resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} + dev: true + + /nunjucks@3.2.4: + resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==} + engines: {node: '>= 6.9.0'} + hasBin: true + peerDependencies: + chokidar: ^3.3.0 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + a-sync-waterfall: 1.0.1 + asap: 2.0.6 + commander: 5.1.0 + dev: true + + /oas-kit-common@1.0.8: + resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} + dependencies: + fast-safe-stringify: 2.1.1 + dev: true + + /oas-linter@3.2.2: + resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==} + dependencies: + '@exodus/schemasafe': 1.3.0 + should: 13.2.3 + yaml: 1.10.2 + dev: true + + /oas-resolver@2.5.6: + resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==} + hasBin: true + dependencies: + node-fetch-h2: 2.3.0 + oas-kit-common: 1.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + dev: true + + /oas-schema-walker@1.1.5: + resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==} + dev: true + + /oas-validator@5.0.8: + resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==} + dependencies: + call-me-maybe: 1.0.2 + oas-kit-common: 1.0.8 + oas-linter: 3.2.2 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + reftools: 1.1.9 + should: 13.2.3 + yaml: 1.10.2 + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + dependencies: + destr: 2.0.2 + node-fetch-native: 1.6.1 + ufo: 1.3.2 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /openapi3-ts@2.0.2: + resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} + dependencies: + yaml: 1.10.2 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + dev: true + + /os-locale@5.0.0: + resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + lcid: 3.1.1 + mem: 5.1.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /outvariant@1.4.2: + resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} + dev: true + + /p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: true + + /p-is-promise@2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + dev: true + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-json@7.1.1: + resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} + engines: {node: '>=16'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 3.0.1 + lines-and-columns: 2.0.4 + type-fest: 3.13.1 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.1.0 + minipass: 7.0.4 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true + + /picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + dev: true + optional: true + + /pinia@2.1.7(typescript@5.3.3)(vue@3.4.19): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.1 + typescript: 5.3.3 + vue: 3.4.19(typescript@5.3.3) + vue-demi: 0.14.6(vue@3.4.19) + dev: false + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.5.0 + pathe: 1.1.2 + dev: true + + /plur@4.0.0: + resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} + engines: {node: '>=10'} + dependencies: + irregular-plurals: 3.5.0 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-html@0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==} + peerDependencies: + postcss: '>=5.0.0 || 5' + postcss-syntax: '>=0.36.0' + dependencies: + htmlparser2: 3.10.1 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34) + dev: true + + /postcss-html@1.6.0: + resolution: {integrity: sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.2 + js-tokens: 8.0.2 + postcss: 8.4.34 + postcss-safe-parser: 6.0.0(postcss@8.4.34) + dev: true + + /postcss-less@3.1.4: + resolution: {integrity: sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==} + engines: {node: '>=6.14.4'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-less@4.0.1: + resolution: {integrity: sha512-C92S4sHlbDpefJ2QQJjrucCcypq3+KZPstjfuvgOCNnGx0tF9h8hXgAlOIATGAxMXZXaF+nVp+/Mi8pCAWdSmw==} + engines: {node: '>=10'} + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-less@6.0.0(postcss@8.4.34): + resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==} + engines: {node: '>=12'} + peerDependencies: + postcss: ^8.3.5 || 5 + dependencies: + postcss: 8.4.34 + dev: true + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9 || 5' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@4.0.2: + resolution: {integrity: sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==} + engines: {node: '>=6.0.0'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.34): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 || 5 + dependencies: + postcss: 8.4.34 + dev: true + + /postcss-safe-parser@7.0.0(postcss@8.4.34): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 || 5 + dependencies: + postcss: 8.4.34 + dev: true + + /postcss-sass@0.4.4: + resolution: {integrity: sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==} + dependencies: + gonzales-pe: 4.3.0 + postcss: 7.0.39 + dev: true + + /postcss-scss@2.1.1: + resolution: {integrity: sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==} + engines: {node: '>=6.0.0'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-sorting@6.0.0(postcss@8.4.35): + resolution: {integrity: sha512-bYJ0vgAiGbjCBKi7B07CzsBc9eM84nLEbavUmwNp8rAa+PNyrgdH+6PpnqTtciLuUs99c4rFQQmCaYgeBQYmSQ==} + peerDependencies: + postcss: ^8.0.4 || 5 + dependencies: + lodash: 4.17.21 + postcss: 8.4.35 + dev: true + + /postcss-sorting@8.0.2(postcss@8.4.34): + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} + peerDependencies: + postcss: ^8.4.20 || 5 + dependencies: + postcss: 8.4.34 + dev: true + + /postcss-syntax@0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34): + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} + peerDependencies: + postcss: '>=5.0.0 || 5' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + dependencies: + postcss: 8.4.34 + postcss-html: 1.6.0 + postcss-less: 6.0.0(postcss@8.4.34) + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 + dev: true + + /postcss@8.4.34: + resolution: {integrity: sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier-plugin-packagejson@2.3.0(prettier@2.8.8): + resolution: {integrity: sha512-2SAPMMk1UDkqsB7DifWKcwCm6VC52JXMrzLHfbcQHJRWhRCj9zziOy+s+2XOyPBeyqFqS+A/1IKzOrxKFTo6pw==} + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + dependencies: + prettier: 2.8.8 + sort-package-json: 1.57.0 + dev: true + + /prettier-plugin-two-style-order@1.0.1(prettier@2.8.8): + resolution: {integrity: sha512-ETltO2FRR/Pxc7bsgz2XwuzWSPwafl7/v5+5Rria4S579CTas7dya+xsmbkix0q1tYQiuRjVVdfGnCKlH/aOuQ==} + peerDependencies: + prettier: '>= 2.0.0' + dependencies: + postcss: 8.4.35 + postcss-less: 4.0.1 + postcss-sorting: 6.0.0(postcss@8.4.35) + prettier: 2.8.8 + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-quick@4.0.0(prettier@3.2.5): + resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + ignore: 5.3.0 + mri: 1.2.0 + picocolors: 1.0.0 + picomatch: 3.0.1 + prettier: 3.2.5 + tslib: 2.6.2 + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + dev: true + optional: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /qiniu-js@3.4.2: + resolution: {integrity: sha512-Gu94/4adN2FnM9VpTgLsgvS3KN+2ZV9gCxlmrKICMI7VqcAwTsy3+9eBLLk8WueMYwniyg8rELjdxNf0wABUHg==} + dependencies: + '@babel/runtime-corejs2': 7.23.8 + querystring: 0.2.1 + spark-md5: 3.0.2 + dev: false + + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /querystring@0.2.1: + resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + + /read-pkg-up@10.1.0: + resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} + engines: {node: '>=16'} + dependencies: + find-up: 6.3.0 + read-pkg: 8.1.0 + type-fest: 4.9.0 + dev: true + + /read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-pkg@8.1.0: + resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} + engines: {node: '>=16'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.0 + parse-json: 7.1.1 + type-fest: 4.9.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /reftools@1.1.9: + resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.8 + dev: true + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /remark-parse@9.0.0: + resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} + dependencies: + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-stringify@9.0.1: + resolution: {integrity: sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==} + dependencies: + mdast-util-to-markdown: 0.6.5 + dev: true + + /remark@13.0.0: + resolution: {integrity: sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==} + dependencies: + remark-parse: 9.0.0 + remark-stringify: 9.0.1 + unified: 9.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /reserved-words@0.1.2: + resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} + dev: true + + /resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + dev: true + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: true + + /rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.6 + '@rollup/rollup-android-arm64': 4.9.6 + '@rollup/rollup-darwin-arm64': 4.9.6 + '@rollup/rollup-darwin-x64': 4.9.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 + '@rollup/rollup-linux-arm64-gnu': 4.9.6 + '@rollup/rollup-linux-arm64-musl': 4.9.6 + '@rollup/rollup-linux-riscv64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-musl': 4.9.6 + '@rollup/rollup-win32-arm64-msvc': 4.9.6 + '@rollup/rollup-win32-ia32-msvc': 4.9.6 + '@rollup/rollup-win32-x64-msvc': 4.9.6 + fsevents: 2.3.3 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.2: + resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.27 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + requiresBuild: true + dev: true + optional: true + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shallow-equal@1.2.1: + resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /should-equal@2.0.0: + resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} + dependencies: + should-type: 1.4.0 + dev: true + + /should-format@3.0.3: + resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} + dependencies: + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + dev: true + + /should-type-adaptors@1.1.0: + resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} + dependencies: + should-type: 1.4.0 + should-util: 1.0.1 + dev: true + + /should-type@1.4.0: + resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} + dev: true + + /should-util@1.0.1: + resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} + dev: true + + /should@13.2.3: + resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} + dependencies: + should-equal: 2.0.0 + should-format: 3.0.3 + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + should-util: 1.0.1 + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.24 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + dev: true + + /sort-package-json@1.57.0: + resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} + hasBin: true + dependencies: + detect-indent: 6.1.0 + detect-newline: 3.1.0 + git-hooks-list: 1.0.3 + globby: 10.0.0 + is-plain-obj: 2.1.0 + sort-object-keys: 1.1.3 + dev: true + + /sortablejs@1.15.2: + resolution: {integrity: sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /spark-md5@3.0.2: + resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==} + dev: false + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true + + /specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} + hasBin: true + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true + + /split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + dependencies: + through: 2.3.8 + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /ssf@0.11.2: + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} + engines: {node: '>=0.8'} + dependencies: + frac: 1.1.2 + dev: false + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /standard-version@9.5.0: + resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + chalk: 2.4.2 + conventional-changelog: 3.1.25 + conventional-changelog-config-spec: 2.1.0 + conventional-changelog-conventionalcommits: 4.6.3 + conventional-recommended-bump: 6.1.0 + detect-indent: 6.1.0 + detect-newline: 3.1.0 + dotgitignore: 2.1.0 + figures: 3.2.0 + find-up: 5.0.0 + git-semver-tags: 4.1.1 + semver: 7.6.0 + stringify-package: 1.0.1 + yargs: 16.2.0 + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-package@1.0.1: + resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} + deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json + dev: true + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: true + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /stylelint-config-css-modules@2.3.0(stylelint@13.13.1): + resolution: {integrity: sha512-nSxwaJMv9wBrTAi+O4qXubyi1AR9eB36tJpY0uaFhKgEc3fwWGUzUK1Edl8AQHAoU7wmUeKtsuYjblyRP/V7rw==} + peerDependencies: + stylelint: 11.x - 14.x + dependencies: + stylelint: 13.13.1 + dev: true + + /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.2.1): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.6.0 + stylelint: 16.2.1(typescript@5.3.3) + dev: true + + /stylelint-config-prettier@8.0.2(stylelint@13.13.1): + resolution: {integrity: sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==} + engines: {node: '>= 10', npm: '>= 5'} + hasBin: true + peerDependencies: + stylelint: '>=11.0.0' + dependencies: + stylelint: 13.13.1 + dev: true + + /stylelint-config-property-sort-order-smacss@10.0.0(stylelint@16.2.1): + resolution: {integrity: sha512-NuiTgyqD8UdYY1IpTBIodBbrWKwaib5r8sq5kGHQ52UrmT8O7Fa8ZWYGipSZw6k9tGoljl9Hng2jtH+wBTMa1Q==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + css-property-sort-order-smacss: 2.2.0 + stylelint: 16.2.1(typescript@5.3.3) + stylelint-order: 6.0.4(stylelint@16.2.1) + dev: true + + /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.1): + resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.6.0 + semver: 7.5.4 + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.2.1) + stylelint-config-recommended: 14.0.0(stylelint@16.2.1) + dev: true + + /stylelint-config-recommended@14.0.0(stylelint@16.2.1): + resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 + dependencies: + stylelint: 16.2.1(typescript@5.3.3) + dev: true + + /stylelint-config-recommended@3.0.0(stylelint@13.13.1): + resolution: {integrity: sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==} + peerDependencies: + stylelint: '>=10.1.0' + dependencies: + stylelint: 13.13.1 + dev: true + + /stylelint-config-standard@20.0.0(stylelint@13.13.1): + resolution: {integrity: sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA==} + peerDependencies: + stylelint: '>=10.1.0' + dependencies: + stylelint: 13.13.1 + stylelint-config-recommended: 3.0.0(stylelint@13.13.1) + dev: true + + /stylelint-config-standard@36.0.0(stylelint@16.2.1): + resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + dependencies: + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.2.1) + dev: true + + /stylelint-declaration-block-no-ignored-properties@2.8.0(stylelint@13.13.1): + resolution: {integrity: sha512-Ws8Cav7Y+SPN0JsV407LrnNXWOrqGjxShf+37GBtnU/C58Syve9c0+I/xpLcFOosST3ternykn3Lp77f3ITnFw==} + engines: {node: '>=6'} + peerDependencies: + stylelint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + stylelint: 13.13.1 + dev: true + + /stylelint-order@6.0.4(stylelint@16.2.1): + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + dependencies: + postcss: 8.4.34 + postcss-sorting: 8.0.2(postcss@8.4.34) + stylelint: 16.2.1(typescript@5.3.3) + dev: true + + /stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.2.1): + resolution: {integrity: sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw==} + engines: {node: '>=18.12.0'} + peerDependencies: + prettier: '>=3.0.0' + stylelint: '>=16.0.0' + dependencies: + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + stylelint: 16.2.1(typescript@5.3.3) + dev: true + + /stylelint@13.13.1: + resolution: {integrity: sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@stylelint/postcss-css-in-js': 0.37.3(postcss-syntax@0.36.2)(postcss@7.0.39) + '@stylelint/postcss-markdown': 0.36.2(postcss-syntax@0.36.2)(postcss@7.0.39) + autoprefixer: 9.8.8 + balanced-match: 2.0.0 + chalk: 4.1.2 + cosmiconfig: 7.1.0 + debug: 4.3.4 + execall: 2.0.0 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + get-stdin: 8.0.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.0 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + known-css-properties: 0.21.0 + lodash: 4.17.21 + log-symbols: 4.1.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.5 + normalize-selector: 0.2.0 + postcss: 7.0.39 + postcss-html: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39) + postcss-less: 3.1.4 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 4.0.2 + postcss-sass: 0.4.4 + postcss-scss: 2.1.1 + postcss-selector-parser: 6.0.15 + postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34) + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + slash: 3.0.0 + specificity: 0.4.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + sugarss: 2.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + v8-compile-cache: 2.4.0 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - postcss-jsx + - postcss-markdown + - supports-color + dev: true + + /stylelint@16.2.1(typescript@5.3.3): + resolution: {integrity: sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-tokenizer': 2.2.3 + '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.3.3) + css-functions-list: 3.2.1 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 8.0.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.29.0 + mathml-tag-names: 2.1.3 + meow: 13.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.34 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 7.0.0(postcss@8.4.34) + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false + + /sugarss@2.0.0: + resolution: {integrity: sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==} + dependencies: + postcss: 7.0.39 + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.8 + transitivePeerDependencies: + - supports-color + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /swagger2openapi@7.0.8: + resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} + hasBin: true + dependencies: + call-me-maybe: 1.0.2 + node-fetch: 2.7.0 + node-fetch-h2: 2.3.0 + node-readfiles: 0.2.0 + oas-kit-common: 1.0.8 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + oas-validator: 5.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + dev: true + + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + dev: true + + /temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} + dependencies: + mkdirp: 0.5.6 + rimraf: 2.6.3 + dev: true + + /tempfile@5.0.0: + resolution: {integrity: sha512-bX655WZI/F7EoTDw9JvQURqAXiPHi8o8+yFxPF2lWYyz1aHnmMRuXWqL6YB6GmeO0o4DIYWHLgGNi/X64T+X4Q==} + engines: {node: '>=14.18'} + dependencies: + temp-dir: 3.0.0 + dev: true + + /terser@5.28.1: + resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + dev: false + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /timers-ext@0.1.7: + resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + dependencies: + es5-ext: 0.10.62 + next-tick: 1.1.0 + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: true + + /tiny-pinyin@1.3.2: + resolution: {integrity: sha512-uHNGu4evFt/8eNLldazeAM1M8JrMc1jshhJJfVRARTN3yT8HEEibofeQ7QETWQ5ISBjd6fKtTVBCC/+mGS6FpA==} + dev: true + + /tinymce@6.8.3: + resolution: {integrity: sha512-3fCHKAeqT+xNwBVESf6iDbDV0VNwZNmfrkx9c/6Gz5iB8piMfaO6s7FvoiTrj1hf1gVbfyLTnz1DooI6DhgINQ==} + dev: false + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trough@1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + dev: true + + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + + /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.11.16 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true + + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} + engines: {node: '>=16'} + dev: true + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: true + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unconfig@0.3.11: + resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} + dependencies: + '@antfu/utils': 0.7.7 + defu: 6.1.4 + jiti: 1.21.0 + mlly: 1.5.0 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unified@9.2.2: + resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + dependencies: + '@types/unist': 2.0.10 + bail: 1.0.5 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 + trough: 1.0.5 + vfile: 4.2.1 + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unist-util-find-all-after@3.0.2: + resolution: {integrity: sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==} + dependencies: + unist-util-is: 4.1.0 + dev: true + + /unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: true + + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.10 + dev: true + + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unocss@0.58.5(postcss@8.4.34)(vite@5.1.4): + resolution: {integrity: sha512-0g4P6jLgRRNnhscxw7nQ9RHGrKJ1UPPiHPet+YT3TXUcmy4mTiYgo9+kGQf5bjyrzsELJ10cT6Qz2y6g9Tls4g==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.58.5 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.58.5(vite@5.1.4) + '@unocss/cli': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/extractor-arbitrary-variants': 0.58.5 + '@unocss/postcss': 0.58.5(postcss@8.4.34) + '@unocss/preset-attributify': 0.58.5 + '@unocss/preset-icons': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/preset-tagify': 0.58.5 + '@unocss/preset-typography': 0.58.5 + '@unocss/preset-uno': 0.58.5 + '@unocss/preset-web-fonts': 0.58.5 + '@unocss/preset-wind': 0.58.5 + '@unocss/reset': 0.58.5 + '@unocss/transformer-attributify-jsx': 0.58.5 + '@unocss/transformer-attributify-jsx-babel': 0.58.5 + '@unocss/transformer-compile-class': 0.58.5 + '@unocss/transformer-directives': 0.58.5 + '@unocss/transformer-variant-group': 0.58.5 + '@unocss/vite': 0.58.5(vite@5.1.4) + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unplugin-vue-components@0.26.0(vue@3.4.19): + resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@rollup/pluginutils': 5.1.0 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.3.2 + local-pkg: 0.4.3 + magic-string: 0.30.5 + minimatch: 9.0.3 + resolve: 1.22.8 + unplugin: 1.6.0 + vue: 3.4.19(typescript@5.3.3) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin@1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} + dependencies: + acorn: 8.11.3 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /user-home@2.0.0: + resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /vfile-message@2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position: 2.0.3 + dev: true + + /vfile@4.2.1: + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + dependencies: + '@types/unist': 2.0.10 + is-buffer: 2.0.5 + unist-util-stringify-position: 2.0.3 + vfile-message: 2.0.4 + dev: true + + /vite-plugin-checker@0.6.4(eslint@8.57.0)(stylelint@16.2.1)(typescript@5.3.3)(vite@5.1.4)(vue-tsc@1.8.27): + resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} + engines: {node: '>=14.16'} + peerDependencies: + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: '>=1.3.9' + peerDependenciesMeta: + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + dependencies: + '@babel/code-frame': 7.23.5 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.5.3 + commander: 8.3.0 + eslint: 8.57.0 + fast-glob: 3.3.2 + fs-extra: 11.2.0 + npm-run-path: 4.0.1 + semver: 7.5.4 + strip-ansi: 6.0.1 + stylelint: 16.2.1(typescript@5.3.3) + tiny-invariant: 1.3.1 + typescript: 5.3.3 + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + vue-tsc: 1.8.27(typescript@5.3.3) + dev: true + + /vite-plugin-mkcert@1.17.3(vite@5.1.4): + resolution: {integrity: sha512-C8iLz4Su4kEyJb1GdlGIMfKkYMqfH5qvhqVP1x/hrc+1mo9GOzqU88mevvP5epgoqawkhVpcQVQ+HTFXsRuC0g==} + engines: {node: '>=v16.7.0'} + peerDependencies: + vite: '>=3' + dependencies: + '@octokit/rest': 20.0.2 + axios: 1.6.7(debug@4.3.4) + debug: 4.3.4 + picocolors: 1.0.0 + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@5.1.4): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite@5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.24.0)(terser@5.28.1): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.16 + esbuild: 0.19.11 + less: 4.2.0 + lightningcss: 1.24.0 + postcss: 8.4.35 + rollup: 4.9.6 + terser: 5.28.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + dev: true + + /vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + dependencies: + minimatch: 3.1.2 + semver: 7.5.4 + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + dev: true + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: true + + /vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + dev: true + + /vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: true + + /vue-demi@0.13.11(vue@3.4.19): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-demi@0.14.6(vue@3.4.19): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-demi@0.14.7(vue@3.4.19): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-echarts@6.6.9(echarts@5.5.0)(vue@3.4.19): + resolution: {integrity: sha512-mojIq3ZvsjabeVmDthhAUDV8Kgf2Rr/X4lV4da7gEFd1fP05gcSJ0j7wa7HQkW5LlFmF2gdCJ8p4Chas6NNIQQ==} + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.5 + '@vue/runtime-core': ^3.0.0 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + '@vue/runtime-core': + optional: true + dependencies: + echarts: 5.5.0 + resize-detector: 0.3.0 + vue: 3.4.19(typescript@5.3.3) + vue-demi: 0.13.11(vue@3.4.19) + dev: false + + /vue-eslint-parser@9.4.2(eslint@8.57.0): + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-i18n@9.9.1(vue@3.4.19): + resolution: {integrity: sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.9.1 + '@intlify/shared': 9.9.1 + '@vue/devtools-api': 6.5.1 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.19): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-resize@2.0.0-alpha.1(vue@3.4.19): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-router@4.3.0(vue@3.4.19): + resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) + semver: 7.5.4 + typescript: 5.3.3 + dev: true + + /vue-types@3.0.2(vue@3.4.19): + resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==} + engines: {node: '>=10.15.0'} + peerDependencies: + vue: ^3.0.0 + dependencies: + is-plain-object: 3.0.1 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-types@5.1.1(vue@3.4.19): + resolution: {integrity: sha512-FMY/JCLWePXgGIcMDqYdJsQm1G0CDxEjq6W0+tZMJZlX37q/61eSGSIa/XFRwa9T7kkKXuxxl94/2kgxyWQqKw==} + engines: {node: '>=14.0.0'} + peerDependencies: + vue: ^2.0.0 || ^3.0.0 + peerDependenciesMeta: + vue: + optional: true + dependencies: + is-plain-object: 5.0.0 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.19): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.19(typescript@5.3.3) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.19) + vue-resize: 2.0.0-alpha.1(vue@3.4.19) + dev: false + + /vue@3.4.19(typescript@5.3.3): + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19(vue@3.4.19) + '@vue/shared': 3.4.19 + typescript: 5.3.3 + + /warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wmf@1.0.2: + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} + engines: {node: '>=0.8'} + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /word@0.3.0: + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} + engines: {node: '>=0.8'} + dev: false + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + + /xlsx@0.18.5: + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} + engines: {node: '>=0.8'} + hasBin: true + dependencies: + adler-32: 1.3.1 + cfb: 1.2.2 + codepage: 1.15.0 + crc-32: 1.2.2 + ssf: 0.11.2 + wmf: 1.0.2 + word: 0.3.0 + dev: false + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zrender@5.5.0: + resolution: {integrity: sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==} + dependencies: + tslib: 2.3.0 + dev: false + + /zwitch@1.0.5: + resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} + dev: true diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..201d98d --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,13 @@ +/** + * @type {import('prettier').Config} + */ +module.exports = { + printWidth: 100, + semi: true, + vueIndentScriptAndStyle: true, + singleQuote: true, + trailingComma: 'all', + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + endOfLine: 'auto', +}; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..be997aca2bd041e5cea27e63ce4306a18e11598a GIT binary patch literal 4286 zcmeHLS#J|p6rTPAp8CvVDO>0wC~eh1MWHWMTae(TNJSN;Qd=OU5CTL{9w-QbSOY>4 zC?yJ16`>1WnqXoa0#1ynvr&15l9%`)Z#IWMEVgM9Dt_A z4Nqq7lJPY)hUW4@IQOrDZOeSvwk|;B&!3{*U5Z4)=waslV6L8mjj((-M|9iPh3L3b zio55&g>~~h)Rydl8XL(tFtZvAJ|>=@C9&BD`wwpjtVBXXtLrlCIg3zz>MM+ddo$`o z??Vq9d$J|$QT#;`PIuESl;tjk>%b>?*4ZpQdyxV2ep2%%?AzX)fNkV&v>guk;rwY8 zuIIgn9>3f8Xj<0^O@-fb64viuPl=rlpFueO?&Dw5`dona+gGNwE}3(DI09eMjwH6X za0{AB4<);=C|CHT&p+oxtLqXTIW8o7=RakrE8Z>E<-dO%1?THjT6CZbcaD7_aqhWa zC4CxhZ<6ri(Fn?SzAJs>yO@WBrs09@jEKX%^Et%pnPkU2;JK^V_mO0W<2(VsL&jHA z;MWp9w*>tH9t-~7_7`&A57>fN$bI8NQCy-{ONKe;ID% ze~5wBI{mgd2OFHQQSRz^=Cc_;MEH)~*{C_akz#Wj!+lRto+rm&=WhfW>V1OBL#ruA z-$AJ3K1GJ&L)uY!P}Y_I!si$UyjH}A!ougel6;DpgY6>=?>c~2V7jxkM z>)5pLxeoO;dz1WG^KCg2RDF2sEimyfo;rk_5=#k%Yg0w+R;`0TMAKK574|63usp20t<$o&u(fRXy zM?>A@?|RxRWTC_TJ1=?(+c*e#Nh^MQTk^ro-;6(5{&Su=_pPKg_5rw#rbiz4qVJKH zbYgkZ2iA6uG4}!L0nat@OxJ&PWC-q)8$@n%eskyA6|BFBvK>prz9G`pG9_%?i^1+T zva=@X!)T6iEgY|hIzE5HI?G3KMRWPsSxozpEYzIYL^Ku6rH-#Nj}3)TUGO!nvxR86Q8X44 zqs14yW{qxhm56wb&ckR7bbPiN3AU1se=g>`tIk2wz+Ppx1sh!`r`nduE2LqrDHRX^mf`eOHO7 U=QI7c$ILK!Y1RDyfd6~^9JKKWU;qFB literal 0 HcmV?d00001 diff --git a/public/iconfont.js b/public/iconfont.js new file mode 100644 index 0000000..37aff3d --- /dev/null +++ b/public/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_2184398='',function(l){var a=(a=document.getElementsByTagName("script"))[a.length-1],h=a.getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var v,o,i,m,z,t=function(a,h){h.parentNode.insertBefore(a,h)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}v=function(){var a,h=document.createElement("div");h.innerHTML=l._iconfont_svg_string_2184398,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(a=document.body).firstChild?t(h,a.firstChild):a.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(v,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),v()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=v,m=l.document,z=!1,s(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,n())})}function n(){z||(z=!0,i())}function s(){try{m.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}n()}}(window); diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..c322889 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/api/backend/api/account.ts b/src/api/backend/api/account.ts new file mode 100644 index 0000000..5912682 --- /dev/null +++ b/src/api/backend/api/account.ts @@ -0,0 +1,59 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 账户登出 GET /api/account/logout */ +export async function accountLogout(options?: RequestOptions) { + return request('/api/account/logout', { + method: 'GET', + ...(options || {}), + }); +} + +/** 获取菜单列表 GET /api/account/menus */ +export async function accountMenu(options?: RequestOptions) { + return request('/api/account/menus', { + method: 'GET', + ...(options || {}), + }); +} + +/** 更改账户密码 POST /api/account/password */ +export async function accountPassword(body: API.PasswordUpdateDto, options?: RequestOptions) { + return request('/api/account/password', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 获取权限列表 GET /api/account/permissions */ +export async function accountPermissions(options?: RequestOptions) { + return request('/api/account/permissions', { + method: 'GET', + ...(options || {}), + }); +} + +/** 获取账户资料 GET /api/account/profile */ +export async function accountProfile(options?: RequestOptions) { + return request('/api/account/profile', { + method: 'GET', + ...(options || {}), + }); +} + +/** 更改账户资料 PUT /api/account/update */ +export async function accountUpdate(body: API.AccountUpdateDto, options?: RequestOptions) { + return request('/api/account/update', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/auth.ts b/src/api/backend/api/auth.ts new file mode 100644 index 0000000..8dafcbf --- /dev/null +++ b/src/api/backend/api/auth.ts @@ -0,0 +1,27 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 登录 POST /api/auth/login */ +export async function authLogin(body: API.LoginDto, options?: RequestOptions) { + return request('/api/auth/login', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 注册 POST /api/auth/register */ +export async function authRegister(body: API.RegisterDto, options?: RequestOptions) { + return request('/api/auth/register', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/authEmail.ts b/src/api/backend/api/authEmail.ts new file mode 100644 index 0000000..3a7c9b9 --- /dev/null +++ b/src/api/backend/api/authEmail.ts @@ -0,0 +1,15 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 发送邮箱验证码 POST /api/auth/email/send */ +export async function emailSendEmailCode(body: API.SendEmailCodeDto, options?: RequestOptions) { + return request('/api/auth/email/send', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/businessTodo.ts b/src/api/backend/api/businessTodo.ts new file mode 100644 index 0000000..d0f5ea9 --- /dev/null +++ b/src/api/backend/api/businessTodo.ts @@ -0,0 +1,82 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取Todo列表 GET /api/todos */ +export async function todoList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoListParams, + options?: RequestOptions, +) { + return request('/api/todos', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 创建Todo POST /api/todos */ +export async function todoCreate(body: API.TodoDto, options?: RequestOptions) { + return request('/api/todos', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取Todo详情 GET /api/todos/${param0} */ +export async function todoInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新Todo PUT /api/todos/${param0} */ +export async function todoUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoUpdateParams, + body: API.TodoUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除Todo DELETE /api/todos/${param0} */ +export async function todoDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/src/api/backend/api/captcha.ts b/src/api/backend/api/captcha.ts new file mode 100644 index 0000000..f3b115d --- /dev/null +++ b/src/api/backend/api/captcha.ts @@ -0,0 +1,22 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取登录图片验证码 GET /api/auth/captcha/img */ +export async function captchaCaptchaByImg( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.CaptchaCaptchaByImgParams, + options?: RequestOptions, +) { + return request('/api/auth/captcha/img', { + method: 'GET', + params: { + // width has a default value: 100 + width: '100', + // height has a default value: 50 + height: '50', + ...params, + }, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/health.ts b/src/api/backend/api/health.ts new file mode 100644 index 0000000..25325ac --- /dev/null +++ b/src/api/backend/api/health.ts @@ -0,0 +1,68 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 此处后端没有提供注释 GET /api/health/database */ +export async function healthCheckDatabase(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/database', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/disk */ +export async function healthCheckDisk(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/disk', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/memory-heap */ +export async function healthCheckMemoryHeap(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/memory-heap', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/memory-rss */ +export async function healthCheckMemoryRss(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/memory-rss', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/network */ +export async function healthCheckNetwork(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/network', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/index.ts b/src/api/backend/api/index.ts new file mode 100644 index 0000000..4f4b7e1 --- /dev/null +++ b/src/api/backend/api/index.ts @@ -0,0 +1,52 @@ +// @ts-ignore +/* eslint-disable */ +// API 更新时间: +// API 唯一标识: +import * as auth from './auth'; +import * as account from './account'; +import * as captcha from './captcha'; +import * as authEmail from './authEmail'; +import * as systemUser from './systemUser'; +import * as systemRole from './systemRole'; +import * as systemMenu from './systemMenu'; +import * as systemParamConfig from './systemParamConfig'; +import * as systemLog from './systemLog'; +import * as systemDept from './systemDept'; +import * as systemDictType from './systemDictType'; +import * as systemDictItem from './systemDictItem'; +import * as systemTask from './systemTask'; +import * as systemOnline from './systemOnline'; +import * as systemServe from './systemServe'; +import * as toolsStorage from './toolsStorage'; +import * as systemEmail from './systemEmail'; +import * as toolsUpload from './toolsUpload'; +import * as health from './health'; +import * as systemSse from './systemSse'; +import * as netDiskManage from './netDiskManage'; +import * as netDiskOverview from './netDiskOverview'; +import * as businessTodo from './businessTodo'; +export default { + auth, + account, + captcha, + authEmail, + systemUser, + systemRole, + systemMenu, + systemParamConfig, + systemLog, + systemDept, + systemDictType, + systemDictItem, + systemTask, + systemOnline, + systemServe, + toolsStorage, + systemEmail, + toolsUpload, + health, + systemSse, + netDiskManage, + netDiskOverview, + businessTodo, +}; diff --git a/src/api/backend/api/netDiskManage.ts b/src/api/backend/api/netDiskManage.ts new file mode 100644 index 0000000..948e197 --- /dev/null +++ b/src/api/backend/api/netDiskManage.ts @@ -0,0 +1,128 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 复制文件或文件夹,支持批量 POST /api/netdisk/manage/copy */ +export async function netDiskManageCopy(body: API.FileOpDto, options?: RequestOptions) { + return request('/api/netdisk/manage/copy', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 剪切文件或文件夹,支持批量 POST /api/netdisk/manage/cut */ +export async function netDiskManageCut(body: API.FileOpDto, options?: RequestOptions) { + return request('/api/netdisk/manage/cut', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 删除文件或文件夹 POST /api/netdisk/manage/delete */ +export async function netDiskManageDelete(body: API.DeleteDto, options?: RequestOptions) { + return request('/api/netdisk/manage/delete', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取下载链接,不支持下载文件夹 GET /api/netdisk/manage/download */ +export async function netDiskManageDownload( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageDownloadParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/download', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 获取文件详细信息 GET /api/netdisk/manage/info */ +export async function netDiskManageInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageInfoParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/info', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 获取文件列表 GET /api/netdisk/manage/list */ +export async function netDiskManageList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageListParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 添加文件备注 POST /api/netdisk/manage/mark */ +export async function netDiskManageMark(body: API.MarkFileDto, options?: RequestOptions) { + return request('/api/netdisk/manage/mark', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 创建文件夹,支持多级 POST /api/netdisk/manage/mkdir */ +export async function netDiskManageMkdir(body: API.MKDirDto, options?: RequestOptions) { + return request('/api/netdisk/manage/mkdir', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 重命名文件或文件夹 POST /api/netdisk/manage/rename */ +export async function netDiskManageRename(body: API.RenameDto, options?: RequestOptions) { + return request('/api/netdisk/manage/rename', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 获取上传Token,无Token前端无法上传 GET /api/netdisk/manage/token */ +export async function netDiskManageToken(options?: RequestOptions) { + return request('/api/netdisk/manage/token', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/netDiskOverview.ts b/src/api/backend/api/netDiskOverview.ts new file mode 100644 index 0000000..d52a7c8 --- /dev/null +++ b/src/api/backend/api/netDiskOverview.ts @@ -0,0 +1,11 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取网盘空间数据统计 GET /api/netdisk/overview/desc */ +export async function netDiskOverviewSpace(options?: RequestOptions) { + return request('/api/netdisk/overview/desc', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemDept.ts b/src/api/backend/api/systemDept.ts new file mode 100644 index 0000000..ecd636c --- /dev/null +++ b/src/api/backend/api/systemDept.ts @@ -0,0 +1,77 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取部门列表 GET /api/system/depts */ +export async function deptList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptListParams, + options?: RequestOptions, +) { + return request('/api/system/depts', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 创建部门 POST /api/system/depts */ +export async function deptCreate(body: API.DeptDto, options?: RequestOptions) { + return request('/api/system/depts', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询部门信息 GET /api/system/depts/${param0} */ +export async function deptInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新部门 PUT /api/system/depts/${param0} */ +export async function deptUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptUpdateParams, + body: API.DeptDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除部门 DELETE /api/system/depts/${param0} */ +export async function deptDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/src/api/backend/api/systemDictItem.ts b/src/api/backend/api/systemDictItem.ts new file mode 100644 index 0000000..76ad096 --- /dev/null +++ b/src/api/backend/api/systemDictItem.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取字典项列表 GET /api/system/dict-item */ +export async function dictItemList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.DictItemEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/dict-item', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增字典项 POST /api/system/dict-item */ +export async function dictItemCreate(body: API.DictItemDto, options?: RequestOptions) { + return request('/api/system/dict-item', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询字典项信息 GET /api/system/dict-item/${param0} */ +export async function dictItemInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新字典项 POST /api/system/dict-item/${param0} */ +export async function dictItemUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemUpdateParams, + body: API.DictItemDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的字典项 DELETE /api/system/dict-item/${param0} */ +export async function dictItemDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/src/api/backend/api/systemDictType.ts b/src/api/backend/api/systemDictType.ts new file mode 100644 index 0000000..47c22bd --- /dev/null +++ b/src/api/backend/api/systemDictType.ts @@ -0,0 +1,99 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取字典类型列表 GET /api/system/dict-type */ +export async function dictTypeList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.DictTypeEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/dict-type', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增字典类型 POST /api/system/dict-type */ +export async function dictTypeCreate(body: API.DictTypeDto, options?: RequestOptions) { + return request('/api/system/dict-type', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询字典类型信息 GET /api/system/dict-type/${param0} */ +export async function dictTypeInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新字典类型 POST /api/system/dict-type/${param0} */ +export async function dictTypeUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeUpdateParams, + body: API.DictTypeDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的字典类型 DELETE /api/system/dict-type/${param0} */ +export async function dictTypeDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 一次性获取所有的字典类型(不分页) GET /api/system/dict-type/select-options */ +export async function dictTypeGetAll(options?: RequestOptions) { + return request('/api/system/dict-type/select-options', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemEmail.ts b/src/api/backend/api/systemEmail.ts new file mode 100644 index 0000000..10a5946 --- /dev/null +++ b/src/api/backend/api/systemEmail.ts @@ -0,0 +1,15 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 发送邮件 POST /api/tools/email/send */ +export async function emailSend(body: API.EmailSendDto, options?: RequestOptions) { + return request('/api/tools/email/send', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemLog.ts b/src/api/backend/api/systemLog.ts new file mode 100644 index 0000000..b02c82d --- /dev/null +++ b/src/api/backend/api/systemLog.ts @@ -0,0 +1,90 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 查询验证码日志列表 GET /api/system/log/captcha/list */ +export async function logCaptchaList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogCaptchaListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.CaptchaLogEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/captcha/list', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 查询登录日志列表 GET /api/system/log/login/list */ +export async function logLoginLogPage( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogLoginLogPageParams, + options?: RequestOptions, +) { + return request<{ + items?: API.LoginLogInfo[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/login/list', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 查询任务日志列表 GET /api/system/log/task/list */ +export async function logTaskList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogTaskListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.TaskLogEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/task/list', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemMenu.ts b/src/api/backend/api/systemMenu.ts new file mode 100644 index 0000000..64b2bed --- /dev/null +++ b/src/api/backend/api/systemMenu.ts @@ -0,0 +1,95 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取所有菜单列表 GET /api/system/menus */ +export async function menuList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuListParams, + options?: RequestOptions, +) { + return request('/api/system/menus', { + method: 'GET', + params: { + // extOpenMode has a default value: 1 + extOpenMode: '1', + // show has a default value: 1 + show: '1', + + // keepAlive has a default value: 1 + keepAlive: '1', + // status has a default value: 1 + status: '1', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增菜单或权限 POST /api/system/menus */ +export async function menuCreate(body: API.MenuDto, options?: RequestOptions) { + return request('/api/system/menus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取菜单或权限信息 GET /api/system/menus/${param0} */ +export async function menuInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新菜单或权限 PUT /api/system/menus/${param0} */ +export async function menuUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuUpdateParams, + body: API.MenuUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除菜单或权限 DELETE /api/system/menus/${param0} */ +export async function menuDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取后端定义的所有权限集 GET /api/system/menus/permissions */ +export async function menuGetPermissions(options?: RequestOptions) { + return request('/api/system/menus/permissions', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemOnline.ts b/src/api/backend/api/systemOnline.ts new file mode 100644 index 0000000..a29d77e --- /dev/null +++ b/src/api/backend/api/systemOnline.ts @@ -0,0 +1,23 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 下线指定在线用户 POST /api/system/online/kick */ +export async function onlineKick(body: API.KickDto, options?: RequestOptions) { + return request('/api/system/online/kick', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 查询当前在线用户 GET /api/system/online/list */ +export async function onlineList(options?: RequestOptions) { + return request('/api/system/online/list', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemParamConfig.ts b/src/api/backend/api/systemParamConfig.ts new file mode 100644 index 0000000..579e209 --- /dev/null +++ b/src/api/backend/api/systemParamConfig.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取参数配置列表 GET /api/system/param-config */ +export async function paramConfigList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.ParamConfigEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/param-config', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增参数配置 POST /api/system/param-config */ +export async function paramConfigCreate(body: API.ParamConfigDto, options?: RequestOptions) { + return request('/api/system/param-config', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询参数配置信息 GET /api/system/param-config/${param0} */ +export async function paramConfigInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新参数配置 POST /api/system/param-config/${param0} */ +export async function paramConfigUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigUpdateParams, + body: API.ParamConfigDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的参数配置 DELETE /api/system/param-config/${param0} */ +export async function paramConfigDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/src/api/backend/api/systemRole.ts b/src/api/backend/api/systemRole.ts new file mode 100644 index 0000000..b4e1ff4 --- /dev/null +++ b/src/api/backend/api/systemRole.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取角色列表 GET /api/system/roles */ +export async function roleList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.RoleEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/roles', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增角色 POST /api/system/roles */ +export async function roleCreate(body: API.RoleDto, options?: RequestOptions) { + return request('/api/system/roles', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取角色信息 GET /api/system/roles/${param0} */ +export async function roleInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新角色 PUT /api/system/roles/${param0} */ +export async function roleUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleUpdateParams, + body: API.RoleUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除角色 DELETE /api/system/roles/${param0} */ +export async function roleDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/src/api/backend/api/systemServe.ts b/src/api/backend/api/systemServe.ts new file mode 100644 index 0000000..eec48dd --- /dev/null +++ b/src/api/backend/api/systemServe.ts @@ -0,0 +1,11 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取服务器运行信息 GET /api/system/serve/stat */ +export async function serveStat(options?: RequestOptions) { + return request('/api/system/serve/stat', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemSse.ts b/src/api/backend/api/systemSse.ts new file mode 100644 index 0000000..722faf7 --- /dev/null +++ b/src/api/backend/api/systemSse.ts @@ -0,0 +1,17 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 此处后端没有提供注释 GET /api/sse/${param0} */ +export async function sseSse( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.SseSseParams, + options?: RequestOptions, +) { + const { uid: param0, ...queryParams } = params; + return request>(`/api/sse/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemTask.ts b/src/api/backend/api/systemTask.ts new file mode 100644 index 0000000..80a5611 --- /dev/null +++ b/src/api/backend/api/systemTask.ts @@ -0,0 +1,136 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取任务列表 GET /api/system/tasks */ +export async function taskList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.TaskEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/tasks', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + // limit has a default value: -1 + limit: '-1', + + ...params, + }, + ...(options || {}), + }); +} + +/** 添加任务 POST /api/system/tasks */ +export async function taskCreate(body: API.TaskDto, options?: RequestOptions) { + return request('/api/system/tasks', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 查询任务详细信息 GET /api/system/tasks/${param0} */ +export async function taskInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新任务 PUT /api/system/tasks/${param0} */ +export async function taskUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskUpdateParams, + body: API.TaskUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除任务 DELETE /api/system/tasks/${param0} */ +export async function taskDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 手动执行一次任务 PUT /api/system/tasks/${param0}/once */ +export async function taskOnce( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskOnceParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/once`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 启动任务 PUT /api/system/tasks/${param0}/start */ +export async function taskStart( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskStartParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/start`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 停止任务 PUT /api/system/tasks/${param0}/stop */ +export async function taskStop( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskStopParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/stop`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/systemUser.ts b/src/api/backend/api/systemUser.ts new file mode 100644 index 0000000..96eb203 --- /dev/null +++ b/src/api/backend/api/systemUser.ts @@ -0,0 +1,110 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取用户列表 GET /api/system/users */ +export async function userList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.UserEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/users', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} + +/** 新增用户 POST /api/system/users */ +export async function userCreate(body: API.UserDto, options?: RequestOptions) { + return request('/api/system/users', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询用户 GET /api/system/users/${param0} */ +export async function userRead( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserReadParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新用户 PUT /api/system/users/${param0} */ +export async function userUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserUpdateParams, + body: API.UserUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除用户 DELETE /api/system/users/${param0} */ +export async function userDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 更改用户密码 POST /api/system/users/${param0}/password */ +export async function userPassword( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserPasswordParams, + body: API.UserPasswordDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}/password`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/toolsStorage.ts b/src/api/backend/api/toolsStorage.ts new file mode 100644 index 0000000..c22e97b --- /dev/null +++ b/src/api/backend/api/toolsStorage.ts @@ -0,0 +1,44 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 删除文件 POST /api/tools/storage/delete */ +export async function storageDelete(body: API.StorageDeleteDto, options?: RequestOptions) { + return request('/api/tools/storage/delete', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取本地存储列表 GET /api/tools/storage/list */ +export async function storageList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.StorageListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.StorageInfo[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/tools/storage/list', { + method: 'GET', + params: { + // page has a default value: 1 + page: '1', + // pageSize has a default value: 10 + pageSize: '10', + + ...params, + }, + ...(options || {}), + }); +} diff --git a/src/api/backend/api/toolsUpload.ts b/src/api/backend/api/toolsUpload.ts new file mode 100644 index 0000000..950d49e --- /dev/null +++ b/src/api/backend/api/toolsUpload.ts @@ -0,0 +1,35 @@ +// @ts-ignore +/* eslint-disable */ +import { request, type RequestOptions } from '@/utils/request'; + +/** 上传 POST /api/tools/upload */ +export async function uploadUpload(body: API.FileUploadDto, file?: File, options?: RequestOptions) { + const formData = new FormData(); + + if (file) { + formData.append('file', file); + } + + Object.keys(body).forEach((ele) => { + const item = (body as any)[ele]; + + if (item !== undefined && item !== null) { + if (typeof item === 'object' && !(item instanceof File)) { + if (item instanceof Array) { + item.forEach((f) => formData.append(ele, f || '')); + } else { + formData.append(ele, JSON.stringify(item)); + } + } else { + formData.append(ele, item); + } + } + }); + + return request('/api/tools/upload', { + method: 'POST', + data: formData, + requestType: 'form', + ...(options || {}), + }); +} diff --git a/src/api/backend/api/typings.d.ts b/src/api/backend/api/typings.d.ts new file mode 100644 index 0000000..aaf506d --- /dev/null +++ b/src/api/backend/api/typings.d.ts @@ -0,0 +1,1271 @@ +declare namespace API { + type AccessTokenEntity = { + id: string; + value: string; + expired_at: string; + created_at: string; + refreshToken: RefreshTokenEntity; + user: UserEntity; + }; + + type AccountInfo = { + /** 用户名 */ + username: string; + /** 昵称 */ + nickname: string; + /** 邮箱 */ + email: string; + /** 手机号 */ + phone: string; + /** 备注 */ + remark: string; + /** 头像 */ + avatar: string; + }; + + type AccountMenus = { + meta: MenuMeta; + id: number; + path: string; + name: string; + component: string; + }; + + type AccountUpdateDto = { + /** 用户呢称 */ + nickname: string; + /** 用户邮箱 */ + email: string; + /** 用户QQ */ + qq: string; + /** 用户手机号 */ + phone: string; + /** 用户头像 */ + avatar: string; + /** 用户备注 */ + remark: string; + }; + + type Buffer = {}; + + type CaptchaCaptchaByImgParams = { + /** 验证码宽度 */ + width?: number; + /** 验证码宽度 */ + height?: number; + }; + + type CaptchaLogEntity = { + /** 用户ID */ + userId: number; + /** 账号 */ + account: string; + /** 验证码 */ + code: string; + /** 验证码提供方 */ + provider: Record; + id: number; + createdAt: string; + updatedAt: string; + }; + + type CommonEntity = { + id: number; + createdAt: string; + updatedAt: string; + }; + + type CoreLoad = { + /** 当前CPU资源消耗 */ + rawLoad: number; + /** 当前空闲CPU资源 */ + rawLoadIdle: number; + }; + + type Cpu = { + /** 制造商 */ + manufacturer: string; + /** 品牌 */ + brand: string; + /** 物理核心数 */ + physicalCores: number; + /** 型号 */ + model: string; + /** 速度 in GHz */ + speed: number; + /** CPU资源消耗 原始滴答 */ + rawCurrentLoad: number; + /** 空闲CPU资源 原始滴答 */ + rawCurrentLoadIdle: number; + /** cpu资源消耗 */ + coresLoad: CoreLoad[]; + }; + + type DeleteDto = { + /** 需要操作的文件或文件夹 */ + files: FileOpItem[]; + /** 所在目录 */ + path: string; + }; + + type DeptDeleteParams = { + id: number; + }; + + type DeptDto = { + /** 部门名称 */ + name: string; + /** 父级部门id */ + parentId: number; + /** 排序编号 */ + orderNo?: number; + }; + + type DeptEntity = { + /** 部门名称 */ + name: string; + /** 排序 */ + orderNo: number; + children: DeptEntity[]; + parent?: DeptEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DeptInfoParams = { + id: number; + }; + + type DeptListParams = { + /** 部门名称 */ + name?: string; + }; + + type DeptUpdateParams = { + id: number; + }; + + type DictItemDeleteParams = { + id: number; + }; + + type DictItemDto = { + /** 创建者 */ + creator?: string; + /** 更新者 */ + updater?: string; + /** 字典项键名 */ + label?: string; + /** 字典项值 */ + value?: string; + /** 状态 */ + status?: number; + /** 备注 */ + remark?: string; + /** 字典类型 ID */ + typeId: number; + id?: number; + createdAt?: string; + updatedAt?: string; + type?: DictTypeEntity; + orderNo?: number; + }; + + type DictItemEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 字典项键名 */ + label: string; + /** 字典项值 */ + value: string; + /** 状态 */ + status: number; + /** 备注 */ + remark: string; + type: DictTypeEntity; + orderNo: number; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DictItemInfoParams = { + id: number; + }; + + type DictItemListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 字典类型 ID */ + typeId: number; + /** 字典项键名 */ + label?: string; + /** 字典项值 */ + value?: string; + _t?: number; + }; + + type DictItemUpdateParams = { + id: number; + }; + + type DictTypeDeleteParams = { + id: number; + }; + + type DictTypeDto = { + /** 创建者 */ + creator?: string; + /** 更新者 */ + updater?: string; + /** 字典类型名称 */ + name?: string; + /** 字典类型code */ + code?: string; + /** 状态 */ + status?: number; + /** 备注 */ + remark?: string; + id?: number; + createdAt?: string; + updatedAt?: string; + }; + + type DictTypeEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 字典名称 */ + name: string; + /** 字典类型 */ + code: string; + /** 状态 */ + status: number; + /** 备注 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DictTypeInfoParams = { + id: number; + }; + + type DictTypeListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 字典类型名称 */ + name: string; + /** 字典类型code */ + code: string; + _t?: number; + }; + + type DictTypeUpdateParams = { + id: number; + }; + + type Disk = { + /** 磁盘空间大小 (bytes) */ + size: number; + /** 已使用磁盘空间 (bytes) */ + used: number; + /** 可用磁盘空间 (bytes) */ + available: number; + }; + + type EmailSendDto = { + /** 收件人邮箱 */ + to: string; + /** 标题 */ + subject: string; + /** 正文 */ + content: string; + }; + + type FileOpDto = { + /** 需要操作的文件或文件夹 */ + files: FileOpItem[]; + /** 操作前的目录 */ + originPath: string; + /** 操作后的目录 */ + toPath: string; + }; + + type FileOpItem = { + /** 文件类型 */ + type: 'file' | 'dir'; + /** 文件名称 */ + name: string; + }; + + type FileUploadDto = { + /** 文件 */ + file: Buffer; + }; + + type FlowInfo = { + /** 当月的X号 */ + times: number[]; + /** 对应天数的耗费流量 */ + datas: number[]; + }; + + type ImageCaptcha = { + /** base64格式的svg图片 */ + img: string; + /** 验证码对应的唯一ID */ + id: string; + }; + + type KickDto = { + /** 需要下线的角色ID */ + id: number; + }; + + type LogCaptchaListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 验证码 */ + code?: string; + /** 发送时间 */ + time?: string[]; + _t?: number; + }; + + type LoginDto = { + /** 手机号/邮箱 */ + username: string; + /** 密码 */ + password: string; + /** 验证码标识 */ + captchaId: string; + /** 用户输入的验证码 */ + verifyCode: string; + }; + + type LoginLogInfo = { + /** 日志编号 */ + id: number; + /** 登录ip */ + ip: string; + /** 登录地址 */ + address: string; + /** 系统 */ + os: string; + /** 浏览器 */ + browser: string; + /** 登录用户名 */ + username: string; + /** 登录时间 */ + time: string; + }; + + type LoginToken = { + /** JWT身份Token */ + token: string; + }; + + type LogLoginLogPageParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 登录IP */ + ip?: string; + /** 登录地点 */ + address?: string; + /** 登录时间 */ + time?: string[]; + _t?: number; + }; + + type LogTaskListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 登录IP */ + ip?: string; + /** 登录时间 */ + time?: string[]; + _t?: number; + }; + + type MarkFileDto = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + /** 备注信息 */ + mark: string; + }; + + type Memory = { + /** total memory in bytes */ + total: number; + /** 可用内存 */ + available: number; + }; + + type MenuDeleteParams = { + id: number; + }; + + type MenuDto = { + /** 菜单类型 */ + type: 0 | 1 | 2; + /** 父级菜单 */ + parentId: number; + /** 菜单或权限名称 */ + name: string; + /** 排序 */ + orderNo: number; + /** 前端路由地址 */ + path: string; + /** 是否外链 */ + isExt: boolean; + /** 外链打开方式 */ + extOpenMode: 1 | 2; + /** 菜单是否显示 */ + show: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive: 0 | 1; + /** 状态 */ + status: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuEntity = { + parentId: number; + name: string; + path: string; + permission: string; + type: number; + icon: string; + orderNo: number; + component: string; + isExt: boolean; + extOpenMode: number; + keepAlive: number; + show: number; + activeMenu: string; + status: number; + roles: RoleEntity[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type MenuInfoParams = { + id: number; + }; + + type MenuItemInfo = { + children: MenuItemInfo[]; + parentId: number; + name: string; + path: string; + permission: string; + type: number; + icon: string; + orderNo: number; + component: string; + isExt: boolean; + extOpenMode: number; + keepAlive: number; + show: number; + activeMenu: string; + status: number; + roles: RoleEntity[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type MenuListParams = { + /** 菜单类型 */ + type?: 0 | 1 | 2; + /** 父级菜单 */ + parentId?: number; + /** 菜单或权限名称 */ + name?: string; + /** 排序 */ + orderNo?: number; + /** 前端路由地址 */ + path?: string; + /** 是否外链 */ + isExt?: boolean; + /** 外链打开方式 */ + extOpenMode?: 1 | 2; + /** 菜单是否显示 */ + show?: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive?: 0 | 1; + /** 状态 */ + status?: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission?: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuMeta = { + title: string; + permission?: string; + type?: number; + icon?: string; + orderNo?: number; + component?: string; + isExt?: boolean; + extOpenMode?: number; + keepAlive?: number; + show?: number; + activeMenu?: string; + status?: number; + }; + + type MenuUpdateDto = { + /** 菜单类型 */ + type?: 0 | 1 | 2; + /** 父级菜单 */ + parentId?: number; + /** 菜单或权限名称 */ + name?: string; + /** 排序 */ + orderNo?: number; + /** 前端路由地址 */ + path?: string; + /** 是否外链 */ + isExt?: boolean; + /** 外链打开方式 */ + extOpenMode?: 1 | 2; + /** 菜单是否显示 */ + show?: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive?: 0 | 1; + /** 状态 */ + status?: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission?: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuUpdateParams = { + id: number; + }; + + type MKDirDto = { + /** 文件夹名称 */ + dirName: string; + /** 所属路径 */ + path: string; + }; + + type NetDiskManageDownloadParams = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + }; + + type NetDiskManageInfoParams = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + }; + + type NetDiskManageListParams = { + /** 分页标识 */ + marker: string; + /** 当前路径 */ + path: string; + /** 搜索关键字 */ + key?: string; + }; + + type OnlineUserInfo = { + /** 最近的一条登录日志ID */ + id: number; + /** 登录IP */ + ip: string; + /** 登录地点 */ + address: string; + /** 用户名 */ + username: string; + /** 是否当前 */ + isCurrent: boolean; + /** 系统 */ + os: string; + /** 浏览器 */ + browser: string; + /** 是否禁用 */ + disable: boolean; + }; + + type OverviewSpaceInfo = { + /** 当前使用容量 */ + spaceSize: number; + /** 当前文件数量 */ + fileSize: number; + /** 当天使用流量 */ + flowSize: number; + /** 当天请求次数 */ + hitSize: number; + /** 流量趋势,从当月1号开始计算 */ + flowTrend: FlowInfo; + /** 容量趋势,从当月1号开始计算 */ + sizeTrend: SpaceInfo; + }; + + type Pagination = {}; + + type ParamConfigDeleteParams = { + id: number; + }; + + type ParamConfigDto = { + /** 参数名称 */ + name: string; + /** 参数键名 */ + key: string; + /** 参数值 */ + value: string; + /** 备注 */ + remark?: string; + }; + + type ParamConfigEntity = { + /** 配置名 */ + name: string; + /** 配置键名 */ + key: string; + /** 配置值 */ + value: string; + /** 配置描述 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type ParamConfigInfoParams = { + id: number; + }; + + type ParamConfigListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 参数名称 */ + name: string; + _t?: number; + }; + + type ParamConfigUpdateParams = { + id: number; + }; + + type PasswordUpdateDto = { + /** 旧密码 */ + oldPassword: string; + /** 新密码 */ + newPassword: string; + }; + + type RefreshTokenEntity = { + id: string; + value: string; + expired_at: string; + created_at: string; + accessToken: AccessTokenEntity; + }; + + type RegisterDto = { + /** 账号 */ + username: string; + /** 密码 */ + password: string; + /** 语言 */ + lang: string; + }; + + type RenameDto = { + /** 文件类型 */ + type: string; + /** 更改的名称 */ + toName: string; + /** 原来的名称 */ + name: string; + /** 路径 */ + path: string; + }; + + type ResOp = { + data: Record; + code: number; + message: string; + }; + + type RoleDeleteParams = { + id: number; + }; + + type RoleDto = { + /** 角色名称 */ + name: string; + /** 角色值 */ + value: string; + /** 角色备注 */ + remark?: string; + /** 状态 */ + status: 0 | 1; + /** 关联菜单、权限编号 */ + menuIds?: number[]; + }; + + type RoleEntity = { + /** 角色名 */ + name: string; + /** 角色标识 */ + value: string; + /** 角色描述 */ + remark: string; + /** 状态:1启用,0禁用 */ + status: number; + /** 是否默认用户 */ + default: boolean; + id: number; + createdAt: string; + updatedAt: string; + }; + + type RoleInfo = { + /** 角色名 */ + name: string; + /** 角色标识 */ + value: string; + /** 角色描述 */ + remark: string; + /** 状态:1启用,0禁用 */ + status: number; + /** 是否默认用户 */ + default: boolean; + menuIds: number[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type RoleInfoParams = { + id: number; + }; + + type RoleListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + _t?: number; + }; + + type RoleUpdateDto = { + /** 角色名称 */ + name?: string; + /** 角色值 */ + value?: string; + /** 角色备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + /** 关联菜单、权限编号 */ + menuIds?: number[]; + }; + + type RoleUpdateParams = { + id: number; + }; + + type Runtime = { + /** 系统 */ + os: string; + /** 服务器架构 */ + arch: string; + /** Node版本 */ + nodeVersion: string; + /** Npm版本 */ + npmVersion: string; + }; + + type SendEmailCodeDto = { + /** 邮箱 */ + email: string; + }; + + type ServeStatInfo = { + /** 运行环境 */ + runtime: Runtime; + /** CPU信息 */ + cpu: Cpu; + /** 磁盘信息 */ + disk: Disk; + /** 内存信息 */ + memory: Memory; + }; + + type SFileInfo = { + /** 文件id */ + id: string; + /** 文件类型 */ + type: 'file' | 'dir'; + /** 文件名称 */ + name: string; + /** 存入时间 */ + putTime: string; + /** 文件大小, byte单位 */ + fsize: string; + /** 文件的mime-type */ + mimeType: string; + /** 所属目录 */ + belongTo: string; + }; + + type SFileInfoDetail = { + /** 文件大小,int64类型,单位为字节(Byte) */ + fsize: number; + /** 文件HASH值 */ + hash: string; + /** 文件MIME类型,string类型 */ + mimeType: string; + /** 文件存储类型,2 表示归档存储,1 表示低频存储,0表示普通存储。 */ + type: number; + /** 文件上传时间 */ + putTime: string; + /** 文件md5值 */ + md5: string; + /** 上传人 */ + uploader: string; + /** 文件备注 */ + mark: string; + }; + + type SFileList = { + /** 文件列表 */ + list: SFileInfo[]; + /** 分页标志,空则代表加载完毕 */ + marker: string; + }; + + type SpaceInfo = { + /** 当月的X号 */ + times: number[]; + /** 对应天数的容量, byte单位 */ + datas: number[]; + }; + + type SseSseParams = { + uid: number; + }; + + type StorageDeleteDto = { + /** 需要删除的文件ID列表 */ + ids: number[]; + }; + + type StorageInfo = { + /** 文件ID */ + id: number; + /** 文件名 */ + name: string; + /** 文件扩展名 */ + extName: string; + /** 文件路径 */ + path: string; + /** 文件类型 */ + type: string; + /** 大小 */ + size: string; + /** 上传时间 */ + createdAt: string; + /** 上传者 */ + username: string; + }; + + type StorageListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 文件名 */ + name: string; + /** 文件后缀 */ + extName: string; + /** 文件类型 */ + type: string; + /** 大小 */ + size: string; + /** 上传时间 */ + time: string[]; + /** 上传者 */ + username: string; + _t?: number; + }; + + type String = {}; + + type TaskDeleteParams = { + id: number; + }; + + type TaskDto = { + /** 任务名称 */ + name: string; + /** 调用的服务 */ + service: string; + /** 任务类别:cron | interval */ + type: 0 | 1; + /** 任务状态 */ + status: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + }; + + type TaskEntity = { + /** 任务名 */ + name: string; + /** 任务标识 */ + service: string; + /** 任务类型 0cron 1间隔 */ + type: number; + /** 任务状态 0禁用 1启用 */ + status: number; + /** 开始时间 */ + startTime: string; + /** 结束时间 */ + endTime: string; + /** 间隔时间 */ + limit: number; + /** cron表达式 */ + cron: string; + /** 执行次数 */ + every: number; + /** 任务参数 */ + data: string; + /** 任务配置 */ + jobOpts: string; + /** 任务描述 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TaskInfoParams = { + id: number; + }; + + type TaskListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 任务名称 */ + name?: string; + /** 调用的服务 */ + service?: string; + /** 任务类别:cron | interval */ + type?: 0 | 1; + /** 任务状态 */ + status?: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron?: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + _t?: number; + }; + + type TaskLogEntity = { + /** 任务状态:0失败,1成功 */ + status: number; + /** 任务日志信息 */ + detail: string; + /** 任务耗时 */ + consumeTime: number; + task: TaskEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TaskOnceParams = { + id: number; + }; + + type TaskStartParams = { + id: number; + }; + + type TaskStopParams = { + id: number; + }; + + type TaskUpdateDto = { + /** 任务名称 */ + name?: string; + /** 调用的服务 */ + service?: string; + /** 任务类别:cron | interval */ + type?: 0 | 1; + /** 任务状态 */ + status?: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron?: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + }; + + type TaskUpdateParams = { + id: number; + }; + + type TodoDeleteParams = { + id: number; + }; + + type TodoDto = { + /** 名称 */ + value: string; + }; + + type TodoEntity = { + /** todo */ + value: string; + /** todo */ + status: boolean; + user: UserEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TodoInfoParams = { + id: number; + }; + + type TodoListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 名称 */ + value: string; + _t?: number; + }; + + type TodoUpdateDto = { + /** 名称 */ + value?: string; + }; + + type TodoUpdateParams = { + id: number; + }; + + type TreeResult = { + id: number; + parentId: number; + children: string[]; + }; + + type UploadToken = { + /** 上传token */ + token: string; + }; + + type UserDeleteParams = { + id: string | number; + }; + + type UserDto = { + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username: string; + /** 登录密码 */ + password: string; + /** 归属角色 */ + roleIds: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname: string; + /** 邮箱 */ + email: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status: 0 | 1; + }; + + type UserEntity = { + username: string; + password: string; + psalt: string; + nickname: string; + avatar: string; + qq: string; + email: string; + phone: string; + remark: string; + status: number; + roles: RoleEntity[]; + dept: DeptEntity; + accessTokens: AccessTokenEntity[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type UserListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username?: string; + /** 登录密码 */ + password?: string; + /** 归属角色 */ + roleIds?: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname?: string; + /** 邮箱 */ + email?: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + _t?: number; + }; + + type UserPasswordDto = { + /** 更改后的密码 */ + password: string; + }; + + type UserPasswordParams = { + id: number; + }; + + type UserReadParams = { + id: number; + }; + + type UserUpdateDto = { + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username?: string; + /** 登录密码 */ + password?: string; + /** 归属角色 */ + roleIds?: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname?: string; + /** 邮箱 */ + email?: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + }; + + type UserUpdateParams = { + id: number; + }; +} diff --git a/src/api/demo/hero.ts b/src/api/demo/hero.ts new file mode 100644 index 0000000..ccd9d58 --- /dev/null +++ b/src/api/demo/hero.ts @@ -0,0 +1,30 @@ +import { request } from '@/utils/request'; + +/** + * @description 获取王者荣耀英雄列表 + */ +export function getWzryHeroList(query: API.PageParams) { + return request('/demo/wzry/hero_list', { + method: 'get', + params: query, + }); +} + +/** + * @description 获取英雄联盟英雄列表 + */ +export function getLolHeroList(query: API.PageParams) { + return request('/demo/lol/hero_list', { + method: 'get', + params: query, + }); +} + +/** + * @description 获取英雄联盟英雄列表 + */ +export function getLolHeroInfo({ id }) { + return request(`/demo/lol/hero_info/${id}`, { + method: 'get', + }); +} diff --git a/src/api/demo/select.ts b/src/api/demo/select.ts new file mode 100644 index 0000000..2d3f840 --- /dev/null +++ b/src/api/demo/select.ts @@ -0,0 +1,13 @@ +import { request } from '@/utils/request'; + +interface DemoOptionsItem { + name: string; + id: string; +} + +export async function optionsListApi(params?: Recordable) { + return request('/select/getDemoOptions', { + method: 'GET', + params, + }); +} diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..56ab413 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,5 @@ +import Api from './backend/api'; + +export { Api }; + +export default Api; diff --git a/src/api/typings.d.ts b/src/api/typings.d.ts new file mode 100644 index 0000000..49b7c3f --- /dev/null +++ b/src/api/typings.d.ts @@ -0,0 +1,36 @@ +// @ts-ignore +/* eslint-disable */ + +declare namespace API { + /** 全局通过表格查询返回结果 */ + type TableListResult = { + items?: T; + meta?: PaginationResult; + }; + + /** 全局通用表格分页返回数据结构 */ + type PaginationResult = { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + + /** 全局通用表格分页请求参数 */ + type PageParams = { + page?: number; + pageSize?: number; + } & { + [P in keyof T]?: T[P]; + }; + + type ErrorResponse = { + /** 业务约定的错误码 */ + errorCode: string; + /** 业务上的错误信息 */ + errorMessage?: string; + /** 业务上的请求是否成功 */ + success?: boolean; + }; +} diff --git a/src/assets/404.gif b/src/assets/404.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd6e0d9433421b3f29d0ec0c40f755e354728000 GIT binary patch literal 164227 zcmeFZWmH>j*Dkt}AW4u?O0nV^CJJ??B{WLN%@&ckY+J4b9iZvx<3D_n2&|&Z&h4vq*>(t`hn@MF%=w~&6z}y zqP(U8LV`?U5=a3N2|;mT9wtG40Z~4FVLkx~UI8K0^+%YW=^qEn^=Qs!7AS2+rGJcd zeI?Ce>FVl;;^T97cSpJlAsw7wUAL8x;NutM6BOjVuEFc#Y42*{!E5ir`p+H|&0S2L ztsGsg9PF9?>e1w-!)sS*mg|}ReF=7s|LWG>1^Kt-AWa?Y_&iJ;`2>*se=X^s6*V;e z->cf${j0W%tG4-n&G&!o*yV|*qdA|pxr@VVXH)a*>a2ea<%m*nHaBr~aDL+8VEfOz zsAcKk>fmDO;K-z)@Yh`vL5eUTG)zpb?Efm}`dd2<4U~$#i>ryfskw@xG|P2QNGmHd zl!SnSh`fT5khrj-kbuB_QF#SHMF}|}5d{S$1u-QFrGK_nbTEBwXKwHM&$ed&)mHdF zw*3ndc8=F0E1El7xtW_OIXl=f{cY(etN%O~f&bXwKiZo8=ebjScm6 zwKdgMmG3Ib%Sua%iwX^&K2DM^%sxR|Jju#lhtKOd5p=PoxFf|G-tjg^I&iIIVx?hY*t zH5KJ;id*D2$!?I65EH>+P(lKHJO~&B0L+(o_z-{*-~q0Wzw8o#kIUhVHnYmIEUUEL z>2%~7cePvas66mKz+rP7m3cl>P=r9bpJ-F`m$<6F(|e{Ih=<+t0+IKfs3OzHH{*M1 zNSYT8#i>kGz8+lsvLgxoiE{v;T3$iHA@1Jj2sA+YIy5#eUJg!49+`?JH%-XO&OzFw zq!l`o2IiKPXNMP6`MFlq)dy8pH~V86+Bh3h@(M9LZkB{V|mw?>p%0QGnHXw(N zY&W=islbdV0OY7VIe`tGo`3qyBN!|l*}U&WXQjlfYz|e%m9^I%upwc0O*Q>Crzq4@ z#lt2lO08awWy`u9o2}j|nWUEw5k(CPKhQ4p2^Y=eUg3HoE>>#&cJg>Tui`~-8UNPn zN2)cJk34wVl+EUv*ko!+PH))jl|SpAd#mQQpHBSd-0<`cfbPdywvGJ=nb{Zb0TGKf zmd}*84MiVi;W5z&=@U99k{;VWlQYjsR(Un{^|^??nQCea=}2(#?rgota{6I%ywPw8+ZNrUMfmMG0Dd(DLv)qSymlC zNkBb{VvN(m=<|z{9U~(T;om9Mdz_2t%lBXAd@1~t7IFT>t(dN z$fY8eJ=W>1%33TESv4o*QXGQ`(HSmTkBT$hk5xNg6uiMO9Rr2vi6YE&o)&p`!!{ISv$d06>ay_BeL5+FPHCjZk_G$V&!#>`CD3bO89yR zguEzwWysR4D{mi!AbYmm?qI#CzsPpGN090BhRm{jvl(z~d?85ES4J#Q$t)yZ^MPLY z>%pMVhGT7v*v9bEfYi@2{x-Rl94B{Cg^UybL=KIkDUjuyE1Y!Th21;jUj4-}opT6%CyY^G5hl}1ZwL%9# zMy|{F@BO!;`yP9$_6~n`+T91eVcjvhe|}!PpuOkUIc|sxem0y9G^}+n@H+Tlcj%`G z24%M!2A$x>03I;_BIq+$2zt&05lgB3-LgS{+ZYWZ#-fSP5g?f3b1=_E$8C_YI$dP$ zH&QG;oJJ8uwwMa44`zlW@Pc>)9}<`#dRg@B!NQS@_|Cebw+MzqeACes#p3r_^#pvi zD{f2AuXK`%$Ep!Gvy4LlQJjDtsVyEq>$pb>y~zF!aAqw_`+ZXo-1jKpr7%Ffm4cA$ zuK{^0&M>Y~4=Osr!d(Mb7&mm4@6Fd>3X zB=^V+(L=ZWP{0{i`{dRr$M|XKBU_&*x&)&|_XoJNlWT-@rfjY9$hoH#+0i*#s$0S; zdegT>H9)BQMKU&CQ|~}e3utazfx}Va-kL6jv+7tiLU)bWp1Ok8KCWK>?bbp~ts;um zvYkdxl>73HWah$kjR%;|=T8AY7P9hhh6;59nHh% z$fb0gY|KHVydSWI*6+aePxTdFsDY>V%d3$HJNv?908-tEPc?Jb;SvA0u17i~w`?mv zg%g1?uH1}pDQk8wVv^A-J+dIGlpGMb?EG<>dmve}>`QzbnO3A2{#R)R>pjPhXB=nl zN7C~y#fN&6@6S582Oaip)d=X;54wQ;3Lr`?XbLIb&A)koE>{bjC3Wl~L&~Y+H$OSp z&HFRAbXpu z&V2$J!aE$bo66p1cl4hX$=cV7W~q-}s-_YW=m_>8yv>;dbw9}L)!wB0rcDr$3TMeE z0u_0!bLr>2$M7K2zj_BjdoIJ@n`7T@@!(Vbq;90h5XxqC0>S>YK-A39;e^se(-z5- z<&HSvf(Ygo1dYm#|)bu^7x~5>u4l9 z#?JE2PckM3W-qF@d2nN6@V9-p#&iSa*X3Wq_50nAp20Q2DKrWoj3)-fTE0aU{sB@5$EFHtjC(<5xetF&*)v&r1y;=_LN zC3CBZF%TgVmz%@NK1d~fFm4FUMlAm5X5?J%)&4a{#dJCIP!g!P_m&#CcNO8F{zK09 z_ij4l`q!$CQ4`?pVZ`HK{d~B~4cx(LfY0yl*S;G!h5me)#^JUte1k%KalD6buQs$I zUs3)3@&=eePjH~U9-w)coC!Cz%&4e|Jlt+?py@2V$(zA@&-@@*-~J}Q6GDJQ3&1z_ zKYiux-|xe+sl}%Ih9~9ihX+o8r8lV+@Oqul{oWUAiJZWz(}2e}1MhJL%{&Vv7YiJG5XAK=NE{t>y6R2W9rVWC$E?}u z^gNjSRj?SD|84ProQ`iUyeM;zO=iw8MaEeKRq;rNX)w{@AhB=k^;hMst5pUc!eXN^RF+ zNqR)!`>AyH(&CE4Lqu+}^Nr{bCsf*h2 z2)i+%Cbi;u7XY2=3J1=Fv-!n*uZsaL+)-?AsQ59bh;S1>3{t@pp8D3AHAWPOU72~i zi4ddoj2%jj9UF+fACHcbi-q2b6V>IT6Mr`L1;hapASfm0ZsFqz^A6?5*Zw&jf@UQ8GOV_w`$><~;$eCDCz z`R412H#{e?MevScD#Dn{!`m{^c_o$)o#gHu?N*aSKau2po^;wI?YsqcRbfwnCOV(^ zI*TWj4q%Y)A+ljfdQd8lOJ5LK5Uw}{YMMO%AQ_=T8*7y^(u8sDP2^_6SY9SOOr~bh zMC3ddrF{;$QJSa#OAVSugV4_Shk+!Psa=J^me1oQYLc!HaqGqDKYP+OY0_&;qkANL z`$~C>B>XhF=&>ysBU}2BGzodBl+!Ai8|Py0R3HRo39~hs-@;;LN+Hj!;$p(6ZAz2Z ztX#wEvTDua(!=iTU1qJ*q)8dajfX|u56hOm6vL@MhtNIGKD*2Y!o8EGv$-ZxRyNZg zIAz1i-q7TT>svq;+2c2e! zE}vH#cWa*i29Oq{$Kh`(lV(be2Qo@ToX*^ZsHW%yQ!ZCi$$4_x$r6o1sFCJEcL;z54IKUF_NJ&qe#iN&@vtf~~y?`N1LmMP&K%&uOU*B|ssl(geNIWHGP?N;axY z9-WpUr0`Ji|DUPartv)m0qPC=1Qw^!n38BI*_uewDMNHvKp`Z zb;G4xX~NBA<$b8K_PKJMC%pC642BXB@2@HvUg>s*^NewB#v> zSm&z*yqnXj{8eNusQ9i6AGE|>DWy=kUiPl`zPY&zPuG2UvSA9t+0Y}}s?;xFmim%8 zZNtqU??mq#?9rB}^j7`WtHfP_mqg`-IP8}>3Pk$#oBa*h6RMunRFV9wnY6?&P+=cb zp<^JbMU;bX>{z%9a&o5EGM3B8S93I!CFwxw5a}g4)f|4cRUany}?u;WLbU%yQzx^dj7|YKzC|1y4V?FHM_0qRDt+<7#)-VDiD;G(E;V z-R)I6#_Gjun-{TmJB_a>6B%in=nfn2S~basG>Mls@eedFTJr1KNWQkQpP{f{t9pn`G|JlEr@tFWH~wCR z_;9C6!%g>)wj&AE;rqDbvs&rQU9q{gj*z(y^OKIn7bSsT^~OI`ue~U}n{J}gFSOm( z89&!aw*HLhZr6L&E;5dnM-g2?WnDPfStoR*t8crNpTi){#;KIZ7+k>%Yj1hh|MbQ$ z2cit)UXkv7oo-l?wsA!F2R92uJs3l~834~*{Mj+Ze zkf+}76)^9gNR{Y}yq8#f&tLuiB{81aFR+DozYL}yS>10N`91*k-kiAK>07@`#d|mJ z0cTrp*NXl(BLk?#eqLa}-y0G*0uJ^b6u}JMtsab&f<#wuD`$LnWE`}$uzO7 zKEYu;@jY^aJ!fKOWP)vRVw!l8m1%NJeUim^awu|=A!qXauhEhAv9riACi+np>8WtN zsn6b1h&>S9-sEw`)Yp+I#P2C#=_yf?ab69u1h3f9uVHBe(R=TPlo756MSelgnRThRWfsGpKc2E_7jqKdd++K=kBNN_D|0YKIsmBGRXYIq48PL z?(>}Br`X-kLxG>2GZBuXgRj4X+}{p*c6{;w_Jx(VU;uxH0sX=uZG`1qgAsq`HlY6H zVi%QasWHAJHOoLYJ0|5HBn?pF%|MJ*@wDo+DrOn@=d3bg4|bF@I-qUf8D1?l;QIC2PPW&j^l#XGod=TKp;iOXjftY%UJYdWyY z&vpzon`^dz1aQZ7R8EpLK>lChM$?$mMlU!*!{w zmBW5IO2-YqtPRU789y0rbk?R#<*NE0%8;=YOx9+^7~*a8#u%6&nPF4aa8tu+Gn;fP zHJS^T{%3t>d8;sMBlpiOI2q_2=@$1qTWRMy+-0ZEex1m%6Uw~P#<007#C>#gvw@T? zhGDl|W@8E19nRVqU|=&^bpL3$=X1WxYrpsTPs^Jz{Xrf=vk&3pYtZCd zH9m(#j7Q`#2OaYi%GE2kvacCqw+cy_gxNt{+U%pAB(8j2X{f-a9ihI^oJKLm25%_Gf&$Kki_m3e4m z1QOr-VU&Rh1eQwu%@q%~O>%57OLFXElwgJBd($d=WafhxX&M z^?E_>>>n1+Md@h?P*{Y=TSt<+ddnrG8!%8LzXqUb8HMhYIc@+=K~bd$0~{KbTGc4X zMH){Y+tg`85fmQM^_~@88s5;~$w1oEMlsSkSX4J%H8znjG?T&bJ-v0lu)C^nHGv_z z60^0vba1R(^6|uf{OlZk*+lshJu`bnSRIXhhDTJ^vi^{nJ{Ure{H6n!l@EJ`aIOs% zi0ap%lXRweMU<(``@;~2PyM=fEfiogV3BBkls3X6Ac4>CIjt=6nE&?aNL+5_Xzl}T zdp#}+t~g>)Qmc#VL-~&?>ZKOBjv|v|`Fb%-n{Wh>U9E?SEi|QMnJduQtGByyv(Xo^ zV4rwrBZi&hakaMS*dHpbd^w63OXuW|y7$(YB_81#AEjqh@>a(aK=_U8Aw~mXnQ%e6?)N zj@BPLGj%o#V;ybh2aCNCj1N28FHbh7%ZE@CwargPg|3SkOHEQhisSuTemib|Hl zc^aXH0my#DN~G}T&t8s_ z$}g_u+5QL4*vfSiR(?`MybQWa8#8F8UbxB3Mviucqgm)E6P-WodEMuZV1;8;*h%-? zNA1&7QW2Hg)U5{|h2bpsbhsEi{R0Hmq2@0DC_FGK+L*!HhWvR^39 zloFf)NAGgnc`bS8>f7>^Hjt*!u_|QEYo#5p*<@L}8N4x7!kPQ>so>L>)9;KbZ^9iZ zc+$(=2UW>leU7N9mwMm$`#6c@xwp$#1YnW;Dzn||#@4CxIp1O`K;ZDm=HgHt79M-Z zv*uA@R+|{5lqKipViA^N;(GQgb#ZgLK&{+xw6)>?Pn;=JFGizN*|C(U+v17l&E*LGzvIkuB}#nV(m&|F7BxKtMZi^Xlb+aWHCDNQ z&^YWq$JT1R76aa@1D3W)Nw)uqcQ$jZ`zol9Uzkql{L(}j_7;?n@)KUB^-}FN)arkbfexg`?@ZqCaiMmNGVMY zx2h`?x&IkGf^iwy!ixzKW^P&lL1dUh`bxZB)P>PVv{76gP#(0iG1cOFv{nm8J z1ELe~<6X%W!4$Mf>CN&0hwSdxcs6032yRk_xU&9b&sQ=ZRI8zfryytlZ9 zYs-@~abv5$;M#IO-iLsDGbfPJdNVhaqii!TQgnMWAKMMvDoA*l_sYeC<>tTnX>lMb*z@XI%-RU4 zo)-+S_8L7?mHBo6gxM&|X=Mtm$^7FUTCMADp;T8}Psp?JYtc8wBNEG(=F#<@# zld`f?Vhz(Xvx_24Q>_b%-vuBs?f^w)gGY6UJBYlnvD1Kovc&@w-!<^CI?oQE92{3? zaP)7R_>3~`_X5>@nHTBq_4~B2##J5pZESs)tu!iq@0hXs!`J1Ld1QUm_T}2<)%%~t z4?$qnZ}m65MF|#i075D~8{M!B#bEeul#9pYXX>bP)Jwe7fjng+#=AIYDbMhi_d(Bu+XqGr0Pn z;vBe9+~s`g3%#cGxTjN=79@Q~TC2pSta7I{Ujx`-R4N-)dvlAxhJyqK&qx(a?#RC%;s zTG(9}?e=zGRgTZ$R-(zo)fT$FvZ;)=?x6ELnV zC|AFQzeD7-Z1@BOI}ik6n;NQ#?&DL*9{P1!Jk`JTlcx?2VEBFkX|B_TW=?~tjt zhjx0BF>St~T3B)kmn)CO;zvCJTo~>}XbIoZ@Rh|*8}m;n56M5!IG|O)sr;ZKh#Von zdeY_m_+sR$QO^Vs>JehFRtrC)dPU?c%&I12*YnK?p#ome`qrU5Z;sOln`Kp(4qXgr zr>~pNY9{ociX@VEYvQW!fPPL<;5nmJb&vMPeTpJOwn7tc^mxues%2dm-c{vX(3?EY zLvI<7kx3H8pH#Q)x)*c~;xoO;l_WtkR`nimk8~=HQBW=5pKu-i_JWO7$x6e&l;^f^ zMsIXV!)DvEo$ z@CzRgdKL-M$$K+%g8#cht`(QdgjPy74oG;_tn)EieOO^(%N7F=S27#Z^E2BLV}rhy zVw}luf$$8QX(+GBJo{o1>Zr_05S;^NufPL6#K_a$#^6cO1(Irz_1&hA#e*xeFc6&e z-4qs3oOmopVKoTmuFL`JSE%Ec>4I?~L9uu+G8&o(Iq17nmZ3ry$#)Vl=+JjJ4X1ui zl0To|hm6D$yw+c&ckt++B6h@ZmH=DF;@}jyMer{n5E&6H9WV0e7EdzaiqUlkD4LKXxAm1(>_qnPgYUSycx*wvy-eoTukEtVxI(+W}js7l$8O(|Wbojm-p2=$}%l8Ng{vFfKXy&q+|qh&fx z!=Ea>ev})Nl zC?R{vp+xq?_0}tA&p=X`F+PTk_hYq(`ucO;S>DQWp0_XbH? zWge+f-|pbz?g<2T^qE#b-xOuPA9;lQFhtWf`cYB`I|NL8`j*Dj^I-1yP>ZPI|3onQr>+xSj4CXkx%PO zCLpMAVu`Y=Vu1qXM{FQmmTeMwTx;Tpo`2wT;{5(7VNcJ&P4ZV`&&f49QwL5swTR@^ z=!MIsS!LbS6=n-Ig}7Cp1k>pivOkVNmAsHsky50v)m1lGDN*py*;Q<)8ENe3+g{N! zcWKd9roEpDY4POaYQ}%2v-q46!S%ycw-~?e$-033ZgZqrW5QEAG8c)HSx?3bFHP}> z6PD$L55Ee%WfdX%T=u40=8>11?No!o!u)9ZbM$D3uRkfnb`v$w7^Yx-2)amsU>^S_}tJT5v-> zZ*dj=APr*{BV$k;Ij)YggmwrtO&)4fk?a^@SM({G2%m&l_Ieu-RlB=veY-lg3{Fga2!c>e@JBqq zY$#urhS6>);FI;GVF}Un+Hy?nXq$)rDlZogp_l%({6vSE>bGL*lC)}!gNRF<81N$b zooQffks)24haSgwq>^kyL02+)&eQ>h5g{Wacj9D6;RmrxAIw&VPZ$^(dz^ha$ujd` z4|YJHi69>O2bG!;em|In6?(7?kKC!kd{MoVKUj?poB&VrgAupSCK>NeS#M$Y2tar< z^kScs(_cU!-aAe;3*2mWgQM#Nl_7*yw|xA+#Sk0z13atm9?WR$n268WYZ*e;&Cpq% zI691iwqJ*thhfXDq_0e^Fs~D|I73{>5en9no`ZrZZrD51q1E1FyGM5CPd54$=-Wsi z7ccvLs&C(agBTrmMhQ%b#beh?5r7=utdP)8_Ale)GJG(+stNp(;<#T2^=w*i#m39Q zSEnH(2Rwg*5u~i31DA{&sA?%GGO`y`cT>2DtE;DPYe~YH7!V&h!T6dm9?Hl-5SFEz z?sYZZnxx_t#Va&n*?Is+GXP&=x`%t46G&y|2S1vSr>r&9ntRA7#-0&6^(B5=<^yEgFQlNrn6>xbUI75>0CB_$WQhf%~GcRNP1 zBJ!EtLX~a}I(R>#&Y~JOLo-A(2impE(J$#j&ekSjgwrfkkG1X#jvd9Y$#J!AqH`8@9%Tr&^<(Hi@WFt8zu5Pp-Q#frGZ=&Nhy@hIUC zZBmIe+15_~#s=c=RT*d{TadFkXUlvsQQ34NyYy}3tv z@cM#&#aG<0@TsI$*T^5&C)Z{hggx#ahM zlis_`FAe5I+1c0Zo9ytNguElDP^IGu|fYOcP z&NY`DLRKCTc#rNg{eR^g%%;moyCgZeZe@NZ~tsf>T(-6Rlu{@+obmN3*rXdhd=S+CL{8M0fZH2vo`R-zKVgsA3o*9eyJaV%CqLY9ddJ9`xQUPX z==5nQkyqh$@$4)ChnHl?r#rHzYZFCFiA8cK5&4fC%2jTEQz;z*?|y?5to?ijY3L=1 zRNNtf5sHlOkMafKYBFlXV%{6?lnp>B7IhA^gziWMzS;1x{B^>1OGaH+Gb`ruL<$vZ zydX37=0c)2BE_&v5`HM^;cnz>gombchU_zCAnS;dspxptN<(oM4z66cjK$eR-$q;3fvLCd)olF=>JAl_Z+A0q;$oQ96$RE!QRkcP} zTi2wY4inXcO1}r(mgvwNx8V9fH;(X&j@HLIPB!db(e^BDbg`hmF#!Lf^m?DEhyEvR zwIEv#ugMN26&uIVSX&t37OlK2=UB^~2OY7{bpp_0EKI3qxqoS|^LPKvrLIq~aA((k=mymXo6WoDg&0))xU>-Rp0%Nw;0*B z?8=Fm*7ksfq&rKP^xJC6<2DMYF`oJh*7nUp9{2hqHd!$YVOvXx-_W)91%_>Rt3UXJ zf?9o{KR*|cElM5@PLqp5h@lKH2pOBBlnYE;^7oxj@j&;FcDYLQiMK4!0G%2imIY%b ze0t8_*B&&$i5-2vUhJHh0H5wQ-!t9e$hfBj-hSZ+o=9dp8kGf2#v3*5Ke$Kn1dX<> zrH4^WwBK;N@s_Ma7V?;^OHIHy;O+z!o`x15EN$^k>&rV_r^V%fj6>ifmt5vw$x`I{ zK%j}NG07vc#%YnI=kSc%SN1b_a6QKmaWocR-2-grcOy)Qi3!jDf&5Lpo8h`6d6Z3q z?~z_d5yr&%)C0=>IKi}|NK5s6+Ao9sqOC_!j*4U8yq~Q@kN(CD?p@f>;XTg}Jj8Av%WQSCJ&|!n&>}-28fd<<{DS~9{Oi#By z+^8mx7`Ns4qDZM^PO2TRhM*JeP*%6vo=oSI<+#%XyXKOK$U()A-gUDj& z;BzIn;m7z}?Hf#cDg*l4kE1{TDwZWwo$wE?NjBXrlA{`)2u7Xel0}s$a;i>->-~*O zXdq>e_*h8l^G!xxF}xpA@)>6OZ_x(fb+qyGe`g5(e=oIe%oIRfzqgA zln0mSRj~vf4PEP8QpxNJ9bDMW`qn%50cQ}f++O+h;BIoyk!C-=tA~Gpr56RcCW!pS zb$&tBi!}6MI65XdMOen$2uQk)HdtccW@hJ=M5h-T`TCVsyCLIjoG5CVZIB^u;gl^{ zBN?bW2;|Z|q|sK<05lCxqF%;(gip}%`WiBeDeRYxX$@<^gS@YvCmi+-QRbx zk6ih7@ngno`}6Kk>|U$ch#c18h+$MRWfWi9bB$W5?E!yYpBV*gyDju?{?{k587WY{@qm$Egj~ zdnF&MJ|?#`F3%YIBSCB%@baN2O}_KD!d0#z)hK){Pt-BFX-1p1%#uWX-(=An>-mhU z#qBRSFaDm#ss!tDw(_cC3BRiYbc-az=MJ2N90?rrgBMO5y~#q1tG`;}V4sU`m1WUu zhTQ0F5EBE@J-9erF3mADn;_HRjE^7A35b11wKgajwz9^PQAHZhr z;~?VH%?xi@#Y>pz@P?U~VW4o#QlP4>E;v9{c7`!Tcp$9Hp{}07nbqk+FJ8RT`VZWroq;;V{aU`B)A*pnzBbG)v84SP+K2lk9pZRW%0)0WoZ$K?Y?7Srq5_<83~EgFkhP~^M^;6JcVjKLyCw@jQ0<_+!F_HX;zzd#n97Gc%d@Jhsj9&l!C1zH*u!XOI=?d& zLM*SU4YqMLILz1kYjDJ)Jza>F`Ud&QyHZzmSDxFFQ-_mmJl{jXOhUXp6Ry8A6eptD z-l}|jXl&sBB}(@lDR{Dm`%bqYd~MQ+aLZtVjus|{x=?}d z+G0!YJJmuT<-i1NSQIsE#^=-! z(lYq*qUVpgN6+nveaP(;LlV*%`RJ%c@Sv({udZ${!_{GkEO8!Lh;knb?NO+*dLDW5 zU>^tSC`>CdkD^%lJ-6ObxNiHy5hlk@o}`=zLv=qwHfp8$+ZmOSmS!Nxn1??FcdW0K zI*2-cv7e=%FIo$mPwY|hfcor+-0akZ9v2!SL0%im+Q&*ai5V29J&y5XV`Ka&t|F~d z`-d)JgzAPg*8#1yYiyvFtF((h@HW|Eo*8?U=( zpE|rOvbB$uCzE1?KyWfiXoih1Sw+!2Pax52myOitviH$^PRhuL1#M>O-*m2r1svjj z;v-IJCmBuh9H=itf77`RBa5XrRK~sLPO>gWie=89$D}-ukNXvv2jqkW{CiM94?uyz z|A)!H7MQC4p4yN)@cO&J6ayt(Gfn-G^_ReOyCb+iZA$yveISaN>g{C_EITolLa4&K4PtjN>#!o36~NTD#!7pw)AZXSg672@;}vc z?U)Q_Na7GzT&q|b>Kbh3tIX{>uF@lV<{n={H|Ee6cYn=pHCARUqN;!YdOIsnQv~{@e#f}XL!8` z9B_7r6r&EiJrW@ji8o%(|GJ2VeJpes-q%+R*_{*eJ3zMf;_WOQp{q!PS`SYHKi3@y z$SJyB*shK*Ov(lN{Br;GfPpkCgV5NUi`Wu^^EjY~_WL3bgYv-dC?GfBu|74k7e~b_ zreGt>6s8cikI#DEGVL>=;Ve@V;~`v{lg2RKTH`#JQ2(GpG#jQF{D6GB84~kH&S?dv z2!Ae*$6b-a*=H6|TL5X$Chw9zf-Vm0#%a(^#yLqdCTecIi z$U6j59MI;=*U+$Llfj6P`mL-(Br~pT(vEGjF}JcUhE5#}3Y1;sWyY_|t>(DGr&DTw zG&FF?dM6%TMM3>aU3Fkoj{KPQ=7#wZEvJGyFP!v2&%p$#O4nCv&my^%YGDmn0;^rjc=YJ5_N|E@3sco~r5 zX)NeR&($!Ex^O%bg8blc^ff+Xf(>enekaY7KL28%DlI>s3P@ipM?U`EJ-;F!ZA3`+ zM5}u`U)@FmFQ#`^?mMHSPbH4^wyR9h4C52vf*!VM?Z0W@ws-|g*@#6ivL{5Z?;<{q zDJ>W$=b%@oxc*%KNx`%+aKOcnX?M1BDHppyVt^XzUg5jb}3$(h&hYu^s!r3~4KGHkl ze_rteQ)9a}r1`xWClZg4gWaTFhXG8)xzGp7J>+SJfe7_n__M(t%GSdm{>WV7SIWJ# zbBDna&EE)|#KG%Fhaplk%w!Mv+c|YHPBL^aN6RpZH$`g*gIP`R$vEZMD;GnHoEIqq zFR=JJ0)YTt9+gAM`)QUgepHukS6;HTTzgs6Zul8h%k56_t5+00n)b}*^3>(mAp6y)A@A5wj8sFf@x%MQ0w z8L>F4O`Y&w63SQ6Fn;>C)P_LaKT{jU;se(L)1RQEb#+dX#Ou^X|9)CmAG75BP&G?} zli+jLVrcBp|6u1Y{+nyRyU}s@^&cs0y9!;35H00PgjxGvu07I}l2D!nq+11SD=+O{ z+j)Z#IsE#OxNAHAC%POJSg29;^%+0hn+g!$NBi0FlUk^PKvw<{kq;Rtp~32J??)vi z3-Ngwy(QI8xpwW-!ZUob^GYKMY%)vAs$Kag3#}`!U3)$_^mSNbOSeHFX1Te~+~?15y0_zU)3i;NPLli0(Inmd*fM3DAv{bl zWf;x#VtM!#Y*HmP=lHv;#m!e0R+3RaPE)5KK{@ZhW=yDQ1r>+Gl<+*2nCvIIvgNAP z?jptDf()|69h69Zj*D519`N-(&zJh-5}gFH+xBA(w;#^(qI5PJI&?iJYi6mcOQai7 zG-D0STmYT}RfsilKZn^+H==3Jg~r8#4EXa(F@tJ~&lvE#@uj%9tkSe61lHdmwj7-w z5PG;w6I;cs;^l?fd1W^6XFmDhg7vV9pAYQ)TSs&=L|$z4_l6<>{>GGpgU!eCXZ!U` zR%gIAK_a6sM((s#dQ0gmfY8BiqAJP_16LOTekvL3ZYI(06KDF&#LEj&>XBE zq}%Etn-6Sm-OmX(v@E5KwYZW4qPPX*A}sxf2TQW@m=N^&ZrjU6rH1|`+(5I}Q+zXe z$HHrQhaU`SUiP;EtELEaSIlCp5v5B) zx`kor9+2+t?sfoaL_lvrL>amp0RiPV?!C`B_ukKWp6mBF%yq5Ln%8@+^)(acVj!7z zVW%h<8yu=HK{v2NOO2I56gR0F$2ghCBf2F6C--?c)*Vo9Q=GR4hEwrkKV>#M9|5{e zQczESuN8Gde`i_JgNjf!Hu$rUaqMmf8bUVw@uqid@E0xYxc+Ay?bsInm;Ioi*$QVz z&==>MfF{A4Gu5E)dHgI|ME9f3y`ZRL(iZ;L!LHu7WUkjeMO{+Q&%u%4M?Mo-3rfhf z>~PVJYkL-MQzR&_)x{TF{x%iW9b$1L{;}GAMrnmjG9VmioFB*gjT@=kN!1pO#U2dN zIw_C2)7()e8U}-}pdHdmRV@O>@Yl|>m3i3t&+!r}jUJ*pXb>s?gWyfL`-i^6s4cR4 zAJ#Il?p1rwIJ?G(SJ)r~AGID|Ti)t0*^MPz5W(- zQ`pVM)DDuKRaBhglpj}I8UH5P%#OUGs>%CKl8aq%bC=8O+A^xf?stz^>8N~xK*+#^ zD~vH@tn)euC*X>aklXsqXB5lL^uMk=PR>b-O01YPu8$95} z)n)kGYxLnX9~!F6?R>HaZJ!wF42>4ZU3wPZvbwpQ(RcAodb*{~E z`+K(v(ow6+4tjpjseyv_8j|smuVM-R8etQ$*;@hp*vKd`*$?UxJ5`u#-G)pq2LISk z=!+gY1k3uWZ_Rv_xdvYNDIBhTbiVGr{3Z68s7@*1;{83)>+5zU+%(cgPbmMzoh;%UE&#g0H()RQRj^?WV{xq?FU z928b4s9s^4=WcW{2u#y~3b0ZGCi%j0>H5lTXrCnBE$~%32&$aGzC;6UnVZVUNk1jp zlV?xd>;)FLAh!iOkJij;g-FLVh(>$x=%(uBQ5DDgdz{Uv#8dKH8Ur%sU=`tvkx3`03=dr zaAF0kG>9=1+G^Ghn5mLRb|ocZUJVsvpQ*R82eP|zP?KaJM??LesrQ>JFprE-ja-qA zn^YN(4#nffK|n=nm18bZc{4W(0`~hVljqZY4UO9I7)ffqSA92Q)n;6Ocs(__=|1AS z!E8N~$$)t&dzY_GYBsFu*JA&}Mv=35_nBWxVDDPA*F3`#nGz8#66?~+rtcgC^r`*Q z`-KaMm1cmCBl?IUUwu&;h53tw0i8IU)|LbimonEB)}_dw>oJ9SD4Y|rZg!=x@XQ^` zt(MRMi~IWPC3S6X9u{ZKi}NJu&jjGl>goagMA-h3pMvRLI~Tl_Lp94MVfqieHhm*% zIw7<1^}fdo!GV6%<%uQ%P$+4o0y+J7k0RM{Zea7p@p|p`@2j(Yd|aLspD_8w2AQoyw~}iNISyj_$C+iq;Ntl@fP<5ZKQ9=CnREGFUeq@xZ7`aavfE*T` zl&pt%WQCXOHz~P!LI{XmW_EsAxse*9TS-nueN=3GaaLVJyN4)Ev#VcvN1v@IT_`Ht zrGM;+7^KHNylwoGO4m>j_OGwXg;AMQALo|^XQJm;Hdk3ctY>W<@D9u_L>!)p#wBl@ z9f($6I{i24<0mLQ8rsGsHRVdH51td+Wkjjc!rWB-R?`K$C~IorxwbYCpat>4pSz&Eh#u2s+0~&-)gd>%==WR zln>(fmHI28RHfe|`^L@8;re<^fP50%(Wqh=@Wdn2Kxx{6`5{gv<)-24)z4%ob>4&Pdm!0ld@9Ix zp{6Osi_@p#jhF3G7kqPirt#ICfB{0vv(*o!@p4@e7Z<-0(SEnzohiKnrc9x(DG2v4 zxe#LBw0j})l4T&tEseAt__9XoX>jd)6=JF@vqhdHbNc9mC90G zSmi7W0t-4n0RlA4XjR}OeM{3sRWD^6ex)jT;i?dafb=8jIsiA2aIGcOjS=Dz;_DM< zXPtR?%qUJG;a1CK>45maha_zhl>Z>%4h8EaO41S3=}H(W2ZEG%9uz)o=F#eRKr!C0 zbZzbnL?XllpUxb5P)LU_xe1dR<6kqIKqPWbsVduGs{CDd?6>x$?wIdosv_f`8vMy* zx-D)ldvzXiv&%@a3fHL5@J*6I78reE`xY-JMt@Ej=#gJsZxp3E$=&#e*-uGL0Bl!- zXM^6s9PVp?s0^_eRgIZ>ot);WdDy+Gj@RgwCo(xQQ20BYoI`$nQ@b7=2n9 z{8K0V&Zi(uj4hl6JYY*Kb3qZSoX52}mqsk;I}&4n<*NG3@Qw=JK0H6S+|POI4~Fx<947Lly+|=W8@vN>waw;6v+e6^lw?nbWoDUi@_ng% zLUl+`OPEbliO|%|FirSPU=24IsW9&NkSbVb1?RHseY`iF+O4_<2@!Ztb>oe{po5iE zHFn(5;ARG&{~CGO&)x@`H?Z6)|cAT;Ox<+YHQjhDO+xf3cf%EI07ArJte z!@mSN`s5+H04jg{OCXY#5ucr3TE!-3VKlWugKRXy0LS*dqXLtnn%LVt4ZPFz^K%?e4v)U5AucWeV0XZF_`mYSMR zufztDch0*Dj~=|Z8FZ$gJIohud^=?H;OQ36B8RG(*raxdze1j3&YHokY{*C6GL4`s@~s59wX*AKSz2H^;8)6t8cU5KMe#2Ux~;E; z!Di$NR|R`I*gMh>pts`zEUIlb6t+F&o48HBmx#WAIDB@zbb;x&6mS70WGAh3?E|^@ zFpv5$ncXz_Ata9=m?!UyJ+!g9ZV?7ZL~w*F9F+Ej3yg7(yO?D0TuzM+amM}8JNMG#z>4O!>qv?af_{Y4F$|)iM zcp=$MPl3K<(;D^?@`?13zBhIyb!+5~9p&gmmmK6O)MG9Zl<3n_&l9UeET^0h5NB49 z4~`KS$l*Ss=P!7ujo^qOmR^~#&EGP z!W4y{j=_xEN`{OY5q0!E3aa8pz=Z|-sh;iB=N)Vjx+Q_As@X=uT$Qfb)EflDYF!y{ zJ4_48pR!vNLWJ%$TRk6fWFADjiWqN+f`ZyjyO@UFtf1>fnZI{@Rr4a$r#cY$6=42~ z`KO{LqT7Udeh6EN)Yj-tk*V5&9HY^D16)m)(EfYqD;>L5bi5H?ljK@DqAQo8s}w1)A5<1G7z6QPXYu&f6k4NlqFN($No_ zZ_AT#NsWyf@4o-Ut^C}T|LNP7A79$wILWWhLwKVP_dIA}_FQ;w1tvDu1rk90AN3Lu z&sIBt#l5Q3L6Ol|)MCX^EC?4MsiO??eG}0Jo3Rd1SrA0xWUoUrXD)g-1R2;*p#{`h zo+LBoH3Wq1)4DSCW%3iCFKY%E`OuiR=069tgT&OL^ZaSD)pC__ z{nGi!)6bbT{dKio*LR8JuSI|V+$gR6eX-NJ|NHV_NbLIRWaicNuk*hf{c9R$ATh$! z7g&@9c#0(~dM@fXb&Nc>MJfE^s3V$>ULbUUwl@QCesg6Y;_Q3xFO6I(@t^HK>4uZrZ-1v= zfZyG|e@Lbr^Obf8&@1RDPWm_o$JWPidyw~5Zw#}ZIoYQTKI*~V2nYLoYU0TO(e^_! zhm$wVna*m5e^C+1RAV-cCK#vRDsLlizx3Q=fRl!|+l(sqRvP_Y{}&Y^fC6j3a! zC7^6_LyxE;D;E(j8~l8bB5nNNOAAE9qf{rZ_|ihD%&(LC=N@lTq`Qg%`LYw22~}A~ z7JWkY@W1uZSO6sdhqMcCcITMOO8%0~U26WAh?;DZ_qnsk*Zv-+{V@ICU zzw<@=j7~j+p)CJg@FQMziXUs@O+M6f3IJK39^ZU&Uiti+hFkuTpWY~ED`n>NJ^u7my1d04 z@tl^rQiy`4!j%m7ar={Tm~KY3luA{ZjeVfwY~2v0N|1}zRP&sWSY5X9|9gJys2h)PnZ6&1(nymynbzezTn7VuoK zC561v&adG$4>BCk5p-CC9&tSQW=QU@8*nvqz(K93`f9H$;uU3kxts6rU~jbjubgXi2B?D6U_7-vu#orh&qFV{AEL!ZkQf3aW;@rRcF= z2rd#}QUn*BI4kyRoXGj`a=bzv!?HJ08_At0n^Ctyp;vE|NQeeKJ$EQ6Eb@Z6B7gB1p9 zNX7;Pcu*c%81JjR84qZCS}x$_R6#_bYHTzL1hUT&luhLs5%OkObG?KyxL+uN;QIF> zLBtUJz*qIDUIhcx_#mpf$ZCU;q_+d4#73yVuiO~HjTC0%=mSXpA{1HWZyX`U_RG~=jEz8V zT8NoQ&lSN;lKGc&cTNG~72mpnF{m@!zp@^(lG1lLL_FzduSZaasbk`DTT&W(4KThp zTAJiP+JvlfAOcE)r;cHA1krA6D)AhR6iNhche8yFy~n@HVmjU zCSvZ%-bHm!_FIH8(Y^JcD8u=nAufKD>=Htc^=J5tn<(>ZM*a@Rw$j4NJfAItykSo$ zseg^x3Jig%gogy;TA&z1VNZ&^hPb}%;g|Ek!^A9|qdottnpWWW+eQBcV(tCGFJ&t5 zZraaar#>Qg6OPU^xG}2x3>#G^3mq=}zf1f7FdUq`f-ca^aUVsCFrKH{2>KzQO9W5L zgHC|&5XICI(#^9G;QxFs?uvydpPS-zWe906s$Z)hIDXL}``GFZUQ4{|1IU!s@0oFg z(`)wvSZAdfa>@dbpU~eX*Mn|QErtag=Q9{TDd&#rjZFF4Pel-Zmy^Ne)pKSv%_ZHv zISypPD=X4I#@<MUP4B*a%pR}6U_q$?P^Y1hxWCAy z!uBggU3>=-ar?>20=Gtp%I{YIldG>RBXt@V)h>|qtFNqqNDZviG)zI*l#e4F{cEQ- zsnpzx#MGzvA+Zid@d?jw2aR4~e~Ab;VN?EPwJ~a%U5d}?=zw?|v&W6su3w&L5wcPTwPvmXQ#~G-tpT!*^pzlg z3-14~a=+Cb#WPkg{r#W&+ZCxp$}TeS#3HH$%BK$4Kl|I7CaU3t09_(gNcg~?{q5U3 z4+}^D+~#Hb3qhD#1P_C-xux_FNgjr&?ddsZ!>@+j1LvP3@6y+ObEYE$PZVp_H}{mv zCAiI#xN?sqbw0fn!r$2bUeVkq1uUmlC03Z3fA691z~-mN4{F04?_zh#TkUcw4>+VT z0BU#oqSpBj?M3ymf93HpP*}U9i+c8v_LjBK7?Z=$e2XY zP{ldpLKamIABHmDI>%8kCf1on*klcZBDm@zmMBD{CRs^<+-ZGiu?$l#5$f@@Wg5i_ zxJBTd0&z9{@CwhP2KY+SJDEtUlxKs5R;l`cnfYYX23J73)zN_! zIW;ofn(47l{Ys_?Gscq9ep+KS%Qq2jBl_CF4V7v48~P~ky*2=l5g{sJ`|`~%=hCNt zg7)B41Kn7#0QbR)vXAGxP4bXYJe2p}%Ci$;WdLM{6j$JLnT69z$d@$@OF^Y)$g}jD63v$BY5T~0kJ)I)LLP2sUz@0D2}gnTdvyNu5z9N<=*#`#!&n`Gg0`Miw-AfsVmn1XQ6JGUXqNw zP|c^w#2u zt(V;VY657T7j^MP|5F01izybi(HJwDJ4$IAU-g2OkKsht6FzCd#d3!#H8ejwPBs2s zOfGO+EC26hT~@p;|3BFKRyX3mh>Jtj6MTIB+{Is5>>o1`nc^h)_+mxXV}%Stt5h_ez9FG@Vvn4)tUbcw;X zlUgQDuOB$tB5Mbe+t3QSTlV~u+NzQ7UTln64zdl#{A4~lKCe%`m#~N@E?FLl7H^Z; zrD6Wik452b@hg*6Bh&r$QE;E54Dd<8f>Odbf4UV8k?^ z%UhVqt}=e`aUcapoO}(`=R}(eLli=bN%yMAm`;is#{~CP3jNi7J`cWy5bFv#yRj$F zFf%<+3HO`&$>6#&c;DUH+y3W4sVt#9b$=HZGNq}&FQJEnueswd5u?r=tF^|>FWOFS zi!YU1vlcpBY))NqDCeiW+01FqS&xr+sd=$ZqMxJXjCPFEcY=MXnQ2l3O2V-m0(~?Ejjon#zR`fQDoJ__S^EuBpz-^Khg@qUXcG z!tCB?cPiH@Qy7hP8ra5LpEfs~U%xJ&jO+lz2BS<&Qzqn79uD&oC5Cg6u#_N|BScR< zmmvajhpc3>r?y-$B~i3W^z9tyBB;g@92<4N#mgc|PP?5TR%$T9idp|VmM8K-)PYrU zSCS7e8Gtm>T7s;`4)W$zpI2^Hm^OAf^VX8ASvLQUPiQ8pv04GL$B5L3aBcT5z ziXzK(MgS>Goe!wCY8v+WNdhP9g&9+44u?qQI!A`bxiQW?8EsnR5g2{rzJV|Xcta4; zoAINGM-Ru3KOn&(CzGmvvq3<7Nmzmvj&BOTf6RN3GUkOmpd--job7#YkHGapAH3~! zhtfM#y&L5<#x#dp2kMi{eN`&T9hrC!~{f;x3$v=f^H}vRvK^S25&T~P8uye=Mc~fuTddxDEjx>D zO1HOG-4=gsM~HF!?p)`p`gLOgEYeOtf9?PJ;PB2=z~oPS4t_-n%Q75eJFq>snKu*) z=-Cc@?roCKK1>7!jRt`fScsE#kvfhTFkKZjQ7*hs`djUjQmwojI{Z!KYdF-PN)U;k zbYFJU$*RlXMBRNDcluvK=%2(E!lm{PPC^@&gfN^aQz`v(3|$yoJ^%p|U3_(FEoNxW;5zk}*QmP)h}mO2 zEU^rVjVVg7S)@Ot);BsEUTzDi2_7V|xrf zAsNsLN$%+PFb-`2l)W3XYDR_kjZYf}M`J(ErgsemPJUUqBi0jx?=ux5=05=H@d&&q zwe{Bi4=%Cl*w&w?d-hvFyLTnE!WAhc&(JwtfMq%~HMk-RA9_6B+;(>{AB&1L=IBp8m6_ZZM)#G2{m!vHn%-bw3f z8FHB=FVEp+`cH|I=MFt-?ew2Xb(&ih{`L4_eSc!o-Nsk!Mvs|5tP&TVpTpX|v3FEw z!uAb}{Ud)$WeOu2d$ZQ|q)2Bz<*UXNa}2tYOf3yJ@G?D$Va&AVxZLm*{rOaNleHBT zGeL`MvYV_heCEPJh;*Q9(wa|vUECWquSi~X`=OlFzA%~MmFUf@w&Io1p#3ywY`f^j zRK0s$K=wOV6*gY=^*wNB#J);JVB3Agq@Tyjk0oE3{3i5e|C;=f{zt&OU+hb}V9mha z1757q9jI;iwXgiujB)^2P$nk$DBUzK1PPx7h4O2g_W3iAbD&_PDT`(i`&s84QCX8f z&gjI+{3WPZUt52KKoTS*j+fBZf`T4(OBDeB9Welk9xqcy->c}uH=AxjS?Qz{1y(7v z$sevHKeIDrN>w(hFQ#~k9#KwLjEO8xx1<81GG5h<5M(gDe8`pRE?Uk_M}H%o5B6%b z{6QvK$AafsXh8aggjdGYda|?V);uuq!l$fAg;2K7ic@M-nTXpMTh33piA&NnL9hNI|eg31`|SV+4@XKD=@0TucRM;XMx3fnoFpm(Bu!dx9; z=7QHOlcN&5oP(Oh`NC5LQ;z)5PxZSYDKR9P?H>G>L+xp0T0&6j5c%+~RAc%5lFNxl zj&I8mfI8u!IY|J?L6o@|-E~x-6CKz-Q>!TmLX^st!5ps~*y>(W40*Rw&RLdGl;!M~#32hUsOeS0;NhQ!>OQZlY< zO>zgL8;2!7_M*PZWy*Qn@TPD?;tY~TrAaWydC1i_1XC_+SzdcT*Ym0-d4z%G?R=X@s|IV~_noz_e(^Hj2z+7XOkGY1Vgukq4sP@K4dduV@K`A4qgsai{K=0WNo#&JcVxQvUie zfW3MnJS+nGJ`m1zgK+iiHj*E10O9T<62FU-W6;%Ml4M&TEDPQJ6%#_k%mGzy3#J$q z2zZ)?`(}jgqx_`%h*wzUly?YuqXpx}B1{03kf~+obtaS_{|43FxJjRb43o9sgcr@; zWPtVh#mNWL2BoNQ;vnv~X_Ohl@2Psz>bm%Q=yAe2(mKWB_F@DXEOv2_PKk?{SOu)b z`bry!k9<7tiC!T)Sb*?0Ixa3m0Z8|%bwE{c3KJJo#LcIn@wvVJAL|J$n?v{U>j}pl zmOS!bWK}!Jqv{LO1fI33f0d&0l#y84ZRuD0!eg3TMX&->{u{;kBgP~DA;!Yn-I~He zY~TJxG0O22BmWP@Pz`aW5xJH3=PP2x2reoNj1Zs|wfcu*^enohUurU2{7I(x($EmL zu6wF(qk_t7m{@l)8Y;gC(}1|tG(C)ip~;_esYs?xPC;oIH|C9XNqKF0 zXqK%>bX{vOqS4jFrR}XN0uuCsDiAwtAVyy09yv1kxFM!_>hqnk_Z}}GLo*Aabe-=2 zEx2{TFL56>c0*wOsX(fpy;IhNw3^ei@eAPLd2=VV^S3Tv&|5M_wfpGy5ZJNR9Qg2t zqT?q#+=5I5zm2>hD|mHYn>TF9Dt=AA?3=|9mVo9^5?=FvwPM@Cg%Aa*LbP3~vBZVobPZhkwr zN0>+FR6*w2D&EXQk4bg)PgpG;xOq_BYt=<~Zppx4E)>Wp?U^d&aGic zaf9=ORMQ4JDMRxn%meTPI`h1%D#bNVe-+SJ{z>#E@Qh-h!p-E%{gPn2#qIu&@--0pFp!sUgCGcGkdSi?BbG>04u+CT=LI}heL@*R7Y9({ntnZL7RJMX?MM61 z>#{}2V7v*?vRQ4QF#d`%WrCS{09TaUu)1=rjQRGO=HYRC5`;#S5=Hd<~@y+{zj&Pl-LjeVTo_!uxA7AKKc zUi3BsrUeROmWwEO?0q98sw$CQ7Cfye|Mfc2nv-eY_LbW3CvZ z*>z-1<&wo3t`I)RTdIs45op~x8bb^TH@dNKV;dN6E$rBUd(3Y{e1IYIj?-Drwei%K z{W*G)&B7MAHE8p#X}z|8K9 zvxKNH3M!!x!{NLxh&qT0)a#2Oz>(|o*Ajonq50TRq$<(?nj9SqNy(>hH_Y3&`HOxM zDg_kA>auJX*hp~|cG|EsiDM1?*Qgp7DUxJvikzY%o3wx=9EPf{)VhaOHVVDuD&V_A zE(u=Q_RFw38CiinTDkGv|{qG=tT{B?+7-d^5b@s?8xhzoJ|e-75PlY9L8?*YMo%JAvGd1414UuWjd zf91dVg=o}>m6!!gyZ;n{_AF^a2mvyW??A%){y>VBv_6hPt%jiDC$j;LX4%34P$t6c8*YLuy$xxZb?bLNl|H4 za=B?`b;D}}jg^BShbE{)}SKkW+xj&}3fAqFfCM^h!B7BH8d-E5{Z zCvP1M2R{PdYEQ=(S1{QJJREf%tlI-R8pkN8;~>*YGVuPs#b@rr~8BBb8&g8Gqq z5&SIgo%an*~$H|8Pi(d^ z!uh-f(Cyy_R|(Dwf#j6RIN{$xzupWw)8joLzha$Tu?A-tqz zW+c#^!G5%`w@d+q-KeF2UgUz0lWDmdVjeAnOY4gf3-CtANdY32!*16A@-e??NA983 zZ={Dr-AbG+O3coawu(?a!tf;XBE5K^Qei{Iu!+}Sh?BTj53JIN7QIl-M_#rE8|GEQc+*_OaydOIN@Ynt*F{m1StLr}Bg)>eGnH={Q-kK_hX0@X`A zl~hejL}hGns;_E|_8QUj*Uj17Bq_}Src7nRLl+k!(7s2HobtNjm_7<*?%`eUJlbW? z=!3EqvbHp&Q?*M2e&9rY-M1Z9k>M&x_O@?Beuou;Uj*<6_8%Wa|ClhZOQdZz$5wp5 zD?HJ4e)zSn!_iy&XoSDC>S$E>j|{h1jfahM^I=gSTI3{n0zMg210^+{SB(r#+`gH` zLi1X=Qw#DO4OENYbce#Uja5L*g4rN~hip^ZxQ?HiOFd zVH2)_NJ%D_nP0$Rxs9ooIrr^@mhZRx@1HM5@YUc8pVI#?8E%6$X<;`@L}ffzS&OQb zaT%?O4bU3B3G5C(94o!d%AljN8|!y)2J2xHy_&?Z?W-QT666x@MD9=Y1A@1AfqQbK zxe_PFq?og@nGad#XWF{)ZKraGT-S3)(?HiBFVaXGkDp^|8!nir;(n8#zv&9RxL8)X z{`BK5GpVyNcm?>&pase2yl-_Xw6LWcCU&bW-jaUu0TV2Z@7zNSy{*+tL}aZXE$M7U zd({V#mqvj{MS^%S3lN!e5r(KbLLt>JP!A-4V)T8e<|J+jpPSn39giS(pC^39j^gPM z4sE=_LgLUS%f=cP_TUXO?R|FD;oV6h^-o{vpCSfrI)GEe&tsS=4eRc8Kb<0a=5J1w zb>4nc^N_%CPKT2lYRs*!$%32f5~tZAUb8dXbxf5 ze#e*GGv{3v%f5OA!c&JLe}$QbKmesQ_wU+EhPS{!{!@E%l=0zg*`(Ef@rd)thZ2e0 zrtMeiS&;BJ^*`ZkwsAB@(h$JUqlLG?qG{omyFl(+e-3$lG;wtZ08;yp1?GB5_u#QV zISg-stzOdj8u$mqrKBo(`B(yhRDo&v1$rC2iBnXOdXEgugkhXnOKrmDF zbBA;BqJg+my!KYzn&ui#9yB`ggEktf2GH0ab^LTHm`H=!N+_S-w4TTZMenJ~HswCb z40Bd&j$D6UReq~ciZ;q4IrW}l=jj|mzxc@uCVUgmkIwO4u48ohngl zdbUo#sfkb`b~DrV;MyVy|1_}*=@=&Yd#V~KmNt=r2SFA;U7N?{<-Q$M`Os|86lj3) zXFCAhjLoA;y1tGd$%s;$@CwJy(V*`gHiyKl^DE9vDgpF19?b0&v(za!?*N%1T-T>r zr05@hQ#;wIyydW7(@x;+^zFIv9TSn;(fd2#Ser$~yG_vcta;;)CfOhBg< z6DWW#g7`X6nfqKR09K)^1l!KfUQY%l( zf<;uM#B@|VX)xmCVXt~ou$c-qM(_)z{_cpXEP!jR*7V(ovg3y_$g5VTkRnJL{CYcr zubW41aP9JU-?|5AL9A+$5H2M?5fve&X|EEemC1DE+DzQo>uej;+V9qnfr<89oo?g5 zoCy{_z+QQp0tiSM>S}4xyj_SSmh&4BLQer_(d4}vt` zT`dpHU)yrjP4{wpgt~L52*^xOaPXF9tR6D{MVTFc@}%-d=h1s3o2HaV-=BQ^*CEgG z$6rrus(*Yo_S*e1V;U}UI%}Egc>2Y*^mQ$mey6GhLeCATh7gYXc}$3s0-B~o#A2lg z+*<3TKN!G~jZ+eL{MxXQ)Rf+Dbx6d$8(0-sRhNIyWs5DOXz3iR+;L!XzFu{=&DkBb zbywuyK$6yZw-n6;$?gQzDe`=GosC)Du`J8s*?)T8P?>293_?f+8V?nM=f7oD&uq;`h1wD1lU?(?h2-21KS^AKAfEKGBqBqN zg7ar}ZU42eVm@<&|DXFR|6Je_V*y9%5fuDoysAQ1pRF15@GC84FP#{#XZ3v@;}ELX ze~-Aa0`T*6fd8QJzZwT5X*KN4po|Y=RZ9bK;D z60M^G@w7nDhsrLepsZY#)z`hWqAoSTv$nnkB~Je4WmHP*+m}Y2T>w|?khOSmQ1kFa z1}k|mKGYoZVOC)@);agff=FoGr_Z=GA;j1`pl5wgjFqMz^=W$ltnxwpr>*n#%{1J( zTdECfBj7u+xsWC1g;Xfc)Vbpw#gcSnx}cHqM*c!i7?TBX93oLvkpR@X&QJ|aEErAB zH;SW%P%{joqF&C$oF*FTWVePajss2%V{%I1bYyc0obQV{3uS*ml6i!RvO%+zFs%|5 zPh&@^MT1?VC;Ci-Ky~k1kByX8##?Bc7k60#9M%i0476)rba(-iF8#)w9zk~@UnR0= z>z6EIst>fT+7NUv(Z3ABXwxaOsxz}a)`Gq~*r;$O&h_NT)5A;&l)ZjRrhm&(AIv+y z2J>sZ`>pYHKk1~BjBeH7uOB*!a9KBDup*%v^{=0KpS^g6TXU*qpzHIFkNLzE{WFfn z$2(Q-pu2sAW-T&(KirSFJUszBnk+sK2w;W1qmOVBvOQx%fwt;Qu3={^Wed;AjiyW~ zJ~kswLkb9;7s*M?pA3b`Yj2o&as?Ec;XkPY8KecfmlaTO_C&xU3{iYsFmauP6i7>Fr-hkU+T^}*U&n5hf|U7-aeO6j+Mo6S>7_Y&d~Voq9o{^afS< zg019JLi~YoPqsyRGo&4EHP+0jgF0c++C*oV4CDGy1N+_U=2`2?-IjUJ?cLT^d~>_e z9chZK{2WjLXn)Co*-qNX!R){%bKqiSJ8`;7JqE}Fr-bR0gY_;R%grEi(yKA9w=j=9w5f{R987{u|dAmmxOwD}rYBRzRsWXX=01R6H#>9+#YPIDRj)UUfX7 z@ZacG_3ILlVBL59Iab^cS4)!7z7qr-Du8>8=on`A0SJS4ltvZc&QfhK+iHRlmQ=?9 zfbE@~pf3uf2jXq4{G^2QGoH5zXYpCXcK~gn%OB+wm$&cY@{eAJeyi+p90G*Bn!9zw zx7MhgHYPYjme$*3^PJ`F%S$}lcYEfCU`M(6$!$bDYrj~2L-M`7Hlb7Ta^bs^;=r!n zix;7LhJpbD0Onx9tGR^>MWO>k!E3Lb&vbVPj}2SML*{YHCZWf9pMMkluokPFpHK_yagaspZ}7P!rv$*OKD4wTBP}RYWlzEpuMlN z@PGYXhY0=IXX3ZwPx(itAeoi@VF8R#l{|XsAAi^RiIl3JQ>x>4JFKH90nY)b?=Ac1 zS0ffKNj^X-h=y-ymOC9pwjXBl&wvSKA^$cU(J*U5j`uB~*&*8F% z!rT}a*ZpAMuv8rz8>~?Yqx<`;%i#uVKh__RnQik zA&gXm0m_e?B3``!#4@EmPqHMk95&;+eVw7uE@agcBOKYz4Zg`M7RtafXZ#qm(wg0L z#pnQT;$e=zj%vtA4=;F>GjT-uT5ha=DiWCZ=y`L*{Dd-lm3%F_pFDoTI-|>?G zhc7Y39a-OVDgK^5QmEktbj};HnJ(7*8qqx#<@mM1Ytl)=OnL8VXS(}2*;Taa5^;Oe z?>c7LQk`h>Oru5s<}oe`Hkit=EwPk_3}-DTNQlWPv-DOK$kY05gzo~!0P zz1g=Pf_tKVT@ekN5XmKh@411dk+^Fz$c;rUQvm<<7nCef4w#z;49 z8vfW=MmeG*0g@KUmX}80D=2DR5FM(`unb|#@#YejZ5i(Olds_i#VXYtaU_Im11w_b zI0c~L+@en{J-Br2c;s%qu$u%TU&=;#zYwiAr7*n+ofC$W5?hfI8=LB-zEyHA;U)DJ z;1i-{IG_P$6fu@S$x?j6GYeNV=(8L@mDA^j=`)UGg>mPB3*8wJYeo?*4|$4x;iHkc z-ZHS1(o9r^enfhUlHlWVy1q@0%9os*xhcP8Ns4?KE=mgu(<-d0+~=YyAJsk@5E8)d zApimcI-nqM6Z6-5jmW<=&95uDb)SJ+w4Ze5w0!Z_;%qCL_hD;WiRuG1wL~om1&$S9 zceztx>W&?|Yn`;f!>#|ajD+-8s$eJs!k!8Cq0$QUqoRHfLMo$R1*Qzd2vh7w>55~0 zHA%|{l)~ow=vXo_4KR{zdsl9e^{>5krv47jtc(k!gM&bPf0I@6dj9T&GKEoJnh<^U z$+Wig?*H2|QWB6+q#l5GqNF$;k1eG&>>)U&OYn^?a z^EbTL?|$#+dF~)DBRcTi6hqUP&0C#&)UE3hBE<&X>S>O*^Z-QmyJ9e(f|LB)2yy5z zIlDOd_|3it`IpxWZesS+5Hgf`tnyM~K4UH@|VZsM#hwCc@_cR&-s( zx)Zpxf|@_ASI~Yh`EVX2%>8tOb*ESG+1*O7;XjRCJtE@^gk5Br};J{_Zbb^i`+%`gJ?$o10|M!vQrPh0)U za4u7B`aD!K{SE0TOUWa%mxfvyDO7(4O(=#up8tK$RzUoTFEt8>7P#4dyG5hy<*55f zh42CP+VU_`y?>dYRc8ph4sZZa92Z5NbbswIm8)l(z1z*6wt-sBU#fbfFxEE?0VuJ$ zKCvjq`sPSO2G!L75*vmmCaFcbnIPlH7|vpom^Puu1V4#S=(VN-89%e zVu}3tx$E0EzJ}zji|;L2h?}FSO)ETDCLtnmj#RK1uqqr(Q1&sV2&^MxMez0VHrGSAm|)ows`+Z?(kYGm&7d^(Gb{d@?#eWr8xrJLL+8X;Y9Z;7R=LWd zX#88VIr@&TS4Jl{WXDsTagh5G;uL^{J|=&#S>86a$ungw#qa#1{JFzCP-~XjfI)Mz z&<;O!da7Yxjv@ucw=eTA5~m%_z7!gHG)*nZfI>nJ@87eh*9{ewzw-x^;Q&+(?iU{q%tk>E%U} zpCtnrt$la-B`W(C>5nrF^w-zL%i%rEIbIHk)wxTDf6quHAV5`o$M8|Iwa6NT&d9~+ zE_-G3%Ww$*-5M!Ns~jjIXI2w>-?Y7G9V}9+ydLfK3&s@NNX@sdBNsQ7|4G!L-_19rc~3zV7-LLuiJQa&*= z*;?MR#4nAxl$FFpKDeYv4Z@0@$x*wL7>~Ffs_gXsT>28L`nXiRV=m5GZU7-*UCl9w z2&`a~_aL~foT!|zrfiv-GieI@Eoal11h9&1iD`|;xXt7CkJ`Rj6MSnwpR)SaakW+U zt&^pE|2YU>)58?6QQZJZ3%S}qYIbld;HxL%t>yYa%U9lA$EikVAAgs#8{PlXC}XgT zbN~n(e8qx1q$PCzdDP{RL@&^Zt0~@x!<4M!H_C&)TRq0L5z&n!j%9QHNsjgZ37WK< zKrCFq!Rc2Tofu@hjrt)F+d5tO{FB8%q!ix6FJ3N0Sm4NdkPBwc{(#i?6=6i4aol}=ciI#8a)z{b8{n_28mtT~seo5EAD)=ppUcOqvMzh0E z?h_macYh9WJ_G}NCj_!!+C^30@O^#0`7Od|%mu-n8&F7N!Z`R7-nb9AgVB=HU9uN|KX)vLdvegEhGHR^p>VdHyHI zRGomKuzK(rlgnR8*ZcPpD5>PRLlw_fzKr1Yl~WEzC_jv$%8{*p{CAZU6fpeHtz?WiT zOE?Q{@gDc-g1uD1>>drhfe` z+X%?m#}{B24wrfM_1xv*t}G6Gn2>5u@N2A#Tv^y0I-yAYjm`}$_c~E+Mh{S(82ElF zvC7-(xsAC;sj`l)a{=fWL2fn(Ma{nmCECtg0~vthz5t9g69ERJOR8g0 zji(ZHDR1Rm;8S&>SjJFn7_lf0JzL>h6b;G6=RLL>t&vWF)v$HR7O#WG&xUUHD*a{W z5|tb+q}wBpC9_q;uCsO}MK$fbH@}=7rdJbyqUG924>v-U%rmp(u|$@itJyu3L8t#X zzu)z|M)bqv&2J$RI`^$RU~DX0mH@h2+7sp(5)Y`X9IZElGTZ9?9bK?ekd-+be(=-t z?bQ&bLIcClCxRilJam=KQ=vR8Dh3gPL0=eXVU=#ikzJz{h5!kcTq9E&Pc#47>%!miqvu9#$6Tfx8t3rvwuFYPTPe~s=6_62xl}e0#BE=TmZ8KrTOr>2$~Q~) zbY2xJ;^%sx8MSo79~~`3{OHq>WP1471ke56!%^+qp1o_!<(_k($9T_Cbohx_KWHVB z|Aac5mwS)dUcdV0fJe~>GNbBoi+{?P;RBicGJUHA?~FXO)5g*9y*^4rlU9!-?|RTd zt_S$=v*5Ng_vt=9`p?J+ZiwGV0If7V{+|d?y?rFf!vx$1>P3{I)^FD0Q>sC3{BnXY zWBft-zRv@agnECM=>IQRmyWLg zy`WAi{eyMlq@hWyk^!T~%{uZj*1pSsu+E)Y;WdEx6~;MhA`Nj-0}=~{#Kys;$$T*y zQD}TdCbveiQ7SYrt1v4u$2hN`s4|2P?3h>85GfvXwK$od z#dD>OD(u)8j%YyH=i1#Z7o`#6;juE4-}IH=@(|66agZ85kx~rpLY0&mOzO#o$Tz!w zox;ui)=G9WHF!8&c$b6k{bao zU&Q7`1(gOT6`IKq0$QTFwJt_~Gu0?AH%0LQoo%ROGoCle^40 zg}td;`9;m4B>4$urMpIUwvfUU3lIlh;b3T*Nzv>Ar2!6Zvj70DD^Y?1qFTF4i<-Ae z%h;=q_V%mLxSR*oy<}F_kO#%uLAA~OyTz1IOQlw24ixacTfE6f1Os)fYUuLnIQ6?_ zh0A;Vm4yr69VA;YB0O|UbM72Zy~E^3o=V-J`+W^(-pW?^v){v|k|P*6kN^Kz7Y`!m zL!)u7jSesckSX$h!}mOtC5J_@e;&6zA@w{S;@gMAo53CcULvexk8-@rH9q86FT=~e z&maPB*-yU&?qCCNRnml@F9yWUN!7>+&MBVUatKiy5~K@I>b|oSn&}bcem-ZG{IY-g zpj#Ay%h1LWk<3@pXV>*4IbboEA5*1mduUD!fm(>>n*{m8#Ki`GVVi;kfB zeQ($;#A6inblGq3*V33jpn|~a7c>B?%?rBh@ig!hpYfaY8RqEVe?3r}jdij4Jhr1| zu}b;2`jY6t{x?eu?_b-XN>9~Hq2fIW$uLY?qscN>KVRdEl|v7HfNH7O3K zK^OHuY2C;_XhK2fj0b5{tMY6x0Z-noIH>$M^KSq?ge?qAoftTa`O zR|N$ylD&pTjju_81Y8v<u$32c%27Ae0j>%h+Oqa+x_h&-%n5muRiSK)#uLd_-Vk$=fRCV z>`?u2#PG$(j`4q$(l<4b_hExT6og*5xrubQ0ysQ_(*96c^La0KI<_399o=Gjb4puH zxnOP?IuJIk+Dc9USsWHUDa+Pp2CKXZx9;#VHu&0oY-_1ieR67MeUnF7GgDE|nc?e7 zkIj+*SY_uFlhLt{*_l{Xx?`D`WIn%Prqoc{WyZ(%Yzd7OT4LKuwRwR5ELpzv1ti`h zVE{kfT!|lTZ`(-!PT5fQ{W}u{(K=>UpGp$*%%F|OIytNdp=?I}QqQ-+@o`3Q?})gS zoxBWL8FXQ05XW9|ev;*0NwGjOGTy$k3!eS1TT}{KE59m<51AA-&1dAZw}6@D!VVHp zm8gCE;8bPFni6QuL23n=fOVaU_}h24^>#CZTn!6*Xe-!9mtp_hwWDLJmYu?~qt=5) z%n*Fs&-tH2@V}4E)(;4=zwLLGVNc9z74!C8^XozJ0zBU5{OBh0Q?9^qR$H!q zfb6Z#DXILlds$-cRC|4~q-yNL5jg_Mha<1%DH~E~0-ijZVoi!1=rgE#@;#Zq%BCU3 zT%ks&2wr9Lu)sFu&~S+fTzx)oZ_L#^CF-FiOsZ?u+&uk&@mj<^Ur9--kYge80>(@P z7fDMxY%@wZKZsB>MN>cmM8LEgD+#2ZS*?B^kPqPq3CQBpu%GxV zbvK>(^V{hX?G*$OJCoP{OVDF5V+Ya3D;4Fi<@TkP< zC8T6!Gx1TzWe_K#iX(&b^)pMV{5{JJkQlwVm5QdTvt{!KT^d<8ry}%#Vl4s)ZX6sp zgtWOkK_{jSN$Xr2W|mUF3MshqN@%-38*Yqh*@a0KmofX};6m@(a$Q z^1BaRuyVSvM2HNfOu8vrQ`e8_`3#fTw9kb{=#XLe?N*1c_%|L#LN(OnXg1#rsxo^z*A?D4Lg325pe5!y5Rn4~+{`@^R+?Qye6Oc(E5z%Zf z+~4lWbi`l8XkrpStky;?1mCRA5FU$FW)*B8G7Isx2h5$5mnw=6yV&dk4vR@_A0DFa za~>?A{fp#AS(=W6KScZ7jTvY>-JW=TMo04?@l2hK#iVj9^W@@4sAQiH`a9HDaydA8 z+`+r!=2HA~&j%Kt-*wkY$Mbf%x6f~XDgJEoM*?^x4SZ45GayWURb`HWf3i3@hmkle zW+8yWthqao%7ua|_?Ul(o~1qVN+<9U+yIL8M3X)@RH5D#D~xZ-e4SUIPz6YVy&$zt zj9)$T28-pKO(P0L_ah)yxV75Y>1EcjNs#3A8wUDQ{?zA*uOD?Yv#C~|7%>{#vNNU7 z=pBc}={C;dq^A^z8iF{YL;wWZjhkH=@4Nk`@3`yXvby@xFmCe(GpH7)M;tjb^Y}l4 z$Y#g2-rW^4R4?5v%y8M;EkgZ;UsTjs{0pyv*wM1PumXL)iPFe-X~#tn{Cazf;HK8< zGW_bf87uOxwCkR#{<#?Q+L7ECt3ut$IWD3)Z|#HI`v18AuLN-(HE$$Y9sLu(#B~ke zc-R~1-|$+(_PcQKxwNG|%>RDNO)x=K2IzWBh~z4|g;-1D^*q|^Y7m9RR2Px+wwx5w z$PHry?+I)9_C7(46yxDNJUNbh;KPp|utlIwiMX3~yN1O_2r;E?j`C-58K)RvW7sDY zBq6M7KPP^?tXWI+%0onu^o?su{YaYaVP9q2p z(jUZF&PP8`j)>^1AH@C-5v@e_s!M$fIhCFM01aVn4`_)3;^t0;M{65Fb@a6uL4CUD zPe_CY!V@C;j$?vq17dGMn4sD@RyRxl@BuOUiE&q@FO(E`jqaoVZmIylSI%yw z8{~qv{$1e*1&scabj>5G8HTg|4O-bWfqhaAbjnH5Yk$(UCklgiVgPEs`=4qf5SY+C zTkVb|KpfGt5!<#76HZ<_2d3peq$`JRM8X`Ziy>Xsl5bvVfn70u&5Ei%mGzw=E6*0{JrVOk#F~7J}>yJ41&#WQY7}mY;b&D6)vqQ50gEt#j_D;i711*V+26SF=>$q2m+o#EN#N|+81-Nb>LQfNvSSu*?Da8}(J zhnZZICMvzE%|qix2Dv0@3s=`Ryu6r72&i+~t>sT|(p+Toyt)2Gta-fh%;ApMy+V;^ zSWOZXkv3dw{0UGWFB7xazBrvB7OoF@@v9GaNOIFPpHZ)zM@?2*bVqeKK8l)Rc=Scd zbRL&(q0Qq0x@3P92JIDI<2wSmof?Ryq^BI~q@UkwEwfr4)4ka{`pja2H=YY}_r`aj z7OCQRa)X%6`M~Q8uRnWmVzZDvZu~3f=g*53edG$^)u0=8slm#vFaB1wf&Z{Ln4X`w z6##G~IeKjvRBJt$BL-;nT?uA8*p>}psx&YPjjS2_J>yCJh@(V58y>8h%F4{5tz^2H6y%A&mGX+1Vl%~@ zr7w@mbj;N(94n%B%LTiaJt)PzA=QjR_cxLiLc#K^K+x+{ct;R%glW<_YKbqt?-HcC zlbfJ!xm%EenJ@nhT5A(PZ0$#TfgTW@H-MgNWe!A zgz|A&DulWZa1&MHc)$CI@?k%?XGd~W&qT2Vk4^gSdEDbOSV=BTFh6qm?NLPVIQtoO z?WDq31m0J9?O**v29}so%@?A-`T+*4T8$*iMeL9Ag@d2?0c@x%8u9J@yWUT;Pez{f z+eYhJ+=NJdKV) zo=nk%`TS-ue|i}4d7cc5u==U>Js5=kZ`L~~VCJNW;KH3l1qX>;cDA>*Z zDu3}I3&uu4Fikf_F2jeXq@UPFwd>u+ch09srhqWgK#UK%Nu2Z~N)h9Oc6tg`Qvhl@ zV(y`@$iM-L>d+8O6ezDXLP?!6J}E1kF(vvfAP!ZOWF2K*kXc;i0x2_B_o{Akrtxf4uFMu=RayBfQ{dtuk>K6q7D0-vgn_xWvnl!i0!@_R!>J=thu6YUyn78P`OH zi6YM5$1v8!evrRS5(_0xhPze+&!L5Ztjg2Ml zAoY*;J3M}niIP$T0(87=VjSLH^%!!KWH6cCHE=M#7d_tDY_um}#*Nq6cQ(TCa5ud$ zJwW0YhtPg(rT)7J?i>0;YM^D4PDNXjoldNeh9!El#9p*FnjBi`nSHXQ7bl&qv^aBi zx4o=q57p6j`K^l8UpUE2yy0{!J@nQ1(oMj^VFNn))rZbsH&BN1|5bGQ+45YsN7;25!S)GAt$iF)qi&CJGA=O!IxPFge`u z-T+L1kcO=mUVI7P%4Uj5k_C(S>#UNkH0#FQt#tc-_HEaDio4Hn2$@i3$$FUo!5!~X z6gq=5vKmmg3!m?@Qg{W%Td* z76}oe%QI+9O8pyb5O5yoP^U#D$!;y>5!qVSu5Z0IA(}gtrhdK`V6b;tNq!PF`;7q0 z$6nhHvOFI#{7747 zO+RcAp~FA$cCdXDr^!O{VeI))dvA+)x@T1$3z6dT1jB|k)`Sd02XCLA=xD(B%K^fM zWc=yylX$IpgF1XQ)>$E_z7HHZY~;a@EYNh~2LP=-T7-z4?6h2=Ac~6RMPV@VQIh90 z9r~*!u2Rp88P$>B+AD!hzt3g@+*ixS^1uB64ow^vrBU&gEv4?uX^-X0(#yi!%Cd{7 zS}PLrv=OD51Q?%g`_z92Q_v1V>#3?^Dof1umks6u|;;Do5zi zmL)m=ebYpQftRzt%Psa1N%66%#w~v>)zNWyNwEOEu0NJC(37wf8S)qr3CJIKIm(T) zsIoju8#gav$Y6T+<+xcKN18er&}%dHE&B9CoU0cs9vRsRd-k~QQ zA25dVPmdu3_CRpK=Q-BupoICA6v{EDiPddQaLDxR&gcGp;>@E@aly;y!=q7vz#kW# zSNJ#2t!WvYunBN=g!yuK{4c3Q^Km}Gxx*wIzW58| zwT5s%gwI?<&yCYFUsXOGyrm8KMec>tpUZ%EGQ+lcw z!M>LouJg+MFs?{fQ`NX3;Yk_iA#sJ-Y@;*dG+R!yBN28=@q0a85|31Dm&r@s@U9n8 z&5S(>#pQ*E2K4O5M(SB+Pr+wA= za}2umrA&Xkv%{nK+xo3rIabHdmDL7{W@WzTb|bI_yk6HA*mALy*wuZ=Tf9r=D>;|z)vhIUXH(k%cF@2|l>5%~2s?F-RbTb*g`c zml1e1C-fhr=YKX${{=6}(rorXEJC&wwnAxm3_1lH^?WytM$Nv602@BXLaNvZhevxM z&^tsAej*C+J|4l*wM=!C1~D-S=sO$o8W zO@4B%SxJc{w@=fdM96ng|BV4$*l2N1z)6io!AXaHOGsVNqqKop>AoxXaG<7IW_9S- zH?lrXBo#KS@uXpb-=_k-5<3{u6BM@z=d;SGPG~A^v+riuSFk3=qRu!TxG0oFemK}% zkec8bR((Borl^Brpi^J&%xVq_zp02pTqTL1u$J>^yMQ-!4wPLyYFL|&*<|9_9O0B68UgQS2iR6f4+AA}(75Hc~&! z{wM;ac$b`L{}WWk|1VJShHR!JocpH~xU zJ>8ftYAVt9G49WXF`T8&i1-~mxBlkV5@M?ZfIdQoguYa>Qwnqpi;WY8yfFY!2FIso zF!@CW1ZC#M)A(BgNb}1=N!_hHV#@2B)ZPQN>RZhVQRXFWUAkmdO?};iPYaR2(vRct zf&Pg}5gO7?D?shnMRpoYMdZ>38_j1IkIj8Xqgkiw2uuN5?^7I3hPEBnJlUXCaL~^|dtAwQCfD0fs@Po2J+5cW2U=eP-`uGz zeVg15X?q|2uvYmpM2a(sNVBo7^$`$_cl5C3X|;Wwm=yYXo!t*h!8Q#(p>~c!hHBUh zUvFI$qr&%3hP9i+DG%pgmr{-Zg|fxMX9V6V+bmg)X|cRL%2%dvwBAhX=b31KP4L})$Q+sTWO z<=D;tYm#bZ>MIOEDEk5*!07hy@>pV6P)1BK8~C=hsin}OR!CPV4-8h6NK+ry1E^6i z0aS<{Ki;f*1tuuKL!a^?Q)CbZ)+AUlAM^1#q$JU|aa;5R{dI8B@P0s(OS(15!kln6 z6_#QdC+RTR4@2_(N)2v`b+fm&N#ycjAY^Qwc@;cTSWp2AGAZC zbzbsxnso~2=`Ry&osbj6v)btE5Zd!1?s@=uVwsbXCqxh8llgjR=Pw0Fu<8|;1_|wS zXves?xE$lf+hTYiSiPJzpW4!t>pGWSF7!+&i0#%BJ$v|IY4Qm;rnW~9%;)5#`3+Xz za;!voL=4ij$r=*}+q=Z`zZ-RleY;HuUr?Hg^j~`Bz38_r4XW&(@yffyvdW(C)l6ht z7kUnHA{lBz`Q3zGWk(Z~ilkV++xsiKMQA6Vx4|*5=wX^De(Hx7#O|LkEt?{Z--U|t zmyh#+hL`LHppMI3eY~#ARI_b6fnyh{|D1kk0sk94@t)d_2%-4!7d;V+W_}0)$PEy| z1+XwXnd0+Z2e~+2eA7QjA|9Rlk-)rbr#`LhN-itp5Q8LT0pM~Hc;n5j1*x45SQr@` zq6G2N0}6%4#EQ^F=$i$_rKT|?_?ri&=fpv>EWkFoB|bFKR-TyZ%LIhwyP770e3z)= z=FZnNl=YQfANnOAJx)afqlWHCfaBOCPb(4#?fAODMmpq7oU*tfxZ?DAbC0pWXLf&& z?9jXYcmukG`F%$xgz zW4ep)sR>)9A<^MKzY#POdwzW4hknz$wyPH6Gbrv=x7VReTaz7iqj48!>P z+14WjF^l9#k*(tODDm%X3*iiEFoqyT#OwTMUR20NoP_6~Nd#Pi@?)$D21$sx^-4CA zbX;~Z^dyLV>p$tqe@#Cb-fkoBn#8bg2tiYvtY%R&N|kQcA>H_CYayc0b+-5 zRWn4;n6&s8u!P;UAi`#2N8#PG-jgokps{A(d7H>*6*2Z~2>V~fJ72&Z# z^#^Z-;AR}Zee6~cmBBpK{G-cq@JW>RN;_lw{ImMY)7Gl0{z_##0xaHX8>*j6VgnUK zGzU^$3``k3?Rx^xj|dJb`OvlJLiYoEi5$8505D-;t7fK{k=2ikuF4M1pG8-zko>oF z$brkz1AhR6K09Feo+u&Cgrw8!x^9)7g=$hz`^aLS7#Q$A5b#a>ec%%eOnhZAyQ3E= zv%PXL1P`!T`^1SF&6#7X?#TbF^5{X~q>dlo(V?)Dmk;IDasasm^};I# zTa4rV!!zbFxiQP8=xRqBQ}39EB}+4*_mP)L*+qB%BSBvTg9(lQU>D^(UX#hON`LKX zqdA3$4ZwU_o`aZ?rM=Iks}Q4kOk;~P;W9n7DegzsB?Ki8WI%l#4Fr%{6LwhdBfFGRccMGmz_5!Zx11Iy z;jt_aaS5PkeFCIV)tIKEu6~aRR{MfRa;4!=q0a7G@q8;t!K$TXmsv!!&EaDE{mZ*qSl|@qfBVfiAqjz9E=y zc|e$OyK6cgKAj}ovruc0fruGl#z=ytQ#2d(k}!tR46=~Y3n2e#u6|FJp)i-6UvEn? zUV#v9Y(&#M(-#;162BjCcK1>KJuDeaD4f1BWlA!p8BQ}r?YwvS~r8WeFZ4&#~Cinjx@j2;ItM6x{0rxDn&N%Xq<%RDvHTZ^)+aEX&ac2qW8C zCzo2H+%bxta^K6XQ0GS%1t)Rr7bHyhsd~u`iDnEzace^ig8y-Oi?E@2k@n4D<`0AvrOT6ZjfA^xMJsYi_A*b zqPj-03JZZI+ZIz`S-Wm$e78-nNmsx6paFW=V$`5*;_H-CbwBaZUs~^`lKY#s}@%fEUEyr@dO9n{9p>x$s*AonTFA@>5h7NcH z?tG11XNc1fNhcjf{h~JiV>}4w7NzsCwqQ7!&v+;U-@X8pDEMh%q~uIVDhuu})y`JG zQvr~P3$e|_+|A;+~Uywe+tR*Mt!Dv3>rIHA}x8^}kI`zx44`;o^NLJ>Xo%Wah;{5&uv`Xz5$;x0nr+#I>|Jio=tY~ly z60md^Ta==>`dZ3pl&0O|dkpINUKI_8&NBbX`PA{gN5TiH--DhdyX!;_L|^@X(_`^X z(E2FC;4>-z(ka9^5y0c8Ln2*g}?7lfRhOnoLOdM_tfbdR(^T+Z?hO4Qu)P3mKCb+K7)=kovn z$TqQ;flTjN}X7YiDtlX$aKsY`=onE1|hL3&tzpp3j z2Mngu+DSI1FOCotu{C;RhRw+Zdlg1BQpk4(xWxo>tuO!c*}T9!o5H_8o7|yo&kzdL z?54j)QA6jL}<|m{ZMgEExLF(GfIvCw+WJ54LY!uzZ~EN8AU3 zB{h5VrYVfLd-|C>oBR5QXa@Ft``mT@3f%gAMoap2D@W~B5_ zE6F9x@&wyfrk91}G(^^_La9%c`x{V-Y^X>r`H z75nOGixop(tZYs^N3Hu@a!n;4$|d53;3|DxS{zcJ8us<;RHZ>r*aL;e^4U7`FPNWM zW5s-v{rXU*LQ~~po7>sm;;`#VK<9t{%=AW@Ym8F~X%x(yF{5(5PoHB)yKr6JP{yBU z(^|hINV2Q>j=4sF9U*cfPCkeqj_KF@fg7RFe|J-d#jmD7=V=;0T+dKm%QV#> z!hPE8o#*3x8r#mk!UWmR7fe(FYkfHhQnk-E?>lt9DM~RPdRz>#bV-@c;KWYrP6+Q_ zEq)te#1Bt)SWMl@cDtwD2MC_(V~@$1dQ(b*0=evkX04g`mpZ>0!Y;2l5}_!RpU~DQ zli1@3m2|E=@_)$!Pz^<(T#qFnDPO&@xT&1U~rN-{*pKas0O<2@Xd0|V%PVB=r` zXaQWDm}k`oIQ`pNo2!hCY?DrfJJ#;s5ft{=d2|3@6Lft79UE=mzal8m6gD57WNR=2 z%5qhTSV?p|=9XWQ6cHenAVQkeOm0qjeiw=-tIZ_VQP_ytUefAy|l^H7FWErKNB~f!I>wTLzV26|zo6 z;M<|NWQz=$RH3sAiy+mcp%_*VTTqcIl~7J;9Q#J7p!&y0TAQ@HqU#nC)_p zL-92y0I=p=eB%>Y*4^56g{z&J|(+_eLXrFalzh8bJYQ7{<*mg;q zEldseNo!|0+xE!MhW&25k=}iZj;><-6?8niI34WsdlM_;J$Jq<)h%)zKP1cNdnn8h zAMYq;$p)abgEF`&QKl!@bpWDV?mNn*`l1Vpjl#gW_N!n(qlS@jwgsDCSmS2#I#BD! zbE%+*Ntbi@9Ny1Ug9vdcWxZtz!2v!@VSxO&r)~z!IM@OfQn3o(aQ-gv;Vw1;A zfjUFet9YtGEj@|AgJ$D+^elMIlf8GRFvWE4MNz!vRI`*Di6F&BtWPC)!4Ri*Vk_%c zNt0<9-b#p8$m^|-H2LCm@_u1KdzZOT1IIK}J|nVqx>yWGwHJ{k(6ke;cfC?t5<6F9 zncVOj&Q{qn#DOm806B10b5ggI1*WJtaMiNMB<1R30?w3lMKLTqp}4(5S(vGN=M)cRd;;rkw*Ykl+@n1&EJlOMcUztGlc z7GhGuY{*=|43LPIQL=U@yI~=IeDy9I$t35B5`;~3a245zmQ`0P%JKe^#JXcJ5;U&u zba;_v5RHC69Ykl-IOCNO5kG!6YjN$qebuN?r$juR>zvJyjbNhq{1f5D)iAoIsWlM0 z@LVvH&DGNH+K=DX6kmC}Z7}UL;{zWvME%)7NhIC^xrJ=5$2~J_MXR+q53lzt_dkgq z)VE2B%A1z)p^vi4CY*`f_s7KYy9l1bzp)Aa5QTk)51 z>1a;iB<7ZX#J!RA>qIP~O5%F(v!2I~v1H{ZL`NSaWI??HJ`y*%XQLfI&-Sx#W5^}; z@vHBAzAt$Noe}vJ8tr={wRlA*5{j?FNAjxezqR7!oO%?KxZQ=!bim@W?p>vjr%(oN zpoTFL*lk>XPYMO1t&W=)+^Hi=f&&F)a`u8|dhW*=D2nBy#^c=lAlR=%WDejULVzy; z%0Q9km>%0JNScNXQ_pRHq!@7Xz2&I|gg2=&Aj_NaxXc{<0rGkG7u|S*o47cSuE(LJ_QwjqX@y9`Vfm2Xm027gtIRIA&DU?(n zM?!Cad~SJ)$CZ%_RR7qm+IpJ!x7v*Y9@meA4s_FM2~E&3#cCV+hn1!$oc3>_S_VR6w4vjT-%S!_yE@3pEC?7;G(9x zKvyMSz=mf5UTB5@%M*L$D3%0&rcEq4Ub#(RAYJkJa3U;`UEFDR)hOF~ zf3JgGijBvgoL zJ-4~%_b!v>mky;|1L8f3*4hd(WC@DZCM9sb2UOD!{YsbczN+egLo9k)0~IF;FnVvQ z?L`OZLe$mNCs+~CDJYacd~55uxQrj{%a8qr1JVNXm3)y}Z+RL^a-Oi5zh|H2E_hU` z1_S8W{Lm&HY)sBF1sZi&%=d1o6pA%-+cj;xT{?1U9(-Bpm^{3&C3@L15n1W%u`;=< zti8;OR3GKrj?1;oN0I*!6C55Z%-hVpqX#r5cr@vFu zO6y?`GUoAw&A%w=EeB4YFI+APfR^*KpA`RBWtBR&3_cx9nf*CU@q3H|-%FF59M3?d z`;P;^u((Ye&XM%q^@v{u(jUwZ1D{G38CXvv@BVwOkV-woTtvv--5(TOAXSIb`iu|K=eXR_x|(!X&!A_@MPh~ zt))(3Y6_)iZoQMGu|6;!WJ|&n2@=n4H1h_G^VwCTN}}LB-omQu<6F2y*gkaX%f9xw zghccdU}czG_QP+Y)dz~z*@&UUi6yW5iW8Ezcyo8;p8GIR7yDb$a+zoQ=fEje1G&qK zXoFJi$>CT)Qa8VVd3;SnJUYGZ2f=Kp=59Mit`NO&@Aee`2=?+8W=0bop*V&1n7-goskEw%x zX>pGr>$z%=9%mMEXH2u_y6L&Tg$8BqmEXQn!=4FSaA= z%`W!?rtrh*s-9jU%I!wj#a6S#L~g8a?R#FN>j0va4EGvlEaz9tjqM>kkfGhuZM#sA z;XwM$fIv7>V#Bup<&Kfm~baAqUeLOB!b92{gyJRYtwK=#~4ew@N~e(>xIx9v+Qtiv?J zRj~O@TYj3&!`kn&7FHMMl&_Ovu5|9%+`R2xb-ymDeZwcvD=TE)Zi^R7HX>`G1Fp@} zktQw8^9tVfSDVSz%|Dh>;$e?&*B!Z@x6l#>c<=R;Hc2S%1>11n97KJQyg5XYdv^nh ztQIA|wPAfLJ!&Ib5j=_cy#)F;&7j{67-<812Y<5D#(XVdpAP&90@|X}aStER6^Ans z@A*zqcITA=gZ{76y@CJ3*IW2S9j@Ek-x&rbs1b$^=>|bjNf|;)KpI3qL^>3a24NVw zyKCs~kWd^#S{xA&kp^j%7BKjYd+&43KKt{Y_n&yybKmz`*Lv5zGaXYP|NFs{i{P`W z_FR9&kG=;RyY_M*Dx^QDB#ygoP=Qoz&-eSYCEjWN9)#I{<*XDrq!JKzJ2)5-i$KDN z4>C%$fOAjx)Hb?7km{H}k8w({$QoN#b0p#p4j{|j3*pJMfM4+fQ}6C!$*~qlF#tr% zhYoM?FM@Nr1*g$TI5V0PNEw$wympNwmLFI^-(D%pJgQD>wcdgX37a+)D4!SnINHS2S~DglvK-r#{bgJrzkR_&oQZm)0TmDNxq&J<5_cr9$jY` zmHf7pSh&k2VS)y%_-M0a7y%|(M=e1#ZOT+`@AXSt0}|@ZDGy6}fm~k=YLO4nYim|F zUP)`qnk7+eyj+qQ-qXI5o#K{3Vb4UiH%>YJtl;b9lKhsHYS4fI0&0X~4@%S}Nxnt} zM=jI;M(TNzc@zYiZ&C|w-$hH#p@M$P^{H)@zq^K#4EbzRe)(>+o~$27-lYR$)u-YU z8)>Kz=C6v{7B}BZQ{c+EURKbN;q_A|9+n>oS4jm6_2#Zy0XOL?SaH$A5yrvZTE~wJ zi-8Z6Wk*o(kPuheHVMeoGhJC`M{Cf^*s1AyNjgf{blFLx(3re72xV(R8}$*D*qS@d zQ)>2f&*&cgjg$!OU<>;W(|eCS(-YEcAN|z4XIfR=l=-&C?&j#HapUEttkqr1htjhq z>C?>>^1Kcb)pf&7`X=sar9;*`rk5zD8!ork+IY%FApgT+`QbkWugfexWK4bCG=Jk? zXx9pTDIN^QeHapORf_E&$Qh$Byd#FWOaw(ff?HnAo=NJBkXY(kbBcclb0%U* zzK^_-sMFX<+9;5#_gaswEQIhk@!-r9uL|xbR@3mUl3QA*j+KSX zv;38^w|s@Ns_WbYsz()1tH^n1B!p|*SGt2FCFVt_7`oAfAGtImhQAyV0 z()^0+4(_7K4teJ*d`vJynDxVB;l(HZazmBv??D_cth1dr!(rc(lfHEZ^b7TOnemjM zNg2>+B~lah4K7~JZjjq8x>J8u5711^1nEB3KoQ(65dge06cmx5pCAP=eRUAsbvmR< zZ0s=Z>aYDba9)W66obvP2E<#>LZTPwMbuNJ-Km$$+5&y=9|Yx5Scp^89_`wVSC0p1 z5ga_wco?OYs7BD&>%dhb9dg&}QxAS9O2W-{K%T-DuO*yGD0!NkKfC8X*PPWW0Df?) zg|OX}^e9OB0d?tOvz_wiHt1OlRJeD8%XyJ9Vy^7y>&;K`tJ=OZaf+7VK`u{zt8Nf` z4jM1oKlN+LNM#p%i{7fbOm`hbv@6K&THlfXxqCU(lJw1H303H%COrfa6+r*i3;aQUJ3_Z*84Oo~8 z2qG~QMR=7E^6HcWcAvBBQubb`fL0;mFGRt*&q0qnpS^@v9&mzfQZ8pZ6@q}2qnX1vFm%sy@#PXGa zL8UezDuN;o9-R_`SlWw^rvTGa;)iv-XkxPdPr>`|j>dlsiyC@O87Y(bUsc6hA*n7I z?7C>MK;|7=umP#B%{qL2NRt}%6dGq(3NGmYYvsG=nC$Th%Hy>eBCn-B5$U^pZ5VTn zf+I+f$9{ewOIw5jlO2{?KC9j_F8tCUbvjj9J}Xn5BlSb**Hn^U2x-Dq3Ls8Mj-QE) zaF?FUkebr9@YWX&J$mEAC7jacCgOK1f3V%v2#&8kz}3!P4mR22=i-lGxgp3$Si??D8*}$MBX{F*5 zwD*0sQiJPKSda&%np?&Bx3QCEW_oa`Td1?TUe*-*5M8|G?;Z=^s7aYBI@0H)Yjlt$ zW5aK)q~OFVft^{N$Zz^U{1mUvgEJGTQCnEpZ_uNs9iQ%dO{Ygp*;;us&Dv+5v{Y!< zI+={lPJb&b@pP|svA^?qwv)cC?Kj@uxpKx_Xuqk(&=fkbJ@S9(eIxtkChjsfWV52rrB%YfCPl-#^iXQyi@^kCX z)6use9;yUZBDc3XTIBO62}l1kZ)`}Y5JJsD5uic@hb1I>()$NQ!|3CavU7BOiP-DR zN4X`X()m%wg;`~_bzBv$w$;V;ZKYKH4zRe^7q1ggG?fldYw$xJP8MnQ0A~2TXGgyW z&8vw|Hoa3GG49>7E9l84@0Qgq1^T{q@5RCG1K}@kH)amcgb}d$@0jHyII8Du9*4pb znGma@;>Tj=efp}=)w_uh3=Qc)_35}NK6Z8HX$uL5vQpxq$^|oPs5qCVV~XmmqT7LO zXQnXpy@w+$la7BV&*X09*YdKw%TebZFnFc@Q=wpXk8{cUlj?iP#;vUq8?OuRCrKwd z)@DpM)G_AP^@XTwJ@MU z`dBO4g)SkrSw6p)+{Ml+rw|bTdGG$_3 z&CRrY?1N3(xW2lQ7=r2`N#?bI@uZ9@`eFg&Kx96gSKk-vCtx)^mZ>zbS)8$Dlwpfl z)|OU+Dixjekx|w(@FDD?-O6+2*TTQ#cJvHygxbVc_7<>kZLQ;E`|n|aXW5y($+0IL zAwayUUK*!FVsr8MLScW zgJn4DrBBbR$xmQ84#)xaQKf4m-DZwV{4Na=bDAsf7$=b=kY z;-XBnHqp+&RuzXB^OtOArCjL+iMm(IPWL0bs*Q9(Y-dUnoOmgih#o0}xHuMsG)I@b zzQV)-?q@K>;pGtKRuat1poS+r+-gafKH5STRUZ`jjRq-1g?X3{z^dCMd^5tRXK=UC z{MqGRn0&$=Ud0%?YB3IC3`^kUG7bdOKVvjPhs!Xu0m5AVjD#1c*NDAVvk>G zgtU5b#r0zoEtK+-Jk-H+9(%cC?~kyVZK&gKuCxpGL%-X4_zAz6mh51+ZZ7jN<}-cv z77$Y+2{a%tT1{09j0mAbBBM5*nbh@N47`8&OPz!gcuuxi5pzobgi8T;ag?#Vt(R(D z%-0&T-m&bQH%=7&wb#d>^lSg|V7e?FTYnw)&_g}G7qH=Ak6Rz>5(kb%Q4d6Zd{_*Z zUz`n5s62X={RDihe~j{Nii|h+;u1r7MS@B7)T1w46T`$~ z3n}dX#qBjj><=~cvC=ewa+Pe9yL%|@E zIc|{>4k#&_BN5A^2o@ipy*087zN=!xWdx{3D&k@phD`Zb$b!{1-IM?C!S8?Tpob4W zQ9YCm6g`Bwl|4c7@Us<^L-&qNw?qc}=^A2NYJ~iy8|eh36k6e^VC09%GT;E%HHNj> zB^4L#t$5UlpeOf#Pc2$dWZ|aB%;aUEDyx9v3nKYxwc7?w#Pm8tFRhRBHpJaKS=;z z?^Dq`9T%X$;5c|3sdXZi^A2!j0{w!>$DQvI`P|Etzc^gc01Q#*l2DQg0jg4`Fp$9Y z2$L_MyJ|#p>L$2Iivwdsu=sfGDz4? zV{y>v{abcdAk4ZWO0{R)|F`Kw8U-`;lLcVbK_SEpvp0>oLI8?AGch~I-aF!+E|8Ix zTUvH2KeCW2Gp@Y8L5Qlr)c~j|Y3%H}jB2qfs(sm4PXF4TCbq7BEEthu_KYTQ^zF1e zQ-Q~e-j53o-Bs>1#Z!wL+OQS(=*i9RcbDH|*5>zq$c7(c<~mL<#6-{}yaHMB7?{D> zEQ3Ji>rkXd#Un;oMn@!2P)ibunY|tRLx3XGW{*=HLk_=?sj@%d=}v8BmHxGPz^bKw z&6#gZwXyJa9_+Z%*+M*qn!5aH*;Gmp~bmCDDIJ2^;{=^ zv)9rk;x)9|#PrT1KCH zZ@xKnxL{}V108s}Wa?h9o>QMHUP439j-jJL06iny1pr|-WrKtM5Gehx4rrX~c<+ z4S{30+XZ-dc8DJj`s+DO)lGIRW-uqSE`@_7_msWv zmsRFxAtyA7^E5{U2eWwtItl}xZVN8^ZhR742@g&tfU>bSddkVcE)JWps2iPq#X9E| z^N}fLej91oP9~M`7{Bd`Lb||DTS?VI%vF{ARG{q+NWGV=Ys9&$zf$G; z3Spssxh8)0ho3frbOLgdxw|<;mZmSF+<YQImEylm*OZRFE*a1XxouwmGgPd@!;x)7jg_tf=A*pzR_Qw%~2$PGj{yn zZqI`$?|$!QpcdXU@JKx08BHO`QFrq5_#KE*=tgV^$`vRd!3D*iqh=GV~{!4%9>mV=%cOM z^S9e9g1@eKaUqmkMbe^7LeeiaKxMuUO}n-V6XGM)GUteMcL9;KIFQI*6-kiC6upT) z%n1_Jikc(gL77+lua>3%bN`9q%%UM>8oc{Q)#)^*R0N)gkq=LnCNs?!d8C2K@=TUS z!WPB$Ki;{e)0F6f>Jf($K;o*&(hQlntKJ%zo7qXy6p3Z06;Xp~)&@B|jCR)x&NSW9 z(Ye!-oX=2+TJ#jnB>H3AV#VTP5XNg^1j%yJ%B?ZxtNcmY6&vzX_r?Vyn+y1J`I)u_ z2R++pq2FD;zz!YB0xb`3Zq41dB%-98Z_ElOFj&cQb{7al-O1qI2`aP>{YdZ8@OzqpYsz$awyJ_Nlcno- zi)1Jv#Ay%vP=^ltcDP47c)O?E%o8x;T{d|xJ}tyfhoJwm4fo12rU^gB{){b^e;a9( zGD1`CZeC3lm_68eo>mzhP(eAsVA2tuk`aEJ^PVpUV28L73UgJu#?N$*-D5iT$yAT6 zq9D-hXMg~2I#~c0;{){d(=LOh#{G!`SIVk z!vn%UZigYV^V>8GPuZe>^RTZXwH^e=xg6m=n4fDUl8`1t3hn;_`9gObszanvA*%r|krD2++Tq8YSY& z)De`-fF_%9d*Hi|!mKnNDt0I*=jV}8(F*jiM>=ZWzQl}r8h!9xGr-3wy#VKi%1XSS zn^IU=rB-ZXksDs!)O;(m&axrDrR$|E?1c;9*!k*B6;*;KakCmR@Ghpd)DQNS@G%PU zI@=!z>z`SEGBg)JV?4gHZ5H<>U}1Xa;2vr?daCj8{PrwIITZu8KYxyYP2IBMy= zW8<mYI^quiT#ebI#@)-9PPqh_$rpzP+xz^CH8j{t5X5l3W;<>6?%2oPiW) zW*=`V!cD}yvf@7V=ZJc*TkAjDv@E`9d#m=!b$ZCAR`Ytz&6up_X3|b}cNUMwo~<#t z2ftZ-thi`SPegBBIi;Qn$#V9nvkvimK{T(*=J$4be+A!kQ+PVp<-12d_@W{H&j+#_ zlb>10-2evQ?6bn;hP#zQ;M0-Qh&N=ve?#YBVD`qI3kWSEi~|m*-?t2*vL-PKRi1nw z>_<03!x)Z6o+?6rc%F_uYGfZC~kL$M_fmW71(&b zn#iSu%2Nk$5)aylJ2_3j7o2iAQXL$nYi!Mn09SB)iRG2c;^ne(kLpi1(Uj(6u+1lw zVg+?O%IICQ_sT*AA4}O^_Dpx~B!5f4KwnO;c>Wl=O zl7EC0rPI9sQVw=AQzB~Dr!AJuiF-n&S^3N=RV2|eiq&=JKsB~#LfyGmcrJS5Qu9Go zSiQ2Arb9xa9RN31&U6#cv6J= znj6&L6pDT+XVIWbN@nGP=7#Qv6;F?_Dozz-pz+c|9FVnd=aLV9z3uFVP**h&}h`_-``fU&Y+SQMJ^=_;?DDS`NJsMzrVlHin!QuS9o_ z31f511OMV}K;>h?;BLfg9>cZEv$~`rV+HVaPY{_@k|mw`B2Ao+%1)MU^!-c=IzisP zn^KQs%;h-gTVMkhm%Y$Y#BV&^=u8ExpCYK}(WBpD$SztRs|fMbRYd3z266NTiE!Y; zuT%_jL-gz-D6BdEqnGgiQ!zCKfSA%>00|98E2w=U4U)+DL3JxQlk|I9gBIpO^4=W@ zr|)SHb^N(NWw=}wkO2_~gf3TxBTlc9wxjHLr`$l4o!`^g7}vQf9kpqfuI41U*xlrf zd~2JoN9nYtB+2Fod&CUNbReR_KVh_8+212W=fGm~j(xsuh53Fi8!Ssq1le1Mu==qL z`3^YLYSth$JhJ@O!%y;bE6=FwQw3C}aJpAsUL+TAs%$7GB@&)Rql)WxH(?-Y{m`<> z@Iz+M9X%N!&CAUh?vTxCcCKTBMTHc7p1u8LLo*Jm3s4B~X~K2iQ<3rHP%v&#vsU$5 z#ACuKpI0KT3r*46Oord!b%Ks%jU=3Wps8c6rmP)_Fu5@mqWZhsxJNUpCAl@VA)vy5 zA?c%NlPB)_D`E34-B)M7k3t?A*=rxmjGSp0#Cx)0Cu#Pkxv$p zGeotNx|SsW({1BwD&|psXMWr4MP)r4v+(j|51}x<0Q?*HA+?5@-Os)mF9jj03Is2%5gS>V*dxby}obdDU&V; zN$-IAdv=`SdJ*$;R_ z6pfz|K$S_HGY#nrG);?wvdSA8#i}B008~&@XBQtLrP_`r(Cy`$PO4OQn!16vrTIAf z+WzsW`0n=(Kwtgzf*r9c2sXC3Za1^??8TRjZ$_wL>{`e76D0)GCy(Ca9~biamDShc znDHS}E0i_L?>KrR1X*{hKfL4YkKvv$a_=9%tQre;z9cmBl^dVPqIPjZ#PJ|sDJj&r zt^f3@?U>iKOVc*1>UQH1vYcnXe8o453so+djH0ep%BRXflRW%rdX%tK+4}O{8$t?? zMP3+_+Z!Z8v>v{>5ki)-G}7V};~1-n%ouFn7@GJJLI2&r%)iz4)y~IU%jUWz`gKye z>ghL&2dVPSyAo?pT;F=M_?+dM2=mZ+i={J-etr+!F;OHicy13H3ek9d)w!N{#p?El z$97#%3`K{x@^0R$zV$LgRP)T<@~+DoG_7C;o#!XKDgCgx!jjG3{@dIu2C_wqfII8! z-cNwUKkVniEL1Hoek_cH!w(my>S=Jwf!;s$Kxk<2Z+k6_0V@G?;ZNolf}nd z7_gK$*i;YZhFPs8sgqS=lOYIrR5C9zD@%@M?)Jd~la^#g5sPUn3!-?N7L`d2FW6=NKLHp!iE?ui;V@8$~26+?%VSp+#lgPFPh`^I6=ZT z%RMDa!3ZnyP#)8dB+K9kgov(%RH_nq+7`pb+!%S(`4E{g^sh$AB2>Bhzc)&X`Teu$ zVvu-tR20B~wwbM8A&mzv`B*)yV8O6L(L~0>B`PFgo^?yTSF|@6wDJ?rE-Nl8;)e!l z^7OFNA{B*B#KU2~<|uk@tBKhE8G9v(Ewqw7&o@pKklqUGXwadeQ_(Z^dF#o68Y=V*T&UZP(~2quG=D%59tXmFQ9fkZqFV_1qc z8Z^@r45WjBrM77tv$3J^t#w9PJJbt)A8T(V)yqf;qqfX=Iu?#eDCI>E$+NfdH>T>N z>1wPg$#3VTqXEBH&P6Dq&&Kbh8An;`pmt|=g3P+POuIJ1aCCNDvn?*C)P;#Qedb-d zFev?)i$*Qyp6S0I7})>>u<{>@x9ccP#l_t)^)F{BKBt!xL{vPU34t?HxgH|cy4LJz zU(wYpusSOu;q>ojbuGgtrvG`tU&X7BL8TtI{h%EDO5Ci<(le>~-vVH6y2Q zhjUR8RrUZ??Z}6CM5XJq?up4cPpY>dPk?D?e%*fhjRQ^W#y6YAR4>Ap?FG$a@A zogF3~_9hAyH@Z0P*|sYR-5np|Q<-%9K}yn=q>ETO3B11*^7F^S zr_P5q zDDt@i1nGdF-Q5yEx}G>XrlweK!wMB&R`wO?gb+S;%(tuMaM_VH z2861R5`&k~J1I$C=Q}w08JXLqec7EP^|l^J=O)q3&fNMWrLN5jN)~`)moCoO7X(29 zO`v9>JP?TJfG-6|$ar*>z+^ayZ*3R&t`zXT*B!OCBlbx}@UmZMefKj6x>gaSPy#?8 z1rOa`=LYzalF%D1)xD&?@BF5dvVa)?plFfUFpxSc`AYrZYExchJAT>cf5B=fWiv8e%UQv_+qp0Bj-6h{|={gKuJMJ@TMryd1`I(~}`uL@=aB1}*ukmSJu5Rwq>Flosq4ZE$i_Y~^dVny=?hoLTd3_!$- zY2c1Sk1CD{z2(W1$ELCG1wCNu3-MpMp+>z9#?R!E{Dz`Ko zedmy_(e33gJHcSVp8Uo`injp|6z*W)&vb$_zdzfAF)o3gaCrbTk`Gk1(fByk7Esam zQ5*>3gq6`W#PaZhShl2ZDS~_RzsXi22vBvEs>7HTWgEGt=fO7?TAq)mSZE8IzAi9J z0j_?rW?39En7o7|(RgJIo+GXQ9Cbj!p0=bDf;76qd>kfn91NJxPEuou4qiJ)qozEs}#9Wl-yX|1%Wt+s;RndxOdX^7OWv1S;Z8IU^{0N6h@#_=JRpDbm9< zEtLQ&_h;cr$thwee^-Mb`ry>Od=Er=fH5p5v7n;TpeV+arVLxv)GS@|*fcwrxbWmb zWW2Z+l+gHUpbD1h5EuMr@LdWjy2p;jx}5MS?DdETtbcYngo#+kHrBbaZIAe}?zOnJ zb7-kWLIIr^nI_rsfYct@=vLK5R`d0luYQH?8f<4D?BeZOD93B+JL=hF*r@D5#} zTx)-?*rAS4yGSl^py9e@N^5c>AacJ{HH*bjEGqRopHB3!x$4nb%0oi7vJw54a@sXq zzGlX_^9U_*86cW8tmRsDGQJz|%r;3+o*SAMJ(6>WPl;t0glNHaJgXc9I zTowWu@@6kZ{da`ir0B$S^OhWCLTh`<&yL!VI=6LudY$Oj^Ns?N7Gp75 z(N|R0)5e|ez0eU6X>tj#3#RA`V7dAAV-oKVdWN>aZ&Q6g={`0Vc0k%2Q-m+(i#v`f zFAJzY(2yTIUjLlob$6f5|8(L@Pr=RHh4b?td-aI;0^h!X^SHs)3l;$X$M**%2oJhw zH68##=+);gf@uZXIp~RL30%l5gi+-(o2h!C2=kw%Md;nkS?dgPHaaUK0mB~E~j=!$o1WG`5o(3n%YaTpe=8VTYO0pC2E%sLVHnhfrPRFY~ z*33t*riNu^U;$-TU!^qjiDlaqL6>{$Z1(wp9a5wWy`HTsX|<8(GcIV0^b5rC-qBV-wp7 zzJ_ck9J9FtABtb=n ziG1^_nQ~>|rSW^w=LkbQ9!9ss`BjDiy%*eRVgx9H+4_a+*)~>E!d~u2y9J}JS^!Tt z=fuJsU&H0d(ao%sV|t`ynJjzeY-s$I+Y|z^stt>Esd!R4iGc9uBwV{j{d8y5AvBlU zGp_n*MY>^zj!r-FQBxY2TZO>SBY1BkP30orKyb-Vk*qiSA9LOcLbmY8QO(c14+S(F zdG1i_ODgM9>)TEdJ)zGWSBrXEr{lXByg2pmxNpwfOZ}WUsGhSV$^7h)!(0ks6Bp4- zIq4d{7?cswZu!zP%*|7;nefcRKRep!a9(U0 z`H0;i&Aztg!$Y!10Bu!i1*GkU;RByg)sjE;w2b-uunS%mvnR{m!v9!KzVC9qTv(6r ztAHCF3Kv=j6aGrik89KtexJ;F{~IbeP$+dL@z0r3e-1!`P?vbT4Ch!7hy1k=k&>;A z1|r$i(feM6*B2m8%iPaBuPJ6id?*v`-ag_$uu6r3HQk{5+ZNRHK8nY1ahUv$70F_T z%q1Vp!%L`T1j6ezwfIt)cqs9-9WF&TyBGc+4c8IGW8l9FSyDtWG6PiBUN?39DFtHl z@)j8yGa&ku;!n{6AcIr9;D|2-U!Mapc-yN|qnG^n81VpNqYq8khq~|LNn9h}NRlbW zLuMX9NtV?(0sTZ8);_lKL^ZbfV36BnFe`(vqDUDM=5F(dR~|hqB&i=}8f!znW~zD; z#~GZ@S_~7_fJ&R~2U(#?srjVUb*7h7qK?p&Fde_mL7Gxz}&C~-A4Us3@#%SFR#;TxxE6sYj*v4ap9@Npu zZy61sdC>sn-a9^_)Zp8tSoP9)?}TDQ1r^9{|9opp|tIuK{G*6sd=<*9N}$(^4BGbO|SJ#E2& z_5ZlaRar~BrT3)v{@1jH+u}_E;)hBg`;Bm-kA>KmCLN2xcy+NkD%^<~H25o0N1G#G z7XX;Vy}u&GO?rER>WJv!eDusGEIdM<9(K=Mk>>iN$mEn%F24ZRyBKUzT7H28!X-`* zU~&(|RaK*lG9T-^Rn)Y!O8aLSx#d>2b-$*se_)pr@_Mih0qd|Qx|)aHr&7iCInp#w z%%&iwrXAkoeO~n$E%6v1Sle-$AM*&_-aWKkZ}6OXcl1;L+lCkFXrF~KbXGwY=A+0x zv={#Bi5DQ?qJAj?{4kJ$G}WYW6^>XyN+UNLdEg;G_Ab))B+pO}+frD+o%bIRU3?IwX&Z!qabPd0u zYKrl4!}dK#L7xXaaAzaN8UWe`UyVk&615lOhrS5nw8j1A58KPrCaJrajKKVTzpr2a zq9qD8j?PaHW#<93Lf2127dK4M4j^^g590L5>OzE;M`|3a@3FLW1F7^B4Tb4!-U(B3 zAy@@5bM-w$GEp+FNN|He)*<|Vl2@qtG-p=AK~1Ni$ZLU3iX`?+nZ-g(`VWg>SN}-C z6C7+di<9UmrLl2ZRa_W^VinXjHARXjO{T{Ewi%xt9D6fvMr!n?S$WM2J~99+uE#m* zTia2w58Ru`_432=QxSW1?emr5-S9cWNKK_AOnT!66$qClz!kGitPYA$iS8>&Wwv%K z%(OEbDif64-r~pQ@9`sP8D)eJrO6yiRk#)*Y=zwrqPnK-fIz%)9Bo6`uf(qk-zN$X zvAdGEC!~E{1;W>T7T*g7T^83>ylB2Ih{u2;;~Q$42@@X_!4n51_!r@O3}T98hPt$n z`RPmOx}Po1G$e4wraHCB^vNr1fxCCMp*<(Mk8htAH3nZk>h&Y(6lMjuB0iI1it!IR z?q7PLptU41z=sWs=ld>onxYxY;Z056zcAKPWgu|6g z%bP7X^lRrOFw|_DFR}CdEnh1a?Dpco3w)=weKUq{@~&N_V|-lqNta^jbT#pvtNL21 zLZQ^$OdYs=&HhQB??y!Vp7h0L$p?O)tr{TyT%x#sd;}=(68pK^^6|gP(Zs79+LIsX zY2@bFYuf)1C@u$qSNxHs@+^Pe_x|05_%~|Aq{XY_*j4oJ6IlpMVr1-JQ9bI3~`<2w)b7I zOFa&F#S+R`3do9;y(eK1D5f4Cx^<-rG+xwBH+U+_QYG;kV-EfU<*c5>grB}HRqGRDwlYV21XR)ffZ)~Nb7B-RVF=ZFax1t zhbLS2N!lcmAXllm#XmuDa;=d1t(DC6NCKqIkd()wQpbD5fVHHh96jZjgVmfYVm_`= z*RImf7?~`SIj*c`+17g^(_>fL{2!wb6xagJ{?{l}X04|qVu1LUTk-;*`X=~qXn+SV zFbw&J%7n?p6IEt(K02E|q5SVo&*8)M&y)>`k$e9bh4@DrM@gjmpZO3&1Bz5GmI^co zOc-&e$43uyy$eXj5qEl?egS%cvDU<$oVe0zcW}_k>J3j3hpN>bo8g#%He_RZq>UN}YUs&37M7;NDo7&nlTKVkx zWpw}4aMmnji%4oV#v@zjjeRiqXi_N^SGq>sSs2RxTg4 z-ZzN?3Kup@QbTKlsh2J_pdd>;W3lAIRA9F~JJslTpY9_#(t)#ZBXWS}Q$zVgsC39| z0JAQivZ7duKB?4!({Sbeeaa&k^dI)!&>Y$+qLW?yhq=MOHj)u#5Y!(V~Y;!C}CPfM;MG0+&az>9g_=H4@rz<{! zUrl#=26ocvrhIn^1-Ic?nWx5=*l#$rQKU`e?)EQ zC9Rdo>#YCH^w1r}TF<{Ed-%0JN9s9&7r5rw{A<&QOd9c)$>?rPc|Pz`3*OKd!7C zdV1aJz?X;C>lvMhn#$qJ_E>U{Ytq!N9?z?b8V}#gqA?G^$fJOiYK3ds(I1R{?lr+l zHXDvm59)!|2#Y(HZlFkVU5{s%T;861-c6(Q7Ibos*H}aq+=FLQDy&bGX#BB_g>H zLa3=G1aAmn*ndLPpTvZKix<1WU9bmkisf{$godippLM?u#%_N9bx2UV^80Agj z8TVOla4h0?VAtLNl zMZ(-FLM{?V^JzdyWV#`u#s5Cl4xqe827VmtVO7L*5k4R({yxecrA#)uH&DD>4{?=K zh8Q_W(kx&i9Ywg8`|-e)12-Up#payitd~mYYLu$hXG&72x_mD(KGnR0_Y#vTlTvcL zR;~?Qy?VGjmwR0FToKiYI-s|r3yPHk3DatHm}&Qf(N*#XNVsXu%LVzALprK=V6`eiHO?P8( zaNMi&FmErmTy8_-o!{(X{^?lxtsleh0?!W%07?fQ2nXRiycq}6u25poWVE?D>D}3) z3j4PNH7h^{d?lLZ0n&>l{&*Y5e21#K5^Fs-7eSYQ!XLk1Tqhz!5*c{`ydD<#YndnZ zl`@0=TISiL1=y+oB17H@XSd1d8>Q~~--B^C7zx00(3s1R9=9i1X6Q8pPbg1h?q zQ8;_xX>b2nJv~jgJq?Cvna_m{IsmYq(vM4_1MfeN5EInT5U{mp^X*&v&sNjCXx0zT zY(E`)!|Kk#s=m|lGBWbRwVvXOkw?1Q5PM0!l7?+Rb zGPsDgnhDdrnksa=iQ)^5L2IU0thKYQ+5}J!FAWl!Z{$SLVX|xKwbHXRQ4I<)-5NF2~^I*4+5= z8H0FdgNJsYh>KLN)wNKjo893vtCPd7aa50mn3`KXt;^jGcchCJ2zpctqN4TgOjFMH zb_{S?2+W&2+mL6Xq+Txb=WVm;Ry#M{f&+qGOuK(c=}g|tyy^YznlIHBONBw}IJnEJ zZSIcMyFah?Pxrt4C&likAoUWoCTJv_>Ziqr0#p>K`WU7t0Ki-Xk8unw8BnQ8^n~=O zz(_HuZR=%fay!#y6pNpaW~5vq|4L+HUd2i@&n>+rC}W+#Pz*0C0Usx|5*ZREIwGZ> zAVS!Dq=Ke8Q%_P|=USs>(aIzO-)9?a;5w@JA^^0ZW9cov$4tm%?*2_)_eXq^wpr5- zQGA>%n2z6nsN|ZZkS;i=YOONU-eZ`)O2`OV zmH*KkaAxu)lN2EDi#8N~-dRR)Qm0rFifqA8@9kc2Kr)rS`hQI46?Pl7uKo(Ae92J9 z@#cn-YsWVunW46+Z^PC0pVIfMHRtIk(69FEmL7BeIvG{!2Ic3_P@$2%DgJ(3oP$@9Q6~n_8SuvW0%F`TQ)!%>gHAh}^7j+YtS45vU_#ns0t1jv8uW zXKSe@kI%jkbJJ(*p(!gJU-BdVNMEcK`QrqN<8H`oiN?iP5(}g~(CCrNNZl7>z7gN5 zcRg5gWd&bMj4MIgxxaQa^b#3O^8+cpXz=i&IC@FVpWXFHih|HHt$P3eQTNt=QMX&a z_{@+q62s6b(xrlgAc8}uw3LW+i-1Tf4k_K;-Q6V)NVkXxNOyxYh;lyM_r3S_-t|1^ zIs1Fg>-#5MKU{0Q*IMrw`c8~t5ysEntw1DtB!=-EbbQ}usCGEJ`=Qh+CdqqV_Oi;^ z4`ET_?l=QD&HZy?{Xp|Cc2bHME{Nt8%PXoKb>%#0=wj0CpZSQV5 zRV7W2Fueq;iz|WAm@5RoS~<~xut0kN$?VsCv-01@)&xPl7H$*)ro8&5G4=KiWG~%)eErl2p6LnO z6Bs+a1@07VFan(*-~#Uz9-Wr%PKFz=t8AZ=QCMW2mGfK`;h0)nQ!8Bh*c4Gv*YchV zmfdKU{IVL|^FA)2BdojkVx{%6Nq#H*FL{=t51Bh~8&^BXB#uC<497K=(5%mF(*R3rs5Id1Wh zj#h9hx^(q|bMJ&mxMm4+1MIMuXiF;Em^_yMJGY^t2xC>{laoPsYt0M7z#jp3%fzlB z4%(00D|SZA9iY!8IIGHx-t5d|My#Gzh?qV3M9*e1VYt+9-bTB95tg{b{zWiK)B+k+ zGZ3Tor7y-Qa4om;(t)3m)5+F-TIq64Fm!Ds@1WWP z!`*3HyrFE5V8-Sd$;|t>v?6`U^W)7w+(oa#!~SBGP0<5}tVkJ<5R(WFUV6g3I?{;= z1@aYr5HKl2Ux6p%)3~dKYe9ZOujVuO=tE_dFs`TP1K^y=f3sFT+8YzV}SobFrv~*_BBtKpZzr^)bOY0%CK9=>jo@UDS4JpT)8S zc=pyPUna(&^KUkANR@>h=@4V)&8Tof`}X-5D|F`r&G|-@k`ym%#(sL))b`*$#syE! z*tM3IS-uN3!t*jOzcdb#Sh_WQWIxDNiP z%icNc4a`iF_Je#=i99g83p__y;*84SN3rLM7(z-d2GliBT6jNXR4dAEQ%2fZ z1c1?b>7Xx0?$6rrqHiT1f3@qnc{1hr<=M%!%WBEVKZ5g8L4pgu(8trEGCPmIL~4l& z4aah-v|_o7m$PD!(jV7eF2VFb;7q9FFgLi+I?xU)Y?Y<~f~O~s-e#Nf;M~%Zv9;Xb zbXP=yjcK-B-l2Dq0xKa}zyYUqmizu-XxwBuv1Zp)JtSAU>;uT6u34mVW|tdzyl{|Z zeYQfVBG5M=q1*x53Y$8uJ@793!9&{po2Y5BXNSC&6~z6DVXMntG>l=cfB~J36D4sQhH^H~;cTjSk_+7MyIGt8 zlk-PH1HKU%((WkyzKzLflFzwBX8FZ@aGrjeMl}9W0p>m$YlWf4DQUB)v7AbDZZDsf`aRyg4 z`T(^2YmLr?Et|+D3yrS2TL0yiEX!2`M}X+jHrUZX!mK@~ZrPQ1riMOt5J_OzFkin` z?KUvT-aKbUh|H}8YV?e`eR~IBwqR=R?)TQ;;wHjS3Zec8a36{mhIuGydujLrYx>C7 zZ*+l(+4TGZ7ueH;$BxOsEmp{69k_YEE{762z&NOcByTX>Qe|ZLgCmD=phf&zPJa@U z#XZab^_)TX`|g1k>v!^1LL^Vd?^E#>q~<89SDM^eXX?)4Ms6hu+M8(4w z5x19IYpKfY!;c-LZ%5UI+iwb0e&Py~jT4}ql(*_DT4YgR^yJ+dKfg6Fqt?W08xhG* zI8hGneV$svAC1%6{9AfIwgrDiKIB3G zTP}c|xoX#pyzyGtj4gRe^U+xFrEU~tdtG)M2q)PS!;y62hJ?9jarCM6RXu9&hb zc0Fq<&QDkMG!TsAQ>=aO9rMhBDQH4~6`U$6J6NsKB8Nf=)n!064>I>4mGotL6Dlpm zo*Up(IGb<3*{6K2KZTn4+iTV^&JfHJib;9foT}aC_3u5;(|2WYGV_i&N3<=r=; zKRbfbF1b(cO?MEY4%E{~x3pRyR$=Z)gSq#jooFx#m+r{o(+kYn3K&5;28LoRsCrHe z!i4thnbgB3UlZef$O+!!^upHyqtR~tmqo- zBN1`v%ImKQ0qCED=EQMmyc5d#)~+{_~zE)4TzY@33+i(fqcOIZy-- z3N~1;T)~YeH65weA=d8q69y1)0`Zzm23vr5qAQ7|Y_fv)J**p2BdW-)4^9w=SYGL&zbO452#s@zsYH+1jz+^F5}yY)C(sILpxKUz~O? z_x=5P`WFQJFT!GcNHqVkx-!LD{8n9!@RjPn7?}XKL=+f1cyHkaITE>uL(XPrtO?@| zN8-?i4~s!oNrl8C;2P*y2sT^7QwaI19CY{()dW&Zwf(o*>M+Nir#NuI4pY?Aeaz*+ zBE23n0izanxp)UJar2basesjFONjPzDpo3`fi1M7;c0^GkM6W6rAG#A9{v!jfXqmk zEIS}spi)aaGTn&F9eM=XkjolzD$t=D-dlT#t*2u3u)w3d&=!8-r&Syyy>C_8e7vz) zhQ{XHDsKn!ynm^#`vb6NP$=N%ahd)pHymBSXpr;_YO+ATT}69giIF!OI1I)ROi$Xu z;h&saYho$x%WOJyg74yt-GPBy4zaoR(3s>ld#$*v#d~ddcenmcb+xoJ+HYgYD|Tq* zsB6CS?pD`@L+za}ukKU}tiIv}G7)Sx%S3VB*$j!2ZTt84PSPx5;cC<1WbpLmjtYLij|djr+PflWRiti3^S=WxViP$At;0tAh0iC%|9;0pFdGY`keT z)!LZM_{Dj(#A`-|Dtz4@SwzD$@3$C!5`jl^)44Z{FuK7vzxjj0?DOET@qAqRBgdD{y!-k=oMpp`>X8kqWc_VR8FmqV+iGV-)xuSBl!{N5kH(9=HhV_2` z_D{^|ay@Fu?cQ$byMd}Yq^Dn|$0?+Q6R(B2wLhj+e%txrmO^MaF%z6MuDZLz?}137$*oR-nwK|iL}2kOmKt?s5eNt#E_18VC||zVLn{q+?T;Kth3nh& zzi8dA%J2#3$FF5L61Ggw&Bc-WN6ZPJ5QpcK|8B8~2NET?_Dr_qH;`+RK_96|<8@~` z5g<&ueHQm~20$6#LOS_ffd#QSOy;>bg243ZN+?7|`AQ2!N#+=llpId> zR9^Q@LP}1qbDDu!mSlB1R!!%BKfeeMC8@x>cy~x@6_b)6wrrqB zg41A1MTBSK{cTP#$nKWyD~$atvZ+&xor{LCF1Gx~cl#gv9B=G)0|fGBqoNC6O*$_uJ{RD^zyU*bR!bOUzkh zrew27Cxgjhr6&H16!WVxT=L>4l_U;)OU^5d|yYE3b|Go@! z>EA7m=>tIS(6#;U8}7g&;<|azelN{~zWu)X&#;4jo-X-=fuP&kS%4+<&5<+gX%|A|C zJuNVvFzDhrLVM}zfc5yzwi6EK;r7XlA+e5FkAQcuK(O1v_Q^sp@tjlcJ;csN_gnXA zfkk%i8L@G^Y`o3x+Z*rdFA0L4E1C4Ay$LQ{d;NXSIhTC&Sss|C%tHt)e)#NsE+~Pj z3FiUJ++ET}=gICO=rG(A^2&JL1@iubygNReJItLdR5`5?M^)fG7I^q%(EKhQ?wfaH z6G0DJAUmm-KN^Z0ZZ}iWo)&QI&7=XT>r06nV9Xuf55R@$!6hX`HN6$d$pN~H8D1@+@EWqL|#P$sB9>LOYkk-jc z?n$XU!dc3sFpPg!r}L6C&{&c2G}NLHhI>22Y6}G}9p}K^!w=QlO8RE8oFlwY5j2q% zT|}btuI0x!zYfmWl34R@3C(Y=*l?y|uP?GPWMQ&TU&VxRY02^HJIFPNld=lSb-Yg? zfH-EyuqEUPzCS8=O!C&_u=c%MT2UDj;%z!^!Kd)}4A(xODP;#lepg?#&yri0dddiT zxAdch?W{QUXryIdeZY1?!o_F*5rKh%kN#lcUY43rCr^h$*<_|aLuw2V0XQ4{%ThTo z(Ddrq_cusA*Slax&(v*#P)+`wS6FgR63qyL<7U?)+GXY|u4;MXMz~Fr5a0x&|8@8D z{-oDjo2vr}ov9nZEA(f5_Cy~@F?@Nouz2*!L&bs2J0>MH?JgN2SRLWz13>B&lB_p5 zc>tvLEy>o*y&}JBX4aWC%;C7`5?|&rRut9kxu7JEQU|m2Y7INqjDo`e z3l8sFje(gv%%J=%idx(>Fpt`KPexBh0$pB@m{m&t^n}F|hlz>qu##6e>TazUBl^!&Vi*nxQpWqdU4(& zD2+7OZr})S60hG%>EWVqr1-dZp41@}BFU@8_Tm@4(qiG4J5Foh{z} zg`Zq}&szze@zqIRe`hly$JodBsY?`}zd}t}#OCwEry(!Lq@I`XmFqv=wjP18skBa5 z#ECe55ltFkz_9D0y&K%L-hVt`_5r_jhM#J#F4X-4e%7?X;uA22`{njYNH8Z|eYn8v zkNsf(+k>ae@mU)up`@eR4)b@e&zxK?(?;8#uRj!MS;XS?-l<#@m~puWuKuF`ef_R2 z!P)A2zd_V;?$=uvd$|C`bF(?@$N6q$oap^+#{0_1^-f0R!{S?<=!*zi+~?kVqnp~` z;dhOSSzEOScJ5K~JJ^je0!~lA6V_z~-e2qQQ%1p$p0Dc`dzX(ytep6Kr9{2-Z9-n8 zlVeTtLm`)+M(Kl@9&iZ4)my35Ar#tJ5LpgwQi^m+Z0>iC(^hidi`qb%vLKh~4S7ro z6iiFD4f9oy7Ce0#mWPy}YTVSq_P>FjH7r4eK&!P(8W5$aNHQvMXhAJ9@jU6Js6>gh zREv!W3&$mh$2fxY`oZKuYf_iGp7z1Ql3=Q&wYJ-(-$Ly445=+mQG$~ZK{qiq33j`? z=n(0_RYoZI_wKF-kWC0Jy~&NLqav82a)i?%J;FT)#4Nra^2u7W9B;2%A@rNq-KCf~ z$F&{~Gemgxo#+esiS}zsBU%tWW=GRtG9E#)$PHLRirUA3^BUt5?5 z*|MO{apf=Lh+VvzARGZW{?q7Kwf`nWE_(nIr(9cMQz>=<_$o!wCU?;ovgq2XD0=u0?{t*WBOmePZe~ct?iw7^rD_0pZ;{%`dR;7CR|@gs0qfwrEaB9t8T>1VZIsVGIv}ymzHJ!!Qw!U{b%_;9kec>5b#ip0tNnnL!gA1t+J@z^gPV z_pR07WVjZ?aU>_6LXA}!^!|$0z1K8u7d}ig3)W>$7!BL058-HF=i0(8cL-2b&gbx>evH8jMQ!GiayC+jw+Hu`lJ|nzdEa zd_bnkVaxVng_8Y%uv3{MtYs4&Z3snZ$~;P6<_*WEHt~LzF^;n{)i^LBy=Q0xoodD5 z9QM55aIiX@rI4oduJLGdyvllZ@ZFyxg#Y(jSO)2D^l>~rZe76G9@L6ODyRj_A57fh z5GaKKWgtVk1qh>&Cp{AeUo%7cCj(sxXJX!88;jSBe8~X5m;VHZpFq_+}B(QDq%hVMLcRmvyhen&6FxN^9}^8DuW3olJp|pob&KtBhr8 zW2;gMDO_?18=-UGuAOq)+^(DRsj(%Rn`Gpq5Ya$T{QdEcfMTY7YM9gSP$O&)XO_m_Vc2uNSyGU)ko=~K*y21TLXN9 zN+-cqqsY4tYesYQL--4HzutfOh5s?WQ@>Hzw8Mk|XL{|Vc-C~~Bx(EW)~Od=1GW9O zNqX~Bc)&O^`%>LWV3cEbx(>jRp)RxZFk6Qieu~g~Fu+$4S`NCKdS{80PAPMl&2K03 za+%I-?X=tHZ7~{)+(SQet^9+&kRN^Q*6{|p8l5{%^U0w5R=lxxYoA`x;Q4Ci6=^Zk zICZVRz}@a*Q}|p7eMMS)wHE)B-erO;lEQ6wBJQ~;xFt-VZ9_*URXA`d?e_cQ_j#w8 z7MfwFZWsGu+z-xa?IN;l&DaUqkkWgb=rcQmmUBuFB(N>vXQ5UL9bdSVyafF&$0^2E z#GEG)Qw*f~r3ky;ZPZWzsJ_5$t?p3Q+Rp zK?Hr>(l;}QR5H|zsaH?iH(Pl^jI*=o02dBn5BX5{DdX$PF(@QjqXrH{UI_ zFwAhWe7rr`d(!(F*xkm=buJ=u9vo3gT#V=U*V%E4d7_`tEEfc3%W3Qn2ZdZjhbpbh zGiBZeR~(LFC2A`?&b;lL3yFlg_jEnh{H6gbzj18k+6EH03)p+S!cr5*pw>I$_u&;2 zKQyLK`JtWnh!4{bHH~}?TDv#m+02yG{^EEUsv5N7t7rY)O5k%<4IGl|SeIQxGf+FV zqRQ}{!Z;<5&T@|>6SRm-&AlaNc=F}fRM3ONK{em!>4Z;Gr7`kF14q_5UJ=mFN)t`0 z`u>Dv#{{LwC#~L(A`6lz!I+kpA#cXJ$(P=BFud#}e-CfM@v)zEijs4pVCSRs%<4k8 zqDWr-2<1`!oEpdMPi#TBSd5;0NRnn<;HX_mNzwId{~Ij~zxbaCk^g96y2pQwxcS9; zLlmPJV6u4FT1}2M9@mtI{O)u-d0bmRP-5%c_w~5E7We&j$>T+V+chGLe_F<2fC&H8 z{SrB%y_@&UU9J9l6ERR}6_>p-p5o4g`(Cj%OLTK!K|Bdjf?R<`SKY5q3N*4>lRUdu zf8W-gCPD1E%i!+!OMWhdl^O__7Znf~WZ`73f$$HGijEP6g&HA9_+nGj(g}QwlTy<2 z^52kTnMC9klvkJln>$=s8DKmmjvHnMqHJhx@3@=k@;s-re}ENMY=@{H{5;Uo1H|Bb z7@H{|`)FS}yIhXDFgdldl~z6RqHcQo(4+fJ-_bd0ZO;Led<ho_ zXm88iA$?n6>u{+8yR zDoN=F{O+(HdsRapGDNh_l3tLkKfH#2+5LipuTX@Lu^^J`{CS>c(tK>2Q1nreOwnb1 z48OZ-fohqJapvnPd~3Z_+vTMu_fJ~7O|Q}hpLOuq^*5UxQ?(?3O=22@d^z?M%&6PC z@7I7Rj9qVrD zYlKgGddy%(KINYh>PN|agNOV=77vr(LCYjee80^&vVf~+iCszbOfFhYbi&X;MzbKt zTw*&TCss^a6YPv_7eIoqqkDJ7T;BuQn>Z#mykc&r#JXw^gR|3OycooR`{8x2SR2dc$cSfcb#e3GIyt=4nm|3&w6$3E9(>a)Ch&I zmkJ(ow3VSJhdqm!)^v*r-rYfMRthwaue==+|Lev1|BLST4;N?N;Lm*w$CAYEBSC$z{O% z`Yo4wYUfU?ywY~V(S+^s+&ZquU=v()$E&32!GHibH{oUs- z8;#V;KThV9-`qd$XZ%^;KgCP``jnn!PV{>ZZ}_{j0OO8#C!fLRIfrl*{Pe3~9g~K=s(H{umbASzp5#oUz1EP0N zgWu+Y>CIP2fu-N~s7_lC#M=TYoQ z5!HMPm1j~tT3TbjS6G4Zj0Q!I!`>~>@)7iy6mzs+|Pf5t1zX%@gGlM~hj&=>-L*W>pDao6UIMyDHk6 z^(HOhcl2}aHT#;*5 zDyYsoVB`{s7^T~=wp03}93vCXRZCU8#7irw5R;X=U2J{+wpLO#Q*46DXL3_7kwOE3w!%Jknns zQJNkq#Wk77;uZX&@iM%`(onGU| z09kJ>dm&-3I;gh4$@h()dOGRUZKfWXxr>a7bJlibZC`4WH+?j{=2-vY$%PwE<8UGD zB@q6y@3#5)dB%=w`N5O5VE4x#18mivt+(0s)%H#AxScf3;g`8|Da`CAo;0sLEOYzP zH*?&0@@_Ar?A5Bm?D^zL%jrOw$4TGp&-0V_N)6e%pQVa4Ah=neF|wD${d3sDr>*eN zavxU3dD!FAHi|*JUNW1)CmRM*RGqi+=4*t_f0bragCHO{IQQ52lf$O3(2i^94_@w5 zU9v!o8|+k4B!N=%zw>e@)p3Ks35&+xRNe#e>S>Q^0@ zgG|yHh!=Qr)qxF35Kc-U1c`faY+O8ls80mJGazC$og`cxlnO+wqOy}!uOe2f49Ic} zKqM8_&F}8REKCsoEghYFFx*lDL`>JvFcU$YarwtDLu9RXQBC8sMK2xv2Ip2XCi{%1 zSGUtYZ5a8@>>PQZziqZ3U%XE87(0gsW9$+_+%Slh3tv(u~9E$$ANX;*@@SNarH#8t8bDB9gH-JHX0t^zav3+JyJIB z<&v?tRUM2*_SA0DZ}ZD*_F^Jc;f`lh!6m0Z@tfgVAb$9e2T4+o(RDX@7BY?bLq?s8fcBD#NZRn zTQGz%aZmfaotK>s&<6`mW4%3-rNzV*piGHS+J~4%YiRa#M-OkaX@_b$t()G~^mf6;-h%=A*Jq#%YHV6no&1(j8(MQ7uORQ7(WBK-1L)N(1Wto0 z)<~uxQN#oYN!32pSUapzU_5ceDxspXdzPTq3g1`aA?D5-1Abth154Qu9s`+Zwc1dQsZnJ zH?p%@gfEv5!Fk&Jt?28mv)w+tY8VUmN}3(+Nv=Ixg{Vj4Am9*+YI-oE#f=BPFb`52dTbe4 zam2lF@9UMMxU|}BWVL%fWRo!vskJt$*m6&r;Lm5`79Z$Z?7Z3eKI8E(eP9R;_vGRG zOmJIU0xI+^fTr*UTqM2#rZMcR(r-le1h-u+B`knxG?SvvMdFfB^`n|5CL?xNcPDG? zH;8#LiI0E1^i7tzP?vsVNV|nNVTe5V8XhCbk*utEB#(DJgp__=uv`3|TA0dx1{x{S zOd^5(i1_v_YF-K%IkEguL~l0RLA@Nd;~llMDHS%Eo?a2@k6{^wAhySH3am!qI?0ha z#E&OD^=n6B>!+e`X`OZJ1M%c7?M&QK{QX7@2MOJ;vWdM53Se;cu;Km{URw4WR+`@u zokw#8vn;zwcs_xAX!7obS;{^)>P;Ni%eya}-UUk`PMJ?$z0YqssBO!Zc0RRAyS=Xb z3R@%1g^4ZS5jt#xn9G2Nuz@>WWiZ$d)$wSF_?UZDL(ML$GRcoLq|+uoM!H2Olf7Kc zk#hstj7RrIH~)j`PyUvA8IB7$P(p)v1vy z8-wi=6JJE^^<%L?zf{{)Wa>kZJ4H3;E^{~W3D9WcdhvSgIM23RuDay zcAUUirt5$Pv)20O3@_4ZtCUfTk2;gNW~8x!!8SpyXZ>-YP5w3M$3+9DGa&JRVzsdRbIni3C!wR6mUPQ! zpD_qEu)wjSSW|8)_G9WA#JP69^GPz6t{fkzX6)|VrYXEO$JOGy&4`4tI-E>| zl|`Lv0Mi+kydIs$h7X@tvUKXaPMhPCyvg=qWWW1@DTe=Xu*nT-bZ07qbrkQqB!f(E zyI`t=kQPlLt5rhMr~8TVU5YDrk{X^8-6_SrHLP%Jmm`1BOANB0`}74fkr<|<7S>AP z3P4(D#w_1w_*I#6g#d`adA}flL=MeOU8}z$fZZfm;0Mp}bQ*@C=RG!nVscH{{}f~d z%96dY?e>0dFHWs_vhs0-+kkD+%?>1?m}(=y`W9UYkAICI(7RIRJcZ$c93JA5{ie(j zuzT}Rha@^FIpsQ;t{Nf{$eeYt3w{D*&X)S)7V0Co%WCUHVFYncalPx&t-K`7PeHP6 zJ-tjYM5SSI-$*OLkWtI0iL!w)qnDF&IiFp|=U1W!U29gieB0d!!nY5cE8GzKhv!!7 zuAsB;5T^>2{(-xmxH(%uzMw(dThXoUR-B3jM8FA+?v!@cEL{kVMB&~VVRm;Ev+U)< z+1twHZrf+tjmZfJGwLWl38Q`q9`iwaV*B&zdOPLj454eaLjI#Uz478n;#2Fnd84tI zN8IlM_tz7j>Zz)gLv!`UWA$4>+RkLAssd(TQxzozU^g3h*?nLy@VN9N8l%O*@RQvs zj^S}CX($d}Nq*3E0sS07hdxQwN;Z^D!@^f)&>g!S8zPeRPXggb<0z`<)5OJ(>pq(@ z*4lg^(|A7q!}DZ&7VUlQy3&6H0pu%VVQRt?AXu7n2DI^XRlTFK>9G~I} z0w)=d<+0ddqb;=|rZWQBDdtl3G-+DPI(jMgWL9e#{w#%SnZW`ZYgyrcMgU-*9!o-r zSe4e~w1wf;Q08!5EBwMci|d8FK8cX@@>F_GSoK(9A&j)S&>BWN)vH+gJ~wa$x1H=? zvA+MW%;5he0{AG)T5>p|cz65olZwpEqfrg5XGfp4%}b8P^qjYkz8Ji{d0a~u{j7H4 zOKQpSC(Pn-5Dc`q9eiY3w-4|CNYG#;fJ&o&&JK1G8tk_<(g zXC(*>TF&5p@9PfP5pW3z9^j?<)hid|xp7eRx)>kh75wsRH!u3^T*ezrKo17>Kb^Q| zfCi_gdtxx5&QGzMtL(vE6#WL6tb&O=B_Wnu()W9Lh|r8Yq_Cvjb$-d`J{M`Z7hrq0gCaB)zZu&HmS4#kG7 zeMf^{)ueLQ$YayhBT4PGAABZGw!_4*d;049F6wq68bgF;@mdr=1j7*p0`d$3#&|gl zKcX?{qm5yo$AvjycYHa97c=hL$x`fm!wAbpFj6OoYw%k|Mw4VPQ~LHOTG>SfZDh0Z zP{>KTqQkR%=yM)OnQ*~Lw0&Ft(`H0xeh0GvT{6gc?NDJE+^Jj88%Owarw^=C}D&_ z%GW{=xJ&1u<>zpeWpSR!Cdmyur(bRUuPQy_PnEtfP@}2kud`ll#~ad8V?%yhX z#6rXs^^qw3u@x}uos!JicL8*nwZ~1fb|rDNWnZVGmCt}#&-{hrvo}7z;$)tRxPHMQ zLb&dskx_;)0_{i9iP7GgDM{%*FiIVQgpB;xWaipw1!d(zxfRt`uwtFOnkIt?9oOd8 zwh!&P^&Q=1EjnF2gUG&|p-<^SqhACA#=lPSOis_)&CV}bE-tSbtgdfqZElb5?i~ag zj~&i^JpC?nt_dnVh0@6G4Zialy||$#%h*E>ZKPmn$~KK{HwS0P+PQqB?BXO7z9-?c zoF!{Mka(#g)T4&g5lfLp&kg;QAWn~C&2m3d-MlYVRJjGO5kH`hUqE1hm~IoO!)t1Fv* zkHWY{r&wP;|G}S_Q@_8yVzDcnu}ei|9^!qCmXiBaMa&!v7h9AG{-YIy>60PF#65sw zk-#ocMWVUvU#|Awz8Ab>F;}}JjIDPqc-xWp1A)5pWy_*FFzZQ&OZ;|gq-ZY#ZjH2K z>pS+o-gV-SEswuxB|h~@pE7qn)WmBxhf>)CEyjgQm~r(>Ue!M4Ta6ImhSU!EB(K^H5QfsTe{4@*7y7u zm0n5R(=(Y}M+}0Ar_u((bmX256eO5?4g-D7pKs;C3rD$-x`i*|5xj5#gYUuVvwe^Y z+{iAtTRJ!XbuHXV0%nDAMmUB|aykwLIZ>52T|TbQz+OZDo%T7oEzH5WZ~YDu7YO)X zZ%7E9&j@2bR~txn$P{IJFAu~^LR^O4`^4JiYc$48(7^qO`~8rPO~UW!6LW#Iw0Xv(5+KYj`@t`D?>B4u(x z7SQBpb|l!u<%#zGV^2`W>#^588(TdjR?ark%RK5{lx5KgZ;d``aoc#l8|q?mvGdbs z*XWD&#kcMtjf;3v#gfNUM2WO}`wZOW{43-fUmBq?aeMCG*qR~YkUVGl7JV2d;ogVW zY{=L8I&a=HoH1!MGhxzF&;p_Czc_T50TEqYpp@V7ro7Q_4jnd|f2%^TcK;I5)t&9| z8{Yh#@i1O|yf_Zv&GM_8&lLfC0EpI&mheyXJr)THi zFMj;I1UxcnWXscAy>W?CH&BBh81@2vem+| zg*Y~x@2 zAw4hmXz)+*c~JH@xwXap1LI9@;L#P!`UG%EYPErG$StTq76#JO5md41Xn8g^JF(CL z6&Fc=a>cvow_oc|#T=mFxIs}8DwfwUf6y8--#jq2^ogs}pr?(Ow98X)`W(T|5F$Ca zV3254szV!E#tpiVoqx|$tH}m)3paHh|YdB z9Ut)Q364)^hrDRFRRvtuF_Qw~T8yd~V5MUk;WR#uwSOiA!GR{7@V9X+&%4yd-OToH z3$n#S5y6hu$Ea)B|8b(VoN3Q^* zK%#wk;piB7Y&>)Z0H3whu&8&qL11#fc9g#;9-3bEcIdcwFvAm&F&v}XKLWx|zyrEP z&0M|+$8^cg3XzDnP{ol!d^DCOmDKT3A*bxgj^^z}E{Tet!S z#3JW4(8OS+&*{v>FB=U$S~lkMRw-DhSwAd%jJaMyd7%Z1{I@O3d~>57G7h$XZrn)CdWFpyzK zSF${P{{y&z4MZ2$Q4#Uazvq$VXp3e# z>bV885pN~{lmiilkkd%ZMG$%1qDku$$-a_?6~4)Q#Yc%qd!;T1K_m`U(XT&}6NCeT zfV2MgBd?=MEztkiup-$y|E^*EvmYtQ%UI^leEdIYSgsrZhdza@>Z)O>!5aUQ4Qqts zFF%q|KKU;{a;m%HzxOmv@?%29$iU&;$V+?-NBT$7&>bY&ljKpl0U^E`DG}y1h!{$hh;rBv zj)7W(zm>vESCJsc<6eM61ROJnFz8>ZKyK$+7>U8^yCs9M=f~SYgoq_$V&ouTqD@uH zXcQ`kH_UWRK%kyMnD?F`W6WGUZVaA?c!6Xjm*69>_>b`cEHGv98>V>b9>{rqf|23Y zL_QBWuSYL5fz}1zsvnF{2|oj?nT>q7k;+GQ2FBnSWLJ*0r7BcTQmd~w6~%)mT83P3 zx%mdswo@u&Io~<=33BWFfGm7cuRRyD3OY51K-ty`$Sa+~LFu7x-ixJH^@7Nvua5Ft zRGqNGfvCb*!{Y1-wsdPFn##n$5J&@6UvV+iVso~BY2yR3T#8ZwRnMdoUqZ-vu5B&> zQw$)f;XD-7kPc{@E5_~i`T(d`)2-VB!SBm03zl$&Ao<1`2B1>xi%tBN(?FB*Rz@ko zHlN#%kek%M;>0T_H^iUB9UMS5Z}nfN)qjE$H7pZ;cca*Ld+T5J8&0&SWc?i{-Vapi z{|zUm`F=;4S$qCFoXC7T{a2i5ms$1)PJH3r@K>D3!r5_!6F+qI2UJK54*d^tBF7(% z@YioQz6=2xp*It*YdhoLH$vzz0e}-#?{xpyIMIPes12==#7r+qnp7hm7@<6niQJ4X zhGNmCJE=TwvmUKyqA35|`>&?e|7YLs{pBSH`>&1g-%YE3xKRM&j!X_x3iub$O-BRJ z6Y)poIokY5(O8TIYnTI!NgFJTs*GrQMaEAGZBfj zNTOr35d~@xJu)6pFzX|DZoErQwlOh=om3>moGOADpOkxUMchD?2NcaZ{*ejnOjn(g z%9|O^0(GCPio(|v=RrqsBhO>SUGGulLrG;D2@~$%ZCGSnXEFe#VRIFRC#c=m6;Di* z*03bOs6X=5=5m7)CEIg+V@o3~vGgsZdUtM((=5)kMH-gKL4=v=@R2buk7~G>9OIC! zC>#kSW_yCMnTA`dO*IsdIGN(<#i9l)=bc%#lNe$(C=K`Z``GBOGBsbuve2;`jW=v7 z_5oGddl!G}#Qe^+i|*ellPW#{}{I`q)A583}G`T!N6rX~3keZY#r z>c2J2{n{HX3|N3q`X;dMpAK`bh=5=RkUBWzmtih4EamTpx$6;s`J@0^t+H1kYkp0q z+S1zDl}FJ1`!FZb@$r{WYEd!!-yY`v*(d!=Z*0akWa5cp17F4{_OzqfRz%*lZ`F5e>2SK+{TmDfPXbCfnu0Tv90YLiBAzaEw;T& zs`F8=wB3dM!%FG@SD*ARmN9|t=%=@shP5={j@&4G+U$;KFyYcCVCIE5B8 zpw5N!tHdieyF#8YujRwR&nlrNFgI+?uvB(7I9t-IF@v@HT9apZE+S0pBB?O zK)RO6uy&y~z^^78l!wF4(E-w8fDz>sowIMKlve6kOUkP8AhXDyxptIBvhc;_#31I( zCGR7IJ4(Yi9K|519<7B6m`^~SzTg~j>YJ3sKohNnV}2#T_&UY|syd5y$0<5XZo+9g zwJETnULBMV3*Tt`xLtAccoWcnBi(O-q5i_8Wek!9-mNq@^l}I+2doicm>OIhamTsn zU0h0>mz+>aMm!a)394ZmBG`L0_XCEY;*KENVc(4h>~BuJA$StKZ<<7|lI_rWY?Anf=QgZ=o9Y;?|R+JjmA2s*l@yLxJ3`~Pj2<+p#Pzdy#w zC@5MZ(vQg!eJ?0Z?d(pGdYCi(X0qJ*uFNnQmYR5hBveh>@qxi?Sy9LdQ}psEt=KvE znIU`jJH=)cC{hMj0POXTH~l5pd)PJfw5fd<)a6xphjmx!OqrLMBch_~g;Ce#L*KyO z|C4`ap;ArBU|9?{d?%9f_C!n zp__@6m0!_KLEq+>i`UwXm2X7&saAJk(aqS@n*h2ga_jp*Y$iJceuy22qOD66M^^s? z-TduuXY=!8F=dBRc94G}D0#=f(_7bMi4?EaeC7+fnX-cTif;Dy8?UI-DqBijPnzwX zDAsM57#^CuIa&2fj)e+l^srq(ZL-P;#xA_Ye3Zi8=(-D#xn;X$b< zYS>kCnNb)v5~m^bqIf`F>=KFXILKP^l7-)L$&r?{plmj+q0+1b`yN!ex{Ew4Gd`p{y5_qwXS(U*jxpE=@{-LR~ciU0#(SN7am*45#yf&Vy-Q2a$^pu{c-e ze|X(8&;Y(ZB-`+gs~lE?<7yzAL_=RT-zKOHP{mDMi;FPmz|*NZMnr5iA&=D_GJr&vbmm<`LEQD*LoqBM5=$tcKndRng^;8iETO>USX7#pTehE2 zP$AMIZb_(U-z5}ODEoE^1tVDWh_CGUq+-d`S3-f4yW`2?QrN(9-Sssrp`f;~`TC7H z$=lx&3V-33`x!CqJRn%j^!1^5zLfqod@N5Xn&DiYi*dBq|E}y z-J=>ec4^I)3X40YX;ezTrZqiaGhJx+Y@x_hhv`1nwwFPm7U<&8-y;|mLHgA1C(Me$OM|yiFpoubmem_P_PP~mUz4r0(n7I zlem*P6-PiEl%^6nsDXPyB9}tNQkoBy%6H}c*~}B{qe~=iU9Xo&JVr>^as=K`_F|45 z<><}iznT`5&hyE-7bI0wz((q}Zat2he%^^)K1cniwLG3ncu)#g(uZD9eslo}Qsm56 zC|4HGhr*9^f{No`jTT3P^@KJ3l7Q%2RP{wBUeYWmpQ9Z^lQw~B3Hm`g@=R@@>eGW2 z5eQU;ID#qcISmdHT^_qKHvobn7lz22m?*qba)+nhJcq5%U0A;E&FcCr0ANseg1%=3pdWp!FXrq z7BGCk;|oRiIBs~bjx{MuRL2AH z!JipR(TT3oLrTVfP0{JuA{2$9(zQ#6Np$auUa@vvx%bCHfq(E2^Q8=WLW<-)kpzKn zqjaR<2>P=IqNWg!;`QMZbX zQ3i#@Ca56Lrs7Bhyf+Tl1l|ieiC2J5QX^qkjn+W115imM+ma|bnjJU&a|L@)A_U&j z8x8IRvW`BnVU|guY@RXUW(btU8B!~DJa9<6h9B5B9Qa8Tqw`Vv{LG``1y%?YIs^|j zT6luMWp;@+(niDdsEcWS30<(o9gCyhrWydHpJ@|P4Bu#eQr*Cg#a0ycCPB`4Np^+e zCpaK=L+P_z>ZGWS4rqz={!xR4JIKJ8?>`1`UBa~Q+o*Zr(y=#c9)Z4$8b)%gU(tQM z{L7IeCLv?z)}UVKmHd;yZVJQSZrLV&LU}dc=1{K2;kt8znckJ{*ld9++>Dxjw^-dZ6;R9 zaklj0z!~9VetBf#NOmefYR7RFq1uWE#uFJ*!Bt95mr4G>TT^xvN90~iRYFB32OOE&{_`hZ^qgQ^+F=-|N=L9Z5=bfaPU1 zmB26~lJKZ#OY;~kHkcThoF>Mp=bVledKhNr7um%X140jn(#o33(5v5t9_r`YJ4Neu ze->ab8z>z9S?D1etTgg??`PoyueEeMM+0&*KWYW{Mzm%J`)cHL1 z>NPm}qulJDGex$3B{%yH;D6uCOs#@~Ud=h`+|v?|5~om21mjSPqfA8D(esCJ5Yh<{ zsDO#NqOA1Q1qDfdK9C;ws*qGXuhu9dDZC?)nG^>!NNlWeHf=mbD{zoF$*^`}k<4J} z0<*k|sb7(tg+-@@EJ4p;Zx-Wq%Dzm-$-$spYVp}(3V*Kx;KCZRrdTSlYOJ&1AUjAL zKcdx1Q&L%cO(xz!f}RBhcM*nz&DR1}m~cGCRSMG(qh)85{Nsy7V;~=3;QA3ZJ0DVt zSaeA@hreB|2cm}S(0(`$yHdT~zfze6?^~%pANAU&dWtX5$KE9(!B73lW_?#Z)s^n5 zo-)nDUM_8|)2t1AtkY5>2DF#KA^Lvm#IB)O)sy4p_@v{M;o4Ejd#Wb|l02;Hi6O1D zLN4(eF3{YPT)sylOI-ne2H&>+AytB#odqLU)l+W9Bv$n#Jo@1AY;ce4qbJsOORH-a z7oYy2>gn(Q3`MuJ@$Af%3uyMfrRjXpum)M3&bA1khdC&d)IVr$0k#AU>VPq@uR=RVgx}vz-lj1~|i$ zd10q84LuQzt1Hl$qlb8 zg)CV^?eAEyT2|GSu*Rf!cVuTHI|_x*n{dcMWarq{N?y4jIkXev3HnOy7ok=^6gelb z9^rv=zOP3GK~;JCFlXDoFWM!Qs{CDP9}59?J^BWIeSJ5iCmLRRY{C8&{Q61S7kV+` zi?q**ASu;6B`wn^BMYOSlN%2^pI=a_T2dBKbgrVZR{CmPqj*D8t8mM;_7m4{_z+_| zelQ2X2E|q18Z{dF0)BaP&OAH`-hDUdMJ;}l_9fB+FY(`%_Wivg|6ES5aWpVp=+gOX zrFF|WP|;jo*e>{W$d3V#_E{gtQ4V5@A_!!iq!XzAYXV~h9FE@?82@vMyyee|yzJ5- zuJsrI(;h>r&QY-u@l8hP53eLg2$1zh5onTPTFp(Q1U$`Kv>!nsCZRs^8o_bIVR7h#0e0Gt_Nl?=d>`<0u zNvHmHzK9X0K<;*Ss7upq$nA|YLXt5|coBRNXVK{AmH_n0KmEC^b4+F5j90aF+ zuV$+<{oit%Z03h{_ZLmM^u2JBFV&nSKIE>*<4dws?{!X+4ouYOt;`Bu`zlnGQ~8D~ z0YX(f)7|}L4_ESu%go^k02maeyuw|fYKFV6bY-p5)w(p8enaCm$=0@{YMu5Q--N0a z*|$c=QtZcfg{sWW8cs8hXMG<%SrDTHs@a)#7gzeVQ1$Os^H-s2fZ>21GZ>nUV*iAo zV(wJVQxc{>SGKapZB7mt0}M(I!kARu6)Ts&=sHTJ-9KIXen9(3IGN1dMu9}1640N@ z<^MU=9QkL}{3Wn`_Z-Go2IVWRMD=X6cO=?x8#pAV3U54qReVX6Yjn*Hb3mcdrHe z8vO`L+Fzh$o!@}Zb>Wu6FYT7}7r-ZAgaKZo@m~}&-jnHHDZaQpn8rN#i;`N=H74E? zy$gJ@i>7C3XJ+qLQp-^qVk&ESfp*)}d?KmE9o7aYshNm%+X1ejq6c`5=HDDC2aQ$s zO_Yw_Eg_ltrldB00PGZhrlkI}0+sVeDDPuG2GG(u`pvFm?Do`-4D^^iM z`cT0+5@BO`vc1i11$U@#7XV6X<|OAe!c>9E&%$L%v?EouHifI$!>0~(z(9@9sv|sZ$L5o>#M40-#GuSz>+m$ z`9Z1Qi2u7v{Sd~rEfKlA7a#LUzM>sx$ijdIXsm#3fKlhP{gToZ(=q~5w6d}Rw1ble zOChIwSA0V|j7qR*2cXnXZ0+pn)s5H%)-&>e2KX;4_4n78Qv^OPDF?qCiZj2@l?LI> zHEvRH2#-Z$r)aa}CH_#ds4xmmnP8!mAtFEbAnhW{ZEA8K0;vI~5;Ycvm>K!9e}Gc| zzXGgt@70&E$A({^I{T~!0-*}awT9Y#y$8gUJe>kzDJn5NC3SIs1yKR79&&KP{t7A@ z_|~DmUzFM>LZ~4R8X=hmJR(@L0JPc&9t(&9yULj`)gj0 z{T1{@%>FYQx<}2Z1SPA}d-JOLgNM0~IhYQXUIOl_KlUP^3Fl^OBsz6D6fAJ@-cjSnLvQk2?U7Axf8;p(=X5B$ zztW+;UX=QIgnp%F*cT4k5|+vvI!rD~#z_}#YV32I*@*z@mWFPp3L*QS-B=Y28F>GQ zZG3dq&t@YrjkPWBzSDwtifkqcRJZ%+#_BHIRbpWTyFp;h8sclXRjJfr`i0+h4I z^V#7O8mwiGA>t`#8pX|}8cu!JJ{y@=r$3~3ru5T;_vTg=n6rnf6lWG#uo%>mDsN@c zM7gVl>4`k-4wq)EkNdA!9{)K7cSTW5(5RepjqVVsor^j8)RRIJ-cUl z411vK&)cFBEiWB5jr(K85dbYOYG2D+E%+_!2`kt`J+UU+lGi03@i zr$)}RM-hl3MSVP3oE7@w4J3B*CQQ)_L+m_8(qZg3aZaT3XUziK*>ZK3XdH-8-sSda zo)|Ix1!re=Vm#&i89w@?(D6Og^Zx_?4!}k${#nJ9SsaE#n@1CMb(D(KwPe(^#lr-? zz8az%vIc;PgG_b0h(4MW-$%}3x3ahUw=%Y}-xk;?IR&<*yzqwnd2pghh|xLlad^&xxh=Xz9TbV84((Vc*n%va;ar)^D0@O1{5yae@c{^e*yS z=L&yRx(}lMvaG4%?G~2vpt;&NyyF~S*}yNHhx6P&7M3qjSmenFy_l$YKFWk-yEvV+ zls$-=S7jHX-se0NAgljk%+-YL>1g_{7664++~_roUDjL&_mP|bD(f$$MK0~qvQj8f z6WK24ToI4<8;H{&-a((0>qW~XYif5zLY^!rvhX;_d+utvpLqa$O)-la6MqcBp)!)t z!6FG~3Bq`nvPnK>%{>M)O!lOU8FIRNk zxAw)Vx3<;9_!CC_gZ9BxkHTp%aOtg;h+9K&zqe}FrsEwa>{MTtq!!Nx3X7=@dKnlC`e zzgEPDNhM@cmeu2r7pdM5i5d!EpDb6eFwNR@`Zq!-{y9~q`Day@hpz#L7VswNh>1`6 zX)}j|#lxLFRZ}2*v^Zwpp9FhVc58!42Or3I`YvL^URL-B+Fxike`WRmnT!xPh`};$ z9-NF{-k!d4AJBehUHq{*0}4Pp+g<%Hki>^2CZ&c&qyg>hB6wF8xV!pW_?B0(bM0AE zjO?0fiLV0U#V_q_FK0lhWp5Gdy1vV}{mq<#-xM09#K5jKMU2PzK8!fjFCL(u2~07y zz??jNzN;q=wJ@BasytUe=C`0sb;6fGirA$Dk&{GBL8D`09a*Goz!tUEg;pxlbwJ(v zx6)4jIfeE+=$KWHHWPBgFNDD*wnL7fWKmpR_z;VR9<%zy+#!0K>Fx*xdghVO$L@dqJYWD_$Lv2!MN{CvWoK)5XgD21NkMS>kVSgzE z?4MI^8h=!7D?=J;QKOw_kycuFHRQxq8Hk`D(v)!StGbj?3`?-cNa45GEq@mggA^g0 z5URb}`1@az*gC`g0eStG)~`Q}c?tkU{UYW`gc7U%+waQwnq$Ko^V>cDZ^t|tv*NMw zc>8a3qTqpeaY8_j&8?nrNnvBIcw;l^7zqJ?YWNa^94(8=&YEm#ZDAr2^4uH}Ug|%b zp7VQDh^Hf1l4gv_ zUzX@zU;;i;wl^h|V&;i>I9KC}DT1>d>px@&F^v+MlR!m_gcqUoPIm3zyl8;ZA^|7w z+r0FJ^9sJJu)p(?KUrHDIKM)y0IT$f8`!+WzNxUc`Ej(K?pT4)0fD06pk3bklJ~Dl z>sx}Dkt23uHZ~pSX}-n>@ZKCg9YBH@OAMBmygYn^3;^{@{O^3VCy2BHG9&GQ`Q0bv z7{R}*rCXobdDv>Kw8)XnwwoZfM4TdcX$@)tS{}&|%i2POo9}L37RSp34E>8#B}Jp; zp)7!wj+}Bp{vbr>==nXv&;McG`@+wqMPX6$B$(RmN1&oe=o~Jc9kT>JV}}p~M{!aL z6scXhBCRV~Q!;PQ|9QYTO5$6NA*pij0uArx7LyosAt9d$XCvun@B#^r-&c7y>Ku8$ zs=NukU5HF;SJHfw2HZMZqdQEMaoZ9XsJxF5K>r`@e+M`?tM+o@r>`G|`Uz)y7WvxA?u91n-u%W4mM;~;pt*%|av#YX4 zudjbt?I!k3i6Tn8b64gzkf4cGTxdU;7lQdOWDc%8<(QE#f0j|8RK1B6xK&>L0A$x) z2053pB56AP7b=b-`c2QrTsm+{Pn8@1_qB<(&b>~y{R>e*f1XLQD{#}1!J9fKI|hC{ zU2Qs&hpS=2O#wqbw6NxMKM>GrFl&Dx;v~nzcCF8lYzAGb#}RmQMD}^^R}-&A7m{SV z37O6fs7;t!IVc9E}XbXkEi{ZR>BLLUH6~g z`2leM;a{t~-JSoNsrnnZFYUX=zf#;d!zuQVV*t4Bp<7C! z=xaBc{2HYXMn!kUm$FLHXTn#?Dn8)bl-KYqTJIj5jV=)+w%!NVQ3Jhp=LZy}Ec@Qi z>tc;G<#z&=P4z2Wx7ZLEU*(Z06?=O{AhL|B?6G4OqjI(T!?$g;HlFG4cGDU?uLOna z5}2r63X6&54T(#XCk7{_C4sbIcIlYV$lQX{`C1-@WnR(cRs5O2D_1a~zKPLDx3Rg& z_uBPNgSM{PRGq86L+U*@3vcM$8o47qK5sJ}xV57xq1#+l?hxjcwX1`=W@9C~r@}|w_MFcss3}D^Y^Y9G}4U^PSCJv8@ zJ!KV_m}KjqnwtDAm{iQ9px8E{q`bn}Z&#wPa^Bphz9k3L+}bXZZd!DsCl1!#I~W!@ zbc-|Ce0byzE7)Ru;vOCG)P?DpJJEM%7l50)iwnzUk5_v~pRK<%eE#aKME|=FDgz&H z%$a$;KLP}k!Vh%Tmhca3^pyuAFVL5eJCSy99pto81UuwcL`U&^MKW&;cE#15-5~>q z5tB&?ahnY#>N$T2CWWsu{bz$oGnvIZ3E1e7f@Ub(fL@y;FT4>gwIV~w$8CetXSuhjoM9$Ayr*di5{?a=ttp8RD@GiWUQY>+0%~d zmnRQDUwc~Jfyeo*ribiEc-2C~(1N`_pY1cQrV(;(uJE8AFmwnIeYk(qE(@Rd-u>^4 z>{;untq&`mNBEttIp=>646#Sh{KA` z*EhCBXI<|Qs5HLX*~b~xKjbWDaqZ?POUrrU+hcd*O{VTXFunh9Ru@PNSDjyMyl1?; z(r`z2^7%{UXRqE0-+I>uGVT4aBjf}2elsF}-4Aw-TG2`_E6D`0o55y!$d63SWO(4J znKbTT>c;(*s|9j0A&EOE5jY3)&6ML?o!+G5GVN(q)N|N03l(vC-~UWjZ#5Z&mO2Xj zgqa+H2yzs%@$Yk^3_0$t=_E8LO(*$Q!m}=EB)b$%^vPUcH77N~M)Xq;|5Fwk^-G7h z^(&sv$P*jJx?d}{dvKOx`uG_QAxGxEm;-v1hM|5BZ)J^t#y{%WyV_PM^RHef{`7zG zm-u#_xa?pM%2*Fl5{|uWVSJbR(lI2je|ffbh@{|+Is;A zW?<>dtb&?4Cs=KL^QD$+ZI`i{>s@PnL_1b}!QXh^@>Us9lb*u(G%DuagYt*PV+Kzi z7fx!EEUfZXtYuE<6FqyLiqXCQD(kM!hpkTx?>_VA9sq{K4JRce)xt#ggRT%{1iLCl zpy^o^hv1ECx;C@Xk<^mm^$U&wTARzYW4EnJ{9`=t-`t1x3CcKdNXQwe=udWsp!5sf` zGhzgED%t6~23#TeD?2g0iuD-ObC>V>79T{W-hbhUKN;}i<1ITtKuMtE9T0kjOjgSe z*#D&|;}S0hC4Eh6SB=EvXMhdz3QCi_$|_@Bf$-a1tc6E@R|C%0ij9KM?%Yk`9KNMf z@H|{VgU6jKC!$p|&aeba^uh>IN zP^ zQiy{^riSDJ6c!$NWe{gCL2rQ zS*H~gXR8}%mQ-eWeeKH4EwyE>*X`QcJ1^|zknBcYjoA0-RD8`ww)Hg_yFdG+Jwpd% zHCOo%z4DB0`FUlLa@fY3w^tXGUc8%oxn1nnzPa(P8iT!|0dU4hh4x@1B^=Qk($PcTe!?RSj5=^6tgox`qW!+cB@?jUa)a zCP{Q+l9q>F0szCDrX>m2CRWcXEaEFLjw`OHq@yj@0eMz66z1gWtDCT45nwF1vB(A2$V|bnk5TQ zh8&lhES(d*03RiJ+LfrG>~$ivnB`EZ8Q5RxCRuPug9s$_VtH(rAfwVD;rTq}J3h+Vvys-0--Wn^o(hl>;)4W@6rV-jl5D{D$dYVR?J)kMKWtr7FB(+M@h<*Krw&fEY^q=!a(+i~Tmp*10?4%M1{lnVdf*2}uptV<1eu!i@kyzk)I`&8 z`fc7|O4(iwWht(BImESlkMNrCOLn>)GX83ADo>M(hrMw4?AeT7z50pQ$D*V^Jb;t; zK|;&gACIzx4LrF|x$BBo)CXc$cJ(8y5jZLAra+KMbJ_Gd^=<6A&}y!Z{GO*(_g|qgPlU{BcZj zhFR@iqg1%;xUm=8f_=zQ=}fcO3N=a#5&eL54->B;G^Wkb^giAD30- zzlYAxoO8Mzm*u&oGw&oT=1|u8a&h${w0Y#S272rCP=wX_oI}3suise0ecq>SWC3TL z-6eKFz!5nN;%O2+rGJzFraO?N{ctXv!a``k_XL}6mmjUqSVtIJ5t}J|c9Pd9thxer zG_s0%l!1_cTsJIA2!zB$M;l!bQ;>_ZXu-qGnml0fLVpQ!yq7yZE)C&*j zSXd7xbGWQ7MxXgCw3Kj?+IT7Lv`8H^l{wV&CN5*MCvE1(QpzYWohENlb|b2$3)ig+ z21?d+L0b~Ty;WDV2w?jCxprJbEQF#{PBih?&Jak0(Cd=Rdiif%KzZ(LL#4zBj}M1& zOwhue>5+<#9c3wappMddH)k49^W3bZZhV(9C#a*SgTD6Wt(kJ}o4B0aHN~#R&vzQ8 z$M5*L;8UaR0*z-Grh}`H5GYP#(+p1Ag9(+xyb0#(@g#}zq@-n&R7-1#B zmP0Emf=jaW%^L;(E_(`Uoa-dQ6+LxwP=r|tp+;mNa39w4Vi^^ypJRJ}vwSV*LUyD= zJ_r6Knq2Pwk6j=+7i!vWg;|l~WZvl&StD$Lh7hp8&CG!7eBG)pc|!D+j9}ngsOyA8 zOpObXhNTi}Qf~KLD7o{SQInL5Z}0IsMm5r)s-M5T@7T}%?t#nQi|-zKELXZyzy*e0 zKC)v{1zRypBeqCm%C2nnv2C;nQLx7#-_L6*e)d~T4A^vE(moq~YFUX11m3|xplVL7 zloVHeSgUAS|M0Y?pXcMV`n&cYpEoa8eOzyQxBl@(2mZ0`jUI9b;D{V+_4do*lP|Vk zjmjMR^m;WAGp8x^lmof*ypW<6o=36SBk4Ye|XmP;`7Ii{$o4aukSkS zeA-&B-ub-!?gele0)YYH%XUDhHqbCd41^qeFnq%g8Hs_i%61ayZvf{)F?c5jI*GhC z0_YLBFd5k{;`EI`HpN^5oq;a0){P+E$XtY_Y&X@+MzGLuE|L2{H|>Xw5ELR086w-m zK(!evtC&ZeGSI^!ycwn%nMYDA+smQ98Lm5=N7gjZ%j2~fVT{P9=$Gv?;!lrLqTN8@ za&({p9wVy%6$pp=9pnQ=w41x)eMZN3Ek_~|ZWr%}e$jbQC;e``0{Oh9e{w9GF<_M9&D22DnF0WzW{Ze);=(wMmO7|MFj7q#; z=5q0|$DT8XKAhRP0LgGuaTjzfnOMygLK340>BWW4-`UO85!0#=B%c*dUItL0(!0~fwYRDaWs(SF5+RU0`^V?EMJW28d+EJN=nfLvS!(3 zHCHcGSX9?GH7f>Ym}Molbab9{Z!-sl0VkSSX)B#TaW}`iw0bW9Cz@Lbh+Ri#W^1mw z0wMpJqMDiS33ADmvvvhMwGUe0y-&Dw# z-Og)$ldjEqy+vbCv?1u^5)H--)9~DY*gDNj8(tk)KsF%SD@YmPi8xgo(07_mr!lP| zEU+`M56Abu zXF=rrfxQn83`H>^uTa?>Ot~P;L0Ayaf7ZGXN;Aq_v~4xCiUL1-zj_K3D!g`>)UYG8 z*aSupRMy{VgND`lfSytp(h3ISlk$SZ;WvcI?U3dc)@$5&Of{Lc3|GsNNQTQgP_|=3 z^ISVLJ1rm1LYf|>*`CGIcwHKo4Db8->a4e^2^EmOWCLMpCelrt)fl{X5#ST%_PnRPs zo%AtUyaUde;^a`sedkFv1<4VrSJcN<#{621^PctJVg#KD8i=OlyhKSeF?@9tO>wc- zKt$|$^tgHe+bqWTUE<@E8Z8n+w@D zAznKx&eac2t^V9|52OKi(kN7IpQoZ`!7uVCHZH>>ac&IUXXv@O&B6Ap-J5>E7qk7! zRY*(%w^+kh8uyOvi;(qJ%NL*ikM-O}{`AdAE5&@Oy90fKt(#Gfk@?iivi-s{o6#P_ z`Lyo_`b9r%#-I@e^!RcE5>zi^Llp}c$Om_OZfs-$6RX^yy#7m|=N7P>92`{kdYOPh z6tc<44XLM(6VuLWanP|kUSIyQUy-||QMTX~t6 zyxbM-@{wfItE-GMJ%?53y1lkcc5B>7X8g&H}EVGUi;!175eW zr55E?b@i?_mJw+U*V@zwysg2o*6Y1}r$UlCK~eo9x7o?UTx&KyIk%*x+Xc~ z=F{_dsVc<3Yx&vA9S@&}&tJva1%hW@e|Xd37x589HFE(Eno3&CstX@i{GZ^%s*U}VSb71@&?44&1~ zEFzZSw@8ncbp34jM%9?wXFC2o$Ma3XyXCIw!C74j&sw;UR|ZW!x;?RzfxLSgb?^A* z{6GSy(a3(0K^a)kFemfMX){pw^{2L|MU=}OX2+Nw6?4FSdN{y0~Hg2 zJx(q2C@x`^v#EtQSux!Fu%4{I=vR{2VYGLa5s`v6!};tL?4|jqUD%cn>tySR<7%kt z`xlPZfH+Eqw1BfabQH!N_()zflg(i};h;)QL(tRmY9CCw0|75^%8`AWY8c$C&9`#6 zRv5{P|kh>gmwau(thR=zPMbKZOJmHIeNx3ea_Ue|~GrQoXK(}d2f1#0Bggb_-|+*NxII5HVVWc9W@jn$q#kaYG4__y zkPcrQqVss;ExY>*jEi&ilu|cHa3KpaTj&xCf|{Im7oQPDDhJG7gDRf8DUSLKz7u^d z%Jo5@>9hCC*~`YKb_g*k(N6bvTY2jHTV70Q3A`VkHZ&`rW`|DuTxMclYyZvqe1xi_ z9~9+hV4gPw@ClD!^gxEuPP#%aY^Ap-aU(fluJ0&p-cz*XLXR zy;lA*u|%7#>OzpbsWS1GxSVH`@J-J@a5C= zI5VvNVU)|hgDw(~>=rSLIn~rA5!gIxpvBJXRmLo$Sg2oa#5w&{W)P<6L`{e?t6f6u z3-d8t(`BS9*-sA*`l^|q~VYP+t+En}CL*52DEWZ=^ZqKxUkJ<7;k z=60!aY`Ras(;W=!x%Z^;j_1_eazj|aqmh;MOxlS>(Cmx1af5;22k$-w)5^Ubd?ll* z(k9_dz|kXl_Fk*)0meMJ1=X07VHCGPB1|0l{TxRKUAJY`2gKt@fn|NdiP!{K)@|!2 z-tiaRI(+=@WZU53NmSOEfOJ^cM)7Dii4@ftuj6zQK8l`=)Av|V*GrUAwDZHY3Wfd7 z1qn{zpQyN%X;7UWv`V4^9BqutJBP=&u18>4-FDG3rP3d*#a#0IntC!X$Q7obR91Az zsMm*PfpqR7??M*=zv5@UXD`)^Gu%O5&)##*D}bnz`qE`>V@_SriD)o}hh~n}nl<)a zWKguf){(sN_EU!A0UkP3F8z7$H^EDz`3gD8*LRn7+wYngv8O|R%L^ZAI{ZaH&A^8r zx5FBSP3JgdjjX=}I0aiMGj6_~B8Hc^1KN(qHSLaju1!m2N)Z*oayq6^8`K@vUkp6@li4AB6Vo-7Z`NiXH+*7-Gth7I~Dbl!b3&*Kipq zHo%pnXadR_Hj0jpN?VYl4Hd&9Rlf>0REOP;HE_2utS&$ic@aroubEY39a`@MsL+s2z)Ugi7-d{10giLp`_k$q^sc%8?L9;9e z7l^et329t-JNqP}Yn<9C-{o%x5UV^}$4AnkKul2HHvWT@mfM?yOo5bgH|Eb};)ma^ z^?OAkobdhOpcZ5lJj1WJDL^OipNi9ARCC@_O-Z@KCj)ZH`OfO zbiU_qTq!*&5CL@kzL_A$`z}pRE|(C)+~<5`PlgC0aiBa~v;NECTTgHdO**D|SnRtW ztCdtr!1~+79@qc1ZJWtE87tEm)!+&rtGuEu6ws1w3O!ZnVP7 z%^r0xYdp0_ykL2-{*kF8g?@XZiaKWdXziVLkj{c(!R$VqwL%CBNfb#2gzK!~lmp!3_KF zDGZ8f=Vbg9aUr0vp3T;D>0JF#|uB-}9u*&nVZfLZirOmGeU2D40fodVaSQ@8w z4h{)jCblyoj=Fhgf{V7y)tIt=@?oc5uML=Z;L%bO_lUa@?7{Mj!dcJx#f`UFcLOTk zZKvM~oG*BDL`YVr*)A2v!IW673NkvtxTc07GCmzfafgYYgg3vR6YmrYFaqRdLl}V( zu za^uvNY~sqxLKX+?=0JfL?GkIQMkf}pzqhq^Sh|`K<@p(ro=R#JESFyxdlDwlT*hgz zaRhgGVOockeGQCv(&%KR6LjN>$H0*h=HSD{nK%7$1~?Lr{muwbX>WUfVc>STk(ey# za_4#};_*hd(Kfqm!ChZ>qanY8AD&w(`>JiTV$MJ%_&Rs+@o0rG-Zb94;44I43G_%p zJl!Y!C0fRsWZ`d3+bM_bpMpb1cA7NR-Hh+vo`p`(=$;R;x0wXB< z0{O{lAqlTDWH0C7VxK{vaJe~iCb+D0SU+%*@?N*9h<@qqSP9d#%!6RmD)R|^)q#Li zOP0g)gep@V78!BW8%2Z{#^I4!2uR5i5m*skkR3DJ5`f{PmtUa)MqLSkFOL^9NsRoA zT%mxm%_>WJ9&)AVa(pRUNs)_w7uX_RKcbX3y3B^8rDx60R~WMvRZ*vZR|1#G5Ls?3 z1ez`5ZeatI_zb+N;ygD!Rl&7vTdmTVQVz3<9WXmvY`G1sAu0gesU%)`YPza}v+0qr z0N0TU38$(QV@+FGeDB&gkewS}Y)H*Z34ZaU>g-X28wH>T-HniNj}9obiC_HsMTp}v z%owym*G;%H-q}r@bFZ`ia3I&qe#)FWz5sk#>II@v!6JvFP-@KLQT})DaR!Czy{B&m z)L+H}AAg*CDMs8E1v)BqpRYbrG{dPLuJo$oQjDoIVb7gnJZjvj0^KZ0NOH1W$h2zg z^}Nbh$0)pM7dI68o^|sl!6P(Wm2XblJ-(s>(Rlhv`LWOC?j~1HqujSgp$JDA{2+~f z&IhNceM0BVQm)Y~2+Br77Q$jsr%2PEc6jWxJ~HvSxopKtv{in|{qU1DKMgZa03%oC zSZl;$V3w9esP7?%@_S?%P!GZ z^h03i?e?Pxmz{Q!A#F!L@XOo(K#cs+|K11~pVgz21tr2z!-sfBK*$bq=rQ{1N7`1^SIAhEPQux#I5yJ)<&eIA#mf< z#fH!XZ=;C6uca%0Od~tDei{DajUVzSrTmYIoU-U_)2I;{wdC4IUm$vn<*N@(k9-s7K0++w>jo5s{b0w^G+uM%b{mpC=v;kMlb53rHEdot;FN%W83Cq# zCR?k3vG@$yL30ffD;!AlVQa`-Rrl)&Be7mXjL$6{Njn`tc6F7lcr;(g%R(T$o;^H8 z!9+Og!;^*aB+X*HE-xZfdxf#d1rm58SL)TxAqL#}JCqs?%123=4y2S#$67xnIOm~K z_UJl+^!nJ=NzSY7L4^4Brw zF&yb?h+C*})vdBoe_o{iN!QD#-I0M&E#1T#SzXE-JpewF`auGN1Ix6)b|OT?)7rcc^Yrk$7o|*Rr(!& zSDFsYc~Ch0Y=8#45X6Tho){f)-jU5egpvivl>AUMuSsZUWa^MVc^=!a-|3E2|8O1x zNk;gQ1t7(NHMx@k&Oap^4&sEibVr>eU?+&Xp!m`ZF3k}JPhfvNEg7b6mowjs= zwbw_3jys3PVu*NY22f%zNSM_=ihu75qTW3XgC_sAH>-qNq&qQVvg? zR>6O^6cKd&f$Qu>H}g@%Y_jrp`LS*iTBH%q%*)(O{LM{2zJQ}JmxUp`vnj>2~E(FF^Quwa- zZ*?zA6!4s!V`QQi_A0EaZGkm?RO?((EswqYVr}8`>5X}W%C=w)oo~eEkW9DttIm!r zk>ApyHzXi<6tOK^1y)M_iz^ZF=#uC23~%Af{f}WE8Ibm3ESd?JozKx*IWQ95Ga#x; zA3VdrXYv=?q5oU7==}d)%m3r8U+-qk8E&-${G{8avRo5jFyy}C(HG7rL6W(H2OzJF zg~F!APLlC@UzqO}E|t6eb?bjOc-tp^GjnY^OKcL|5iPPlYp7b`d!Q?bZVIWMjj{B}d>X>OJXU-v;W+1)i-MLFB z3t}QIpAf(gBE(IkAQ|8p0mQvJ5l|}YxRE4h=U^nzh88lpKo$WrPfP(QsO)NOV!mBr za9vBQJ-3{F)3weny{PmX#Q%@H_kL?~-`fSBgg}ZAB3-G{yMRbXLy-=mAR;2YcLAkK zXi|kxr4xGZRX_|yx)c>eLj`4;UYK|FN58>Vfr{mc@jhg(m7gRlaR#*w&kO zgDB;7ARpaQVph`xI@*35n8*#@d_ns23;%hWoGWaOwJYB)*x5QSrbq;|TFzHi3_Rc> zm2GlDTZ9X0XCeg5oh8h1YM($9#4`mra~HIT<7{X3Gefw!65aJZj$!Bam7fl?;W zF>8$xLT)cgnqQ){=rqI83n$LgQavD=g@5+9y8<@Usjzf(usBZM$O1vRqB$!{y-Vt7f2@f8ClS>YTp{HR7qD~M zC>>Ljnxb54=5EKo$3;iU#uKg!UnGqv- zcIX%hqh(BdnQm#pGsIoKqEb1H-rP*Gk9?@Whh-e8*6D*>l!eoIWfIXvgQVe}{B97? z-ig1G%L}lTUu<6DXCWc;#}jLj{$P^I7XbKgJMv;HYWw+zaK~O4PCv!E;kx+>cHY=l zlG^EXJhpZ!IXbxY7WmYuo~-eMwg$DHs%EDib0B?cG5!5jW9_}~LqT6b2CQRaM;4s3 zpqCp8W{oHh=^j@{m{D7&j)w-pbwm{4G#5w+J@a?is##&)3A<=EKSB0BvW_Sygwkc2 z^hG3Z`=`N_hL-RVv1g*z{WpQ1R?*7coqLQ>O9KUVwekv8IAH0p_lSp6D0EW6{eACC zmrSkYwj?HRV9G`O=Pgo|M4tO&d%6@}%48K1U!}<8n3>3vZAmZMSYY!drh{A_>hY zK4MXCW`V783o^F(wpyeB8(#J1e%n2L5q>)aZx)%|Bc@S*!I8`V!VcruAPB=WFn93K zd%HalPW#$%iMQmLYvj?p!Q)8V@ps2$i$~#I*k3>21w+VE0f6lPeLKwhzZdRnY52}T zKWWnStBAbtfW(FE=yh&stw8oZvswT6NPy0AhYsHv%P?^JK;<|!tUX(!J1b?%9Z z*R*cd3y|&EQy&cwhUfeuFTui(%ABZ@Qo5sar8%IwO#J6z|1)b&S$ej`wfv8|f4TeP zt$xSj7+sWEM~KN$6DCVI$2tPr*VC-~1V zOTgpIag5VAcGL9?7Z@diol{wNNHt5V^Xz!Nm*0-Qzw=} z#}GtfM{nOv7MhGMh zSl<1*_j&Wf;m=$lb@Z)0)iEk*}nV<_h+{MH~ha> zoX-=0{dp7yFSE2iHdzRw+^y8=H~sJ-;D@0WU>x}J2i%Mn;)x|3D}q!{C^dz!_tnrJ zKixjSHr08rhN7XOK?qt0UUWF~5n&Ea5;b)yl50~09?h?)#~gERVa)8ID0^ZK@EYl! zhu~ZCM#gmRV9v!W*1aTBUd-DzPngvWRh^aIG6NA{ALZHZG%x)M;BHyvFj39OZg*ObkzR7|~&>ViC8 z@QtbBs#$ZCAjT5cYkFFz`0MQS!To63xyB8;R~EUr`LTpd=&u6^w$T@1$V;-ncA8k5>xp4ar>*$@ z3Ifw(H!Jw^K6*0X=%rX^w>`0GmQ6pMQ3uZI$WV#q9rdwJX4f)v>Ej9X27ocqauNv5 zZN*QN%ml%`G1@pbG2<R&t0K_Y0F-EFV!!4hdU7c^NJTgINRQBdPn*~yG0I^Vd!B&s*j0- z%~zOApl1c%9AZeUs=h6e_>VO+!rX*?kC*LqW3zgU@ejH`Df^FvufA2lyPem!oef#@ z^)v$(-wwPxwb|f_#}a2xKMP-%0!B&K1vt%c^D{The$Xo1bPf3Oy59fi!3~6Kwa?4y zymsCXtiQSsm(KV2ALX)*{`wx&N*O4zI~o@gtnltHRF7L=w;$azbW0Qrq|DYW%^1xt z$RmZjf_QYXFd@TM8Yg_nZ6X0lfOjeBZ+XMT)Bb~2sp-@ChYPJllIj)6Tc21s zY>XM1+%EQ?oYPxme6w!h;2!_3i#zY?!hG*TZ{ z6Igs6uAMPXE$*)kg&c`yPW6WL1VE;)%|uwgKc~f{WP&^#&+1RSu6F!@GotPjIvKhA zB-5T`=@MuKs@o>MWYo#RUYX*w5-S;}VmWspSN2L<{gKwAwGeO7wQ;)3Zz6o`zVMHR zYPOAdYKZ4gl^71W%QK3XX6HG*TN`ZUw=gae>Ux<_bKvsoiMR5%=j8zZdApEmgS=&d zoryamfc`zf3CNvujl9%NTBiVu7a8Zj+F4QVn+h9xCr5xhB*fJA*dhb2Fk;_YF93tQe4ph=(2YR4+j`p zG(tGFwpk+>e~n?$?6GXDQQ-}CT~RT31c!*2QG7n){H#=etls`Ihluzux}I>Q`_KXk zp4}R&gwwyw^HEn7OVuAr!ElQxd7}Z90C?zIY@&|u8Ftzm>Gm4wQcNO+=`A((AsKG$ z96ZUclRiUPyxXPA+z%26pK@%EM0j)WA7Odug4m}+asVfvu!7j4qL5G@i*begvrPnI zabZ^N3iF*`bM~Y;8pYV(&>w=q>O#sKW76S;MitX*<+UcdLGV6M7J%`I=t6{=sKgXX zC3r!`8kuPZkmMeH>O3Y5G4qXsNMONsmp8tNPHH{r2cNm%T6lY&jOn|=MpH6+A6l!$ zL0i8PgPWlB79EdDz*?Ti7VVDFn@$*lLr}2`;f1Z1f?vffJw2SA6SDqJ2jzyuuk_VY zqQf_8&@*UtY-y?x5j7Ca(vGy ztA~dT87XW3>ZFf**nDNN>M0Akf1oCmn7-Y5n3&|Kc(~%4_W%jn=?A~2a6sdtoD^cV>rCwjoZ}$4K@q z$KDDbb_jZ($Dx2Z^xzop@6n$HgVTTT^q1wGp#MkReg0aLa0QZ_4Q}7(4;g_-5VHx$thIU z4WO%Dz3YhZ?dhFaXqor`dHZp-_I60m*xGib}!~j@!uLW&fT^i zOp}s#w(`DEJgP*3?EIm=AF7!o8oeN%Hm;*qsC(I8a9`ZvS^!&!(U(%|;#a^yll#Qr zE5cM^WT=FUW`nV8lv7`m09|usSdr}!SLHj=DalsF*v?&|I^=oUg8QXVO-KDX^?kSk@lQQNyp(%i=Db zG-8K3kR{0vR~tNNBz1hd>HnooNcEHui2jOD-n+$PrVj#* zAMjC!j_1f6-+9@IJAA^Uc#K0t=@Bsdk!GeLujCkDA<*mIS|o5!23*)>UaH)OPjL*- zBd8L*HAxzn)VlomgRK@KMSle^AOk_cfK}Q|4H|gy2x>(s8LMlBPZ*Y3L_=C4I1-)- zmUhSMb~NP2>Vt{{rFIoynH*;o84|~fN80egod!UScs79>14zB)7Jhz_t}tV%(YefhBIF6q&9MswHrE)gC& zWYU4weF%)z7;re7Pqk}JSz=P-P>%A(WkAU@@i<6T`n;W-(7uBrv~q3j7AaZ9m=kT9 zhJzX$KJ%937}l@TCwLidcy<6*Uo_|JRI&N8vY`l^z_6NH;L5U7_TET-9c@=%}tQprl0>zfich9PBZt$U0yE4PaLKyHDZf`Hm*C8&I zcka?2_DWe4<8__;I`5fRs={G%0q{2_rtw757_NZxmRUC>o2*nF-#}pYx2+}atCUL- zxs}(iN!qvP#Y<}X9k)XvUeO}N51H-nCG2UjnER9w85n6)SpH568YzPDGK)3t=w4*? ztW-MwWD{{IY#}3GyJ^|r9^kZ=&4<0uM{wPh@v5Ot#*#icb*W|RYYqB`P$Okv%y#d; z$WguGB*-6BZ&X#ljXYS@p~u6*9h}#4OrySW6;xk3Hy@4P{vI}bwQFWy)gtg$mC(IOArXXPRXJP#-sByxUlVyvVUZhx5YDOY+~Zppk2@8 zOyA4hV9Ev}ZcJef0E+fFNd>oL6ZHI4ORZc8 zZL%(=@S7I z{{dfOqZVnsO=;o2+Rl$N4PgP-XwC`0ZwMn9zjUZ(_+om0y_&E6HMbMufZ~0drt1n- zd&?g~0O!&EAZa8)qTh#h^K+P)Y4Zt(UXp9xQA9I|uwtI#ksEEd(?ra@e|T>O!dAA= z9S7L``a-X#XBA2EXz8Qa z%p*Et46jI>$vcb)x5?xM#o{V<918A4_!uiUeUk*>nzS2!#DBOF5~CPv$w>+0K7)$q z6a2;&t0U2s>uYF({Dc%=8skC=86eeD&B)FaramQ3DFJGEtHThhgzdtNM(^A^!1Xne zWu)`VTi0o@yZGW9hIm`<+>V}Gii8OE{1pV8Y1;0596#@BK@;yFchP7M5}Skd9OEq3 z#h>9T&05>$D}y^5QI?<1(olu_wU!b|$rp_j&N7*lsZ=VSB+^+$YS!=4GvJAJ!)Jlc z+L$0Ccx7@CUhug7#ih0kD25Z)RfqAsk87AvCODyxnA>M5W*zoQt7CNql-u~n%F|kF zVop_ayLCm8upY^DvjP+B;nftd52ZEtHB0Et;or}`>V&~Df?-bstqn+ePWN@Q`Wp(L z+b!{AnKLI@EHdAPQvlytdp%0*^Vq~bfFN$sTA`A`eD!X9>cwa*z$RX#^?dXO*-wR0 z2XcA%%LuVMq@%ym=NmX=G|hpAz%$r>$jzIupk7{$M-SiXF&W>JyX{D~>1i2AcEQ6r zu;~67*ka|^S)X^EUq6^9LK{haD6-NsO!g+47fe>*__S4osdRUOZl0~CF(adiX&Th^8~fg zT74zgXs&?f2gIL9qd%3@mi_tDF*jm)m+d+(4kk+ddw%SZFH^!*ciJ&wp^4w4z&8gZ z-jK2pPolu*{dgVBfVq;BC@|nA3s5poF`@mVf8 zd8K86c+2eanpzv>LW}CUmM6L>RhtNr*3K>^^g}C%E2uZ~3N>0c55F9|=@}9A>TQcq zuPr2LdcJnz-kXKxQkGG72ytaA#q0gu{*vvlIF_dm{0gjo=PKPCjP4g%)lL5~BmH^cE)Ni>7pb@y4mcVVLcJt@M%9-!Dq96` z3&MqkZe-1Js@)Svd^gnOITR}&CA6h&a(DTt(h;(ns2-BoRCkZR)Q6>A9^xiO# za#?Z;Hwbz6>X^AER{s0b&wAY6k_Z!x@ZFE|xtC|oJw4#NUC?&9c@}xNxz{*B&wlBd zFCV1gYv+SsqDpg=D+4#pjzz$%7%_xIV>}0uDa4=wK&P&E1<@4+&oeOHXV8p*CxL4* zQZU{;u|w_J4=_}fcdh_*u%9hL0{w~|d2SNGK9YV|&w-{UD>aRg-nUzPbm>RSqS*Sm zG&7C3 z6TSKKi;-~Mw>)XGfZH;`r|vXw-tdnny!n8<14TZqF<3}qt7fF?XP|g(m9!lsgGew8 zY@l`tnvJZ|qd53WOR~$>oXHvR0E(>QY*=ovu$V%aq@nJ5B{!#;gJWwMwgLk*9HGgE zittVrEXEk;V;;EHSUK-!$WSJ<4?0!RG^|x~r?~Hi<{|`WSa)gT)xlQz0)$hmNEl{J ztwYumq~h2!4K2{~OP`X@!1enO5Y&g;VW~$)r)#^-#oG}XR$A+ynyd}wx_WHwwC>Wf zL=*2au%C~ty%)?0l$pX`-4$bIi*x#L|AMWI*@!-k*3IG0dqB{OuPs_>quo1N4Pq*K zMZ_`d*A-E(^|4R)r7>m>MxjCW$6%|8cvt{*w{YylQno=3CD~nS%+*jh~W>H5=OB_|2|9@ZnE)MQbc) zhYKGauM|9XIr>`^c*L#@!?x+mjg-6O#~Ykz_Vsfh=Ntq@*t-<=uFG<_4T*x8%AN5! zKZ<}2%AO}JYtr~nuV1MCZ+teaULuW&(yz577RJ80+#X4E=hS5!d;L}X(`kas_7F1- zIaXu;2AeOxoe9)>U?6ZxIEWToNPgzckQ=7{w{*d3_>i@XhyRNPbMYKxs8M!zy1NmV zT&(&F*8a+j>2)Hh;$OU?f5-q=WxLBHfjsu#5@OP%Tzl~Z;EFQ&?{y9|Wo``dl`I^Rno*@Y# zwEb0xQ$k7(AvrZ&H`6&6taG?gaIGjC^bDEbi!=A}t8Z<)8r)>z6Vcw?BZERzHX~}D zzZl`TH_!|`8J!$OJ+tZLU>yuKUBf_?xw*gJ}5nRZ+K z4n44+AEA&7LVS7+>EX^*lKcXk@m0GP16K?L3}&W=Oqm`rDg9dE8PD%elvF#m5s$3n zI+fyrZO!~v$N3^7$js$cq{q^g4Ed0hh}6^I`G4wITyF5SQm5BW>d~T4blGdX^7yB= zv-)FtqCoH6&uJ7{6Sa(;14vy8p||z;8TP{MMw*LHR7anR($JpQFcsyB_!3=Dcg8q0 z!v@+Ues}h{o{4nIphncBj64mLOqIKjk_N1Uesv|21B zrFO9v4^>CpiFp2LqD7)VQw=Lx<~pBlyivBe<>PY!$R!nvSoPD7Z45kd@%HRA*c9gk z5@N#LwLR{Ps@Kv3>02vl{h1F?G(c8R!gw&0mUrytxlmsZyF8TlHe=q2unS?ux+&!8 z5lYqaFSGfAXT32BLX!D%Nr4no04R`VY}-dB>(s3AR}@tq#a5JP0mNh}L2Nf^(LAa* zgL{DtWDwnYF7BV|?PTX| z@9&W(ui)ytw!NkT9lc(uw|?_^Aw zXHp>E$<8q`ksyhcAuZm^k0jq}t$c2NFLe_C)eba}$+)A08BYbMLY^#fVy>gG;bglL;6*~UV5(7-@b|M2C z-)F>!mc>7NOh}kpFzUWLW*3|q;V{eQ_Un$ zHEP^chT?^-V$k|Gm(D$GgM98Ybdmx7yJq}~?DgyChqK>cb|Xpw`#q=i^qKgum|5dH@@WlE_saG8`c61at1~dY`^|OPZ}sTdscz>qX$@Gf8!&gqSc>!< zD>$AallvHx(-SSvi*AUh6BDdo#F0Ogd4=hQpS7D)?#Jos3^uWGRD z1Xnf-lpCdXZCLw$uS31#6<#%ZL|YVZl0CF3=KkHwQKIuQg09Jz!FBw(9IX|$qI<-+ zU)DV9{pmRq$zg>Tx;Ey0o!7?{OhuGJj&ojc<`^Qt%)4yeTGnBdJ8p_w-l~K zF`PYOC71hjikU?OGW(D!lA~h9LI5@?`tdwp0-Gg;NP^kyBm5#*_Q0`^;N+1_m|Tb- z<$UryL2G*9Jw#su{~oQPatjqN?H1XUY_vQ72`?LSW{JV34!@L^P>~j#;Y8+Rnn@&< zTBdj=SQH}wY?`gmeVLWzoGKy`$PP`oZb<=QOXn32Zkk`o_huI1Ewu0^lokctN*^uC zoGvN_E10(-Fmk7;Hw6dEqHCn&nS)r;+~6gJ3LXZxAh@li&08BYHyEhMyzLr@8XtI%IAUT^vw|trhQ)>}+2j zmvx07F1_mX)h}z?bnaggEj;)6G?AnO!ND~A2qt(G)afS`vr0`BNOWePRoXCbv%m_3 z^>TX4G4+{8kdyXvq_%grIK-2a4aS#LkPJE88GiV}nJ7s1LUpYoe3bgDnFvHG?(TV} zZL&(wB)RhBeYdOYH^iNo#eYsVoTsb_o^&QBeqp(GOnX3$UEjGl)nZ|IAE_5zb06dS z9gm$RJbIx#BQuxP^;YfGqqCE44VBH5As@#Sp!73E0L(dXLZRi!4KwUVmFHeTLnSXn zzFCA{!1*|(Ys!B;UT%qZpj>=!u{D%x-d zlHQ4iLv}^od=&kR*EYk2csvQdKkFIcrUXOVfe_H!tvPaTL5(mj&PxyZx7YADuuOyEQ{o{n^ihI5jUjVR% zDnU-Rf=WCG_b`r-(~2se!C{o`*Zc|#P$2ZmZ^%yhd`gKU^*3bqp+VSOhEUOX2Y|NE zJMNxW0nO-y#3X5yhn~G-GB_^&=uUceenAAmB(Jcn+yWI_5?@hQf0YH{gl}kVlW`9= z3(Wvec-|@(`|#&O-3G3q#=|e`1FM}NUazJr44%CSdpBRu=L5O9u#(u}+qt?K)impD zH@aYF4&LJkh}!8V0tnj*a36u3r7)emh*b!7tBuE2p^+AO!BVvg_1Lqr4`STl>4u5%MkR>QvAJP+S}9&V9$LFfMU|VEUL5s2 zWV~fGl&#(NJF=@Z{o#afvE&FmHAmcShI7kRfA?)QSRJgSq!?3ZGgxLN`V|`m$c=2W z*JZq!n8W#fxol8vJAuX0uX1oFZfnhRk16iwfhTu_M8qHE0PAzi1X=7J*SHVUOh42qyuk^N8$Gnc`z44+L7&J_gH7 zn=QmPFpXJKKodkb@Sh^ai18e~{m@u79cm!ynwYqCGWDHEYb7I>TbKwFDoWBdU==MyTvn7|EONe>XtE1{;fI=fa(CNg#wmX`<0wbm+LJUn4VSV#q5 zPpgRs^^6gi-O|^9lC}EGt+Cm)NGjC4^27=Py*h6?j~n05hYKmZWJdsv0tT8>b*@sj z9FPElV}7nKlVKTyZ(VtJ+pf;M0P9NEX;+3c74>TR?~{HcAzi-lu1NSPa%G|gO@+v* zg-4|kJ+An2b2v=fsIT!Y^0Sn0+NF}AKWvz+8R~usgD+)ICF8?I0sX{UP z4W(ykjTKSD?0`1O3m;DaGVIDXSI?+i&E`ojvu-B-@*bGmdU{P^*cj{$_l@M^++9wZib!KJjf5;5hmZcZe1&MCsq*6si7{SY)H(IR*) z8UmT)`)Ve|cwSZb$){9X(Ds?>wfSwC@OK)9osg~LMap(uAj8G}Y!f-kwIU?TgfNouvS%GF+Od@@Vw(c!de9cHp7G%>;EEN>=e}8 zfyjJ`6V$G0SUY9+WC1km|KexD5z>NBs(IuF-NAZ)%@fa!i`!L?dnet+po2@-=JrXC zCMybY_j+PfDk0YabtY5K10>JQSmI4=g39aam1qLYY(UhO^>+Z!?OokGl||+dptfhY zt;q?Z`r=i6<^93eZ%aFz$EQC$?)3t4=9YZYy@|^kAv5=%eBQm!Leu9=^=a?B-lPve zbBKf`ZkpBvAqsh0F6tO{g=^ET?U2>xVFDZ$Zp}<}cRh6>myT+mziZJS&#QNArj;*R zI7Cggr|Ykt*sm@T=&(j}P4|6gmiW)oQ;3G5r*hw-CjH^p?O$X&Pf7>yjf}h~Wlyv5 zjJRk$adE1(<8@R_xnYuNe1M!R6~Azvlj$V^#%7yoJ@s|6dlTwV&|uf?x!5j z$FUFS4-dpYe3v>lm-An~I`zSnmhe5CZ0+-#n852}JOmwB6dPF06U)gE7C^rFo0Muc zAI8vO6Y}6RNVia8?w7m>mv`f37vkK-EJP+V%`HTW=%faR$c*)~i=OJTnS1mCFzk(z zLwR6hX~_7r94H7W3uuY6rKorbrkec3dh8P@pm&`wI+@R`la4n#McNwx>c3fY72PcG5I$O-J4()8?R zIh6`8+|+e>g1pBz3l|n{oeGH|Zu zEWBJ))c3ThpvrT5yC2(>6xH)P516Qp6$`G#ked!5N;h6M(a|sL_KCl7+EcpF7V5+R z+uzt5m9K~Fj|uug>J4d`J}Zy=l4B874;9{ry^;{Q(>TFzCR7KB(I!o( zt;VzWfXL{Rv)gL$2^>oVO_SN5)NKO6n_J5dBvj1ZuK_nBz+xTgsO$F}<3Zz0qF!=Z zc1{>ehJF^IsMw0m!z?DWq`F3j<-S!+ZF7rEUZ6!#3Rr~9gDST=Q`I#o)HLG1>d(0`e;mME^eWhecsd z1{MP6552BS*%gM#9~N67!*)e5c(uGEIiKIh!ua9&ceMnSez}t(WN~%PMUYV8c5g@2 z+bH=_*-iTUT*w;968I(!Lo}2iD4+kBztF13ot>nWah)KwWUf#6G8fZklys)K(AeC@ zS?@DgK5z2gQ?|`R@Qk~YIVxA?${k~Z{qu^a?xF0DPS4Gfm= z@ZUW6^kPfSBJhFruN^##|M5K7poVyWnL9>Pyx zU#@s{`LX6vSsM(XbH(5yy2BzIU)6#PwVN_C;Q#n3 z=9Zjd{a4h-S_E4-xpFi28%MPP3dVsQW;`8LJtO(vmt8kzLqGcGgGm3!Bi&s1I=PFi zy?gYSoP-93OO%ha;a6lIL3=bcf8K$f4Y2`+EZnrafKD^#f;STS@}zHNJ=yL%V-Q&x z5baSLL1zcm%8d63TyCDO-mDf9NW1#nCde)L8%gfK^>_dlc022U%eqXI#3!y%uR#OZ6tDNX`Of2RuGu* zYG+Y)^{+{U@-;U%pKn0>v6#)GqlyRI5%r-kH*3+yZ>6op_R_|{wAHhzA#NFuz~-da z=U<%G+Wi)TF(`Kdo)Il~`KkX8A`x*Y5>bpJTUw+jyY4HB+8|JO0D zCcVTNTY7)!v+olT;^?&>CkFU8mI@Id@mP4$gzTN%6>kL|<38Xqep?vrs(n`^3^YN? zIT>7y#)D24_5`C7EcZsa+`bE9xoKWxWf)i45pZC4?<*!488&zbI#EiOyqv4VW*9B;5C|Q;jmxVQ>CzIJK?T#V@`i`nSRh#~vNmotEdn&Z1(!kecluxm5Hz zMWtD*O{T$yzTEh#uiqfQ!&IV4BVg!jz&TKT`JIHdDu3k+-g14Gw#-3;$-&S1AnYZd z+f^UkUx0+1UiNzyaR$xzoUl%&0b^5tHa`wvX_TOJye-(;u==V*@8lS7Tz^wz`TH?` z4qo8YBIMQOGHWY~Cwnk)!FE9`j^lBf-?s@Q`vcj&GlUStr&mG}qrx<;h^-k{in!}p zJ%`&RO`6x@W(`P$=bmZ0QflC$NDlYbk3~$M>uv16r8dP?)jVbhYGyDDJ`R>4k09I^ z01nyc$rCKHP-vZ0orh-^+_8Z&`cv})@XY3rP!8WZNQ9hms)gdGrwER4u`X)h(Z!CB z7O_8o8jiSw2n463Bzj;Ja`~(}8j#}urWLPKMvcQ4D65kv8yni@C0`X8_{1#i4>BM& z6r$D%AzC;KN|e5?LRxC$z)6QONO04)+b==1jXo-n(hu9?Af6^{Mx>s3Kxe8vj7=pc z1*ow`(~6k!pve7ud8uP9BBKiAjLQ^@Vmf_-9{?+l-@(RmeYD_XpCtGw3&>LJ&QfEr z2uSPZSkS!+#q_Qsgzr&Ut?4GtiJt5reM59h{(ETs%lq@4$819e(cO*q%9_wdAFJ}u z&8O&s7h4qO;8o0rx$B#45-q6n?Ym{%YwhwC(OVQG;(67~UpGk=o<3fg-a^AqB@k^P zfe9j%l;zu7)QuWV+sxGO6t*$6mNvv*><|9ke)eL8-2t{!Ny3Mq+U%W)^-JJNQ(tG8dp0f`9!_CYn;!iJnB#p_Jxd@)B z!-W{h&BKp)RpD=oNjF`-{R=Grhm+;+$M|2!@jsQM{bvk`9O5r45P^r^C*aCWHHGuq z9<&&yQ-i%t!{b5-W*nBDrw@0jyB2%%rm`{Va0Cg|ET##G{jKCYAylpsnRu zbA_!p@p*M?RCn)CQDa@%@OT{EfF02F@@*)=9U?qE7r-*sy*R&Yhnlc|v$AQ|>glqz ze`m&{{>#xV7OVG5-@#oK)$mkeh$`YGB%;QgBFuw9CbI>a#}r9(A-#qHp5GhCDpe$k zs9RJCysHMX(r3iXAP?98|Kr-|i^epNp$aa*h{ zdwAhsAFrEm-&2@sk{zF@*B{=AjdHg7-+t>XPEa`RDE-B?(H9cH4Xor`B71-b`He4_ z{y9EmR1JY*NB*$im%*k#8ez!}C~(a=z4^kHo}o&y$}|s9}%x@9AfK zw8uQp5}Q258yYFsG(`en$-bFVUOKy~mcS!YT5wLsLh@r`q4E>sc(o0+Pp5UrL_VcV zGvNx2%{I^3q^)2gm!uu4O0@yogB`9%sMmaNGHr^cLg1`Z1IxB3V-YBfRew$kZQ(Cc zbdDMzEK`8^3nh7Ia-SFZxQ?wCLM>=C05h=Qw?id}72zPNPBK}=g`NOE`tUOuXJUth@`ao+a9moXJQ&z zk%ny-S&b5jyKme=<-4Y=;-Z7w>@#*eNM)LThD?(83raFAJ`eah>;Luh*AF;2SUns{ z?{YZ*|0_tvc(RlLFx_Mvdv8Sqs|ZloE+I{cWrHwp8=??n5H6KXeP0ep(^yIiYRVZ& zW@a%*vwcO8C-t+dt&<`=b)rekecs{nA9g~tdkm3MGQ)AXmW;x}#J&mSb!A$%v`Yns zt=CIqB6;E1kRpJ-j(iQ?7_E-I=HrKSf-bk z*ir|w4w;2+ei7$S7AXT+VRPEm@3!jg-D5$&-bEWNdvGu~ELcA@Jm!%TOXQ8{lSN7g z0|1QzC-1JXh}=rgDJ;5(_rGNV!YU8S*8EInbyIP!qi=J2R-;wJ)2`SjPHo-&fwfMM zs{^CnWmXkq6P|faKq}aa z*Ua(bd4d8nNxiddzlciL#p$yeNjrG0&PWEmejg9fd{wG1D?h$R#G5i8In<9O#Fx46 zXe5(A%cX`>e^d#(sD51}^2(i&xFMqScj<8?BT_t4f}FqTt!5$cC_x>SoC{Agd}xr2 z2rZ^^xP3uGh&pBQ6-U8fLIdtb7wXEjhXfl_;MM6xz{W7!E;xeqv(P+v;wcu_;L^?|7U zmQGZ*rEiA)KI8e&)}VwpLsu0{#r&0bR+69FS>c$!vwxK#_u+1DnevG?7USh@wpQ6JBO2DumLUxTK z&dHLwNa=*LxRY2!j2WKPdu22s^$S zp>8Dx{7}=4U=e?7MWr|x5uT(jwHjolZ2<0Ru!|6giSkT@0#>EjxgaRLh)5Tysqj)z zIxjIYBvoJLdNBoyeoa?$;Ld;&00GS2!MxI;*fU9F>vXc?b&;p2yES zXqsk0u8Ko5haM@Ew!||8VV30uNV)Yv%9ZnW+bPcr+xccPo8CPepi?=w2M=(b_>B)?Eid_y9B;}HBC~CNTx^3 zrDMVUzrd=h(3jWxH~(^}PFbBy-q{sb9!xtm|9SH6{|2n?{=swozwuIiyc~223qZ-t zlFF$N5HfwX8#mi<16JFmFszxC?jG=X*E$4d=U|^XH;1-T5l09^Y%f^i5OH{bx`-m= zLirh5#CB)Wz!*woW(o#BnY|l(6p$mskO_fYb-0V@oH)-ylK-S^0^k+*xZ$S>-uHyQ2Ncmx1TcK>o>nK zMnLD%04S25$$T3e=0&ll#3O3i&wA5cDDz7Z{n%oy)H{uQHZgX`P0Jtq2}r+iU%a8ShQMdE_Fvx3z!VI z)PC%fY*NhDl1^J36dkar@;2+T$-rICX%{@pzWS23lL`Bx^INR~# zsWAmfz9}8MM9ik_=^bi{1OZc%AIm#S$u3HxJORFq09bL`JR&Li)gaeL?pS9Hd&rzV zP;Tl9mGZNl{ctn-{IgrY(U-kI_}J~h`kh}p!KS!2rm-AuSZln=ac~WJznLKV(v(Ih zmBGqXFrCV|H|$uL?(-l#t|Syr8$%?*nb0W~Rt!c^oS!5wpn&ofZK4Irua!`cUeF<1 zfXQ%wdr_tq~|Kw*pEw zJQdqr1HAtj=Is;Q8$MCbUPvuh?2X8M1=TYw9JDR} z`MUgn0tSEjf*p_;D;Mk%2JCmQ`ZSmd=z#q#Z-XE$QGSq0g-jF6Mi#XpWw@G&BeoRl zsk_n8wk*&#z_lAK`{~}B*|n`6o@zO%?(ubcBIaR@vODln)om9EH@V82&hGLF~pg?by-51R8 z@T3%jN1a`8y~V#nPdS+i1wLQ{`)~L@2njXQ4hoBm(nMKD$Kj)FZaT-OJobcyr)K_- z_P)cf>FilMkPrxFAyN#uh8n6ZfD{205RoPX1wjO)N)hQbQW6L)AcWo_^w3dMKvAlS zfQuEeW2L!*iv>m3d%giR?(Xlt_bqpK@9*9JU_R$O^UR!?XXfOt%65Q-7FQ;xRxxXh zgc$L4%|{BI{8~3QpyyRSXozPtI}Y3}3b`xUJl8Lj4lgQ5+i zm-Bk#Mpj=IXIIw;{_Wt95;Q=2~zW^GQo@2Cr0Eq$XqVm zqRgo5=W_2Sz%)Oca0_Hwtme-}5W_d!Hq+kKS1h$k*v?$WByR70;a!8njU(EV;dh>_ z9cx*&hOp&G*1EfGeowY0nY1C9e z&9vAbuxvHKCBf{O(EEJnx?ucfohp>azxy2xd~~_AMccZsi+!8wxwDJ!=AI0dns=T1 zBr5!J=HWu~DL+m|tnwJA@W?X9KmT?A+Mk+wUg&p0VWKE#)N`VEiDKSPO_Y+6 zijxfLDzC}1|JvW*72Ld*z;znH`Xf%UyonwzBz~^PUuDfLT~5r?8n8f{daKVL({GGJ z^opgEn@4p0xLOBw55;i|ZC-nCy;b$On8t_;(;<{Krw*=t+5S}4`EbW%^`c1A%fpMb z6Pe144GOvDyG1LCfGeF(XiNi=A7TsTji%FrQVrthM(cO)h0Pbk6Bgq zT$yaRKD38EM^f|Dc+0|q%7%-RCu}1e&OCIgzkW6T?yPBtpw2}wABuOQP~-4o2W*Yv zQ{sdK_S27MW|?zj=lLW$!;5dd!4>|k+-+|_GssI&%5{99(asDI`+in+4K5I=joZM zF`wqS$9^~8w2Zv}Xg26M{2^OewnYMSz-v-8CBfXZJg$yMuSmXPRUYgIg@bxR7?Yhx z^VS{g;R(3emm$CZvn#cnP&LGlKQJhC)#rI-CJ}$9f!dn%Q?Yi%4TSBKJs)aY(m~rK zIBZYVrxd+nug%R?hl@7Y4hfBr&l?N??s`?*!(4)WHgKDD1Zq({<1&=C#3IB*IJ=}&xF_fM`i%R?+^>BcCwomDqF->1lU$5^THv1W%USszgOg~iktX`u-4m1WYbPm+B zK@c~T<-<%jV9y)ZhF@+{4Eq@rKK0Z&_(0(^&3BPZaak1;7h!0}LyAuUy(GFU^?+u2 zj#ab+M{d!sWQXkHa=rYD>U1%;!kPxP+Qya?UN09|=CSs*RW2bN=cJksCU*7rxYqZd zzch46tZev-{e`PHtghc2GyUoIy*u6`_lv~(Tm~K$i=B1!n^PF1gffKKCZZY0I zp0<1bA-!$#)00Z_z3$l47)84Q;sq_mH>)>1l{-e%Q5TlBfZclPd?8Ju?-?pQsRBd8 zk9@vta_P8RVYaH;=DA4$fpY~Kfz$UcwbqQ3>csNmj88DHRv2a~+7F(nyxtaveU>LrIdq&p*VWzATi@1qL5-vF;*bglb2vQp z%JmyJM{jM*+#5I+bj|ww{VN=_$Ns#7W&(Gf58eAYXvFlzobQy8!0ej~&lZCp?Rok> z_6d(8-2pDB`1IQBP8rIIsmaBwg!1#rA}U_@298x+Oq1A7TVr&*@=_+yD%ROuI$kxD zOK=%1GHR{9T=@SPr0M^AkX}pbCUc;I2%H=mkLC5aQDEZ-*F$m@nFELEh9h*HRi9#T z1hN$uYCIb+V5S$`mO;9-$f$Xn80g^(tlZfQ zco#IB@}w^NSS!42-?#RMq1lCTg^?PmhLFe@lU1qDR<09KfSN#>kfV~)H+ znfM|Iq!nO=X$`T2S>Mpu)SOw@(t6_LskZhG@#Ck@vOwC`fBr%?r^*%5pcRNu)5g+N9dpJ1k#2t?c8FqW4O79}nbAq!*7T2OW} z7X@Xfqom^}Peu8)*$M!Rd7tRY?C3o&-gDv7pj@y4ZRpC?Yb+uhyKVI2o%;_Uj6He! z?D@px)HDlYbFY5+2V>v;tn_P50xuekH=HYrJ@Rg5n~o!cal4-vsflSx?}jPIVIx|^ zF`s{UO5rdF!boW9Vm4Xm>hK25>Bs(RM;I4;@v2WJJWXOi(hwW9kd+{n<8e1ecGYVM zi63_hN;$z#gxSXD5)*fm*-H%JFcj=GES&?!^;zPVqpqGM9(CW~^!1}I@Id+!SN{-B ztcCs1@`VVndksiP!G|r-0v%}YCa7Y9rmvHp!DK zqZh-`XuB(S=BOjlqpQ<|J4Iz|z~kCx(6nppZhP}fR*k@0=$?lzMtyhBvi_+cG!e;J zxp_oPzD(F*dXZ0InX6@`cTNon1Fvgpma1r}5|{kePh2u>4KOWc$uy5?1>rs&`Vp%V zmT8@wGR6G5>Muk@)Jg&_=_?6bwv;h$EKp1;6Xr7V>C#-cU_ee8k%Mch+ouV?Z122L za`%?-&ygb&h2XW~A05L6!5AtXL`@1Y2QZqrUr|U&sfmNSZux#vO-}ewdk6X=7%NyAXUxI>72q zb35YIQH#!2jYc!wJ9F&=ip|MW(21#AefZ8ZLL82M3Fdj~NNj#23h!O)f=ny-I#}%$ zR=dad4{f3?+vG)RU}eE#F8KR9F%!QAqx#OP0Gs5vD*Lvl3ZTmajd9^QR)Ufimq>16 z+vg8W+YNXKN;ewIkGYz2Hc2&1-B5qPbzAyP6y?C~<)bpBCIj*}fTu$V#xnVP+LtDg z%i}|gp5An!+-V9cgqq;qje$QQ*j+n~YjAk6Ei@a4kuHo#266GRP-YP;APY z$XK`%Bcpebp#xeXD_@E1P^uq$!Cn4FM)7{jtQ7L);N+%^2EHzEWZDD8cdw^twJ=#^ zq8-eBlV6WaHzNPAWsw&uywrbJMX`8QwHuNhTtl!Z4o{Xz#wJ&kfOZ@h$ z?Y+e^m*_v_H|@Y&%}7(*q5@;eVMaKnGPt591Xbr+^qX^9GV17(QIk_vDe0Z|Yr4ey zEgkAW44)S>DBr%2tr<`AzvP{vO-~ivVMwSRd%?`O@)EtdIj?3iH5f4vZXY9b`*bR2 zl-l*HxkpB&Z_YPG?TUnAxO8B`GU;whTDnGgWd3ptFLA1%R8?;?uFc78pcFP!u)^@; zQB7@rfxoj5q6^BBh4Rx@Xjc)VHC>pBFzDDGTDS1`$VmkWVAenuiX@c@TIJg|OUGdf zr*+!LOOzX2pkuSmwK?;!LlFuKS98xq9k8DNU085(fqXJ2*A9ut<=Gs@2NaiANMXV& z{mPh*rHQr)zq9H`U{%7BRe&k5PxUSg*)220MUi5Din^)DhR(`>@Or`?DqsKG23r%c zKGlSKq|Eq7??$ImfmN$_+NYfaxldN!1drE|<4qS=7Da0Nv2vfKV3iyJkyw^GJevi7 zV{|biJKQ?9%!gjRU$-_{m)Q_f+7bd6{+(^miKQ;v_95KC%HA}>idF*=Y&*nak`RmW z0v6j8E>Y~%n&oKPJSHHWw`HY3c2gL)=)>;kLAAYBHRzW?o15Rm?6$h(SRM*Jbmowduq|m>|9b^`SyJfSOwFHBVAZf|8;zIXG8XaC^n$k@4^H zopRoRn11eTsPYH0w-+1aQqxkxmYg)xCNEj5Fe%ubQR3p{FYQy|ZE9Z&a<|$Bc#E%P zbXsiMZ|qy5IqH&qlT!*e8a;TPXc6z>ZHX}Nq zg0!bPytLLEF6Emf{KxmX?5pzA;lglTgEd{IC#!*B+6Q!jVJvpzV(~AgOfb70_^O4B z(r`6etT`-nDkTsx7rx~e{FoLp!Y+Rv4MO|t2aAs)qqXc~G{S%*d`o)6gK6+AmaisL zOUkr)G3BOCdl=Q$m;kAS`e=0Cv6#A(AqQL9!`aSm5cb6rVwdSekz^dKL>#uueq0Mo z?3`AL?@wrv#%Q7ppN$^UEUiq&cxkQ{y3r6qyKK4!Qj?Pgl$VEfpD;+GQe~9>zLu)k3|}7jl>KmXj1qM_Xt0^kZF5TTJIo~ znl0|OX>O>|onFws#5l0`UZi{kgt?%21;^jnRaETcSyEQ6C@daY!K|&Ui-hwwkaU|9 zTfBZ_+aXr0Ph37T(sFiGUZZ1lEmHr$TdKL7lcT)HK;`kLPWT+W-bEtCwi)k^IZ_wU zrNm=%^Hu7IH1bZiMpIYG#Qq(`k;a#2ptsCB=Pzf*cC8S55CigDyquAR)}<7g0!E;7 zNHvM~VBHba{wDYEq(*k~9fXlN4zUhy`9hhjM5NeoxRpl^SsCUDz1z*5CNb1n1T_J2 zR$ig8eP+!zE2VQj$q3yiwDbzY^Piu%6TYu-=%qM5mFs%kJj=M>MO6A>dS+&bvqzR; zhP7Y*K6GITHM~4(H@qs!ad&O#&a?)0Us$qhHQ=_mFHUMtPsiJ9U$}orCp-5g$l12= z!wp~s%iIRtWQR0f1OUy_$omK)_NB>7g~2WY$zHjIGNc~9?z0ncQU{ZVASl>Tv@o&p zmOH-WBFi=wulnr>q{?bt;^rPut09EfJ)DD z4$00-*=`zw0j);u%rX+Pq%!>QQt_|lm{|>#?Igcp@5{3Rwq0&~neN%BTDPZBM3IF=szxV0c?-x$WCkO{Wy{^ z%ZgvXX+ivw_GAVAEqkDR(>Em-%1!XrCHoAd(W-b}`?9)v?SO`egN){=)O_(%-*XD& z8W04R;~2R0;$etuseBKQn5~QA9CR-ROtA)C~Bw zP1aoU*zH!dcP0ApCcMu~(bU36k2-VB#Z8C^GSxLSP9B}8>J7bWSP)djeo38zq8SyH z8XNLxRR?y|f2~FWm399n zHIl(Uqek*dXN-}sB3zRxspH7?R^z?T33Je`0~OWj zq78|VkZ<4ZR@PtjbIh>wiFapb%$!Rn$A8bvUm5TZDyn~d3GC{halMd`?@=E`+m6t3 zafF+bE?s}c1*R9b_LETbqz;*f!iUTmn}_u%32~zI`{u9an-quW4BOeL@Bcw0FmP-^ zJ{PIvFnsP!0iRi?#;JR⋘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 GY5fOuZZib{ literal 0 HcmV?d00001 diff --git a/src/assets/analysis.svg b/src/assets/analysis.svg new file mode 100644 index 0000000..9c2da55 --- /dev/null +++ b/src/assets/analysis.svg @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/src/assets/icons/dark.svg b/src/assets/icons/dark.svg new file mode 100644 index 0000000..f646bd7 --- /dev/null +++ b/src/assets/icons/dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/file-type-code.svg b/src/assets/icons/file-type-code.svg new file mode 100644 index 0000000..3413de1 --- /dev/null +++ b/src/assets/icons/file-type-code.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-dir.svg b/src/assets/icons/file-type-dir.svg new file mode 100644 index 0000000..1bedac3 --- /dev/null +++ b/src/assets/icons/file-type-dir.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-docx.svg b/src/assets/icons/file-type-docx.svg new file mode 100644 index 0000000..4fe7a6c --- /dev/null +++ b/src/assets/icons/file-type-docx.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-excel.svg b/src/assets/icons/file-type-excel.svg new file mode 100644 index 0000000..cc87c77 --- /dev/null +++ b/src/assets/icons/file-type-excel.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-img.svg b/src/assets/icons/file-type-img.svg new file mode 100644 index 0000000..44feb58 --- /dev/null +++ b/src/assets/icons/file-type-img.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-music.svg b/src/assets/icons/file-type-music.svg new file mode 100644 index 0000000..2677733 --- /dev/null +++ b/src/assets/icons/file-type-music.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-office.svg b/src/assets/icons/file-type-office.svg new file mode 100644 index 0000000..04d37e3 --- /dev/null +++ b/src/assets/icons/file-type-office.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-pdf.svg b/src/assets/icons/file-type-pdf.svg new file mode 100644 index 0000000..799b897 --- /dev/null +++ b/src/assets/icons/file-type-pdf.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-ppt.svg b/src/assets/icons/file-type-ppt.svg new file mode 100644 index 0000000..3766d58 --- /dev/null +++ b/src/assets/icons/file-type-ppt.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-psd.svg b/src/assets/icons/file-type-psd.svg new file mode 100644 index 0000000..61ca32a --- /dev/null +++ b/src/assets/icons/file-type-psd.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-txt.svg b/src/assets/icons/file-type-txt.svg new file mode 100644 index 0000000..9ca9d93 --- /dev/null +++ b/src/assets/icons/file-type-txt.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-unknown.svg b/src/assets/icons/file-type-unknown.svg new file mode 100644 index 0000000..0629c37 --- /dev/null +++ b/src/assets/icons/file-type-unknown.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-video.svg b/src/assets/icons/file-type-video.svg new file mode 100644 index 0000000..7582c39 --- /dev/null +++ b/src/assets/icons/file-type-video.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/file-type-zip.svg b/src/assets/icons/file-type-zip.svg new file mode 100644 index 0000000..84b316c --- /dev/null +++ b/src/assets/icons/file-type-zip.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/light.svg b/src/assets/icons/light.svg new file mode 100644 index 0000000..ab7cc08 --- /dev/null +++ b/src/assets/icons/light.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/locale.svg b/src/assets/icons/locale.svg new file mode 100644 index 0000000..c7b2683 --- /dev/null +++ b/src/assets/icons/locale.svg @@ -0,0 +1,14 @@ + diff --git a/src/assets/icons/login.svg b/src/assets/icons/login.svg new file mode 100644 index 0000000..e3ce2c4 --- /dev/null +++ b/src/assets/icons/login.svg @@ -0,0 +1,68 @@ + + + Group 21 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +