diff --git a/404.html b/404.html
new file mode 100644
index 00000000..0f9a4716
--- /dev/null
+++ b/404.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+Ant Design Pro
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/_00233222.71214956.async.js b/_00233222.71214956.async.js
new file mode 100644
index 00000000..6f474496
--- /dev/null
+++ b/_00233222.71214956.async.js
@@ -0,0 +1,3 @@
+(globalThis.utooChunk_ant_design_pro||(globalThis.utooChunk_ant_design_pro=[])).push(["object"==typeof document?document.currentScript:void 0,325689,e=>{"use strict";var t=e.i(391398),n=e.i(203112),a=e.i(202601);e.i(113297);var r=e.i(186349),i=e.i(538178),o=e.i(593087),s=e.i(946077),l=e.i(143985).default,c=e.i(191788);let _=({title:e,index:n,desc:a,href:r})=>(0,t.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer","aria-label":e,children:(0,t.jsx)(s.Card,{hoverable:!0,size:"small",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-[#1677ff] text-base font-bold text-white",children:n}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h4",{className:"mb-1 mt-0 text-sm font-semibold",children:e}),(0,t.jsx)("p",{className:"mb-0 line-clamp-2 text-xs text-gray-500",children:a})]})]})})}),d={"zh-CN":"# Ant Design Pro Cheatsheet\n\n[](https://github.com/ant-design/ant-design-pro) [](https://github.com/ant-design/ant-design-pro) [](https://nodejs.org/)\n\n\n\n## 🎉 v6 新特性\n\n- **React 19 + antd 6 + Umi Max 4**:全面升级到最新技术栈,utoopack(Turbopack)构建\n- **样式重构**:Less → Tailwind CSS v4 + antd-style + CSS Modules,启用 CSS 变量主题\n- **AI 助手页面**:基于 Ant Design X 的聊天界面示例\n- **React Query**:从 useRequest 迁移到 @tanstack/react-query\n- **Biome**:替代 ESLint + Prettier,统一 lint 和格式化\n- **Cloudflare Worker 后端**:演示 API 独立部署,基于 Hono 框架\n- **更多**:路由预加载、骨架屏 Loading、D3 地图、Cheatsheet 速查文档、moment → dayjs、Class → 函数式组件\n\n→ [查看完整更新日志](https://github.com/ant-design/ant-design-pro/releases/tag/v6.0.0)\n\n## 快速开始\n\n**创建项目:**\n\n```bash\ngit clone --depth 1 https://github.com/ant-design/ant-design-pro.git my-project\ncd my-project\nnpm install\n```\n\n项目提供两种模式:\n\n- **完整模式**:包含所有示例页面(Dashboard、表单、列表、权限等),适合参考学习\n- **精简模式**:仅保留登录页和基础布局,适合从零开发\n\n切换精简模式:\n\n```bash\ngit add -A && git commit -m \"chore: save before simple\" # 先提交,以便回退\nnpm run simple # 删除示例页面和多余依赖\nnpm install # 更新依赖\n```\n\n> 💡 建议先用完整模式熟悉项目结构,再切换精简模式开始开发。\n\n**目录结构:**\n\n```\n├── config/ # 配置文件(路由、代理、主题)\n│ ├── config.ts # 主配置\n│ ├── routes.ts # 路由配置\n│ ├── defaultSettings.ts # 布局主题设置\n│ └── proxy.ts # 开发代理配置\n├── mock/ # Mock 数据\n├── src/\n│ ├── components/ # 公共组件\n│ ├── locales/ # 国际化资源\n│ ├── models/ # 全局数据模型\n│ ├── services/ # API 服务层\n│ ├── utils/ # 工具函数\n│ ├── access.ts # 权限定义\n│ └── app.tsx # 运行时配置\n├── docs/ # 项目文档\n└── types/ # 类型声明\n```\n\n**常用命令:**\n\n| 命令 | 说明 |\n|------|------|\n| `npm start` | 启动开发服务器(UMI_ENV=dev,带 Mock) |\n| `npm run dev` | 启动开发服务器(UMI_ENV=dev,无 Mock) |\n| `npm run start:no-mock` | 无 Mock 启动 |\n| `npm run start:pre` | 预发布环境启动 |\n| `npm run start:test` | 测试环境启动 |\n| `npm run build` | 构建生产产物 |\n| `npm run preview` | 预览已构建产物(需先 `npm run build`,端口 8000) |\n| `npm run preview:build` | 构建并本地预览(端口 8000) |\n| `npm run deploy` | 构建并部署到 GitHub Pages |\n| `npm run analyze` | 构建产物体积分析 |\n| `npm run lint` | 代码检查(Biome + TypeScript) |\n| `npm run biome` | Biome 自动修复 |\n| `npm test` | 运行测试 |\n| `npm run test:coverage` | 测试覆盖率 |\n| `npm run test:update` | 更新测试快照 |\n| `npm run tsc` | 类型检查(不生成文件) |\n| `npm run i18n-remove` | 移除国际化(locale=zh-CN) |\n| `npm run record` | 录制登录场景请求数据 |\n| `npm run openapi` | 根据 OpenAPI 生成 API 代码 |\n| `npm run simple` | 精简模式(删除示例页面和多余依赖) |\n\n> 💡 `UMI_ENV` 用于切换环境配置,对应 `config/proxy.ts` 中的不同代理规则。\n\n> 💡 `npm run simple` 会删除示例页面(dashboard、form、list 等)和多余依赖(plots 等),替换为精简路由,适合从零开始开发。**建议先提交代码,以便需要时回退。**\n\n**构建工具:** 本项目使用 [utoopack](https://github.com/utooland/utoo)(基于 Turbopack 的新一代打包器)作为默认构建工具,通过 `config/config.ts` 中的 `utoopack` 字段配置。utoopack 兼容 Webpack 配置格式,支持 `module.rules` 配置自定义加载器。\n\n→ 更多内容见 [umi 入门指南](https://umijs.org/docs/guides/getting-started)、[utoo 文档](https://utoo.land)\n\n## 路由与菜单\n\n**路由配置** 位于 `config/routes.ts`:\n\n```ts\nexport default [\n {\n path: '/welcome',\n name: 'welcome', // 对应 menu.welcome 国际化 key\n icon: 'home',\n component: './Welcome',\n },\n {\n path: '/admin',\n name: 'admin',\n icon: 'crown',\n access: 'canAdmin', // 路由级权限控制\n routes: [...],\n },\n { path: '/', redirect: '/dashboard/analysis' },\n { component: '404', path: './*' },\n];\n```\n\n**路由导航:**\n\n```tsx\nimport { useNavigate, useParams, useLocation } from '@umijs/max';\n\nconst navigate = useNavigate();\nnavigate('/dashboard'); // 跳转\nnavigate(-1); // 后退\n\nconst { id } = useParams(); // 获取动态参数 /user/:id\nconst location = useLocation(); // 当前路由信息\n```\n\n**菜单与权限联动:** 路由配置中 `access` 字段控制菜单可见性,未授权路由不会出现在菜单中。\n\n> 💡 `name` 字段自动映射为 `menu.xxx` 国际化 key,在 `src/locales/` 中配置翻译。\n\n→ 更多内容见 [umi 路由文档](https://umijs.org/docs/guides/routes)、[Umi Max 布局与菜单](https://umijs.org/docs/max/layout-menu)\n\n## 布局\n\n**ProLayout 配置** 位于 `config/defaultSettings.ts`:\n\n```ts\nexport default {\n navTheme: 'light', // 导航主题:light / dark\n colorPrimary: '#1890ff', // 主题色\n layout: 'mix', // 布局模式:side / top / mix\n contentWidth: 'Fluid', // 内容宽度:Fluid / Fixed\n fixSiderbar: true, // 固定侧边栏\n};\n```\n\n**布局模式:**\n- `side` — 左侧导航\n- `top` — 顶部导航\n- `mix` — 顶部 + 侧边混合导航\n\n**页面容器:**\n\n```tsx\nimport { PageContainer } from '@ant-design/pro-components';\n\nconst Page = () => (\n \n {/* 页面内容 */}\n \n);\n```\n\n**自定义区域:** 右上角 `src/components/RightContent`,底部 `src/components/Footer`。\n\n→ 更多内容见 [Umi Max 布局与菜单](https://umijs.org/docs/max/layout-menu)\n\n## 数据流\n\n**useModel — 轻量全局状态:** 在 `src/models/` 下创建文件即自动注册:\n\n```ts\n// src/models/counter.ts\nimport { useState } from 'react';\n\nexport default function useCounter() {\n const [count, setCount] = useState(0);\n const increment = () => setCount(c => c + 1);\n return { count, increment };\n}\n```\n\n```tsx\n// 任意组件中使用\nimport { useModel } from '@umijs/max';\n\nconst { count, increment } = useModel('counter');\n```\n\n**useRequest — 数据请求:**\n\n```tsx\nimport { useRequest } from '@umijs/max';\n\nconst { data, loading, error } = useRequest(getUserInfo);\n```\n\n**React Query — 服务端状态管理:**\n\n```tsx\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\n\n// 查询\nconst { data, isLoading } = useQuery({\n queryKey: ['user', id],\n queryFn: () => getUser(id),\n});\n\n// 变更\nconst mutation = useMutation({\n mutationFn: updateUser,\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['user'] });\n },\n});\n```\n\n**初始状态 — getInitialState:** 在 `src/app.tsx` 中定义,全局可访问:\n\n```tsx\n// src/app.tsx\nexport async function getInitialState() {\n const currentUser = await fetchUserInfo();\n return { currentUser };\n}\n\n// 组件中使用\nimport { useModel } from '@umijs/max';\nconst { initialState } = useModel('@@initialState');\n```\n\n> 💡 `getInitialState` 在应用启动时执行一次,适合获取全局信息(如用户身份、权限)。\n\n→ 更多内容见 [Umi Max 数据流](https://umijs.org/docs/max/data-flow)\n\n## 请求\n\n**请求配置** 位于 `src/app.tsx`:\n\n```ts\nexport const request: RequestConfig = {\n baseURL: 'https://api.example.com',\n timeout: 10000,\n requestInterceptors: [], // 请求拦截器\n responseInterceptors: [], // 响应拦截器\n};\n```\n\n**错误处理** 位于 `src/requestErrorConfig.ts`,可自定义错误码映射和提示逻辑。\n\n**使用请求:**\n\n```tsx\nimport { request } from '@umijs/max';\n\n// GET\nconst data = await request('/api/users', { params: { page: 1 } });\n\n// POST\nawait request('/api/users', { method: 'POST', data: { name: 'test' } });\n```\n\n**OpenAPI 代码生成:**\n\n```bash\nnpm run openapi\n```\n\n根据 `config/oneapi.json` 自动生成 `src/services/` 下的 API 调用代码。\n\n> 💡 生成后的代码直接用 `import { request } from '@umijs/max'` 发起请求,无需手动封装。\n\n→ 更多内容见 [Umi Max 请求](https://umijs.org/docs/max/request)\n\n## 权限\n\n**定义权限** 在 `src/access.ts`:\n\n```ts\nexport default function access(initialState: { currentUser?: API.CurrentUser }) {\n const { currentUser } = initialState;\n return {\n canAdmin: currentUser?.access === 'admin',\n canUser: !!currentUser,\n };\n}\n```\n\n**路由级权限:** 在路由配置中添加 `access` 字段:\n\n```ts\n{ path: '/admin', access: 'canAdmin' }\n```\n\n**组件级权限:**\n\n```tsx\nimport { Access, useAccess } from '@umijs/max';\n\n// 声明式\n\n \n\n\n// 命令式\nconst access = useAccess();\nif (access.canAdmin) { /* ... */ }\n```\n\n→ 更多内容见 [Umi Max 权限](https://umijs.org/docs/max/access)\n\n## 国际化\n\n**配置** 在 `config/config.ts`:\n\n```ts\nlocale: {\n default: 'zh-CN',\n antd: true, // 同步 antd 组件语言\n baseNavigator: true, // 跟随浏览器语言\n},\n```\n\n**文件结构:**\n\n```\nsrc/locales/\n├── zh-CN.ts # 中文入口\n├── zh-CN/\n│ ├── menu.ts # 菜单翻译\n│ ├── pages.ts # 页面翻译\n│ └── ...\n├── en-US.ts # 英文入口\n└── en-US/\n └── ...\n```\n\n**使用方式:**\n\n```tsx\nimport { useIntl, FormattedMessage } from '@umijs/max';\n\n// Hook 方式\nconst intl = useIntl();\nintl.formatMessage({ id: 'menu.welcome' });\n\n// 组件方式\n\n```\n\n**切换语言:**\n\n```tsx\nimport { setLocale } from '@umijs/max';\nsetLocale('en-US', false); // false = 不刷新页面\n```\n\n→ 更多内容见 [Umi Max 国际化](https://umijs.org/docs/max/i18n)\n\n## 样式\n\n**CSS Modules:** 文件命名为 `*.module.less` 或 `*.module.css`:\n\n```css\n/* example.module.less */\n.container { padding: 24px; }\n.title { font-size: 16px; }\n```\n\n```tsx\nimport styles from './example.module.less';\n\n```\n\n**antd-style(CSS-in-JS):**\n\n```tsx\nimport { createStyles } from 'antd-style';\n\nconst useStyles = createStyles(({ token, css }) => ({\n card: css`\n background: ${token.colorBgContainer};\n border-radius: ${token.borderRadiusLG}px;\n `,\n}));\n\nconst { styles } = useStyles();\n\n```\n\n**Tailwind CSS(v4):** 直接在 className 中使用:\n\n```tsx\n\n```\n\n**动态主题:** 在 `config/config.ts` 的 `antd` 配置中设置:\n\n```ts\nantd: {\n configProvider: {\n theme: {\n token: {\n colorPrimary: '#1890ff',\n borderRadius: 6,\n },\n },\n },\n},\n```\n\n开发环境可通过右下角 SettingDrawer 实时切换主题。\n\n> 💡 三种样式方案可以共存:Tailwind 适合布局、CSS Modules 适合组件样式、antd-style 适合需要消费主题 token 的场景。\n\n→ 更多内容见 [umi 样式文档](https://umijs.org/docs/guides/styling)、[Umi Max antd 动态主题](https://umijs.org/docs/max/antd#动态主题)\n\n## 测试 & 调试\n\n**Jest 测试:**\n\n```bash\nnpm test # 运行所有测试\nnpm run test:coverage # 带覆盖率报告\nnpm run test:update # 更新快照\n```\n\n测试文件放在对应组件目录下,命名为 `*.test.ts(x)`。\n\n**Mock 数据:** 在 `mock/` 目录下创建文件:\n\n```ts\n// mock/user.ts\nexport default {\n 'GET /api/currentUser': { name: 'Serati Ma', access: 'admin' },\n 'POST /api/login': (req, res) => { res.end('ok'); },\n};\n```\n\nUmi 自动注册 mock,开发模式下生效。\n\n**代理配置** 位于 `config/proxy.ts`:\n\n```ts\nexport default {\n dev: {\n '/api/': {\n target: 'http://localhost:8080',\n changeOrigin: true,\n },\n },\n};\n```\n\n> 💡 用 `MOCK=none` 启动可跳过 Mock,直接代理到后端:`npm run start:no-mock`。\n\n→ 更多内容见 [umi 测试](https://umijs.org/docs/guides/testing)、[umi Mock](https://umijs.org/docs/guides/mock)\n\n## FAQ\n\n**Q: 如何关闭 Mock?**\n`npm run start:no-mock` 或 `cross-env MOCK=none max dev`\n\n**Q: 如何修改主题色?**\n修改 `config/defaultSettings.ts` 的 `colorPrimary`,开发时可用 SettingDrawer 实时调整。\n\n**Q: 如何添加新页面?**\n1. 在 `src/pages/` 下创建组件 2. 在 `config/routes.ts` 添加路由 3. 在 `src/locales/` 添加菜单翻译(如需)\n\n**Q: 如何添加全局状态?**\n在 `src/models/` 下创建文件,导出自定义 Hook,组件中通过 `useModel('文件名')` 使用。\n\n**Q: 如何部署?**\n`npm run build` 生成 `dist/` 目录,部署到任意静态服务器。配置 `publicPath` 处理非根目录部署。`npm run deploy` 会自动构建并发布到 GitHub Pages(推送到 gh-pages 分支)。\n\n**Q: 如何使用 OpenAPI 代码生成?**\n1. 在 `config/config.ts` 配置 `openAPI` 2. 运行 `npm run openapi` 3. 自动生成 `src/services/` 下的代码\n\n→ 更多内容见 [umi FAQ](https://umijs.org/docs/guides/faq)","en-US":"# Ant Design Pro Cheatsheet\n\n[](https://github.com/ant-design/ant-design-pro) [](https://github.com/ant-design/ant-design-pro) [](https://nodejs.org/)\n\n\n\n## 🎉 What's New in v6\n\n- **React 19 + antd 6 + Umi Max 4**: Full upgrade to the latest stack, powered by utoopack (Turbopack)\n- **Style Overhaul**: Less → Tailwind CSS v4 + antd-style + CSS Modules, CSS variable theming enabled\n- **AI Assistant Page**: Chat interface example built with Ant Design X\n- **React Query**: Migrated from useRequest to @tanstack/react-query\n- **Biome**: Replaces ESLint + Prettier for unified linting and formatting\n- **Cloudflare Worker Backend**: Standalone demo API deployment using Hono\n- **And more**: Route prefetch, skeleton Loading, D3 map, Cheatsheet docs, moment → dayjs, class → functional components\n\n→ [View full changelog](https://github.com/ant-design/ant-design-pro/releases/tag/v6.0.0)\n\n## Getting Started\n\n**Create a project:**\n\n```bash\ngit clone --depth 1 https://github.com/ant-design/ant-design-pro.git my-project\ncd my-project\nnpm install\n```\n\nThe project offers two modes:\n\n- **Full mode**: Includes all demo pages (Dashboard, Forms, Lists, Access, etc.), great for reference and learning\n- **Simple mode**: Only keeps login page and basic layout, ideal for starting from scratch\n\nSwitch to simple mode:\n\n```bash\ngit add -A && git commit -m \"chore: save before simple\" # Commit first to allow revert\nnpm run simple # Remove demo pages and unused deps\nnpm install # Update dependencies\n```\n\n> 💡 Start with full mode to learn the project structure, then switch to simple mode for development.\n\n**Directory structure:**\n\n```\n├── config/ # Configuration (routes, proxy, theme)\n│ ├── config.ts # Main config\n│ ├── routes.ts # Route definitions\n│ ├── defaultSettings.ts # Layout & theme settings\n│ └── proxy.ts # Dev proxy config\n├── mock/ # Mock data\n├── src/\n│ ├── components/ # Shared components\n│ ├── locales/ # i18n resources\n│ ├── models/ # Global data models\n│ ├── services/ # API service layer\n│ ├── utils/ # Utility functions\n│ ├── access.ts # Permission definitions\n│ └── app.tsx # Runtime configuration\n├── docs/ # Project documentation\n└── types/ # Type declarations\n```\n\n**Common commands:**\n\n| Command | Description |\n|---------|-------------|\n| `npm start` | Start dev server (UMI_ENV=dev, with Mock) |\n| `npm run dev` | Start dev server (UMI_ENV=dev, no Mock) |\n| `npm run start:no-mock` | Start without Mock |\n| `npm run start:pre` | Pre-production environment |\n| `npm run start:test` | Test environment |\n| `npm run build` | Build for production |\n| `npm run preview` | Preview built output (run `npm run build` first, port 8000) |\n| `npm run preview:build` | Build and preview (port 8000) |\n| `npm run deploy` | Build and deploy to GitHub Pages |\n| `npm run analyze` | Analyze bundle size |\n| `npm run lint` | Lint (Biome + TypeScript) |\n| `npm run biome` | Auto-fix with Biome |\n| `npm test` | Run tests |\n| `npm run test:coverage` | Test with coverage |\n| `npm run test:update` | Update test snapshots |\n| `npm run tsc` | Type check without emitting |\n| `npm run i18n-remove` | Remove i18n wrappers (locale=zh-CN) |\n| `npm run record` | Record request data for login scene |\n| `npm run openapi` | Generate API code from OpenAPI schema |\n| `npm run simple` | Strip demo pages and unused deps |\n\n> 💡 `UMI_ENV` switches environment configs, mapping to different proxy rules in `config/proxy.ts`.\n\n> 💡 `npm run simple` removes demo pages (dashboard, form, list etc.) and unused dependencies (plots, etc.), replacing with minimal routes. Ideal for starting from scratch. **Commit your code first so you can revert if needed.**\n\n**Build tool:** This project uses [utoopack](https://github.com/utooland/utoo) (a next-gen bundler powered by Turbopack) as the default build tool, configured via the `utoopack` field in `config/config.ts`. utoopack is Webpack-compatible and supports `module.rules` for custom loaders.\n\n→ See [umi Getting Started](https://umijs.org/docs/guides/getting-started), [utoo Docs](https://utoo.land)\n\n## Routes & Menu\n\n**Route config** is in `config/routes.ts`:\n\n```ts\nexport default [\n {\n path: '/welcome',\n name: 'welcome', // maps to menu.welcome i18n key\n icon: 'home',\n component: './Welcome',\n },\n {\n path: '/admin',\n name: 'admin',\n icon: 'crown',\n access: 'canAdmin', // route-level access control\n routes: [...],\n },\n { path: '/', redirect: '/dashboard/analysis' },\n { component: '404', path: './*' },\n];\n```\n\n**Route navigation:**\n\n```tsx\nimport { useNavigate, useParams, useLocation } from '@umijs/max';\n\nconst navigate = useNavigate();\nnavigate('/dashboard'); // navigate\nnavigate(-1); // go back\n\nconst { id } = useParams(); // dynamic param /user/:id\nconst location = useLocation(); // current route info\n```\n\n**Menu & access:** The `access` field in route config controls menu visibility — unauthorized routes won't appear in the menu.\n\n> 💡 The `name` field is automatically mapped to `menu.xxx` i18n keys. Configure translations in `src/locales/`.\n\n→ See [umi Routes](https://umijs.org/docs/guides/routes), [Umi Max Layout & Menu](https://umijs.org/docs/max/layout-menu)\n\n## Layout\n\n**ProLayout config** is in `config/defaultSettings.ts`:\n\n```ts\nexport default {\n navTheme: 'light', // nav theme: light / dark\n colorPrimary: '#1890ff', // primary color\n layout: 'mix', // layout mode: side / top / mix\n contentWidth: 'Fluid', // content width: Fluid / Fixed\n fixSiderbar: true, // fixed sidebar\n};\n```\n\n**Layout modes:**\n- `side` — Side navigation\n- `top` — Top navigation\n- `mix` — Top + side mixed navigation\n\n**Page container:**\n\n```tsx\nimport { PageContainer } from '@ant-design/pro-components';\n\nconst Page = () => (\n \n {/* Page content */}\n \n);\n```\n\n**Custom areas:** Top-right `src/components/RightContent`, footer `src/components/Footer`.\n\n→ See [Umi Max Layout & Menu](https://umijs.org/docs/max/layout-menu)\n\n## Data Flow\n\n**useModel — lightweight global state:** Create a file in `src/models/` to auto-register:\n\n```ts\n// src/models/counter.ts\nimport { useState } from 'react';\n\nexport default function useCounter() {\n const [count, setCount] = useState(0);\n const increment = () => setCount(c => c + 1);\n return { count, increment };\n}\n```\n\n```tsx\n// Use in any component\nimport { useModel } from '@umijs/max';\n\nconst { count, increment } = useModel('counter');\n```\n\n**useRequest — data fetching:**\n\n```tsx\nimport { useRequest } from '@umijs/max';\n\nconst { data, loading, error } = useRequest(getUserInfo);\n```\n\n**React Query — server state management:**\n\n```tsx\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\n\n// Query\nconst { data, isLoading } = useQuery({\n queryKey: ['user', id],\n queryFn: () => getUser(id),\n});\n\n// Mutation\nconst mutation = useMutation({\n mutationFn: updateUser,\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['user'] });\n },\n});\n```\n\n**Initial state — getInitialState:** Define in `src/app.tsx`, accessible globally:\n\n```tsx\n// src/app.tsx\nexport async function getInitialState() {\n const currentUser = await fetchUserInfo();\n return { currentUser };\n}\n\n// Use in components\nimport { useModel } from '@umijs/max';\nconst { initialState } = useModel('@@initialState');\n```\n\n> 💡 `getInitialState` runs once on app startup, ideal for fetching global info (user identity, permissions).\n\n→ See [Umi Max Data Flow](https://umijs.org/docs/max/data-flow)\n\n## Request\n\n**Request config** is in `src/app.tsx`:\n\n```ts\nexport const request: RequestConfig = {\n baseURL: 'https://api.example.com',\n timeout: 10000,\n requestInterceptors: [], // request interceptors\n responseInterceptors: [], // response interceptors\n};\n```\n\n**Error handling** is in `src/requestErrorConfig.ts`, customize error code mapping and notification logic.\n\n**Using request:**\n\n```tsx\nimport { request } from '@umijs/max';\n\n// GET\nconst data = await request('/api/users', { params: { page: 1 } });\n\n// POST\nawait request('/api/users', { method: 'POST', data: { name: 'test' } });\n```\n\n**OpenAPI code generation:**\n\n```bash\nnpm run openapi\n```\n\nAuto-generates API calling code under `src/services/` based on `config/oneapi.json`.\n\n> 💡 Generated code uses `import { request } from '@umijs/max'` directly — no manual wrapping needed.\n\n→ See [Umi Max Request](https://umijs.org/docs/max/request)\n\n## Access Control\n\n**Define permissions** in `src/access.ts`:\n\n```ts\nexport default function access(initialState: { currentUser?: API.CurrentUser }) {\n const { currentUser } = initialState;\n return {\n canAdmin: currentUser?.access === 'admin',\n canUser: !!currentUser,\n };\n}\n```\n\n**Route-level access:** Add `access` field in route config:\n\n```ts\n{ path: '/admin', access: 'canAdmin' }\n```\n\n**Component-level access:**\n\n```tsx\nimport { Access, useAccess } from '@umijs/max';\n\n// Declarative\n\n \n\n\n// Imperative\nconst access = useAccess();\nif (access.canAdmin) { /* ... */ }\n```\n\n→ See [Umi Max Access](https://umijs.org/docs/max/access)\n\n## Internationalization\n\n**Config** in `config/config.ts`:\n\n```ts\nlocale: {\n default: 'zh-CN',\n antd: true, // sync antd component locale\n baseNavigator: true, // follow browser language\n},\n```\n\n**File structure:**\n\n```\nsrc/locales/\n├── zh-CN.ts # Chinese entry\n├── zh-CN/\n│ ├── menu.ts # Menu translations\n│ ├── pages.ts # Page translations\n│ └── ...\n├── en-US.ts # English entry\n└── en-US/\n └── ...\n```\n\n**Usage:**\n\n```tsx\nimport { useIntl, FormattedMessage } from '@umijs/max';\n\n// Hook\nconst intl = useIntl();\nintl.formatMessage({ id: 'menu.welcome' });\n\n// Component\n\n```\n\n**Switch locale:**\n\n```tsx\nimport { setLocale } from '@umijs/max';\nsetLocale('en-US', false); // false = no page reload\n```\n\n→ See [Umi Max i18n](https://umijs.org/docs/max/i18n)\n\n## Styling\n\n**CSS Modules:** Name files `*.module.less` or `*.module.css`:\n\n```css\n/* example.module.less */\n.container { padding: 24px; }\n.title { font-size: 16px; }\n```\n\n```tsx\nimport styles from './example.module.less';\n\n```\n\n**antd-style (CSS-in-JS):**\n\n```tsx\nimport { createStyles } from 'antd-style';\n\nconst useStyles = createStyles(({ token, css }) => ({\n card: css`\n background: ${token.colorBgContainer};\n border-radius: ${token.borderRadiusLG}px;\n `,\n}));\n\nconst { styles } = useStyles();\n\n```\n\n**Tailwind CSS (v4):** Use directly in className:\n\n```tsx\n\n```\n\n**Dynamic theme:** Set in `config/config.ts` `antd` config:\n\n```ts\nantd: {\n configProvider: {\n theme: {\n token: {\n colorPrimary: '#1890ff',\n borderRadius: 6,\n },\n },\n },\n},\n```\n\nUse SettingDrawer in dev mode to switch themes in real-time.\n\n> 💡 Three styling approaches can coexist: Tailwind for layout, CSS Modules for component styles, antd-style when consuming theme tokens.\n\n→ See [umi Styling](https://umijs.org/docs/guides/styling), [Umi Max antd Dynamic Theme](https://umijs.org/docs/max/antd#动态主题)\n\n## Testing & Debugging\n\n**Jest testing:**\n\n```bash\nnpm test # Run all tests\nnpm run test:coverage # With coverage report\nnpm run test:update # Update snapshots\n```\n\nTest files go next to the component, named `*.test.ts(x)`.\n\n**Mock data:** Create files in `mock/`:\n\n```ts\n// mock/user.ts\nexport default {\n 'GET /api/currentUser': { name: 'Serati Ma', access: 'admin' },\n 'POST /api/login': (req, res) => { res.end('ok'); },\n};\n```\n\nUmi auto-registers mocks, active in dev mode.\n\n**Proxy config** is in `config/proxy.ts`:\n\n```ts\nexport default {\n dev: {\n '/api/': {\n target: 'http://localhost:8080',\n changeOrigin: true,\n },\n },\n};\n```\n\n> 💡 Use `MOCK=none` to skip mock and proxy to backend: `npm run start:no-mock`.\n\n→ See [umi Testing](https://umijs.org/docs/guides/testing), [umi Mock](https://umijs.org/docs/guides/mock)\n\n## FAQ\n\n**Q: How to disable Mock?**\n`npm run start:no-mock` or `cross-env MOCK=none max dev`\n\n**Q: How to change the primary color?**\nEdit `colorPrimary` in `config/defaultSettings.ts`. Use SettingDrawer for live preview in dev mode.\n\n**Q: How to add a new page?**\n1. Create component in `src/pages/` 2. Add route in `config/routes.ts` 3. Add menu translation in `src/locales/` (if needed)\n\n**Q: How to add global state?**\nCreate a file in `src/models/` exporting a custom Hook, then use `useModel('filename')` in components.\n\n**Q: How to deploy?**\n`npm run build` generates `dist/`. Deploy to any static file server. Set `publicPath` for non-root deployments. `npm run deploy` builds and publishes to GitHub Pages automatically (pushes to gh-pages branch).\n\n**Q: How to use OpenAPI code generation?**\n1. Configure `openAPI` in `config/config.ts` 2. Run `npm run openapi` 3. Code is auto-generated under `src/services/`\n\n→ See [umi FAQ](https://umijs.org/docs/guides/faq)"},m=({tag:e="h1",children:n,className:a,classname:r,class:i})=>{let o=[a,r,i].filter(Boolean).join(" "),s=c.default.Children.toArray(n).map(e=>"string"==typeof e?e:"").join("").replace(/[^\w\s一-鿿-]/g,"").trim().replace(/\s+/g,"-").toLowerCase(),l=`heading-anchor ${o}`.trim();return(0,t.jsxs)(e,{id:s,className:l,children:[(0,t.jsx)("a",{href:`#${s}`,className:"anchor-link",children:"#"}),n]})},p={h1:e=>(0,t.jsx)(m,{tag:"h1",...e}),h2:e=>(0,t.jsx)(m,{tag:"h2",...e}),h3:e=>(0,t.jsx)(m,{tag:"h3",...e}),h4:e=>(0,t.jsx)(m,{tag:"h4",...e})},u={renderer:{code({text:e,lang:t}){let n,a=(t||"").trim();n=a&&l.getLanguage(a)?l.highlight(e.replace(/\n$/,""),{language:a}).value:l.highlightAuto(e.replace(/\n$/,"")).value;let r=a?` class="hljs language-${a}"`:' class="hljs"';return`${n}
+
+`}}},g=[{index:1,href:"https://umijs.org/docs/introduce/introduce",titleId:"pages.welcome.infoCard.umi.title",titleDefault:"Learn umi",descId:"pages.welcome.infoCard.umi.desc",descDefault:"umi is an extensible enterprise-level frontend framework based on routing, supporting both config-based and convention-based routes."},{index:2,href:"https://ant.design",titleId:"pages.welcome.infoCard.antd.title",titleDefault:"Learn Ant Design",descId:"pages.welcome.infoCard.antd.desc",descDefault:"antd is a React UI component library based on the Ant Design system, mainly for enterprise-level mid-end products."},{index:3,href:"https://procomponents.ant.design",titleId:"pages.welcome.infoCard.procomponents.title",titleDefault:"Learn Pro Components",descId:"pages.welcome.infoCard.procomponents.desc",descDefault:"ProComponents provides higher-abstraction template components on top of Ant Design, with one-component-one-page philosophy."}];var E=()=>{let e=(0,i.useIntl)(),l=(0,r.getLocale)(),c=l.toLowerCase(),m=d[l]??(c.startsWith("zh")?d["zh-CN"]:d["en-US"]),{initialState:E}=(0,o.useModel)("@@initialState"),S=E?.settings?.navTheme==="realDark";return(0,t.jsx)(n.PageContainer,{title:(0,t.jsxs)(t.Fragment,{children:[e.formatMessage({id:"pages.welcome.celebrationTitle",defaultMessage:"欢迎使用 Ant Design Pro {v6}"},{v6:(0,t.jsx)("span",{className:"welcome-gradient-title",children:"V6"},"v6")}),"🎉"]}),children:(0,t.jsxs)("div",{"data-theme":S?"dark":"light",className:"flex flex-col gap-6 md:flex-row",children:[(0,t.jsx)("div",{className:"min-w-0 md:flex-[2] welcome-markdown",children:(0,t.jsx)(s.Card,{children:(0,t.jsx)(a.default,{components:p,config:u,children:m})})}),(0,t.jsx)("div",{className:"flex flex-1 flex-col gap-4",children:g.map(n=>(0,t.jsx)(_,{index:n.index,href:n.href,title:e.formatMessage({id:n.titleId,defaultMessage:n.titleDefault}),desc:e.formatMessage({id:n.descId,defaultMessage:n.descDefault})},n.href))})]})})};e.s(["default",()=>E],325689)},633022,(e,t,n)=>{class a{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}class o{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=r(e)}openNode(e){if(!e.scope)return;let t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let n=e.split(".");return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){e.scope&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}let s=(e={})=>{let t={children:[]};return Object.assign(t,e),t};class l{constructor(){this.rootNode=s(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=s({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"==typeof e||e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{l._collapse(e)}))}}class c extends l{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function _(e){return e?"string"==typeof e?e:e.source:null}function d(e){return u("(?=",e,")")}function m(e){return u("(?:",e,")*")}function p(e){return u("(?:",e,")?")}function u(...e){return e.map(e=>_(e)).join("")}function g(...e){let t;return"("+(("object"==typeof(t=e[e.length-1])&&t.constructor===Object?(e.splice(e.length-1,1),t):{}).capture?"":"?:")+e.map(e=>_(e)).join("|")+")"}function E(e){return RegExp(e.toString()+"|").exec("").length-1}let S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function b(e,{joinWith:t}){let n=0;return e.map(e=>{let t=n+=1,a=_(e),r="";for(;a.length>0;){let e=S.exec(a);if(!e){r+=a;break}r+=a.substring(0,e.index),a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+String(Number(e[1])+t):(r+=e[0],"("===e[0]&&n++)}return r}).map(e=>`(${e})`).join(t)}let T="[a-zA-Z]\\w*",f="[a-zA-Z_]\\w*",C="\\b\\d+(\\.\\d+)?",h="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",R="\\b(0b[01]+)",N={begin:"\\\\[\\s\\S]",relevance:0},O=function(e,t,n={}){let a=i({scope:"comment",begin:e,end:t,contains:[]},n);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let r=g("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return a.contains.push({begin:u(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},v=O("//","$"),y=O("/\\*","\\*/"),A=O("#","$");var I=Object.freeze({__proto__:null,APOS_STRING_MODE:{scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[N]},BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{scope:"number",begin:R,relevance:0},BINARY_NUMBER_RE:R,COMMENT:O,C_BLOCK_COMMENT_MODE:y,C_LINE_COMMENT_MODE:v,C_NUMBER_MODE:{scope:"number",begin:h,relevance:0},C_NUMBER_RE:h,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:A,IDENT_RE:T,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+f,relevance:0},NUMBER_MODE:{scope:"number",begin:C,relevance:0},NUMBER_RE:C,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:{scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[N]},REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=u(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},TITLE_MODE:{scope:"title",begin:T,relevance:0},UNDERSCORE_IDENT_RE:f,UNDERSCORE_TITLE_MODE:{scope:"title",begin:f,relevance:0}});function D(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function x(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function M(e,t){!t||e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=D,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function w(e,t){Array.isArray(e.illegal)&&(e.illegal=g(...e.illegal))}function L(e,t){if(e.match){if(e.begin||e.end)throw Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function P(e,t){void 0===e.relevance&&(e.relevance=1)}let k=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=u(n.beforeMatch,d(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},U=["of","and","for","in","not","or","if","then","parent","list","value"],F={},B=e=>{console.error(e)},G=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Y=(e,t)=>{F[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),F[`${e}/${t}`]=!0)},H=Error();function V(e,t,{key:n}){let a=0,r=e[n],i={},o={};for(let e=1;e<=t.length;e++)o[e+a]=r[e],i[e+a]=!0,a+=E(t[e-1]);e[n]=o,e[n]._emit=i,e[n]._multi=!0}function q(e){if(e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw B("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),H;if("object"!=typeof e.beginScope||null===e.beginScope)throw B("beginScope must be object"),H;V(e,e.begin,{key:"beginScope"}),e.begin=b(e.begin,{joinWith:""})}if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw B("skip, excludeEnd, returnEnd not compatible with endScope: {}"),H;if("object"!=typeof e.endScope||null===e.endScope)throw B("endScope must be object"),H;V(e,e.end,{key:"endScope"}),e.end=b(e.end,{joinWith:""})}}class z extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}let $=Symbol("nomatch"),W=function(e){let t=Object.create(null),n=Object.create(null),o=[],s=!0,l="Could not find the language '{}', did you forget to load/include a language module?",S={disableAutodetect:!0,name:"Plain text",contains:[]},T={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:c};function f(e){return T.noHighlightRe.test(e)}function C(e,t,n){let a="",r="";"object"==typeof t?(a=e,n=t.ignoreIllegals,r=t.language):(Y("10.7.0","highlight(lang, code, ...args) has been deprecated."),Y("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),r=e,a=t),void 0===n&&(n=!0);let i={code:a,language:r};F("before:highlight",i);let o=i.result?i.result:h(i.language,i.code,n);return o.code=i.code,F("after:highlight",o),o}function h(e,n,o,c){let d=Object.create(null);function m(){if(!A.keywords)return void D.addText(G);let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(G),n="";for(;t;){n+=G.substring(e,t.index);let a=N.case_insensitive?t[0].toLowerCase():t[0],r=A.keywords[a];if(r){let[e,i]=r;if(D.addText(n),n="",d[a]=(d[a]||0)+1,d[a]<=7&&(Y+=i),e.startsWith("_"))n+=t[0];else{let n=N.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(G)}n+=G.substring(e),D.addText(n)}function p(){null!=A.subLanguage?function(){if(""===G)return;let e=null;if("string"==typeof A.subLanguage){if(!t[A.subLanguage])return D.addText(G);e=h(A.subLanguage,G,!0,I[A.subLanguage]),I[A.subLanguage]=e._top}else e=R(G,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(Y+=e.relevance),D.__addSublanguage(e._emitter,e.language)}():m(),G=""}function u(e,t){""!==e&&(D.startScope(t),D.addText(e),D.endScope())}function g(e,t){let n=1,a=t.length-1;for(;n<=a;){if(!e._emit[n]){n++;continue}let a=N.classNameAliases[e[n]]||e[n],r=t[n];a?u(r,a):(G=r,m(),G=""),n++}}function S(e,t){return e.scope&&"string"==typeof e.scope&&D.openNode(N.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(u(G,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),G=""):e.beginScope._multi&&(g(e.beginScope,t),G="")),A=Object.create(e,{parent:{value:A}})}let f={};function C(t,r){let i=r&&r[0];if(G+=t,null==i)return p(),0;if("begin"===f.type&&"end"===r.type&&f.index===r.index&&""===i){if(G+=n.slice(r.index,r.index+1),!s){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=f.rule,t}return 1}if(f=r,"begin"===r.type){let e=r[0],t=r.rule,n=new a(t);for(let a of[t.__beforeBegin,t["on:begin"]])if(a&&(a(r,n),n.isMatchIgnored))return 0===A.matcher.regexIndex?(G+=e[0],1):(z=!0,0);return t.skip?G+=e:(t.excludeBegin&&(G+=e),p(),t.returnBegin||t.excludeBegin||(G=e)),S(t,r),t.returnBegin?0:e.length}if("illegal"!==r.type||o){if("end"===r.type){let e=function(e){let t=e[0],r=n.substring(e.index),i=function e(t,n,r){var i;let o,s=(i=t.endRe,(o=i&&i.exec(r))&&0===o.index);if(s){if(t["on:end"]){let e=new a(t);t["on:end"](n,e),e.isMatchIgnored&&(s=!1)}if(s){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,n,r)}(A,e,r);if(!i)return $;let o=A;A.endScope&&A.endScope._wrap?(p(),u(t,A.endScope._wrap)):A.endScope&&A.endScope._multi?(p(),g(A.endScope,e)):o.skip?G+=t:(o.returnEnd||o.excludeEnd||(G+=t),p(),o.excludeEnd&&(G=t));do A.scope&&D.closeNode(),A.skip||A.subLanguage||(Y+=A.relevance),A=A.parent;while(A!==i.parent)return i.starts&&S(i.starts,e),o.returnEnd?0:t.length}(r);if(e!==$)return e}}else{let e=Error('Illegal lexeme "'+i+'" for mode "'+(A.scope||"")+'"');throw e.mode=A,e}if("illegal"===r.type&&""===i)return G+="\n",1;if(V>1e5&&V>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return G+=i,i.length}let N=y(e);if(!N)throw B(l.replace("{}",e)),Error('Unknown language: "'+e+'"');let O=function(e){function t(t,n){return RegExp(_(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=E(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(b(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&void 0!==e),a=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,a)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=i(e.classNameAliases||{}),function n(r,o){let s;if(r.isCompiled)return r;[x,L,q,k].forEach(e=>e(r,o)),e.compilerExtensions.forEach(e=>e(r,o)),r.__beforeBegin=null,[M,w,P].forEach(e=>e(r,o)),r.isCompiled=!0;let l=null;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),l=r.keywords.$pattern,delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=function e(t,n,a="keyword"){let r=Object.create(null);return"string"==typeof t?i(a,t.split(" ")):Array.isArray(t)?i(a,t):Object.keys(t).forEach(function(a){Object.assign(r,e(t[a],n,a))}),r;function i(e,t){n&&(t=t.map(e=>e.toLowerCase())),t.forEach(function(t){var n,a,i;let o=t.split("|");r[o[0]]=[e,(n=o[0],(a=o[1])?Number(a):+(i=n,!U.includes(i.toLowerCase())))]})}}(r.keywords,e.case_insensitive)),r.keywordPatternRe=t(l,!0),o&&(r.begin||(r.begin=/\B|\b/),r.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=t(r.end)),r.terminatorEnd=_(r.end)||"",r.endsWithParent&&o.terminatorEnd&&(r.terminatorEnd+=(r.end?"|":"")+o.terminatorEnd)),r.illegal&&(r.illegalRe=t(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(function(e){var t;return((t="self"===e?r:e).variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return i(t,{variants:null},e)})),t.cachedVariants)?t.cachedVariants:!function e(t){return!!t&&(t.endsWithParent||e(t.starts))}(t)?Object.isFrozen(t)?i(t):t:i(t,{starts:t.starts?i(t.starts):null})})),r.contains.forEach(function(e){n(e,r)}),r.starts&&n(r.starts,o),s=new a,r.contains.forEach(e=>s.addRule(e.begin,{rule:e,type:"begin"})),r.terminatorEnd&&s.addRule(r.terminatorEnd,{type:"end"}),r.illegal&&s.addRule(r.illegal,{type:"illegal"}),r.matcher=s,r}(e)}(N),v="",A=c||O,I={},D=new T.__emitter(T),F=[];for(let e=A;e!==N;e=e.parent)e.scope&&F.unshift(e.scope);F.forEach(e=>D.openNode(e));let G="",Y=0,H=0,V=0,z=!1;try{if(N.__emitTokens)N.__emitTokens(n,D);else{for(A.matcher.considerAll();;){V++,z?z=!1:A.matcher.considerAll(),A.matcher.lastIndex=H;let e=A.matcher.exec(n);if(!e)break;let t=n.substring(H,e.index),a=C(t,e);H=e.index+a}C(n.substring(H))}return D.finalize(),v=D.toHTML(),{language:e,value:v,relevance:Y,illegal:!1,_emitter:D,_top:A}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:r(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:H,context:n.slice(H-100,H+100),mode:t.mode,resultSoFar:v},_emitter:D};if(s)return{language:e,value:r(n),illegal:!1,relevance:0,errorRaised:t,_emitter:D,_top:A};throw t}}function R(e,n){let a;n=n||T.languages||Object.keys(t);let i=((a={value:r(e),illegal:!1,relevance:0,_top:S,_emitter:new T.__emitter(T)})._emitter.addText(e),a),o=n.filter(y).filter(D).map(t=>h(t,e,!1));o.unshift(i);let[s,l]=o.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(y(e.language).supersetOf===t.language)return 1;else if(y(t.language).supersetOf===e.language)return -1}return 0});return s.secondBest=l,s}function N(e){var t;let a,r=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";let n=T.languageDetectRe.exec(t);if(n){let t=y(n[1]);return t||(G(l.replace("{}",n[1])),G("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>f(e)||y(e))}(e);if(f(r))return;if(F("before:highlightElement",{el:e,language:r}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(T.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),T.throwUnescapedHTML))throw new z("One of your code blocks includes unescaped HTML.",e.innerHTML);let i=e.textContent,o=r?C(i,{language:r,ignoreIllegals:!0}):R(i);e.innerHTML=o.value,e.dataset.highlighted="yes",t=o.language,a=r&&n[r]||t,e.classList.add("hljs"),e.classList.add(`language-${a}`),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),F("after:highlightElement",{el:e,result:o,text:i})}let O=!1;function v(){if("loading"===document.readyState){O||window.addEventListener("DOMContentLoaded",function(){v()},!1),O=!0;return}document.querySelectorAll(T.cssSelector).forEach(N)}function y(e){return t[e=(e||"").toLowerCase()]||t[n[e]]}function A(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function D(e){let t=y(e);return t&&!t.disableAutodetect}function F(e,t){o.forEach(function(n){n[e]&&n[e](t)})}for(let a in Object.assign(e,{highlight:C,highlightAuto:R,highlightAll:v,highlightElement:N,highlightBlock:function(e){return Y("10.7.0","highlightBlock will be removed entirely in v12.0"),Y("10.7.0","Please use highlightElement now."),N(e)},configure:function(e){T=i(T,e)},initHighlighting:()=>{v(),Y("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),Y("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,a){let r=null;try{r=a(e)}catch(e){if(B("Language definition for '{}' could not be registered.".replace("{}",n)),s)B(e);else throw e;r=S}r.name||(r.name=n),t[n]=r,r.rawDefinition=a.bind(null,e),r.aliases&&A(r.aliases,{languageName:n})},unregisterLanguage:function(e){for(let a of(delete t[e],Object.keys(n)))n[a]===e&&delete n[a]},listLanguages:function(){return Object.keys(t)},getLanguage:y,registerAliases:A,autoDetection:D,inherit:i,addPlugin:function(e){var t;(t=e)["before:highlightBlock"]&&!t["before:highlightElement"]&&(t["before:highlightElement"]=e=>{t["before:highlightBlock"](Object.assign({block:e.el},e))}),t["after:highlightBlock"]&&!t["after:highlightElement"]&&(t["after:highlightElement"]=e=>{t["after:highlightBlock"](Object.assign({block:e.el},e))}),o.push(e)},removePlugin:function(e){let t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString="11.11.1",e.regex={concat:u,lookahead:d,either:g,optional:p,anyNumberOfTimes:m},I)"object"==typeof I[a]&&function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(n=>{let a=t[n],r=typeof a;"object"!==r&&"function"!==r||Object.isFrozen(a)||e(a)}),t}(I[a]);return Object.assign(e,I),e},Q=W({});Q.newInstance=()=>W({}),t.exports=Q,Q.HighlightJS=Q,Q.default=Q},357636,(e,t,n)=>{t.exports=function(e){let t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",a="null истина ложь неопределено",r=e.inherit(e.NUMBER_MODE),i={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},o={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},s=e.inherit(e.C_LINE_COMMENT_MODE),l={className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:a},contains:[r,i,o]},s]},e.inherit(e.TITLE_MODE,{begin:t})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:a},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[s]},l,s,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},r,i,o,{match:/[;()+\-:=,]/,className:"punctuation",relevance:0}]}}},316648,(e,t,n)=>{t.exports=function(e){let t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},921259,(e,t,n)=>{t.exports=function(e){let t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}},656551,(e,t,n)=>{t.exports=function(e){let t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,a=t.concat(n,t.concat("(\\.",n,")*"));return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10}]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}},160908,(e,t,n)=>{t.exports=function(e){let t="\\d(_|\\d)*",n="[eE][-+]?"+t,a="\\b("+(t+"#\\w+(\\.\\w+)?#("+n)+")?|"+(t+"(\\."+t+")?(")+n+")?)",r="[A-Za-z](_?[A-Za-z0-9.])*",i="[]\\{\\}%#'\"",o=e.COMMENT("--","$"),s={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:i,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:r,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[o,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:a,relevance:0},{className:"symbol",begin:"'"+r},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:i},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[o,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:i},s,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:i}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:i},s]}}},455423,(e,t,n)=>{t.exports=function(e){let t={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},a={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[a],n.contains=[a],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}},399909,(e,t,n)=>{t.exports=function(e){let t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{scope:"punctuation",match:/\\\n/},{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},609928,(e,t,n)=>{t.exports=function(e){let t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},r=e.COMMENT(/--/,/$/),i=e.COMMENT(/\(\*/,/\*\)/,{contains:["self",r]}),o=[r,i,e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,a]},...o],illegal:/\/\/|->|=>|\[\[/}}},45469,(e,t,n)=>{t.exports=function(e){let t=e.regex,n="[A-Za-z_][0-9A-Za-z_]*",a={keyword:["break","case","catch","continue","debugger","do","else","export","for","function","if","import","in","new","of","return","switch","try","var","void","while"],literal:["BackSlash","DoubleQuote","ForwardSlash","Infinity","NaN","NewLine","PI","SingleQuote","Tab","TextFormatting","false","null","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","ChangeTimeZone","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","ConvexHull","Cos","Count","Crosses","Cut","Date|0","DateAdd","DateDiff","DateOnly","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","DistanceToCoordinate","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureInFilter","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipClass","FeatureSetByRelationshipName","Filter","FilterBySubtypeCode","Find","First|0","Floor","FromCharCode","FromCodePoint","FromJSON","Front","GdbVersion","Generalize","Geometry","GetEnvironment","GetFeatureSet","GetFeatureSetInfo","GetUser","GroupBy","Guid","HasKey","HasValue","Hash","Hour","IIf","ISOMonth","ISOWeek","ISOWeekday","ISOYear","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","IsSelfIntersecting","IsSimple","KnowledgeGraphByPortalItem","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","MeasureToCoordinate","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NearestCoordinate","NearestVertex","NextSequenceValue","None","Now","Number","Offset","OrderBy","Overlaps","Point","PointToCoordinate","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","QueryGraph","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","StandardizeFilename","StandardizeGuid","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Time","TimeZone","TimeZoneOffset","Timestamp","ToCharCode","ToCodePoint","ToHex","ToLocal","ToUTC","Today","Top|0","Touches","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When|0","Within","Year|0"]},r={className:"symbol",begin:"\\$"+t.either("aggregatedFeatures","analytic","config","datapoint","datastore","editcontext","feature","featureSet","feedfeature","fencefeature","fencenotificationtype","graph","join","layer","locationupdate","map","measure","measure","originalFeature","record","reference","rowindex","sourcedatastore","sourcefeature","sourcelayer","target","targetdatastore","targetfeature","targetlayer","userInput","value","variables","view")},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},s={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,o]};o.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,i,e.REGEXP_MODE];let l=o.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:a,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,i,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:l}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:l}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}},233019,(e,t,n)=>{t.exports=function(e){let t,n,a,r,i,o,s,l,c,_,d,m,p,u,g,E,S=(t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="[a-zA-Z_]\\w*::",i="(?!struct)("+(a="decltype\\(auto\\)")+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},_={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},d=t.optional(r)+e.IDENT_RE+"\\s*\\(",g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:m={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},contains:(u=[p={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},c,o,n,e.C_BLOCK_COMMENT_MODE,l,s]).concat([{begin:/\(/,end:/\)/,keywords:m,contains:u.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+i+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:m,relevance:0},{begin:d,returnBegin:!0,contains:[_],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:m,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,s,l,o,{begin:/\(/,end:/\)/,keywords:m,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,s,l,o]}]},o,n,e.C_BLOCK_COMMENT_MODE,c]},{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(g,E,p,u,[c,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:m,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:m},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}),b=S.keywords;return b.type=[...b.type,"boolean","byte","word","String"],b.literal=[...b.literal,"DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"],b.built_in=[...b.built_in,"KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],b._hints=["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],S.name="Arduino",S.aliases=["ino"],S.supersetOf="cpp",S}},990349,(e,t,n)=>{t.exports=function(e){let t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}},653497,(e,t,n)=>{t.exports=function(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},r={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=e.inherit(r,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[r,s,o,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[r,i,s,o]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/