{"version":3,"file":"index.7b515e01.js","sources":["../../vite/modulepreload-polyfill","../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/void-elements/index.js","../../node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/react-i18next/dist/es/utils.js","../../node_modules/react-i18next/dist/es/Trans.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../node_modules/react-i18next/dist/es/I18nextProvider.js","../../src/locales/datasource/en_US.ts","../../src/locales/datasource/zh_CN.ts","../../src/locales/common/en_US.ts","../../src/locales/common/zh_CN.ts","../../src/locales/resources.ts","../../src/i18n.ts","../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/rc-pagination/lib/locale/zh_CN.js","../../node_modules/@babel/runtime/helpers/extends.js","../../node_modules/rc-picker/lib/locale/zh_CN.js","../../node_modules/antd/lib/time-picker/locale/zh_CN.js","../../node_modules/antd/lib/date-picker/locale/zh_CN.js","../../node_modules/antd/lib/calendar/locale/zh_CN.js","../../node_modules/antd/lib/locale/zh_CN.js","../../node_modules/rc-pagination/lib/locale/en_US.js","../../node_modules/rc-picker/lib/locale/en_US.js","../../node_modules/antd/lib/time-picker/locale/en_US.js","../../node_modules/antd/lib/date-picker/locale/en_US.js","../../node_modules/antd/lib/calendar/locale/en_US.js","../../node_modules/antd/lib/locale/default.js","../../node_modules/antd/lib/locale/en_US.js","../../src/store/common.ts","../../src/services/login.ts","../../src/utils/request.ts","../../src/utils/api.ts","../../src/pages/taskOutput/index.jsx","../../src/pages/taskOutput/host.jsx","../../src/utils/constant.ts","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/index.js","../../src/services/warning.ts","../../src/components/AdvancedWrap/License.tsx","../../src/components/AdvancedWrap/utils.ts","../../src/components/AdvancedWrap/index.tsx","../../src/services/account.ts","../../src/services/common.ts","../../node_modules/react-use/esm/misc/hookState.js","../../node_modules/react-use/esm/useEffectOnce.js","../../node_modules/react-use/esm/misc/util.js","../../node_modules/react-use/esm/useIsomorphicLayoutEffect.js","../../node_modules/react-use/esm/factory/createGlobalState.js","../../node_modules/@fc-components/menu/src/Collapse/index.tsx","../../node_modules/@fc-components/menu/src/Float/partial.tsx","../../node_modules/@fc-components/menu/src/Float/subMenu.tsx","../../node_modules/@fc-components/menu/src/Float/skimMenu.tsx","../../node_modules/pinyin-pro/dist/index.es.js","../../node_modules/@fc-components/menu/src/Float/quickstart.tsx","../../node_modules/@fc-components/menu/src/Float/index.tsx","../../src/components/IconFont/index.tsx","../../src/components/menu/icons/Menu_Search.svg","../../src/components/menu/icons/AlarmManagement.svg","../../src/components/menu/icons/AlarmSelfhealing.svg","../../src/components/menu/icons/Dashboard.svg","../../src/components/menu/icons/IndexManagement.svg","../../src/components/menu/icons/LinkAnalysis.svg","../../src/components/menu/icons/LogAnalysis.svg","../../src/components/menu/icons/PersonnelOrganization.svg","../../src/components/menu/icons/SystemInformation.svg","../../src/components/menu/configs.tsx","../../src/components/menu/locale/en_US.ts","../../src/components/menu/locale/zh_CN.ts","../../src/components/menu/locale/index.ts","../../src/components/menu/index.tsx","../../src/pages/notFound/index.tsx","../../src/pages/notFound/Page403.tsx","../../src/pages/login/index.tsx","../../src/pages/login/overview.tsx","../../src/pages/loginCallback/index.tsx","../../src/pages/loginCallback/cas.tsx","../../src/pages/loginCallback/oauth.tsx","../../src/components/pageLayout/locale/en_US.ts","../../src/components/pageLayout/locale/zh_CN.ts","../../src/components/pageLayout/locale/zh_HK.ts","../../src/components/pageLayout/locale/index.ts","../../src/components/pageLayout/index.tsx","../../src/services/targets.ts","../../src/pages/dashboard/Renderer/config.ts","../../src/pages/dashboard/Renderer/utils/byteConverter.ts","../../src/pages/dashboard/Renderer/utils/valueFormatter.ts","../../src/pages/targets/clipboard.tsx","../../src/components/ModalHOC.tsx","../../src/pages/targets/OrganizeColumns.tsx","../../src/pages/targets/utils.ts","../../src/components/RefreshIcon/index.tsx","../../src/components/BaseSearchInput/index.tsx","../../src/components/usePagination.tsx","../../src/pages/collects/services.ts","../../src/pages/collects/types.ts","../../src/pages/targets/CollectsDrawer.tsx","../../src/pages/targets/List.tsx","../../node_modules/re-resizable/lib/resizer.js","../../node_modules/re-resizable/lib/index.js","../../src/pages/targets/BusinessGroup/index.tsx","../../src/pages/targets/locale/en_US.ts","../../src/pages/targets/locale/zh_CN.ts","../../src/pages/targets/locale/index.ts","../../src/pages/targets/index.tsx","../../src/components/BlankBusinessPlaceholder/index.tsx","../../src/components/DatasourceSelect/Pure.tsx","../../src/components/DatasourceSelect/locale/en_US.ts","../../src/components/DatasourceSelect/locale/zh_CN.ts","../../src/components/DatasourceSelect/locale/index.ts","../../src/pages/alertRules/types.ts","../../src/pages/alertRules/Form/components/DatasourceValueSelect/index.tsx","../../src/pages/alertRules/List/Import.tsx","../../src/utils/datasource.ts","../../src/utils/index.ts","../../src/pages/alertRules/List/Export.tsx","../../src/services/manage.ts","../../src/pages/alertRules/List/EditModal.tsx","../../src/pages/alertRules/List/MoreOperations.tsx","../../src/pages/alertRules/Form/constants.ts","../../src/pages/alertRules/List/index.tsx","../../src/pages/alertRules/constants.ts","../../src/pages/alertRules/Form/Base.tsx","../../src/pages/alertRules/Form/components/Severity/index.tsx","../../src/pages/alertRules/Form/components/Inhibit/index.tsx","../../src/pages/alertRules/Form/components/IntervalAndDuration/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Host/ValuesSelect.tsx","../../src/pages/alertRules/Form/Rule/Rule/Host/Preview.tsx","../../src/pages/alertRules/Form/Rule/Rule/Host/index.tsx","../../src/components/PromQLInput/CMTheme.tsx","../../node_modules/rc-picker/lib/locale/zh_TW.js","../../src/components/TimeRangePicker/config.ts","../../src/components/TimeRangePicker/utils.ts","../../src/components/TimeRangePicker/TimeRangePicker.tsx","../../src/components/TimeRangePicker/AutoRefresh/index.tsx","../../src/components/TimeRangePicker/TimeRangePickerWithRefresh.tsx","../../src/components/TimeRangePicker/RelativeTimeRangePicker/utils.ts","../../src/components/TimeRangePicker/RelativeTimeRangePicker/index.tsx","../../src/components/TimeRangePicker/locale/en_US.ts","../../src/components/TimeRangePicker/locale/zh_CN.ts","../../src/components/TimeRangePicker/locale/zh_HK.ts","../../src/components/TimeRangePicker/locale/index.ts","../../src/components/TimeRangePicker/index.tsx","../../src/services/dashboardV2.ts","../../src/components/PromQueryBuilder/components/FormItem.tsx","../../src/components/PromQueryBuilder/MetricSelect/index.tsx","../../src/components/PromQueryBuilder/LabelFilters/utils.ts","../../src/components/PromQueryBuilder/LabelFilters/LabelNameSelect.tsx","../../src/components/PromQueryBuilder/LabelFilters/LabelValueSelect.tsx","../../src/components/PromQueryBuilder/LabelFilters/index.tsx","../../node_modules/array-move/index.js","../../node_modules/invariant/browser.js","../../node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","../../src/components/PromQueryBuilder/types.ts","../../src/components/PromQueryBuilder/Operations/utils/renderer.ts","../../src/components/PromQueryBuilder/Operations/utils/addOperationHandler.ts","../../src/components/PromQueryBuilder/Operations/utils/createAggregationOperation.ts","../../src/components/PromQueryBuilder/Operations/utils/createRangeFunction.ts","../../src/components/PromQueryBuilder/Operations/utils/createFunction.ts","../../src/components/PromQueryBuilder/Operations/utils/index.ts","../../src/components/PromQueryBuilder/Operations/Operation.tsx","../../src/components/PromQueryBuilder/Operations/index.tsx","../../src/components/PromQueryBuilder/RawQuery/index.tsx","../../src/components/PromQueryBuilder/NestedQueryList/NestedQuery.tsx","../../src/components/PromQueryBuilder/NestedQueryList/index.tsx","../../src/components/PromQueryBuilder/utils/index.ts","../../node_modules/lezer-promql/index.es.js","../../src/components/PromQueryBuilder/utils/buildPromVisualQueryFromPromQL.ts","../../src/components/PromQueryBuilder/index.tsx","../../src/components/PromQueryBuilder/PromQueryBuilderModal.tsx","../../src/components/PromQLInput/locale/en_US.ts","../../src/components/PromQLInput/locale/zh_CN.ts","../../src/components/PromQLInput/locale/index.ts","../../src/components/PromQLInput/PromQLInputWithBuilder.tsx","../../src/components/PromQLInput/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Metric/index.tsx","../../src/pages/explorer/Elasticsearch/flatten.ts","../../src/pages/explorer/Elasticsearch/utils.tsx","../../src/pages/explorer/Elasticsearch/services.ts","../../src/components/InputGroupWithFormItem/index.tsx","../../src/pages/dashboard/Renderer/datasource/elasticsearch/queryBuilder.ts","../../src/pages/dashboard/Renderer/datasource/utils/index.tsx","../../src/pages/dashboard/Renderer/datasource/elasticsearch/processResponse.ts","../../node_modules/@fc-plot/ts-graph/dist/index.js","../../src/pages/dashboard/config.tsx","../../src/pages/dashboard/Renderer/utils/getCalculatedValuesBySeries.ts","../../src/pages/dashboard/Renderer/Renderer/Timeseries/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/utils.ts","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GraphPreview.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/Queries/Value.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GroupBy/configs.ts","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GroupBy/Filters.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GroupBy/Terms.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GroupBy/Histgram.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/GroupBy/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/Queries/DateField.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/Queries/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Triggers/Builder.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Triggers/Code.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Triggers/Trigger.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Triggers/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/index.tsx","../../src/services/metric.ts","../../src/pages/explorer/AliyunSLS/ProjectSelect.tsx","../../src/pages/explorer/AliyunSLS/LogstoreSelect.tsx","../../node_modules/react-markdown/lib/uri-transformer.js","../../node_modules/vfile/node_modules/is-buffer/index.js","../../node_modules/unist-util-stringify-position/index.js","../../node_modules/vfile-message/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/bail/index.js","../../node_modules/unified/node_modules/is-buffer/index.js","../../node_modules/extend/index.js","../../node_modules/unified/node_modules/is-plain-obj/index.js","../../node_modules/trough/index.js","../../node_modules/unified/lib/index.js","../../node_modules/mdast-util-to-string/index.js","../../node_modules/micromark-util-chunked/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../../node_modules/micromark-util-character/index.js","../../node_modules/micromark-factory-space/index.js","../../node_modules/micromark/lib/initialize/content.js","../../node_modules/micromark/lib/initialize/document.js","../../node_modules/micromark-util-classify-character/index.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/decode-named-character-reference/index.dom.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark-util-subtokenize/index.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark-factory-destination/index.js","../../node_modules/micromark-factory-label/index.js","../../node_modules/micromark-factory-title/index.js","../../node_modules/micromark-factory-whitespace/index.js","../../node_modules/micromark-util-normalize-identifier/index.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../node_modules/micromark/lib/initialize/flow.js","../../node_modules/micromark/lib/initialize/text.js","../../node_modules/micromark/lib/create-tokenizer.js","../../node_modules/micromark/lib/constructs.js","../../node_modules/micromark/lib/parse.js","../../node_modules/micromark/lib/preprocess.js","../../node_modules/micromark/lib/postprocess.js","../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../node_modules/micromark-util-decode-string/index.js","../../node_modules/mdast-util-from-markdown/lib/index.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/unist-builder/index.js","../../node_modules/mdast-util-to-hast/lib/traverse.js","../../node_modules/unist-util-is/index.js","../../node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js","../../node_modules/unist-util-visit/index.js","../../node_modules/unist-util-position/index.js","../../node_modules/unist-util-generated/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit/index.js","../../node_modules/mdast-util-definitions/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/mdast-util-to-hast/lib/wrap.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdurl/encode.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/remark-rehype/index.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/lib/hast-to-react.js","../../node_modules/property-information/index.js","../../node_modules/react-markdown/lib/rehype-filter.js","../../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-markdown/node_modules/react-is/index.js","../../node_modules/hast-util-whitespace/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/inline-style-parser/index.js","../../node_modules/style-to-object/index.js","../../node_modules/react-markdown/lib/ast-to-react.js","../../node_modules/react-markdown/lib/react-markdown.js","../../node_modules/micromark-extension-gfm/node_modules/micromark/dist/constant/has-own-property.js","../../node_modules/micromark-extension-gfm/node_modules/micromark/dist/constant/splice.js","../../node_modules/micromark-extension-gfm/node_modules/micromark/dist/util/chunked-splice.js","../../node_modules/micromark-extension-gfm/node_modules/micromark/dist/util/miniflat.js","../../node_modules/micromark-extension-gfm/node_modules/micromark/dist/util/combine-extensions.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/constant/from-char-code.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/util/regex-check.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/ascii-alpha.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/ascii-alphanumeric.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/ascii-control.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/markdown-line-ending.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/unicode-punctuation.js","../../node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark/dist/character/unicode-whitespace.js","../../node_modules/micromark-extension-gfm-autolink-literal/syntax.js","../../node_modules/micromark-extension-gfm-autolink-literal/index.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/constant/from-char-code.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/util/regex-check.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/character/unicode-punctuation.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/character/unicode-whitespace.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/util/classify-character.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/constant/splice.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/util/chunked-splice.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/util/resolve-all.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/constant/assign.js","../../node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark/dist/util/shallow.js","../../node_modules/micromark-extension-gfm-strikethrough/index.js","../../node_modules/micromark-extension-gfm-table/node_modules/micromark/dist/character/markdown-space.js","../../node_modules/micromark-extension-gfm-table/node_modules/micromark/dist/tokenize/factory-space.js","../../node_modules/micromark-extension-gfm-table/syntax.js","../../node_modules/micromark-extension-gfm-table/index.js","../../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark/dist/character/markdown-space.js","../../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark/dist/tokenize/factory-space.js","../../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark/dist/util/size-chunks.js","../../node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark/dist/util/prefix-size.js","../../node_modules/micromark-extension-gfm-task-list-item/syntax.js","../../node_modules/micromark-extension-gfm-task-list-item/index.js","../../node_modules/micromark-extension-gfm/syntax.js","../../node_modules/micromark-extension-gfm/index.js","../../node_modules/ccount/index.js","../../node_modules/unist-util-visit-parents/node_modules/unist-util-is/convert.js","../../node_modules/unist-util-visit-parents/color.browser.js","../../node_modules/unist-util-visit-parents/index.js","../../node_modules/mdast-util-find-and-replace/node_modules/unist-util-is/convert.js","../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../../node_modules/mdast-util-find-and-replace/index.js","../../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark/dist/constant/from-char-code.js","../../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark/dist/util/regex-check.js","../../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark/dist/character/unicode-punctuation.js","../../node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark/dist/character/unicode-whitespace.js","../../node_modules/mdast-util-gfm-autolink-literal/from-markdown.js","../../node_modules/mdast-util-gfm-strikethrough/from-markdown.js","../../node_modules/mdast-util-gfm-table/from-markdown.js","../../node_modules/mdast-util-gfm-task-list-item/from-markdown.js","../../node_modules/mdast-util-gfm/from-markdown.js","../../node_modules/mdast-util-gfm-autolink-literal/to-markdown.js","../../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../../node_modules/mdast-util-gfm-strikethrough/to-markdown.js","../../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../node_modules/repeat-string/index.js","../../node_modules/markdown-table/index.js","../../node_modules/mdast-util-gfm-table/to-markdown.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../node_modules/mdast-util-gfm-task-list-item/to-markdown.js","../../node_modules/mdast-util-to-markdown/lib/configure.js","../../node_modules/mdast-util-gfm/to-markdown.js","../../node_modules/remark-gfm/index.js","../../node_modules/parse5/lib/common/unicode.js","../../node_modules/parse5/lib/common/error-codes.js","../../node_modules/parse5/lib/tokenizer/preprocessor.js","../../node_modules/parse5/lib/tokenizer/named-entity-data.js","../../node_modules/parse5/lib/tokenizer/index.js","../../node_modules/parse5/lib/common/html.js","../../node_modules/parse5/lib/parser/open-element-stack.js","../../node_modules/parse5/lib/parser/formatting-element-list.js","../../node_modules/parse5/lib/utils/mixin.js","../../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../../node_modules/parse5/lib/tree-adapters/default.js","../../node_modules/parse5/lib/utils/merge-options.js","../../node_modules/parse5/lib/common/doctype.js","../../node_modules/parse5/lib/common/foreign-content.js","../../node_modules/parse5/lib/parser/index.js","../../node_modules/hast-util-parse-selector/index.js","../../node_modules/hastscript/lib/core.js","../../node_modules/hastscript/lib/html.js","../../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../../node_modules/hastscript/lib/svg.js","../../node_modules/vfile-location/index.js","../../node_modules/web-namespaces/index.js","../../node_modules/hast-util-from-parse5/lib/index.js","../../node_modules/hast-to-hyperscript/index.js","../../node_modules/zwitch/index.js","../../node_modules/hast-util-to-parse5/lib/index.js","../../node_modules/html-void-elements/index.js","../../node_modules/hast-util-raw/lib/index.js","../../node_modules/rehype-raw/index.js","../../src/components/Markdown/index.tsx","../../src/pages/explorer/AliyunSLS/Query.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Queries/GraphPreview.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Queries/AdvancedSettings.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/Queries/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/AliyunSLSSettings/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Anomaly/AbnormalDetection/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Anomaly/index.tsx","../../src/pages/alertRules/Form/utils.ts","../../src/pages/alertRules/Form/components/ProdSelect.tsx","../../src/pages/alertRules/Form/Rule/index.tsx","../../src/pages/alertRules/Form/Effective/index.tsx","../../src/pages/alertRules/Form/Notify/index.tsx","../../src/pages/alertRules/Form/index.tsx","../../src/pages/alertRules/Add.tsx","../../src/pages/alertRules/Edit.tsx","../../src/pages/alertRules/locale/en_US.ts","../../src/pages/alertRules/locale/zh_CN.ts","../../src/pages/alertRules/locale/index.ts","../../src/pages/alertRules/index.tsx","../../src/pages/dashboard/List/Export.tsx","../../src/pages/alertRulesBuiltin/services.ts","../../src/pages/alertRulesBuiltin/Import.tsx","../../src/pages/alertRulesBuiltin/Detail.tsx","../../src/pages/alertRulesBuiltin/locale/en_US.ts","../../src/pages/alertRulesBuiltin/locale/zh_CN.ts","../../src/pages/alertRulesBuiltin/locale/index.ts","../../src/pages/alertRulesBuiltin/index.tsx","../../src/pages/account/changePassword.tsx","../../src/pages/account/info.tsx","../../src/pages/account/locale/en_US.ts","../../src/pages/account/locale/zh_CN.ts","../../src/pages/account/locale/index.ts","../../src/pages/account/profile.tsx","../../src/pages/dashboard/locale/en_US.ts","../../src/pages/dashboard/locale/zh_CN.ts","../../src/pages/dashboard/locale/index.ts","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../src/pages/dashboard/Components/ColorRangeMenu/config.ts","../../src/pages/dashboard/Editor/config.tsx","../../src/pages/dashboard/utils.ts","../../src/pages/dashboard/List/Form.tsx","../../node_modules/semver/internal/constants.js","../../node_modules/semver/internal/debug.js","../../node_modules/semver/internal/re.js","../../node_modules/semver/internal/parse-options.js","../../node_modules/semver/internal/identifiers.js","../../node_modules/semver/classes/semver.js","../../node_modules/semver/functions/parse.js","../../node_modules/semver/functions/valid.js","../../node_modules/semver/functions/clean.js","../../node_modules/semver/functions/inc.js","../../node_modules/semver/functions/compare.js","../../node_modules/semver/functions/eq.js","../../node_modules/semver/functions/diff.js","../../node_modules/semver/functions/major.js","../../node_modules/semver/functions/minor.js","../../node_modules/semver/functions/patch.js","../../node_modules/semver/functions/prerelease.js","../../node_modules/semver/functions/rcompare.js","../../node_modules/semver/functions/compare-loose.js","../../node_modules/semver/functions/compare-build.js","../../node_modules/semver/functions/sort.js","../../node_modules/semver/functions/rsort.js","../../node_modules/semver/functions/gt.js","../../node_modules/semver/functions/lt.js","../../node_modules/semver/functions/neq.js","../../node_modules/semver/functions/gte.js","../../node_modules/semver/functions/lte.js","../../node_modules/semver/functions/cmp.js","../../node_modules/semver/functions/coerce.js","../../node_modules/semver/classes/range.js","../../node_modules/semver/classes/comparator.js","../../node_modules/semver/functions/satisfies.js","../../node_modules/semver/ranges/to-comparators.js","../../node_modules/semver/ranges/max-satisfying.js","../../node_modules/semver/ranges/min-satisfying.js","../../node_modules/semver/ranges/min-version.js","../../node_modules/semver/ranges/valid.js","../../node_modules/semver/ranges/outside.js","../../node_modules/semver/ranges/gtr.js","../../node_modules/semver/ranges/ltr.js","../../node_modules/semver/ranges/intersects.js","../../node_modules/semver/ranges/simplify.js","../../node_modules/semver/ranges/subset.js","../../node_modules/semver/index.js","../../src/pages/help/migrate/utils.ts","../../src/pages/dashboard/List/utils.ts","../../src/pages/dashboard/List/Import.tsx","../../src/pages/dashboard/List/Header.tsx","../../src/pages/dashboard/List/index.tsx","../../src/pages/help/migrate/MigrationModal.tsx","../../src/pages/dashboard/VariableConfig/utils.ts","../../src/pages/dashboard/VariableConfig/constant.tsx","../../src/pages/dashboard/VariableConfig/DisplayItem.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/IndexSelect.tsx","../../src/pages/dashboard/Editor/QueryEditor/components/ClusterSelect/index.tsx","../../src/pages/dashboard/VariableConfig/EditItem.tsx","../../src/pages/dashboard/VariableConfig/EditItems.tsx","../../src/pages/dashboard/VariableConfig/index.tsx","../../src/pages/dashboard/Components/ModalHOC.tsx","../../src/pages/dashboard/DashboardLinks/Edit.tsx","../../src/pages/dashboard/DashboardLinks/index.tsx","../../src/pages/dashboard/Panels/utils.ts","../../node_modules/zustand/esm/vanilla.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/zustand/esm/index.js","../../node_modules/react-hooks-global-state/dist/index.modern.js","../../src/pages/dashboard/globalState.ts","../../src/pages/dashboard/Renderer/Renderer/Stat/index.tsx","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/lodash.debounce/index.js","../../node_modules/lodash.throttle/index.js","../../node_modules/@minko-fe/use-antd-resizable-header/dist/index.js","../../src/pages/dashboard/Renderer/utils/getOverridePropertiesByName.ts","../../src/pages/dashboard/Renderer/utils/localeCompare.ts","../../src/pages/dashboard/Renderer/utils/formatToTable.ts","../../src/pages/dashboard/Renderer/Renderer/Table/utils.ts","../../src/pages/dashboard/Renderer/Renderer/Table/index.tsx","../../node_modules/tslib/tslib.es6.js","../../node_modules/@antv/util/esm/is-array-like.js","../../node_modules/@antv/util/esm/contains.js","../../node_modules/@antv/util/esm/filter.js","../../node_modules/@antv/util/esm/difference.js","../../node_modules/@antv/util/esm/is-type.js","../../node_modules/@antv/util/esm/is-function.js","../../node_modules/@antv/util/esm/is-nil.js","../../node_modules/@antv/util/esm/is-array.js","../../node_modules/@antv/util/esm/is-object.js","../../node_modules/@antv/util/esm/each.js","../../node_modules/@antv/util/esm/keys.js","../../node_modules/@antv/util/esm/is-match.js","../../node_modules/@antv/util/esm/is-object-like.js","../../node_modules/@antv/util/esm/is-plain-object.js","../../node_modules/@antv/util/esm/find.js","../../node_modules/@antv/util/esm/find-index.js","../../node_modules/@antv/util/esm/first-value.js","../../node_modules/@antv/util/esm/flatten.js","../../node_modules/@antv/util/esm/flatten-deep.js","../../node_modules/@antv/util/esm/max.js","../../node_modules/@antv/util/esm/min.js","../../node_modules/@antv/util/esm/get-range.js","../../node_modules/@antv/util/esm/pull.js","../../node_modules/@antv/util/esm/pull-at.js","../../node_modules/@antv/util/esm/reduce.js","../../node_modules/@antv/util/esm/remove.js","../../node_modules/@antv/util/esm/is-string.js","../../node_modules/@antv/util/esm/sort-by.js","../../node_modules/@antv/util/esm/uniq.js","../../node_modules/@antv/util/esm/union.js","../../node_modules/@antv/util/esm/values-of-key.js","../../node_modules/@antv/util/esm/head.js","../../node_modules/@antv/util/esm/last.js","../../node_modules/@antv/util/esm/starts-with.js","../../node_modules/@antv/util/esm/ends-with.js","../../node_modules/@antv/util/esm/every.js","../../node_modules/@antv/util/esm/some.js","../../node_modules/@antv/util/esm/group-by.js","../../node_modules/@antv/util/esm/group-to-map.js","../../node_modules/@antv/util/esm/group.js","../../node_modules/@antv/util/esm/get-wrap-behavior.js","../../node_modules/@antv/util/esm/wrap-behavior.js","../../node_modules/@antv/util/esm/number2color.js","../../node_modules/@antv/util/esm/parse-radius.js","../../node_modules/@antv/util/esm/clamp.js","../../node_modules/@antv/util/esm/fixed-base.js","../../node_modules/@antv/util/esm/is-number.js","../../node_modules/@antv/util/esm/is-decimal.js","../../node_modules/@antv/util/esm/is-even.js","../../node_modules/@antv/util/esm/is-integer.js","../../node_modules/@antv/util/esm/is-negative.js","../../node_modules/@antv/util/esm/is-number-equal.js","../../node_modules/@antv/util/esm/is-odd.js","../../node_modules/@antv/util/esm/is-positive.js","../../node_modules/@antv/util/esm/max-by.js","../../node_modules/@antv/util/esm/min-by.js","../../node_modules/@antv/util/esm/mod.js","../../node_modules/@antv/util/esm/to-degree.js","../../node_modules/@antv/util/esm/to-integer.js","../../node_modules/@antv/util/esm/to-radian.js","../../node_modules/@antv/util/esm/has.js","../../node_modules/@antv/util/esm/values.js","../../node_modules/@antv/util/esm/has-value.js","../../node_modules/@antv/util/esm/to-string.js","../../node_modules/@antv/util/esm/lower-case.js","../../node_modules/@antv/util/esm/lower-first.js","../../node_modules/@antv/util/esm/substitute.js","../../node_modules/@antv/util/esm/upper-case.js","../../node_modules/@antv/util/esm/upper-first.js","../../node_modules/@antv/util/esm/get-type.js","../../node_modules/@antv/util/esm/is-arguments.js","../../node_modules/@antv/util/esm/is-boolean.js","../../node_modules/@antv/util/esm/is-date.js","../../node_modules/@antv/util/esm/is-error.js","../../node_modules/@antv/util/esm/is-finite.js","../../node_modules/@antv/util/esm/is-null.js","../../node_modules/@antv/util/esm/is-prototype.js","../../node_modules/@antv/util/esm/is-reg-exp.js","../../node_modules/@antv/util/esm/is-undefined.js","../../node_modules/@antv/util/esm/is-element.js","../../node_modules/@antv/util/esm/request-animation-frame.js","../../node_modules/@antv/util/esm/clear-animation-frame.js","../../node_modules/@antv/util/esm/mix.js","../../node_modules/@antv/util/esm/augment.js","../../node_modules/@antv/util/esm/clone.js","../../node_modules/@antv/util/esm/debounce.js","../../node_modules/@antv/util/esm/memoize.js","../../node_modules/@antv/util/esm/deep-mix.js","../../node_modules/@antv/util/esm/extend.js","../../node_modules/@antv/util/esm/index-of.js","../../node_modules/@antv/util/esm/is-empty.js","../../node_modules/@antv/util/esm/is-equal.js","../../node_modules/@antv/util/esm/is-equal-with.js","../../node_modules/@antv/util/esm/map.js","../../node_modules/@antv/util/esm/map-values.js","../../node_modules/@antv/util/esm/get.js","../../node_modules/@antv/util/esm/set.js","../../node_modules/@antv/util/esm/pick.js","../../node_modules/@antv/util/esm/omit.js","../../node_modules/@antv/util/esm/throttle.js","../../node_modules/@antv/util/esm/to-array.js","../../node_modules/@antv/util/esm/unique-id.js","../../node_modules/@antv/util/esm/noop.js","../../node_modules/@antv/util/esm/identity.js","../../node_modules/@antv/util/esm/size.js","../../node_modules/@antv/util/esm/measure-text-width.js","../../node_modules/@antv/util/esm/get-ellipsis-text.js","../../node_modules/@antv/util/esm/cache.js","../../node_modules/@antv/g2/esm/constant.js","../../node_modules/@antv/g2/esm/engine/index.js","../../node_modules/@antv/dom-util/esm/add-event-listener.js","../../node_modules/@antv/dom-util/esm/create-dom.js","../../node_modules/@antv/dom-util/esm/get-style.js","../../node_modules/@antv/dom-util/esm/get-height.js","../../node_modules/@antv/dom-util/esm/get-outer-height.js","../../node_modules/@antv/dom-util/esm/get-width.js","../../node_modules/@antv/dom-util/esm/get-outer-width.js","../../node_modules/@antv/dom-util/esm/modify-css.js","../../node_modules/@antv/g2/esm/util/dom.js","../../node_modules/@antv/event-emitter/esm/index.js","../../node_modules/@antv/g2/esm/base.js","../../node_modules/@antv/g-base/esm/util/path.js","../../node_modules/@antv/g-base/esm/event/graph-event.js","../../node_modules/@antv/g-base/esm/util/util.js","../../node_modules/@antv/g-base/esm/abstract/base.js","../../node_modules/detect-browser/es/index.js","../../node_modules/gl-matrix/esm/common.js","../../node_modules/gl-matrix/esm/mat2.js","../../node_modules/gl-matrix/esm/mat2d.js","../../node_modules/gl-matrix/esm/mat3.js","../../node_modules/gl-matrix/esm/mat4.js","../../node_modules/gl-matrix/esm/vec3.js","../../node_modules/gl-matrix/esm/vec4.js","../../node_modules/gl-matrix/esm/quat.js","../../node_modules/gl-matrix/esm/quat2.js","../../node_modules/gl-matrix/esm/vec2.js","../../node_modules/@antv/matrix-util/esm/ext.js","../../node_modules/@antv/g-base/esm/util/matrix.js","../../node_modules/@antv/g-base/esm/abstract/element.js","../../node_modules/@antv/g-base/esm/abstract/container.js","../../node_modules/@antv/g-base/node_modules/d3-timer/src/timer.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/linear.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/quad.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/cubic.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/poly.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/sin.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/math.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/exp.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/circle.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/bounce.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/back.js","../../node_modules/@antv/g-base/node_modules/d3-ease/src/elastic.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/constant.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/color.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/rgb.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/numberArray.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/array.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/date.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/number.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/object.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/string.js","../../node_modules/@antv/g-base/node_modules/d3-interpolate/src/value.js","../../node_modules/@antv/g-base/esm/util/color.js","../../node_modules/@antv/g-base/esm/animate/timeline.js","../../node_modules/@antv/g-base/esm/event/event-contoller.js","../../node_modules/@antv/g-base/esm/abstract/canvas.js","../../node_modules/@antv/g-base/esm/abstract/group.js","../../node_modules/@antv/g-base/esm/abstract/shape.js","../../node_modules/@antv/g-base/esm/bbox/register.js","../../node_modules/@antv/g-base/esm/bbox/rect.js","../../node_modules/@antv/g-base/esm/bbox/circle.js","../../node_modules/@antv/g-math/esm/util.js","../../node_modules/@antv/g-math/esm/line.js","../../node_modules/@antv/g-math/esm/bezier.js","../../node_modules/@antv/g-math/esm/quadratic.js","../../node_modules/@antv/g-math/esm/cubic.js","../../node_modules/@antv/g-math/esm/ellipse.js","../../node_modules/@antv/g-math/esm/arc.js","../../node_modules/@antv/g-math/esm/segments.js","../../node_modules/@antv/g-math/esm/polyline.js","../../node_modules/@antv/g-base/esm/bbox/util.js","../../node_modules/@antv/g-base/esm/bbox/polyline.js","../../node_modules/@antv/g-base/esm/bbox/polygon.js","../../node_modules/@antv/g-base/esm/util/offscreen.js","../../node_modules/@antv/g-base/esm/util/text.js","../../node_modules/@antv/g-base/esm/bbox/text.js","../../node_modules/@antv/path-util/esm/parse-path.js","../../node_modules/@antv/path-util/esm/catmull-rom-2-bezier.js","../../node_modules/@antv/path-util/esm/parse-path-string.js","../../node_modules/@antv/path-util/esm/path-2-absolute.js","../../node_modules/@antv/path-util/esm/get-arc-params.js","../../node_modules/@antv/path-util/esm/path-2-segments.js","../../node_modules/@antv/path-util/esm/get-line-intersect.js","../../node_modules/@antv/path-util/esm/point-in-polygon.js","../../node_modules/@antv/path-util/esm/is-polygons-intersect.js","../../node_modules/@antv/g-base/esm/bbox/path.js","../../node_modules/@antv/g-base/esm/bbox/line.js","../../node_modules/@antv/g-base/esm/bbox/ellipse.js","../../node_modules/@antv/g-base/esm/bbox/index.js","../../node_modules/@antv/adjust/esm/constant.js","../../node_modules/@antv/adjust/esm/adjusts/adjust.js","../../node_modules/@antv/adjust/esm/factory.js","../../node_modules/@antv/adjust/node_modules/tslib/tslib.es6.js","../../node_modules/@antv/adjust/esm/adjusts/dodge.js","../../node_modules/@antv/adjust/esm/adjusts/jitter.js","../../node_modules/@antv/adjust/esm/adjusts/stack.js","../../node_modules/@antv/adjust/esm/adjusts/symmetric.js","../../node_modules/@antv/adjust/esm/index.js","../../node_modules/@antv/attr/esm/attributes/base.js","../../node_modules/@antv/attr/node_modules/tslib/tslib.es6.js","../../node_modules/@antv/color-util/esm/index.js","../../node_modules/@antv/attr/esm/attributes/color.js","../../node_modules/@antv/attr/esm/attributes/opacity.js","../../node_modules/@antv/attr/esm/attributes/position.js","../../node_modules/@antv/attr/esm/attributes/shape.js","../../node_modules/@antv/attr/esm/attributes/size.js","../../node_modules/@antv/scale/esm/tick-method/register.js","../../node_modules/@antv/scale/esm/base.js","../../node_modules/@antv/scale/esm/category/base.js","../../node_modules/fecha/lib/fecha.js","../../node_modules/@antv/scale/esm/util/bisector.js","../../node_modules/@antv/scale/esm/util/time.js","../../node_modules/@antv/scale/esm/category/time.js","../../node_modules/@antv/scale/esm/continuous/base.js","../../node_modules/@antv/scale/esm/continuous/linear.js","../../node_modules/@antv/scale/esm/util/math.js","../../node_modules/@antv/scale/esm/continuous/log.js","../../node_modules/@antv/scale/esm/continuous/pow.js","../../node_modules/@antv/scale/esm/continuous/time.js","../../node_modules/@antv/scale/esm/continuous/quantize.js","../../node_modules/@antv/scale/esm/continuous/quantile.js","../../node_modules/@antv/scale/esm/factory.js","../../node_modules/@antv/scale/esm/identity/index.js","../../node_modules/@antv/scale/esm/util/pretty-number.js","../../node_modules/@antv/scale/esm/util/extended.js","../../node_modules/@antv/scale/esm/tick-method/cat.js","../../node_modules/@antv/scale/esm/util/d3-linear.js","../../node_modules/@antv/scale/esm/util/interval.js","../../node_modules/@antv/scale/esm/util/strict-limit.js","../../node_modules/@antv/scale/esm/tick-method/d3-linear.js","../../node_modules/@antv/scale/esm/tick-method/linear.js","../../node_modules/@antv/scale/esm/tick-method/log.js","../../node_modules/@antv/scale/esm/util/pretty.js","../../node_modules/@antv/scale/esm/tick-method/pow.js","../../node_modules/@antv/scale/esm/tick-method/quantile.js","../../node_modules/@antv/scale/esm/tick-method/r-prettry.js","../../node_modules/@antv/scale/esm/tick-method/time.js","../../node_modules/@antv/scale/esm/tick-method/time-cat.js","../../node_modules/@antv/scale/esm/tick-method/time-pretty.js","../../node_modules/@antv/scale/esm/tick-method/index.js","../../node_modules/@antv/scale/esm/index.js","../../node_modules/@antv/attr/esm/factory.js","../../node_modules/@antv/attr/esm/index.js","../../node_modules/@antv/coord/esm/coord/base.js","../../node_modules/@antv/coord/esm/coord/cartesian.js","../../node_modules/@antv/coord/esm/coord/helix.js","../../node_modules/@antv/coord/esm/coord/polar.js","../../node_modules/@antv/coord/esm/factory.js","../../node_modules/@antv/coord/esm/index.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/path.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/event/graph-event.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/util.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/base.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/matrix.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/element.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/container.js","../../node_modules/@antv/component/node_modules/d3-timer/src/timer.js","../../node_modules/@antv/component/node_modules/d3-ease/src/linear.js","../../node_modules/@antv/component/node_modules/d3-ease/src/quad.js","../../node_modules/@antv/component/node_modules/d3-ease/src/cubic.js","../../node_modules/@antv/component/node_modules/d3-ease/src/poly.js","../../node_modules/@antv/component/node_modules/d3-ease/src/sin.js","../../node_modules/@antv/component/node_modules/d3-ease/src/math.js","../../node_modules/@antv/component/node_modules/d3-ease/src/exp.js","../../node_modules/@antv/component/node_modules/d3-ease/src/circle.js","../../node_modules/@antv/component/node_modules/d3-ease/src/bounce.js","../../node_modules/@antv/component/node_modules/d3-ease/src/back.js","../../node_modules/@antv/component/node_modules/d3-ease/src/elastic.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/constant.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/color.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/rgb.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/numberArray.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/array.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/date.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/number.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/object.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/string.js","../../node_modules/@antv/component/node_modules/d3-interpolate/src/value.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/color.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/animate/timeline.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/event/event-contoller.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/canvas.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/group.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/abstract/shape.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/register.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/rect.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/circle.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/util.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/polyline.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/polygon.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/offscreen.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/util/text.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/text.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/path.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/line.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/ellipse.js","../../node_modules/@antv/component/node_modules/@antv/g-base/esm/bbox/index.js","../../node_modules/@antv/component/esm/util/event.js","../../node_modules/@antv/component/esm/util/matrix.js","../../node_modules/@antv/component/esm/util/util.js","../../node_modules/@antv/component/esm/abstract/component.js","../../node_modules/@antv/component/esm/abstract/group-component.js","../../node_modules/@antv/component/esm/util/text.js","../../node_modules/@antv/component/esm/util/label.js","../../node_modules/@antv/component/esm/util/graphic.js","../../node_modules/@antv/component/esm/util/theme.js","../../node_modules/@antv/component/esm/annotation/line.js","../../node_modules/@antv/component/esm/annotation/text.js","../../node_modules/@antv/component/esm/annotation/arc.js","../../node_modules/@antv/component/esm/annotation/region.js","../../node_modules/@antv/component/esm/annotation/image.js","../../node_modules/@antv/component/esm/annotation/data-marker.js","../../node_modules/@antv/component/esm/annotation/data-region.js","../../node_modules/@antv/component/esm/annotation/region-filter.js","../../node_modules/@antv/component/esm/annotation/shape.js","../../node_modules/@antv/component/esm/abstract/html-component.js","../../node_modules/@antv/component/esm/annotation/html.js","../../node_modules/@antv/component/esm/util/state.js","../../node_modules/@antv/component/esm/axis/base.js","../../node_modules/@antv/component/esm/axis/overlap/auto-ellipsis.js","../../node_modules/@antv/component/esm/axis/overlap/auto-hide.js","../../node_modules/@antv/component/esm/axis/overlap/auto-rotate.js","../../node_modules/@antv/component/esm/axis/line.js","../../node_modules/@antv/component/esm/axis/circle.js","../../node_modules/@antv/component/esm/crosshair/base.js","../../node_modules/@antv/component/esm/crosshair/line.js","../../node_modules/@antv/component/esm/crosshair/circle.js","../../node_modules/@antv/component/esm/crosshair/css-const.js","../../node_modules/@antv/component/esm/crosshair/html-theme.js","../../node_modules/@antv/component/esm/crosshair/html.js","../../node_modules/@antv/component/esm/grid/base.js","../../node_modules/@antv/component/esm/grid/circle.js","../../node_modules/@antv/component/esm/grid/line.js","../../node_modules/@antv/component/esm/legend/base.js","../../node_modules/@antv/component/esm/legend/category.js","../../node_modules/@antv/component/esm/legend/continuous.js","../../node_modules/@antv/component/esm/tooltip/css-const.js","../../node_modules/@antv/component/esm/tooltip/html-theme.js","../../node_modules/@antv/component/esm/util/align.js","../../node_modules/@antv/component/esm/tooltip/html.js","../../node_modules/@antv/component/esm/trend/constant.js","../../node_modules/@antv/component/esm/trend/path.js","../../node_modules/@antv/component/esm/trend/trend.js","../../node_modules/@antv/component/esm/slider/handler.js","../../node_modules/@antv/component/esm/slider/constant.js","../../node_modules/@antv/component/esm/slider/slider.js","../../node_modules/@antv/component/esm/scrollbar/scrollbar.js","../../node_modules/@antv/g2/esm/dependents.js","../../node_modules/@antv/g2/esm/util/graphics.js","../../node_modules/@antv/g2/esm/util/helper.js","../../node_modules/@antv/g2/esm/util/bbox.js","../../node_modules/@antv/g2/esm/util/coordinate.js","../../node_modules/@antv/g2/esm/util/scale.js","../../node_modules/@antv/g2/esm/util/axis.js","../../node_modules/@antv/g2/esm/facet/facet.js","../../node_modules/@antv/g2/esm/facet/index.js","../../node_modules/@antv/g2/esm/interaction/action/base.js","../../node_modules/@antv/g2/esm/interaction/action/callback.js","../../node_modules/@antv/g2/esm/interaction/action/register.js","../../node_modules/@antv/g2/esm/geometry/shape/util/path.js","../../node_modules/@antv/g2/esm/interaction/action/util.js","../../node_modules/@antv/g2/esm/interaction/context.js","../../node_modules/@antv/g2/esm/interaction/interaction.js","../../node_modules/@antv/g2/esm/interaction/grammar-interaction.js","../../node_modules/@antv/g2/esm/interaction/index.js","../../node_modules/@antv/g2/esm/theme/util/create-by-style-sheet.js","../../node_modules/@antv/g2/esm/theme/style-sheet/light.js","../../node_modules/@antv/g2/esm/theme/util/create-theme.js","../../node_modules/@antv/g2/esm/theme/index.js","../../node_modules/@antv/g2/esm/util/tooltip.js","../../node_modules/@antv/g2/esm/util/padding.js","../../node_modules/@antv/g2/esm/chart/controller/index.js","../../node_modules/@antv/g2/esm/chart/controller/coordinate.js","../../node_modules/@antv/g2/esm/chart/event.js","../../node_modules/@antv/g2/esm/chart/layout/index.js","../../node_modules/@antv/g2/esm/chart/util/scale-pool.js","../../node_modules/@antv/g2/esm/chart/layout/padding-cal.js","../../node_modules/@antv/g2/esm/chart/layout/auto.js","../../node_modules/@antv/g2/esm/chart/util/sync-view-padding.js","../../node_modules/@antv/g2/esm/chart/view.js","../../node_modules/@antv/g2/esm/chart/chart.js","../../node_modules/@antv/g2/esm/chart/controller/base.js","../../node_modules/@antv/g2/esm/chart/controller/tooltip.js","../../node_modules/@antv/g2/esm/animate/animation/index.js","../../node_modules/@antv/g2/esm/animate/index.js","../../node_modules/@antv/g2/esm/geometry/shape/constant.js","../../node_modules/@antv/g2/esm/geometry/element/index.js","../../node_modules/@antv/g2/esm/geometry/label/index.js","../../node_modules/@antv/g2/esm/geometry/shape/base.js","../../node_modules/@antv/g2/esm/geometry/util/group-data.js","../../node_modules/@antv/g2/esm/geometry/util/is-model-change.js","../../node_modules/@antv/g2/esm/geometry/util/parse-fields.js","../../node_modules/@antv/g2/esm/geometry/util/diff.js","../../node_modules/@antv/g2/esm/geometry/base.js","../../node_modules/@antv/g2/esm/util/transform.js","../../node_modules/@antv/g2/esm/geometry/label/util/index.js","../../node_modules/@antv/g2/esm/component/update-label.js","../../node_modules/@antv/g2/esm/component/labels.js","../../node_modules/@antv/g2/esm/geometry/label/base.js","../../node_modules/@antv/g2/esm/util/attr.js","../../node_modules/@antv/g2/esm/util/marker.js","../../node_modules/@antv/g2/esm/util/legend.js","../../node_modules/@antv/g2/esm/geometry/shape/util/get-path-points.js","../../node_modules/@antv/g2/esm/geometry/shape/util/get-style.js","../../node_modules/@antv/g2/esm/geometry/shape/util/split-points.js","../../node_modules/@antv/g2/esm/geometry/shape/line/util.js","../../node_modules/@antv/g2/esm/geometry/shape/line/index.js","../../node_modules/@antv/g2/esm/core.js","../../node_modules/@antv/g2/esm/theme/style-sheet/dark.js","../../node_modules/@antv/g-canvas/esm/util/util.js","../../node_modules/@antv/g-canvas/esm/util/parse.js","../../node_modules/@antv/g-canvas/esm/util/arc-params.js","../../node_modules/@antv/g-canvas/esm/util/arrow.js","../../node_modules/@antv/g-canvas/esm/util/draw.js","../../node_modules/@antv/g-canvas/esm/group.js","../../node_modules/@antv/g-canvas/esm/shape/base.js","../../node_modules/@antv/g-canvas/esm/shape/circle.js","../../node_modules/@antv/g-canvas/esm/shape/ellipse.js","../../node_modules/@antv/g-canvas/esm/shape/image.js","../../node_modules/@antv/g-canvas/esm/util/in-stroke/line.js","../../node_modules/@antv/g-canvas/esm/shape/line.js","../../node_modules/@antv/g-canvas/esm/shape/marker.js","../../node_modules/@antv/g-canvas/esm/util/in-path/point-in-path.js","../../node_modules/@antv/g-canvas/esm/util/in-path/polygon.js","../../node_modules/@antv/g-canvas/esm/util/in-stroke/arc.js","../../node_modules/@antv/g-canvas/esm/util/path.js","../../node_modules/@antv/g-canvas/esm/shape/path.js","../../node_modules/@antv/g-canvas/esm/util/in-stroke/polyline.js","../../node_modules/@antv/g-canvas/esm/shape/polygon.js","../../node_modules/@antv/g-canvas/esm/shape/polyline.js","../../node_modules/@antv/g-canvas/esm/util/in-stroke/rect.js","../../node_modules/@antv/g-canvas/esm/util/in-stroke/rect-radius.js","../../node_modules/@antv/g-canvas/esm/shape/rect.js","../../node_modules/@antv/g-canvas/esm/shape/text.js","../../node_modules/@antv/g-canvas/esm/util/hit.js","../../node_modules/@antv/g-canvas/esm/canvas.js","../../node_modules/@antv/g-canvas/esm/index.js","../../node_modules/@antv/g-svg/esm/constant.js","../../node_modules/@antv/g-svg/esm/util/dom.js","../../node_modules/@antv/g-svg/esm/util/svg.js","../../node_modules/@antv/g-svg/esm/util/draw.js","../../node_modules/@antv/g-svg/esm/group.js","../../node_modules/@antv/g-svg/esm/shape/base.js","../../node_modules/@antv/g-svg/esm/shape/circle.js","../../node_modules/@antv/g-svg/esm/shape/dom.js","../../node_modules/@antv/g-svg/esm/shape/ellipse.js","../../node_modules/@antv/g-svg/esm/shape/image.js","../../node_modules/@antv/g-svg/esm/shape/line.js","../../node_modules/@antv/g-svg/esm/shape/marker/symbols.js","../../node_modules/@antv/g-svg/esm/shape/marker/index.js","../../node_modules/@antv/g-svg/esm/shape/path.js","../../node_modules/@antv/g-svg/esm/shape/polygon.js","../../node_modules/@antv/g-svg/esm/shape/polyline.js","../../node_modules/@antv/g-svg/esm/util/format.js","../../node_modules/@antv/g-svg/esm/shape/rect.js","../../node_modules/@antv/g-svg/esm/shape/text.js","../../node_modules/@antv/g-svg/esm/defs/gradient.js","../../node_modules/@antv/g-svg/esm/defs/shadow.js","../../node_modules/@antv/g-svg/esm/defs/arrow.js","../../node_modules/@antv/g-svg/esm/defs/clip.js","../../node_modules/@antv/g-svg/esm/defs/pattern.js","../../node_modules/@antv/g-svg/esm/defs/index.js","../../node_modules/@antv/g-svg/esm/canvas.js","../../node_modules/@antv/g-svg/esm/index.js","../../node_modules/@antv/g2/esm/geometry/path.js","../../node_modules/@antv/g2/esm/geometry/shape/area/util.js","../../node_modules/@antv/g2/esm/geometry/shape/area/index.js","../../node_modules/@antv/g2/esm/geometry/area.js","../../node_modules/@antv/g2/esm/geometry/shape/edge/index.js","../../node_modules/@antv/g2/esm/geometry/edge.js","../../node_modules/@antv/g2/esm/geometry/heatmap.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/util.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/index.js","../../node_modules/@antv/g2/esm/geometry/util/shape-size.js","../../node_modules/@antv/g2/esm/geometry/interval.js","../../node_modules/@antv/g2/esm/geometry/line.js","../../node_modules/@antv/g2/esm/geometry/shape/point/util.js","../../node_modules/@antv/g2/esm/geometry/shape/point/index.js","../../node_modules/@antv/g2/esm/geometry/point.js","../../node_modules/@antv/g2/esm/geometry/shape/polygon/index.js","../../node_modules/@antv/g2/esm/geometry/polygon.js","../../node_modules/@antv/g2/esm/geometry/shape/schema/index.js","../../node_modules/@antv/g2/esm/geometry/schema.js","../../node_modules/@antv/g2/esm/geometry/shape/violin/index.js","../../node_modules/@antv/g2/esm/geometry/violin.js","../../node_modules/@antv/g2/esm/geometry/shape/area/line.js","../../node_modules/@antv/g2/esm/geometry/shape/area/smooth.js","../../node_modules/@antv/g2/esm/geometry/shape/area/smooth-line.js","../../node_modules/@antv/g2/esm/geometry/shape/edge/util.js","../../node_modules/@antv/g2/esm/geometry/shape/edge/arc.js","../../node_modules/@antv/g2/esm/geometry/shape/edge/smooth.js","../../node_modules/@antv/g2/esm/geometry/shape/edge/vhv.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/funnel.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/hollow-rect.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/line.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/pyramid.js","../../node_modules/@antv/g2/esm/geometry/shape/interval/tick.js","../../node_modules/@antv/g2/esm/geometry/shape/line/step.js","../../node_modules/@antv/g2/esm/geometry/shape/point/hollow.js","../../node_modules/@antv/g2/esm/geometry/shape/point/image.js","../../node_modules/@antv/g2/esm/geometry/shape/point/solid.js","../../node_modules/@antv/g2/esm/geometry/shape/schema/box.js","../../node_modules/@antv/g2/esm/geometry/shape/schema/candle.js","../../node_modules/@antv/g2/esm/geometry/shape/polygon/square.js","../../node_modules/@antv/g2/esm/geometry/shape/violin/smooth.js","../../node_modules/@antv/g2/esm/geometry/shape/violin/hollow.js","../../node_modules/@antv/g2/esm/geometry/label/interval.js","../../node_modules/@antv/g2/esm/geometry/label/polar.js","../../node_modules/@antv/g2/esm/geometry/label/pie.js","../../node_modules/@antv/g2/esm/geometry/label/layout/pie/distribute.js","../../node_modules/@antv/g2/esm/geometry/label/layout/pie/util.js","../../node_modules/@antv/g2/esm/geometry/label/layout/pie/outer.js","../../node_modules/@antv/g2/esm/geometry/label/layout/pie/spider.js","../../node_modules/@antv/g2/esm/geometry/label/layout/limit-in-canvas.js","../../node_modules/@antv/g2/esm/geometry/label/layout/limit-in-shape.js","../../node_modules/@antv/g2/esm/geometry/label/layout/overlap.js","../../node_modules/@antv/g2/esm/util/collision-detect.js","../../node_modules/@antv/g2/esm/geometry/label/layout/hide-overlap.js","../../node_modules/@antv/g2/esm/util/color.js","../../node_modules/@antv/g2/esm/geometry/label/layout/adjust-color.js","../../node_modules/@antv/g2/esm/geometry/label/layout/interval/adjust-position.js","../../node_modules/@antv/g2/esm/geometry/label/layout/interval/hide-overlap.js","../../node_modules/@antv/g2/esm/geometry/label/layout/point/adjust-position.js","../../node_modules/@antv/g2/esm/geometry/label/layout/path/adjust-position.js","../../node_modules/@antv/g2/esm/util/context.js","../../node_modules/@antv/g2/esm/util/text.js","../../node_modules/@antv/g2/esm/geometry/label/layout/limit-in-plot.js","../../node_modules/@antv/g2/esm/animate/animation/fade.js","../../node_modules/@antv/g2/esm/animate/animation/util.js","../../node_modules/@antv/g2/esm/animate/animation/grow-in.js","../../node_modules/@antv/g2/esm/animate/animation/path-in.js","../../node_modules/@antv/g2/esm/animate/animation/position-update.js","../../node_modules/@antv/g2/esm/animate/animation/scale-in.js","../../node_modules/@antv/g2/esm/animate/animation/sector-path-update.js","../../node_modules/@antv/g2/esm/animate/animation/wave-in.js","../../node_modules/@antv/g2/esm/animate/animation/zoom.js","../../node_modules/@antv/g2/esm/util/facet.js","../../node_modules/@antv/g2/esm/facet/circle.js","../../node_modules/@antv/g2/esm/facet/list.js","../../node_modules/@antv/g2/esm/facet/matrix.js","../../node_modules/@antv/g2/esm/facet/mirror.js","../../node_modules/@antv/g2/esm/facet/rect.js","../../node_modules/@antv/g2/esm/facet/tree.js","../../node_modules/@antv/g2/esm/util/stat.js","../../node_modules/@antv/g2/esm/util/annotation.js","../../node_modules/@antv/g2/esm/chart/controller/annotation.js","../../node_modules/@antv/g2/esm/util/grid.js","../../node_modules/@antv/g2/esm/chart/controller/axis.js","../../node_modules/@antv/g2/esm/util/direction.js","../../node_modules/@antv/g2/esm/chart/controller/legend.js","../../node_modules/@antv/g2/esm/chart/controller/slider.js","../../node_modules/@antv/g2/esm/chart/controller/scrollbar.js","../../node_modules/@antv/g2/esm/interaction/action/active-region.js","../../node_modules/@antv/g2/esm/interaction/action/component/tooltip/geometry.js","../../node_modules/@antv/g2/esm/interaction/action/component/tooltip/sibling.js","../../node_modules/@antv/g2/esm/interaction/action/component/tooltip/ellipsis-text.js","../../node_modules/@antv/g2/esm/interaction/action/element/state-base.js","../../node_modules/@antv/g2/esm/interaction/action/element/state.js","../../node_modules/@antv/g2/esm/interaction/action/element/active.js","../../node_modules/@antv/g2/esm/interaction/action/element/link-by-color.js","../../node_modules/@antv/g2/esm/interaction/action/element/range-state.js","../../node_modules/@antv/g2/esm/interaction/action/element/range-active.js","../../node_modules/@antv/g2/esm/interaction/action/element/single-state.js","../../node_modules/@antv/g2/esm/interaction/action/element/single-active.js","../../node_modules/@antv/g2/esm/interaction/action/element/highlight-util.js","../../node_modules/@antv/g2/esm/interaction/action/element/highlight.js","../../node_modules/@antv/g2/esm/interaction/action/element/highlight-by-color.js","../../node_modules/@antv/g2/esm/interaction/action/element/highlight-by-x.js","../../node_modules/@antv/g2/esm/interaction/action/element/range-highlight.js","../../node_modules/@antv/g2/esm/interaction/action/element/single-highlight.js","../../node_modules/@antv/g2/esm/interaction/action/element/range-selected.js","../../node_modules/@antv/g2/esm/interaction/action/element/selected.js","../../node_modules/@antv/g2/esm/interaction/action/element/single-selected.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-state.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-active.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-highlight-util.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-highlight.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-selected.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-unchecked.js","../../node_modules/@antv/g2/esm/interaction/action/component/list-checked.js","../../node_modules/@antv/g2/esm/interaction/action/mask/base.js","../../node_modules/@antv/g2/esm/interaction/action/mask/circle.js","../../node_modules/@antv/g2/esm/interaction/action/mask/rect.js","../../node_modules/@antv/g2/esm/interaction/action/mask/dim-rect.js","../../node_modules/@antv/g2/esm/interaction/action/mask/path.js","../../node_modules/@antv/g2/esm/interaction/action/mask/smooth-path.js","../../node_modules/@antv/g2/esm/interaction/action/cursor.js","../../node_modules/@antv/g2/esm/interaction/action/data/filter.js","../../node_modules/@antv/g2/esm/interaction/action/data/range-filter.js","../../node_modules/@antv/g2/esm/interaction/action/data/sibling-filter.js","../../node_modules/@antv/g2/esm/interaction/action/element/filter.js","../../node_modules/@antv/g2/esm/interaction/action/element/sibling-filter.js","../../node_modules/@antv/g2/esm/interaction/action/view/button.js","../../node_modules/@antv/g2/esm/interaction/action/view/drag.js","../../node_modules/@antv/g2/esm/interaction/action/view/move.js","../../node_modules/@antv/g2/esm/interaction/action/view/scale-transform.js","../../node_modules/@antv/g2/esm/interaction/action/view/scale-translate.js","../../node_modules/@antv/g2/esm/interaction/action/view/scale-zoom.js","../../node_modules/@antv/g2/esm/interaction/action/view/mousewheel-scroll.js","../../node_modules/@antv/g2/esm/index.js","../../node_modules/@antv/g2plot/esm/utils/flow.js","../../node_modules/@antv/g2plot/esm/utils/pick.js","../../node_modules/@antv/g2plot/esm/utils/template.js","../../node_modules/@antv/g2plot/esm/utils/invariant.js","../../node_modules/@antv/g2plot/esm/utils/dom.js","../../node_modules/@antv/g2plot/esm/utils/geometry.js","../../node_modules/@antv/g2plot/esm/utils/view.js","../../node_modules/@antv/g2plot/esm/utils/label.js","../../node_modules/@antv/g2plot/esm/utils/path.js","../../node_modules/@antv/g2plot/esm/utils/deep-assign.js","../../node_modules/@antv/g2plot/esm/utils/kebab-case.js","../../node_modules/@antv/g2plot/esm/utils/statistic.js","../../node_modules/@antv/g2plot/esm/utils/context.js","../../node_modules/@antv/g2plot/esm/utils/measure-text.js","../../node_modules/@antv/g2plot/esm/utils/number.js","../../node_modules/@antv/g2plot/esm/utils/data.js","../../node_modules/@antv/g2plot/esm/utils/padding.js","../../node_modules/@antv/g2plot/esm/core/global.js","../../node_modules/@antv/g2plot/esm/core/locale.js","../../node_modules/@antv/g2plot/esm/locales/en_US.js","../../node_modules/@antv/g2plot/esm/locales/zh_CN.js","../../node_modules/size-sensor/lib/id.js","../../node_modules/size-sensor/lib/debounce.js","../../node_modules/size-sensor/lib/constant.js","../../node_modules/size-sensor/lib/sensors/object.js","../../node_modules/size-sensor/lib/sensors/resizeObserver.js","../../node_modules/size-sensor/lib/sensors/index.js","../../node_modules/size-sensor/lib/sensorPool.js","../../node_modules/size-sensor/lib/index.js","../../node_modules/@antv/g2plot/esm/core/plot.js","../../node_modules/@antv/g2plot/esm/constant.js","../../node_modules/@antv/g2plot/esm/utils/pattern/util.js","../../node_modules/@antv/g2plot/esm/utils/pattern/dot.js","../../node_modules/@antv/g2plot/esm/utils/pattern/line.js","../../node_modules/@antv/g2plot/esm/utils/pattern/square.js","../../node_modules/@antv/g2plot/esm/utils/pattern/index.js","../../node_modules/@antv/g2plot/esm/adaptor/pattern.js","../../node_modules/@antv/g2plot/esm/adaptor/common.js","../../node_modules/@antv/g2plot/esm/utils/tooltip.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/base.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/area.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/line.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/point.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/interval.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/polygon.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/edge.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/schema.js","../../node_modules/@antv/g2plot/esm/adaptor/geometries/violin.js","../../node_modules/@antv/g2plot/esm/plots/line/constants.js","../../node_modules/@antv/g2plot/esm/plots/line/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/line/interactions/marker-active.js","../../node_modules/@antv/g2plot/esm/plots/line/interactions/index.js","../../node_modules/@antv/g2plot/esm/plots/line/index.js","../../node_modules/@antv/g2plot/esm/utils/transform/percent.js","../../node_modules/@antv/g2plot/esm/plots/area/constants.js","../../node_modules/@antv/g2plot/esm/plots/area/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/area/index.js","../../node_modules/@antv/g2plot/esm/utils/conversion.js","../../node_modules/@antv/g2plot/esm/adaptor/conversion-tag.js","../../node_modules/@antv/g2plot/esm/adaptor/connected-area.js","../../node_modules/@antv/g2plot/esm/interactions/actions/reset-button.js","../../node_modules/@antv/g2plot/esm/interactions/brush.js","../../node_modules/@antv/g2plot/esm/adaptor/brush.js","../../node_modules/@antv/g2plot/esm/plots/column/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/column/constants.js","../../node_modules/@antv/g2plot/esm/plots/column/index.js","../../node_modules/@antv/g2plot/esm/plots/bar/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/bar/constants.js","../../node_modules/@antv/g2plot/esm/plots/bar/index.js","../../node_modules/@antv/g2plot/esm/plots/pie/contants.js","../../node_modules/@antv/g2plot/esm/plots/pie/utils.js","../../node_modules/@antv/g2plot/esm/utils/matrix.js","../../node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/legend-active.js","../../node_modules/@antv/g2plot/esm/plots/pie/interactions/util.js","../../node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/statistic-active.js","../../node_modules/@antv/g2plot/esm/plots/pie/interactions/index.js","../../node_modules/@antv/g2plot/esm/plots/pie/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/pie/index.js","../../node_modules/@antv/g2plot/esm/plots/rose/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/rose/constant.js","../../node_modules/@antv/g2plot/esm/plots/rose/index.js","../../node_modules/@antv/g2plot/esm/utils/transform/word-cloud.js","../../node_modules/@antv/g2plot/esm/plots/word-cloud/utils.js","../../node_modules/@antv/g2plot/esm/plots/word-cloud/constant.js","../../node_modules/@antv/g2plot/esm/plots/word-cloud/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/word-cloud/shapes/word-cloud.js","../../node_modules/@antv/g2plot/esm/plots/word-cloud/index.js","../../node_modules/d3-regression/dist/d3-regression.esm.js","../../node_modules/@antv/g2plot/esm/plots/scatter/util.js","../../node_modules/@antv/g2plot/esm/plots/scatter/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/scatter/constant.js","../../node_modules/@antv/g2plot/esm/interactions/drag-move.js","../../node_modules/@antv/g2plot/esm/plots/scatter/index.js","../../node_modules/@antv/g2plot/esm/plots/radar/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/radar/interactions/radar-tooltip-action.js","../../node_modules/@antv/g2plot/esm/plots/radar/interactions/index.js","../../node_modules/@antv/g2plot/esm/plots/radar/index.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/types.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/constant.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/util/option.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/util/legend.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/util/geometry.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/util/render-sider.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/dual-axes/index.js","../../node_modules/@antv/g2plot/esm/plots/tiny-line/constants.js","../../node_modules/@antv/g2plot/esm/plots/tiny-line/utils.js","../../node_modules/@antv/g2plot/esm/plots/tiny-area/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/tiny-line/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/tiny-line/index.js","../../node_modules/@antv/g2plot/esm/plots/tiny-column/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/tiny-column/constants.js","../../node_modules/@antv/g2plot/esm/plots/tiny-column/index.js","../../node_modules/@antv/g2plot/esm/plots/tiny-area/constants.js","../../node_modules/@antv/g2plot/esm/plots/tiny-area/index.js","../../node_modules/@antv/g2plot/esm/utils/transform/histogram.js","../../node_modules/@antv/g2plot/esm/plots/histogram/constant.js","../../node_modules/@antv/g2plot/esm/plots/histogram/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/histogram/index.js","../../node_modules/@antv/g2plot/esm/plots/progress/constants.js","../../node_modules/@antv/g2plot/esm/plots/progress/utils.js","../../node_modules/@antv/g2plot/esm/plots/progress/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/progress/index.js","../../node_modules/@antv/g2plot/esm/plots/ring-progress/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/ring-progress/constants.js","../../node_modules/@antv/g2plot/esm/plots/ring-progress/index.js","../../node_modules/@antv/g2plot/esm/plots/heatmap/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/heatmap/constant.js","../../node_modules/@antv/g2plot/esm/plots/heatmap/shapes/circle.js","../../node_modules/@antv/g2plot/esm/plots/heatmap/shapes/square.js","../../node_modules/@antv/g2plot/esm/plots/heatmap/index.js","../../node_modules/@antv/g2plot/esm/plots/box/constant.js","../../node_modules/@antv/g2plot/esm/plots/box/utils.js","../../node_modules/@antv/g2plot/esm/plots/box/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/box/index.js","../../node_modules/pdfast/src/helper.js","../../node_modules/pdfast/src/index.js","../../node_modules/@antv/g2plot/esm/utils/transform/quantile.js","../../node_modules/@antv/g2plot/esm/plots/violin/utils.js","../../node_modules/@antv/g2plot/esm/plots/violin/constant.js","../../node_modules/@antv/g2plot/esm/plots/violin/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/violin/index.js","../../node_modules/@antv/g2plot/esm/utils/color/blend.js","../../node_modules/fmin/src/bisect.js","../../node_modules/fmin/src/blas1.js","../../node_modules/fmin/src/nelderMead.js","../../node_modules/fmin/src/linesearch.js","../../node_modules/fmin/src/conjugateGradient.js","../../node_modules/@antv/g2plot/esm/plots/venn/layout/circleintersection.js","../../node_modules/@antv/g2plot/esm/plots/venn/layout/layout.js","../../node_modules/@antv/g2plot/esm/plots/venn/layout/diagram.js","../../node_modules/@antv/g2plot/esm/plots/venn/constant.js","../../node_modules/@antv/g2plot/esm/plots/venn/utils.js","../../node_modules/@antv/g2plot/esm/plots/venn/shape.js","../../node_modules/@antv/g2plot/esm/plots/venn/label.js","../../node_modules/@antv/g2plot/esm/plots/venn/interactions/util.js","../../node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/active.js","../../node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/highlight.js","../../node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/selected.js","../../node_modules/@antv/g2plot/esm/plots/venn/interactions/index.js","../../node_modules/@antv/g2plot/esm/plots/venn/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/venn/index.js","../../node_modules/@antv/g2plot/esm/plots/stock/constant.js","../../node_modules/@antv/g2plot/esm/plots/stock/utils.js","../../node_modules/@antv/g2plot/esm/plots/stock/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/stock/index.js","../../node_modules/@antv/g2plot/esm/plots/funnel/constant.js","../../node_modules/@antv/g2plot/esm/plots/funnel/geometries/common.js","../../node_modules/@antv/g2plot/esm/plots/funnel/geometries/basic.js","../../node_modules/@antv/g2plot/esm/plots/funnel/geometries/compare.js","../../node_modules/@antv/g2plot/esm/plots/funnel/geometries/facet.js","../../node_modules/@antv/g2plot/esm/plots/funnel/geometries/dynamic-height.js","../../node_modules/@antv/g2plot/esm/plots/funnel/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/funnel/index.js","../../node_modules/@antv/g2plot/esm/plots/liquid/utils.js","../../node_modules/@antv/g2plot/esm/plots/liquid/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/liquid/constants.js","../../node_modules/@antv/g2plot/esm/plots/liquid/shapes/liquid.js","../../node_modules/@antv/g2plot/esm/plots/liquid/index.js","../../node_modules/@antv/g2plot/esm/plots/bullet/utils.js","../../node_modules/@antv/g2plot/esm/plots/bullet/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/bullet/constant.js","../../node_modules/@antv/g2plot/esm/plots/bullet/index.js","../../node_modules/@antv/g2plot/esm/utils/hierarchy/util.js","../../node_modules/@antv/g2plot/esm/plots/sunburst/constant.js","../../node_modules/@antv/g2plot/esm/interactions/actions/drill-down.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/cluster.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/count.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/each.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/find.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/path.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/links.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/hierarchy/index.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/array.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/pack/enclose.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/pack/siblings.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/accessors.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/constant.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/pack/index.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/round.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/dice.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/partition.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/stratify.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/tree.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/slice.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/squarify.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/index.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/binary.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/sliceDice.js","../../node_modules/@antv/g2plot/node_modules/d3-hierarchy/src/treemap/resquarify.js","../../node_modules/@antv/g2plot/esm/utils/hierarchy/partition.js","../../node_modules/@antv/g2plot/esm/utils/hierarchy/treemap.js","../../node_modules/@antv/g2plot/esm/plots/sunburst/utils.js","../../node_modules/@antv/g2plot/esm/plots/sunburst/adaptor.js","../../node_modules/@antv/g2plot/esm/interactions/drill-down.js","../../node_modules/@antv/g2plot/esm/plots/sunburst/index.js","../../node_modules/@antv/g2plot/esm/plots/gauge/constants.js","../../node_modules/@antv/g2plot/esm/plots/gauge/utils.js","../../node_modules/@antv/g2plot/esm/plots/gauge/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/gauge/shapes/indicator.js","../../node_modules/@antv/g2plot/esm/plots/gauge/shapes/meter-gauge.js","../../node_modules/@antv/g2plot/esm/plots/gauge/index.js","../../node_modules/@antv/g2plot/esm/plots/waterfall/constant.js","../../node_modules/@antv/g2plot/esm/plots/waterfall/utils.js","../../node_modules/@antv/g2plot/esm/plots/waterfall/shape.js","../../node_modules/@antv/g2plot/esm/plots/waterfall/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/waterfall/index.js","../../node_modules/@antv/g2plot/esm/plots/radial-bar/utils.js","../../node_modules/@antv/g2plot/esm/plots/radial-bar/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/radial-bar/constant.js","../../node_modules/@antv/g2plot/esm/plots/radial-bar/index.js","../../node_modules/@antv/g2plot/esm/plots/bidirectional-bar/constant.js","../../node_modules/@antv/g2plot/esm/plots/bidirectional-bar/utils.js","../../node_modules/@antv/g2plot/esm/plots/bidirectional-bar/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/bidirectional-bar/index.js","../../node_modules/@antv/g2plot/esm/plots/treemap/utils.js","../../node_modules/@antv/g2plot/esm/plots/treemap/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/treemap/constant.js","../../node_modules/@antv/g2plot/esm/plots/treemap/index.js","../../node_modules/@antv/g2plot/esm/plots/sankey/sankey/align.js","../../node_modules/@antv/g2plot/esm/plots/sankey/sankey/helper.js","../../node_modules/@antv/g2plot/esm/plots/sankey/sankey/sankey.js","../../node_modules/@antv/g2plot/esm/plots/sankey/layout.js","../../node_modules/@antv/g2plot/esm/plots/sankey/circle.js","../../node_modules/@antv/g2plot/esm/plots/sankey/helper.js","../../node_modules/@antv/g2plot/esm/plots/sankey/constant.js","../../node_modules/@antv/g2plot/esm/plots/sankey/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/sankey/interactions/actions/node-drag.js","../../node_modules/@antv/g2plot/esm/plots/sankey/interactions/node-draggable.js","../../node_modules/@antv/g2plot/esm/plots/sankey/index.js","../../node_modules/@antv/g2plot/esm/utils/transform/chord.js","../../node_modules/@antv/g2plot/esm/plots/chord/constant.js","../../node_modules/@antv/g2plot/esm/plots/chord/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/chord/index.js","../../node_modules/@antv/g2plot/esm/utils/hierarchy/pack.js","../../node_modules/@antv/g2plot/esm/plots/circle-packing/utils.js","../../node_modules/@antv/g2plot/esm/plots/circle-packing/constant.js","../../node_modules/@antv/g2plot/esm/plots/circle-packing/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/circle-packing/index.js","../../node_modules/@antv/g2plot/esm/plugin/index.js","../../node_modules/@antv/g2plot/esm/plots/mix/utils.js","../../node_modules/@antv/g2plot/esm/plots/mix/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/mix/interactions/utils.js","../../node_modules/@antv/g2plot/esm/plots/mix/interactions/association.js","../../node_modules/@antv/g2plot/esm/plots/mix/index.js","../../node_modules/@antv/g2plot/esm/plots/facet/utils.js","../../node_modules/@antv/g2plot/esm/plots/facet/adaptor.js","../../node_modules/@antv/g2plot/esm/plots/facet/constant.js","../../node_modules/@antv/g2plot/esm/plots/facet/index.js","../../node_modules/@antv/g2plot/esm/lab.js","../../node_modules/@antv/g2plot/esm/index.js","../../node_modules/@ant-design/plots/es/util/createNode.js","../../node_modules/@ant-design/plots/es/util/utils.js","../../node_modules/@ant-design/plots/es/util/getChart.js","../../node_modules/@ant-design/plots/es/hooks/useChart.js","../../node_modules/@ant-design/plots/es/errorBoundary/index.js","../../node_modules/react-content-loader/dist/react-content-loader.es.js","../../node_modules/@ant-design/plots/es/util/createLoading.js","../../node_modules/@ant-design/plots/es/components/pie/index.js","../../node_modules/@ant-design/plots/es/components/scatter/index.js","../../src/components/G2PieChart/index.tsx","../../src/pages/dashboard/Renderer/utils/replaceExpressionDetail.ts","../../src/pages/dashboard/Renderer/Renderer/Pie/index.tsx","../../node_modules/d3-hexbin/src/hexbin.js","../../src/pages/dashboard/Renderer/Renderer/Hexbin/utils.ts","../../src/pages/dashboard/Renderer/Renderer/Hexbin/render.ts","../../src/pages/dashboard/Renderer/Renderer/Hexbin/index.tsx","../../src/pages/dashboard/Renderer/Renderer/BarGauge/index.tsx","../../src/pages/dashboard/Editor/Components/Markdown/index.tsx","../../src/pages/dashboard/Renderer/Renderer/Text/index.tsx","../../src/pages/dashboard/Renderer/Renderer/Gauge/utils.ts","../../src/pages/dashboard/Renderer/Renderer/Gauge/Gauge.tsx","../../src/pages/dashboard/Renderer/utils/squares.ts","../../src/pages/dashboard/Renderer/Renderer/Gauge/index.tsx","../../src/pages/dashboard/Renderer/Renderer/Iframe/index.tsx","../../src/pages/dashboard/Renderer/utils/replaceExpressionBracket.ts","../../src/pages/dashboard/Renderer/utils/replaceFieldWithVariable.ts","../../src/pages/dashboard/Renderer/datasource/prometheus.ts","../../src/pages/alertRules/utils.ts","../../src/pages/dashboard/Renderer/datasource/elasticsearch/index.ts","../../src/pages/dashboard/Renderer/datasource/aliyunSLS.ts","../../src/pages/dashboard/Renderer/datasource/useQuery.tsx","../../src/pages/dashboard/Renderer/Renderer/index.tsx","../../src/pages/dashboard/Panels/Row.tsx","../../src/pages/dashboard/Editor/Components/Collapse/Panel.tsx","../../src/pages/dashboard/Editor/Components/Collapse/index.tsx","../../src/pages/dashboard/Editor/Fields/Tooltip/index.tsx","../../src/pages/dashboard/Editor/Fields/Legend/index.tsx","../../src/pages/dashboard/Editor/Options/Timeseries/GraphStyles.tsx","../../src/pages/dashboard/Editor/Fields/StandardOptions/index.tsx","../../node_modules/lodash/isString.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_castFunction.js","../../node_modules/lodash/forOwn.js","../../node_modules/lodash/_getPrototype.js","../../node_modules/lodash/isPlainObject.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/_baseMap.js","../../node_modules/lodash/map.js","../../node_modules/reactcss/lib/flattenNames.js","../../node_modules/lodash/_arrayEach.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/_assignValue.js","../../node_modules/lodash/_copyObject.js","../../node_modules/lodash/_baseAssign.js","../../node_modules/lodash/_nativeKeysIn.js","../../node_modules/lodash/_baseKeysIn.js","../../node_modules/lodash/keysIn.js","../../node_modules/lodash/_baseAssignIn.js","../../node_modules/lodash/_cloneBuffer.js","../../node_modules/lodash/_copyArray.js","../../node_modules/lodash/_copySymbols.js","../../node_modules/lodash/_getSymbolsIn.js","../../node_modules/lodash/_copySymbolsIn.js","../../node_modules/lodash/_getAllKeysIn.js","../../node_modules/lodash/_initCloneArray.js","../../node_modules/lodash/_cloneArrayBuffer.js","../../node_modules/lodash/_cloneDataView.js","../../node_modules/lodash/_cloneRegExp.js","../../node_modules/lodash/_cloneSymbol.js","../../node_modules/lodash/_cloneTypedArray.js","../../node_modules/lodash/_initCloneByTag.js","../../node_modules/lodash/_baseCreate.js","../../node_modules/lodash/_initCloneObject.js","../../node_modules/lodash/_baseIsMap.js","../../node_modules/lodash/isMap.js","../../node_modules/lodash/_baseIsSet.js","../../node_modules/lodash/isSet.js","../../node_modules/lodash/_baseClone.js","../../node_modules/lodash/cloneDeep.js","../../node_modules/reactcss/lib/mergeClasses.js","../../node_modules/reactcss/lib/autoprefix.js","../../node_modules/reactcss/lib/components/hover.js","../../node_modules/reactcss/lib/components/active.js","../../node_modules/reactcss/lib/loop.js","../../node_modules/reactcss/lib/index.js","../../node_modules/react-color/es/helpers/alpha.js","../../node_modules/react-color/es/helpers/checkboard.js","../../node_modules/react-color/es/components/common/Checkboard.js","../../node_modules/react-color/es/components/common/Alpha.js","../../node_modules/react-color/es/components/common/EditableInput.js","../../node_modules/react-color/es/helpers/hue.js","../../node_modules/react-color/es/components/common/Hue.js","../../node_modules/lodash-es/_listCacheClear.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_assocIndexOf.js","../../node_modules/lodash-es/_listCacheDelete.js","../../node_modules/lodash-es/_listCacheGet.js","../../node_modules/lodash-es/_listCacheHas.js","../../node_modules/lodash-es/_listCacheSet.js","../../node_modules/lodash-es/_ListCache.js","../../node_modules/lodash-es/_stackClear.js","../../node_modules/lodash-es/_stackDelete.js","../../node_modules/lodash-es/_stackGet.js","../../node_modules/lodash-es/_stackHas.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_nativeCreate.js","../../node_modules/lodash-es/_hashClear.js","../../node_modules/lodash-es/_hashDelete.js","../../node_modules/lodash-es/_hashGet.js","../../node_modules/lodash-es/_hashHas.js","../../node_modules/lodash-es/_hashSet.js","../../node_modules/lodash-es/_Hash.js","../../node_modules/lodash-es/_mapCacheClear.js","../../node_modules/lodash-es/_isKeyable.js","../../node_modules/lodash-es/_getMapData.js","../../node_modules/lodash-es/_mapCacheDelete.js","../../node_modules/lodash-es/_mapCacheGet.js","../../node_modules/lodash-es/_mapCacheHas.js","../../node_modules/lodash-es/_mapCacheSet.js","../../node_modules/lodash-es/_MapCache.js","../../node_modules/lodash-es/_stackSet.js","../../node_modules/lodash-es/_Stack.js","../../node_modules/lodash-es/_defineProperty.js","../../node_modules/lodash-es/_baseAssignValue.js","../../node_modules/lodash-es/_assignMergeValue.js","../../node_modules/lodash-es/_createBaseFor.js","../../node_modules/lodash-es/_baseFor.js","../../node_modules/lodash-es/_cloneBuffer.js","../../node_modules/lodash-es/_Uint8Array.js","../../node_modules/lodash-es/_cloneArrayBuffer.js","../../node_modules/lodash-es/_cloneTypedArray.js","../../node_modules/lodash-es/_copyArray.js","../../node_modules/lodash-es/_baseCreate.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_getPrototype.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_initCloneObject.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/isArrayLikeObject.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/isPlainObject.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_safeGet.js","../../node_modules/lodash-es/_assignValue.js","../../node_modules/lodash-es/_copyObject.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_nativeKeysIn.js","../../node_modules/lodash-es/_baseKeysIn.js","../../node_modules/lodash-es/keysIn.js","../../node_modules/lodash-es/toPlainObject.js","../../node_modules/lodash-es/_baseMergeDeep.js","../../node_modules/lodash-es/_baseMerge.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/_apply.js","../../node_modules/lodash-es/_overRest.js","../../node_modules/lodash-es/constant.js","../../node_modules/lodash-es/_baseSetToString.js","../../node_modules/lodash-es/_shortOut.js","../../node_modules/lodash-es/_setToString.js","../../node_modules/lodash-es/_baseRest.js","../../node_modules/lodash-es/_isIterateeCall.js","../../node_modules/lodash-es/_createAssigner.js","../../node_modules/lodash-es/merge.js","../../node_modules/react-color/es/components/common/Raised.js","../../node_modules/lodash-es/now.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/debounce.js","../../node_modules/lodash-es/throttle.js","../../node_modules/react-color/es/helpers/saturation.js","../../node_modules/react-color/es/components/common/Saturation.js","../../node_modules/lodash-es/_arrayEach.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/keys.js","../../node_modules/lodash-es/_baseForOwn.js","../../node_modules/lodash-es/_createBaseEach.js","../../node_modules/lodash-es/_baseEach.js","../../node_modules/lodash-es/_castFunction.js","../../node_modules/lodash-es/forEach.js","../../node_modules/tinycolor2/tinycolor.js","../../node_modules/react-color/es/helpers/color.js","../../node_modules/react-color/es/components/common/ColorWrap.js","../../node_modules/react-color/es/helpers/interaction.js","../../node_modules/react-color/es/components/common/Swatch.js","../../node_modules/react-color/es/components/alpha/AlphaPointer.js","../../node_modules/react-color/es/components/alpha/Alpha.js","../../node_modules/lodash-es/_arrayMap.js","../../node_modules/lodash-es/_setCacheAdd.js","../../node_modules/lodash-es/_setCacheHas.js","../../node_modules/lodash-es/_SetCache.js","../../node_modules/lodash-es/_arraySome.js","../../node_modules/lodash-es/_cacheHas.js","../../node_modules/lodash-es/_equalArrays.js","../../node_modules/lodash-es/_mapToArray.js","../../node_modules/lodash-es/_setToArray.js","../../node_modules/lodash-es/_equalByTag.js","../../node_modules/lodash-es/_arrayPush.js","../../node_modules/lodash-es/_baseGetAllKeys.js","../../node_modules/lodash-es/_arrayFilter.js","../../node_modules/lodash-es/stubArray.js","../../node_modules/lodash-es/_getSymbols.js","../../node_modules/lodash-es/_getAllKeys.js","../../node_modules/lodash-es/_equalObjects.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/_baseIsEqualDeep.js","../../node_modules/lodash-es/_baseIsEqual.js","../../node_modules/lodash-es/_baseIsMatch.js","../../node_modules/lodash-es/_isStrictComparable.js","../../node_modules/lodash-es/_getMatchData.js","../../node_modules/lodash-es/_matchesStrictComparable.js","../../node_modules/lodash-es/_baseMatches.js","../../node_modules/lodash-es/_isKey.js","../../node_modules/lodash-es/memoize.js","../../node_modules/lodash-es/_memoizeCapped.js","../../node_modules/lodash-es/_stringToPath.js","../../node_modules/lodash-es/_baseToString.js","../../node_modules/lodash-es/toString.js","../../node_modules/lodash-es/_castPath.js","../../node_modules/lodash-es/_toKey.js","../../node_modules/lodash-es/_baseGet.js","../../node_modules/lodash-es/get.js","../../node_modules/lodash-es/_baseHasIn.js","../../node_modules/lodash-es/_hasPath.js","../../node_modules/lodash-es/hasIn.js","../../node_modules/lodash-es/_baseMatchesProperty.js","../../node_modules/lodash-es/_baseProperty.js","../../node_modules/lodash-es/_basePropertyDeep.js","../../node_modules/lodash-es/property.js","../../node_modules/lodash-es/_baseIteratee.js","../../node_modules/lodash-es/_baseMap.js","../../node_modules/lodash-es/map.js","../../node_modules/react-color/es/components/block/BlockSwatches.js","../../node_modules/react-color/es/components/block/Block.js","../../node_modules/material-colors/dist/colors.es2015.js","../../node_modules/react-color/es/components/circle/CircleSwatch.js","../../node_modules/react-color/es/components/circle/Circle.js","../../node_modules/lodash-es/isUndefined.js","../../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../../node_modules/react-color/es/components/chrome/ChromeFields.js","../../node_modules/react-color/es/components/chrome/ChromePointer.js","../../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../../node_modules/react-color/es/components/chrome/Chrome.js","../../node_modules/react-color/es/components/compact/CompactColor.js","../../node_modules/react-color/es/components/compact/CompactFields.js","../../node_modules/react-color/es/components/compact/Compact.js","../../node_modules/react-color/es/components/github/GithubSwatch.js","../../node_modules/react-color/es/components/github/Github.js","../../node_modules/react-color/es/components/hue/HuePointer.js","../../node_modules/react-color/es/components/hue/Hue.js","../../node_modules/react-color/es/components/material/Material.js","../../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../../node_modules/react-color/es/components/photoshop/Photoshop.js","../../node_modules/react-color/es/components/sketch/SketchFields.js","../../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../../node_modules/react-color/es/components/sketch/Sketch.js","../../node_modules/react-color/es/components/slider/SliderSwatch.js","../../node_modules/react-color/es/components/slider/SliderSwatches.js","../../node_modules/react-color/es/components/slider/SliderPointer.js","../../node_modules/react-color/es/components/slider/Slider.js","../../node_modules/@icons/material/CheckIcon.js","../../node_modules/react-color/es/components/swatches/SwatchesColor.js","../../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../../node_modules/react-color/es/components/swatches/Swatches.js","../../node_modules/react-color/es/components/twitter/Twitter.js","../../node_modules/react-color/es/components/google/GooglePointerCircle.js","../../node_modules/react-color/es/components/google/GooglePointer.js","../../node_modules/react-color/es/components/google/GoogleFields.js","../../node_modules/react-color/es/components/google/Google.js","../../src/components/useOnClickOutside.tsx","../../src/pages/dashboard/Components/ColorPicker/index.tsx","../../src/pages/dashboard/Editor/Fields/Thresholds/index.tsx","../../src/pages/dashboard/Editor/Options/Timeseries/index.tsx","../../src/pages/dashboard/Editor/Options/Stat/GraphStyles.tsx","../../src/pages/dashboard/Editor/Fields/ValueMappings/index.tsx","../../src/pages/dashboard/Editor/Options/Stat/index.tsx","../../src/pages/dashboard/Editor/Options/Table/GraphStyles.tsx","../../src/pages/dashboard/Editor/Fields/Overrides/index.tsx","../../src/pages/dashboard/Editor/Options/Table/index.tsx","../../src/pages/dashboard/Editor/Options/Pie/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/Pie/index.tsx","../../src/pages/dashboard/Editor/Options/Hexbin/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/Hexbin/index.tsx","../../src/pages/dashboard/Editor/Options/BarGauge/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/BarGauge/index.tsx","../../src/pages/dashboard/Editor/Options/Text/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/Text/index.tsx","../../src/pages/dashboard/Editor/Options/Gauge/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/Gauge/index.tsx","../../src/pages/dashboard/Editor/Options/Iframe/GraphStyles.tsx","../../src/pages/dashboard/Editor/Options/Iframe/index.tsx","../../src/pages/dashboard/Editor/Options/index.tsx","../../src/components/Resolution/index.tsx","../../src/pages/dashboard/Renderer/utils/getFirstUnusedLetter.ts","../../src/pages/dashboard/Editor/QueryEditor/Prometheus.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/Values/index.tsx","../../src/pages/alertRules/Form/Rule/Rule/Log/ElasticsearchSettings/Time/index.tsx","../../src/pages/dashboard/Editor/QueryEditor/Elasticsearch.tsx","../../src/pages/explorer/AliyunSLS/AdvancedSettings.tsx","../../src/pages/dashboard/Editor/QueryEditor/config.ts","../../src/pages/dashboard/Editor/QueryEditor/AliyunSLS.tsx","../../src/pages/dashboard/Editor/TransformationsEditor/OrganizeFields/OrganizeFields.tsx","../../src/pages/dashboard/Editor/TransformationsEditor/OrganizeFields/index.tsx","../../src/pages/dashboard/Editor/QueryEditor/components/DatasourceSelect/index.tsx","../../src/pages/dashboard/Editor/QueryEditor/index.tsx","../../src/pages/dashboard/Editor/Form.tsx","../../src/pages/dashboard/Editor/util.tsx","../../src/pages/dashboard/Editor/index.tsx","../../src/pages/dashboard/Panels/index.tsx","../../src/pages/dashboard/Detail/Title.tsx","../../src/pages/dashboard/Detail/Detail.tsx","../../src/pages/dashboard/Detail/index.tsx","../../src/pages/dashboard/Share/index.tsx","../../src/pages/chart/locale/en_US.ts","../../src/pages/chart/locale/zh_CN.ts","../../src/pages/chart/locale/index.ts","../../src/pages/chart/index.tsx","../../src/pages/user/component/userForm/index.tsx","../../src/pages/user/component/teamForm/index.tsx","../../src/store/manageInterface/index.ts","../../src/pages/user/component/businessForm/index.tsx","../../src/pages/user/component/passwordForm/index.tsx","../../src/pages/user/component/addUser/index.tsx","../../src/pages/user/component/createModal/index.tsx","../../src/pages/user/locale/en_US.ts","../../src/pages/user/locale/zh_CN.ts","../../src/pages/user/locale/index.ts","../../src/pages/user/groups.tsx","../../src/pages/user/users.tsx","../../src/pages/user/business.tsx","../../node_modules/@codemirror/theme-one-dark/dist/index.js","../../node_modules/@uiw/react-codemirror/esm/theme/light.js","../../node_modules/@uiw/react-codemirror/esm/useCodeMirror.js","../../node_modules/@uiw/react-codemirror/esm/index.js","../../node_modules/@lezer/json/dist/index.es.js","../../node_modules/@codemirror/lang-json/dist/index.js","../../src/pages/explorer/Elasticsearch/metricQuery.tsx","../../src/pages/explorer/components/FieldsSidebar/FieldsList.tsx","../../src/pages/explorer/components/FieldsSidebar/index.tsx","../../src/pages/explorer/Elasticsearch/index.tsx","../../src/pages/explorer/AliyunSLS/utils.tsx","../../src/pages/explorer/AliyunSLS/RawTable.tsx","../../src/pages/explorer/AliyunSLS/Raw.tsx","../../src/pages/explorer/AliyunSLS/Metric.tsx","../../src/pages/explorer/AliyunSLS/index.tsx","../../src/components/PromGraphCpt/services.ts","../../src/components/PromGraphCpt/Table.tsx","../../src/components/PromGraphCpt/components/GraphStandardOptions.tsx","../../src/components/PromGraphCpt/Graph.tsx","../../src/components/PromGraphCpt/components/QueryStatsView.tsx","../../src/components/PromGraphCpt/components/MetricsExplorer.tsx","../../src/components/PromGraphCpt/locale/en_US.ts","../../src/components/PromGraphCpt/locale/zh_CN.ts","../../src/components/PromGraphCpt/locale/index.ts","../../src/components/PromGraphCpt/index.tsx","../../src/pages/explorer/Prometheus/index.tsx","../../src/pages/explorer/Explorer.tsx","../../src/pages/explorer/Metric.tsx","../../src/pages/explorer/Log.tsx","../../src/pages/explorer/locale/en_US.ts","../../src/pages/explorer/locale/zh_CN.ts","../../src/pages/explorer/locale/index.ts","../../src/services/metricViews.ts","../../src/pages/monitor/object/metricViews/utils.ts","../../src/pages/monitor/object/metricViews/Form.tsx","../../src/pages/monitor/object/metricViews/Export.tsx","../../src/pages/monitor/object/metricViews/List.tsx","../../src/pages/monitor/object/metricViews/LabelsValues.tsx","../../src/pages/monitor/object/metricViews/config.tsx","../../src/pages/monitor/object/metricViews/graphStandardOptions/Line.tsx","../../src/pages/dashboard/Components/ColorRangeMenu/index.tsx","../../src/pages/monitor/object/metricViews/graphStandardOptions/Hexbin.tsx","../../src/pages/monitor/object/metricViews/Graph.tsx","../../src/pages/monitor/object/metricViews/Metrics.tsx","../../src/pages/monitor/object/locale/en_US.ts","../../src/pages/monitor/object/locale/zh_CN.ts","../../src/pages/monitor/object/locale/index.ts","../../src/pages/monitor/object/index.tsx","../../src/services/shield.ts","../../src/store/warningInterface/strategy.ts","../../src/pages/warning/const.ts","../../src/pages/warning/shield/locale/en_US.ts","../../src/pages/warning/shield/locale/zh_CN.ts","../../src/pages/warning/shield/locale/index.ts","../../src/pages/warning/shield/components/tagItem.tsx","../../src/pages/warning/shield/components/utils.ts","../../src/pages/warning/shield/components/operateForm.tsx","../../src/pages/warning/shield/add.tsx","../../src/pages/warning/shield/edit.tsx","../../src/pages/warning/shield/index.tsx","../../src/services/subscribe.ts","../../src/pages/warning/subscribe/locale/en_US.ts","../../src/pages/warning/subscribe/locale/zh_CN.ts","../../src/pages/warning/subscribe/locale/index.ts","../../src/pages/warning/subscribe/components/ruleModal.tsx","../../src/pages/warning/subscribe/components/tagItem.tsx","../../src/pages/warning/subscribe/components/operateForm.tsx","../../src/pages/warning/subscribe/add.tsx","../../src/pages/warning/subscribe/edit.tsx","../../src/pages/warning/subscribe/index.tsx","../../src/pages/event/cardLeft.tsx","../../src/pages/event/card.tsx","../../src/pages/event/services.ts","../../src/pages/event/Table.tsx","../../src/pages/event/constants.tsx","../../src/pages/event/locale/en_US.ts","../../src/pages/event/locale/zh_CN.ts","../../src/pages/event/locale/index.ts","../../src/pages/event/index.tsx","../../src/pages/event/Graph.tsx","../../src/pages/event/Preview/AlgoGraph.tsx","../../src/pages/event/Preview/ElasticsearchGraph.tsx","../../src/pages/event/Preview/AliyunSLSGraph.tsx","../../src/pages/event/Preview/index.tsx","../../src/pages/event/LogsDetail/AliyunSLS.tsx","../../src/pages/event/LogsDetail/Elasticsearch.tsx","../../src/pages/event/LogsDetail/index.tsx","../../src/pages/event/Detail/Prometheus.tsx","../../src/pages/event/Detail/Elasticsearch.tsx","../../src/pages/event/Detail/AliyunSLS.tsx","../../src/pages/event/Detail/Host.tsx","../../src/pages/event/detail.tsx","../../node_modules/doc-path/dist/path.js","../../node_modules/deeks/lib/utils.js","../../node_modules/deeks/lib/deeks.js","../../node_modules/json-2-csv/lib/utils.js","../../node_modules/json-2-csv/lib/json2csv.js","../../node_modules/json-2-csv/lib/csv2json.js","../../node_modules/json-2-csv/lib/converter.js","../../src/pages/historyEvents/exportEvents.ts","../../src/pages/historyEvents/services.ts","../../src/pages/historyEvents/locale/en_US.ts","../../src/pages/historyEvents/locale/zh_CN.ts","../../src/pages/historyEvents/locale/index.ts","../../src/pages/historyEvents/index.tsx","../../src/pages/demo/index.tsx","../../src/pages/taskTpl/bindTags.tsx","../../src/pages/taskTpl/unBindTags.tsx","../../src/pages/taskTpl/index.tsx","../../node_modules/ace-builds/src-noconflict/mode-sh.js","../../node_modules/ace-builds/src-noconflict/theme-monokai.js","../../node_modules/ace-builds/src-noconflict/theme-kuroir.js","../../src/pages/taskTpl/editor.tsx","../../src/pages/taskTpl/tplForm.tsx","../../src/pages/taskTpl/add.tsx","../../src/pages/taskTpl/detail.tsx","../../src/pages/taskTpl/modify.tsx","../../src/pages/taskTpl/clone.tsx","../../src/pages/task/index.tsx","../../src/pages/task/add.tsx","../../src/pages/task/FieldCopy/clipboard.tsx","../../src/pages/task/FieldCopy/index.tsx","../../src/pages/task/result.tsx","../../src/pages/task/detail.tsx","../../public/image/system-info.svg","../../src/pages/help/version/locale/en_US.ts","../../src/pages/help/version/locale/zh_CN.ts","../../src/pages/help/version/locale/index.ts","../../src/pages/help/version/index.tsx","../../src/services/help.ts","../../src/pages/help/servers/locale/en_US.ts","../../src/pages/help/servers/locale/zh_CN.ts","../../src/pages/help/servers/locale/index.ts","../../src/pages/help/servers/index.tsx","../../src/pages/datasource/config.tsx","../../src/pages/datasource/services.ts","../../src/pages/datasource/components/SourceCards/index.tsx","../../src/pages/datasource/components/Rename.tsx","../../src/pages/datasource/components/TableSource/index.tsx","../../src/components/Code/index.tsx","../../src/pages/datasource/Datasources/Prometheus/Detail.tsx","../../src/pages/datasource/Datasources/ElasticSearch/Detail.tsx","../../src/pages/datasource/Datasources/Jaeger/Detail.tsx","../../src/pages/datasource/Datasources/Detail.tsx","../../src/pages/datasource/Detail.tsx","../../src/components/BreadCrumb/index.tsx","../../src/pages/datasource/components/items/Name.tsx","../../src/pages/datasource/components/items/HTTP.tsx","../../src/pages/datasource/components/items/BasicAuth.tsx","../../src/pages/datasource/components/items/SkipTLSVerify.tsx","../../src/pages/datasource/components/items/Headers.tsx","../../src/pages/datasource/components/items/Description.tsx","../../src/pages/datasource/components/items/Footer.tsx","../../src/pages/datasource/Datasources/Prometheus/Form.tsx","../../src/pages/datasource/Datasources/ElasticSearch/Form.tsx","../../src/pages/datasource/Datasources/Jaeger/Form.tsx","../../src/pages/datasource/Datasources/Form.tsx","../../src/pages/datasource/Form.tsx","../../src/pages/datasource/locale/en_US.ts","../../src/pages/datasource/locale/zh_CN.ts","../../src/pages/datasource/locale/index.ts","../../src/pages/datasource/index.tsx","../../src/services/recording.ts","../../src/pages/recordingRules/components/editModal.tsx","../../src/pages/recordingRules/components/Import.tsx","../../src/pages/recordingRules/components/Export.tsx","../../src/pages/recordingRules/PageTable.tsx","../../src/pages/recordingRules/components/operateForm.tsx","../../src/pages/recordingRules/edit.tsx","../../src/pages/recordingRules/add.tsx","../../src/pages/recordingRules/locale/en_US.ts","../../src/pages/recordingRules/locale/zh_CN.ts","../../src/pages/recordingRules/locale/index.ts","../../src/pages/recordingRules/index.tsx","../../node_modules/logfmt/lib/logfmt_parser.js","../../src/pages/traceCpt/components/LabelField/index.tsx","../../src/pages/traceCpt/services.ts","../../src/pages/traceCpt/Search.tsx","../../node_modules/lodash/_baseExtremum.js","../../node_modules/lodash/_baseGt.js","../../node_modules/lodash/maxBy.js","../../node_modules/lodash/_baseValues.js","../../node_modules/lodash/values.js","../../node_modules/lodash/_baseWhile.js","../../node_modules/lodash/dropWhile.js","../../node_modules/lodash/_createRound.js","../../node_modules/lodash/round.js","../../src/pages/traceCpt/utils/date.ts","../../src/pages/traceCpt/Detail/Header/LabeledList.tsx","../../node_modules/memoize-one/dist/memoize-one.esm.js","../../src/pages/traceCpt/Detail/Header/SpanGraph/render-into-canvas.tsx","../../src/pages/traceCpt/utils/color-generator.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/CanvasSpanGraph.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/TickLabels.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/GraphTicks.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/Scrubber.tsx","../../src/pages/traceCpt/utils/EUpdateTypes.tsx","../../src/pages/traceCpt/utils/DraggableManager.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/ViewingLayer.tsx","../../src/pages/traceCpt/Detail/Header/SpanGraph/index.tsx","../../src/pages/traceCpt/Detail/Header/index.tsx","../../src/pages/traceCpt/Detail/Timeline/VerticalResizer.tsx","../../src/pages/traceCpt/Detail/Timeline/TimelineViewingLayer.tsx","../../src/pages/traceCpt/Detail/Timeline/Ticks.tsx","../../src/pages/traceCpt/Detail/Timeline/TimelineRow.tsx","../../src/pages/traceCpt/Detail/Timeline/TimelineHeaderRow.tsx","../../src/pages/traceCpt/Detail/Timeline/ListView/Positions.tsx","../../src/pages/traceCpt/Detail/Timeline/ListView/index.tsx","../../src/pages/traceCpt/type.ts","../../src/pages/traceCpt/utils/TreeNode.ts","../../src/pages/traceCpt/utils/trace.ts","../../src/pages/traceCpt/utils/index.ts","../../src/pages/traceCpt/Detail/Timeline/VirtualizedTraceView/utils.ts","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/AccordianKeyValues.markers.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/KeyValuesTable.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/AccordianKeyValues.tsx","../../node_modules/lodash/_isFlattenable.js","../../node_modules/lodash/_baseFlatten.js","../../node_modules/lodash/_baseSortBy.js","../../node_modules/lodash/_compareAscending.js","../../node_modules/lodash/_compareMultiple.js","../../node_modules/lodash/_baseOrderBy.js","../../node_modules/lodash/_apply.js","../../node_modules/lodash/_overRest.js","../../node_modules/lodash/constant.js","../../node_modules/lodash/_baseSetToString.js","../../node_modules/lodash/_shortOut.js","../../node_modules/lodash/_setToString.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_isIterateeCall.js","../../node_modules/lodash/sortBy.js","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/AccordianLogs.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/index.tsx","../../node_modules/lodash/_createFind.js","../../node_modules/lodash/_baseFindIndex.js","../../node_modules/lodash/findIndex.js","../../node_modules/lodash/find.js","../../src/pages/traceCpt/utils/span-ancestor-ids.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanTreeOffset.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanDetailRow.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanBar.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanBarRow.tsx","../../src/pages/traceCpt/Detail/Timeline/VirtualizedTraceView/index.tsx","../../src/pages/traceCpt/Detail/Timeline/SpanDetail/DetailState.tsx","../../src/pages/traceCpt/Detail/Timeline/index.tsx","../../src/pages/traceCpt/Detail/index.track.tsx","../../src/pages/traceCpt/Detail/Timeline/ScrollManager.tsx","../../node_modules/tween-functions/index.js","../../src/pages/traceCpt/Detail/Timeline/Tween.tsx","../../src/pages/traceCpt/Detail/Timeline/scroll-page.tsx","../../src/pages/traceCpt/Detail/index.tsx","../../src/pages/traceCpt/Result/ResultItem/title.tsx","../../src/pages/traceCpt/Result/ResultItem/index.tsx","../../src/pages/traceCpt/components/ScatterBubbleChart/ScatterBubbleChart.tsx","../../src/pages/traceCpt/Result/index.tsx","../../src/pages/traceCpt/index.tsx","../../node_modules/@antv/g6-core/es/behavior/behaviorOption.js","../../node_modules/@antv/g6-core/es/behavior/behavior.js","../../node_modules/@antv/algorithm/es/adjacent-matrix.js","../../node_modules/@antv/algorithm/es/structs/linked-list.js","../../node_modules/@antv/algorithm/es/structs/queue.js","../../node_modules/@antv/algorithm/es/util.js","../../node_modules/@antv/algorithm/es/bfs.js","../../node_modules/@antv/algorithm/es/connected-component.js","../../node_modules/@antv/algorithm/es/degree.js","../../node_modules/@antv/algorithm/es/dfs.js","../../node_modules/@antv/algorithm/es/detect-cycle.js","../../node_modules/@antv/algorithm/es/dijkstra.js","../../node_modules/@antv/algorithm/es/find-path.js","../../node_modules/@antv/algorithm/es/floydWarshall.js","../../node_modules/@antv/algorithm/es/label-propagation.js","../../node_modules/@antv/algorithm/es/utils/vector.js","../../node_modules/@antv/algorithm/es/utils/node-properties.js","../../node_modules/@antv/algorithm/es/types.js","../../node_modules/@antv/algorithm/es/utils/data-preprocessing.js","../../node_modules/@antv/algorithm/es/louvain.js","../../node_modules/@antv/algorithm/es/i-louvain.js","../../node_modules/@antv/algorithm/es/k-core.js","../../node_modules/@antv/algorithm/es/k-means.js","../../node_modules/@antv/algorithm/es/cosine-similarity.js","../../node_modules/@antv/algorithm/es/nodes-cosine-similarity.js","../../node_modules/@antv/algorithm/es/structs/union-find.js","../../node_modules/@antv/algorithm/es/structs/binary-heap.js","../../node_modules/@antv/algorithm/es/mts.js","../../node_modules/@antv/algorithm/es/pageRank.js","../../node_modules/@antv/algorithm/es/gSpan/struct.js","../../node_modules/@antv/algorithm/es/gSpan/gSpan.js","../../node_modules/@antv/algorithm/es/gaddi.js","../../node_modules/@antv/algorithm/es/structs/stack.js","../../node_modules/@antv/algorithm/es/index.js","../../node_modules/@antv/g6-core/es/util/math.js","../../node_modules/@antv/g6-core/es/global.js","../../node_modules/@antv/g6-core/es/util/letterAspectRatio.js","../../node_modules/@antv/g6-core/es/util/graphic.js","../../node_modules/@antv/g6-core/es/util/validation.js","../../node_modules/@antv/g6-core/es/graph/controller/mode.js","../../node_modules/@antv/g6-core/es/interface/behavior.js","../../node_modules/@antv/g6-core/es/util/base.js","../../node_modules/@antv/matrix-util/lib/ext.js","../../node_modules/@antv/g6-core/es/graph/controller/view.js","../../node_modules/@antv/g6-core/es/element/xml.js","../../node_modules/@antv/g6-core/es/element/shape.js","../../node_modules/@antv/g6-core/es/item/item.js","../../node_modules/@antv/g6-core/es/item/edge.js","../../node_modules/@antv/g6-core/es/item/node.js","../../node_modules/@antv/g6-core/es/item/combo.js","../../node_modules/@antv/g6-core/es/graph/controller/item.js","../../node_modules/@antv/g6-core/es/graph/controller/state.js","../../node_modules/@antv/g6-core/es/util/path.js","../../node_modules/@antv/g6-core/es/element/hull/convexHull.js","../../node_modules/@antv/g6-core/es/element/hull/bubbleset.js","../../node_modules/@antv/g6-core/es/item/hull.js","../../node_modules/@antv/g6-core/es/graph/graph.js","../../node_modules/@antv/g6-core/es/element/shapeBase.js","../../node_modules/@antv/g6-core/es/element/node.js","../../node_modules/@antv/g6-core/es/element/edge.js","../../node_modules/@antv/g6-core/es/element/combo.js","../../node_modules/@antv/g6-core/es/element/combos/circle.js","../../node_modules/@antv/g6-core/es/element/combos/rect.js","../../node_modules/@antv/g6-core/es/element/nodes/simple-circle.js","../../node_modules/@antv/g6-core/es/element/nodes/simple-rect.js","../../node_modules/@antv/g6-core/es/element/nodes/image.js","../../node_modules/@antv/g6-core/es/element/arrow.js","../../node_modules/@antv/g6-core/es/element/marker.js","../../node_modules/@antv/g6-core/es/util/color.js","../../node_modules/@antv/g6-core/es/util/layout.js","../../node_modules/@antv/g6-core/es/util/index.js","../../node_modules/@antv/g6-core/es/graph/controller/layout.js","../../node_modules/@antv/g6-core/es/graph/controller/event.js","../../node_modules/@antv/g6-core/es/index.js","../../node_modules/@antv/algorithm/lib/workers/constant.js","../../node_modules/@antv/algorithm/lib/adjacent-matrix.js","../../node_modules/@antv/algorithm/lib/structs/linked-list.js","../../node_modules/@antv/algorithm/lib/structs/queue.js","../../node_modules/@antv/algorithm/lib/util.js","../../node_modules/@antv/algorithm/lib/bfs.js","../../node_modules/@antv/algorithm/lib/connected-component.js","../../node_modules/@antv/algorithm/lib/degree.js","../../node_modules/@antv/algorithm/lib/dfs.js","../../node_modules/@antv/algorithm/lib/detect-cycle.js","../../node_modules/@antv/algorithm/lib/dijkstra.js","../../node_modules/@antv/algorithm/lib/find-path.js","../../node_modules/@antv/algorithm/lib/floydWarshall.js","../../node_modules/@antv/algorithm/lib/label-propagation.js","../../node_modules/@antv/algorithm/lib/utils/vector.js","../../node_modules/@antv/algorithm/lib/constants/time.js","../../node_modules/@antv/algorithm/lib/utils/node-properties.js","../../node_modules/@antv/algorithm/lib/types.js","../../node_modules/@antv/algorithm/lib/utils/data-preprocessing.js","../../node_modules/@antv/algorithm/lib/louvain.js","../../node_modules/@antv/algorithm/lib/structs/union-find.js","../../node_modules/@antv/algorithm/lib/structs/binary-heap.js","../../node_modules/@antv/algorithm/lib/mts.js","../../node_modules/@antv/algorithm/lib/pageRank.js","../../node_modules/@antv/algorithm/lib/gSpan/struct.js","../../node_modules/@antv/algorithm/lib/gSpan/gSpan.js","../../node_modules/@antv/algorithm/lib/gaddi.js","../../node_modules/@antv/algorithm/lib/workers/algorithm.js","../../node_modules/@antv/algorithm/lib/workers/index.worker.js","../../node_modules/@antv/algorithm/lib/workers/createWorker.js","../../node_modules/@antv/algorithm/lib/workers/index.js","../../node_modules/@antv/algorithm/lib/asyncIndex.js","../../node_modules/@antv/g6-pc/node_modules/color-name/index.js","../../node_modules/@antv/g6-pc/node_modules/color-convert/conversions.js","../../node_modules/@antv/g6-pc/node_modules/color-convert/route.js","../../node_modules/@antv/g6-pc/node_modules/color-convert/index.js","../../node_modules/@antv/g6-pc/node_modules/color/index.js","../../node_modules/@antv/g6-pc/node_modules/@ant-design/colors/dist/index.esm.js","../../node_modules/@antv/g6-pc/es/util/color.js","../../node_modules/@antv/g6-pc/es/global.js","../../node_modules/@antv/g6-pc/es/graph/controller/event.js","../../node_modules/@antv/layout/lib/layout/base.js","../../node_modules/@antv/layout/lib/util/string.js","../../node_modules/@antv/layout/lib/util/array.js","../../node_modules/@antv/layout/lib/util/number.js","../../node_modules/@antv/layout/lib/util/object.js","../../node_modules/@antv/layout/lib/util/math.js","../../node_modules/@antv/layout/lib/util/function.js","../../node_modules/@antv/layout/lib/util/index.js","../../node_modules/@antv/layout/lib/registy/index.js","../../node_modules/@antv/layout/lib/layout/grid.js","../../node_modules/@antv/layout/lib/layout/random.js","../../node_modules/@antv/layout/lib/layout/gForce.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/add.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/cover.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/data.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/extent.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/quad.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/find.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/remove.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/root.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/size.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/visit.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/visitAfter.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/x.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/y.js","../../node_modules/@antv/layout/node_modules/d3-quadtree/src/quadtree.js","../../node_modules/@antv/layout/lib/layout/force2/ForceNBody.js","../../node_modules/@antv/layout/lib/layout/force2/index.js","../../node_modules/@antv/layout/node_modules/d3-force/src/center.js","../../node_modules/@antv/layout/node_modules/d3-force/src/constant.js","../../node_modules/@antv/layout/node_modules/d3-force/src/jiggle.js","../../node_modules/@antv/layout/node_modules/d3-force/src/collide.js","../../node_modules/@antv/layout/node_modules/d3-force/src/link.js","../../node_modules/@antv/layout/node_modules/d3-force/src/lcg.js","../../node_modules/@antv/layout/node_modules/d3-force/src/simulation.js","../../node_modules/@antv/layout/node_modules/d3-force/src/manyBody.js","../../node_modules/@antv/layout/node_modules/d3-force/src/radial.js","../../node_modules/@antv/layout/node_modules/d3-force/src/x.js","../../node_modules/@antv/layout/node_modules/d3-force/src/y.js","../../node_modules/@antv/layout/lib/layout/force/force-in-a-box.js","../../node_modules/@antv/layout/lib/layout/constants.js","../../node_modules/@antv/layout/lib/layout/force/force.js","../../node_modules/@antv/layout/lib/layout/force/index.js","../../node_modules/@antv/layout/lib/layout/circular.js","../../node_modules/@antv/layout/lib/layout/dagre/src/data/list.js","../../node_modules/@antv/graphlib/es/Graph/enum.js","../../node_modules/@antv/graphlib/es/util.js","../../node_modules/@antv/graphlib/es/Graph/toJSON.js","../../node_modules/@antv/graphlib/es/Graph/index.js","../../node_modules/@antv/graphlib/es/Graph/event.js","../../node_modules/@antv/graphlib/es/algorithm/PriorityQueue/index.js","../../node_modules/@antv/graphlib/es/algorithm/prim.js","../../node_modules/@antv/graphlib/es/algorithm/components.js","../../node_modules/@antv/graphlib/es/algorithm/dfs.js","../../node_modules/@antv/graphlib/es/algorithm/dijkstra.js","../../node_modules/@antv/graphlib/es/algorithm/dijkstra-all.js","../../node_modules/@antv/graphlib/es/algorithm/tarjan.js","../../node_modules/@antv/graphlib/es/algorithm/find-cycles.js","../../node_modules/@antv/graphlib/es/algorithm/topsort.js","../../node_modules/@antv/graphlib/es/algorithm/is-acyclic.js","../../node_modules/@antv/graphlib/es/algorithm/postorder.js","../../node_modules/@antv/graphlib/es/algorithm/preorder.js","../../node_modules/@antv/graphlib/es/algorithm/floyd-warshall.js","../../node_modules/@antv/graphlib/es/comparision/contain.js","../../node_modules/@antv/graphlib/es/essence/index.js","../../node_modules/@antv/graphlib/es/comparision/complement.js","../../node_modules/@antv/graphlib/es/generate/compelement.js","../../node_modules/@antv/layout/lib/layout/dagre/src/greedy-fas.js","../../node_modules/@antv/layout/lib/layout/dagre/src/acyclic.js","../../node_modules/@antv/layout/lib/layout/dagre/graph.js","../../node_modules/@antv/layout/lib/layout/dagre/src/util.js","../../node_modules/@antv/layout/lib/layout/dagre/src/normalize.js","../../node_modules/@antv/layout/lib/layout/dagre/src/rank/util.js","../../node_modules/@antv/layout/lib/layout/dagre/src/rank/feasible-tree.js","../../node_modules/@antv/layout/lib/layout/dagre/src/rank/network-simplex.js","../../node_modules/@antv/layout/lib/layout/dagre/src/rank/index.js","../../node_modules/@antv/layout/lib/layout/dagre/src/parent-dummy-chains.js","../../node_modules/@antv/layout/lib/layout/dagre/src/nesting-graph.js","../../node_modules/@antv/layout/lib/layout/dagre/src/add-border-segments.js","../../node_modules/@antv/layout/lib/layout/dagre/src/coordinate-system.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/init-order.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/cross-count.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/build-layer-graph.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/add-subgraph-constraints.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/barycenter.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/resolve-conflicts.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/sort.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/sort-subgraph.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/index.js","../../node_modules/@antv/layout/lib/layout/dagre/src/position/bk.js","../../node_modules/@antv/layout/lib/layout/dagre/src/position/index.js","../../node_modules/@antv/layout/lib/layout/dagre/src/order/init-data-order.js","../../node_modules/@antv/layout/lib/layout/dagre/src/layout.js","../../node_modules/@antv/layout/lib/layout/dagre/index.js","../../node_modules/@antv/layout/lib/layout/dagre.js","../../node_modules/dagre-compound/dist/dagre-compound.es5.js","../../node_modules/@antv/layout/lib/layout/dagreCompound.js","../../node_modules/is-any-array/lib-esm/index.js","../../node_modules/ml-array-max/lib-es6/index.js","../../node_modules/ml-array-min/lib-es6/index.js","../../node_modules/ml-array-rescale/lib-es6/index.js","../../node_modules/ml-matrix/src/inspect.js","../../node_modules/ml-matrix/src/mathOperations.js","../../node_modules/ml-matrix/src/util.js","../../node_modules/ml-matrix/src/stat.js","../../node_modules/ml-matrix/src/matrix.js","../../node_modules/ml-matrix/src/views/base.js","../../node_modules/ml-matrix/src/views/column.js","../../node_modules/ml-matrix/src/views/columnSelection.js","../../node_modules/ml-matrix/src/views/flipColumn.js","../../node_modules/ml-matrix/src/views/flipRow.js","../../node_modules/ml-matrix/src/views/row.js","../../node_modules/ml-matrix/src/views/rowSelection.js","../../node_modules/ml-matrix/src/views/selection.js","../../node_modules/ml-matrix/src/views/sub.js","../../node_modules/ml-matrix/src/views/transpose.js","../../node_modules/ml-matrix/src/wrap/WrapperMatrix1D.js","../../node_modules/ml-matrix/src/wrap/WrapperMatrix2D.js","../../node_modules/ml-matrix/src/wrap/wrap.js","../../node_modules/ml-matrix/src/dc/lu.js","../../node_modules/ml-matrix/src/dc/util.js","../../node_modules/ml-matrix/src/dc/qr.js","../../node_modules/ml-matrix/src/dc/svd.js","../../node_modules/ml-matrix/src/decompositions.js","../../node_modules/ml-matrix/src/determinant.js","../../node_modules/ml-matrix/src/linearDependencies.js","../../node_modules/ml-matrix/src/pseudoInverse.js","../../node_modules/ml-matrix/src/covariance.js","../../node_modules/ml-matrix/src/correlation.js","../../node_modules/ml-matrix/src/dc/evd.js","../../node_modules/ml-matrix/src/dc/cholesky.js","../../node_modules/ml-matrix/src/dc/nipals.js","../../node_modules/@antv/layout/lib/layout/radial/mds.js","../../node_modules/@antv/layout/lib/layout/radial/radialNonoverlapForce.js","../../node_modules/@antv/layout/lib/layout/radial/radial.js","../../node_modules/@antv/layout/lib/layout/radial/index.js","../../node_modules/@antv/layout/lib/layout/concentric.js","../../node_modules/@antv/layout/lib/layout/mds.js","../../node_modules/@antv/layout/lib/layout/fruchterman.js","../../node_modules/lodash/isNumber.js","../../node_modules/@antv/g-webgpu-core/es/Entity.js","../../node_modules/@antv/g-webgpu-core/es/components/renderer/gl.js","../../node_modules/@antv/g-webgpu-core/es/services/config/ConfigService.js","../../node_modules/@antv/g-webgpu-core/es/utils/isSafari.js","../../node_modules/@antv/g-webgpu-core/es/index.js","../../node_modules/@antv/g-webgpu/es/utils/canvas.js","../../node_modules/@antv/g-webgpu/es/Kernel.js","../../node_modules/regl/dist/regl.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglAttribute.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/constants.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglBuffer.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglComputeModel.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglElements.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglFramebuffer.js","../../node_modules/@antv/g-webgpu-engine/es/utils/uniform.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglModel.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/ReglTexture2D.js","../../node_modules/@antv/g-webgpu-engine/es/webgl/index.js","../../node_modules/@antv/g-webgpu/es/World.js","../../node_modules/@antv/layout/lib/util/gpu.js","../../node_modules/@antv/layout/lib/layout/gpu/fruchtermanShader.js","../../node_modules/@antv/layout/lib/layout/gpu/fruchterman.js","../../node_modules/@antv/layout/lib/layout/gpu/gForceShader.js","../../node_modules/@antv/layout/lib/layout/gpu/gForce.js","../../node_modules/@antv/layout/lib/layout/comboForce.js","../../node_modules/@antv/layout/lib/layout/comboCombined.js","../../node_modules/@antv/layout/lib/layout/forceAtlas2/body.js","../../node_modules/@antv/layout/lib/layout/forceAtlas2/quad.js","../../node_modules/@antv/layout/lib/layout/forceAtlas2/quadTree.js","../../node_modules/@antv/layout/lib/layout/forceAtlas2/index.js","../../node_modules/@antv/layout/lib/layout/er/grid.js","../../node_modules/@antv/layout/lib/layout/er/forceGrid.js","../../node_modules/@antv/layout/lib/layout/er/mysqlWorkbench.js","../../node_modules/@antv/layout/lib/layout/er/core.js","../../node_modules/@antv/layout/lib/layout/er/index.js","../../node_modules/@antv/layout/lib/layout/layout.js","../../node_modules/@antv/layout/lib/layout/types.js","../../node_modules/@antv/layout/lib/layout/index.js","../../node_modules/@antv/layout/lib/index.js","../../node_modules/@antv/hierarchy/lib/util.js","../../node_modules/@antv/hierarchy/lib/layout/hierarchy.js","../../node_modules/@antv/hierarchy/lib/layout/base.js","../../node_modules/@antv/hierarchy/lib/layout/non-layered-tidy.js","../../node_modules/@antv/hierarchy/lib/layout/separate-root.js","../../node_modules/@antv/hierarchy/lib/layout/do-layout.js","../../node_modules/@antv/hierarchy/lib/compact-box.js","../../node_modules/@antv/hierarchy/lib/layout/dendrogram.js","../../node_modules/@antv/hierarchy/lib/dendrogram.js","../../node_modules/@antv/hierarchy/lib/layout/indented.js","../../node_modules/@antv/hierarchy/lib/indented.js","../../node_modules/@antv/hierarchy/lib/layout/mindmap.js","../../node_modules/@antv/hierarchy/lib/mindmap.js","../../node_modules/@antv/hierarchy/lib/index.js","../../node_modules/@antv/g6-pc/es/util/layout.js","../../node_modules/@antv/g6-pc/es/util/gpu.js","../../node_modules/@antv/g6-pc/es/util/index.js","../../node_modules/@antv/g6-pc/es/layout/tree-layout.js","../../node_modules/@antv/g6-pc/es/layout/index.js","../../node_modules/@antv/g6-pc/es/layout/worker/work.js","../../node_modules/@antv/g6-pc/es/layout/worker/layout.js","../../node_modules/@antv/g6-pc/es/layout/worker/layoutConst.js","../../node_modules/@antv/g6-pc/es/graph/controller/layout.js","../../node_modules/@antv/g6-pc/es/util/image.js","../../node_modules/@antv/g6-pc/es/graph/graph.js","../../node_modules/@antv/g6-pc/es/graph/tree-graph.js","../../node_modules/@antv/g6-plugin/es/base.js","../../node_modules/@antv/g6-plugin/es/grid/index.js","../../node_modules/insert-css/index.js","../../node_modules/@antv/g6-plugin/es/menu/index.js","../../node_modules/@antv/g6-plugin/es/minimap/index.js","../../node_modules/@antv/g6-plugin/es/bundling/index.js","../../node_modules/@antv/g6-plugin/es/fisheye/index.js","../../node_modules/@antv/g6-plugin/es/toolBar/index.js","../../node_modules/@antv/g6-plugin/es/tooltip/index.js","../../node_modules/@antv/g6-plugin/es/timeBar/path.js","../../node_modules/@antv/g6-plugin/es/timeBar/trend.js","../../node_modules/@antv/g6-plugin/es/timeBar/handler.js","../../node_modules/@antv/g6-plugin/es/timeBar/constant.js","../../node_modules/@antv/g6-plugin/es/timeBar/timeButton.js","../../node_modules/@antv/g6-plugin/es/timeBar/controllerBtn.js","../../node_modules/@antv/g6-plugin/es/timeBar/trendTimeBar.js","../../node_modules/@antv/g6-plugin/es/timeBar/timeBarTooltip.js","../../node_modules/@antv/g6-plugin/es/timeBar/timeBarSlice.js","../../node_modules/@antv/g6-plugin/es/timeBar/index.js","../../node_modules/@antv/g6-plugin/es/imageMinimap/index.js","../../node_modules/@antv/g6-plugin/es/edgeFilterLens/index.js","../../node_modules/@antv/g6-plugin/es/snapline/index.js","../../node_modules/@antv/g6-plugin/es/legend/index.js","../../node_modules/@antv/g6-plugin/es/annotation/index.js","../../node_modules/@antv/g6-plugin/es/index.js","../../node_modules/@antv/g6-element/es/nodes/circle.js","../../node_modules/@antv/g6-element/es/nodes/rect.js","../../node_modules/@antv/g6-element/es/nodes/ellipse.js","../../node_modules/@antv/g6-element/es/nodes/diamond.js","../../node_modules/@antv/g6-element/es/nodes/triangle.js","../../node_modules/@antv/g6-element/es/nodes/modelRect.js","../../node_modules/@antv/g6-element/es/nodes/star.js","../../node_modules/@antv/g6-element/es/nodes/donut.js","../../node_modules/@antv/g6-element/es/edges/polyline-util.js","../../node_modules/@antv/g6-element/es/edges/router.js","../../node_modules/@antv/g6-element/es/edges/polyline.js","../../node_modules/@antv/g6-pc/es/behavior/drag-canvas.js","../../node_modules/@antv/g6-pc/es/behavior/drag-node.js","../../node_modules/@antv/g6-pc/es/behavior/activate-relations.js","../../node_modules/@antv/g6-pc/es/behavior/brush-select.js","../../node_modules/@antv/g6-pc/es/behavior/click-select.js","../../node_modules/@antv/g6-pc/es/behavior/zoom-canvas.js","../../node_modules/@antv/g6-pc/es/behavior/tooltip-base.js","../../node_modules/@antv/g6-pc/es/behavior/tooltip.js","../../node_modules/@antv/g6-pc/es/behavior/edge-tooltip.js","../../node_modules/@antv/g6-pc/es/behavior/collapse-expand.js","../../node_modules/@antv/g6-pc/es/behavior/drag-combo.js","../../node_modules/@antv/g6-pc/es/behavior/collapse-expand-combo.js","../../node_modules/@antv/g6-pc/es/behavior/lasso-select.js","../../node_modules/@antv/g6-pc/es/behavior/create-edge.js","../../node_modules/@antv/g6-pc/es/behavior/shortcuts-call.js","../../node_modules/@antv/g6-pc/es/behavior/scroll-canvas.js","../../node_modules/@antv/g6-pc/es/behavior/index.js","../../node_modules/@antv/g6-pc/es/index.js","../../node_modules/@antv/g6/es/index.js","../../node_modules/@ant-design/graphs/es/constants/index.js","../../node_modules/@ant-design/graphs/es/utils/get-marker-position.js","../../node_modules/@ant-design/graphs/es/utils/get-arrow-cfg.js","../../node_modules/@ant-design/graphs/es/utils/state-events.js","../../node_modules/@ant-design/graphs/es/utils/deep-clone.js","../../node_modules/@ant-design/graphs/es/utils/get-anchor-points.js","../../node_modules/@ant-design/graphs/es/utils/get-common-cfg.js","../../node_modules/@ant-design/graphs/es/utils/uuid.js","../../node_modules/@ant-design/graphs/es/utils/get-graph-id.js","../../node_modules/@ant-design/graphs/es/utils/log.js","../../node_modules/@ant-design/graphs/es/utils/get-graph-size.js","../../node_modules/@ant-design/graphs/es/utils/get-tree-level-data.js","../../node_modules/@ant-design/graphs/es/utils/get-flow-level-data.js","../../node_modules/@ant-design/graphs/es/utils/event-data.js","../../node_modules/@ant-design/graphs/es/utils/async-events.js","../../node_modules/@ant-design/graphs/es/utils/render-graph.js","../../node_modules/@ant-design/graphs/es/utils/set-tree-tag.js","../../node_modules/@ant-design/graphs/es/utils/set-flow-tag.js","../../node_modules/@ant-design/graphs/es/utils/count-by.js","../../node_modules/@ant-design/graphs/es/utils/get-center-node.js","../../node_modules/@ant-design/graphs/es/utils/set-styles.js","../../node_modules/@ant-design/graphs/es/utils/get-type.js","../../node_modules/@ant-design/graphs/es/utils/render.js","../../node_modules/@ant-design/graphs/es/utils/create-node.js","../../node_modules/@ant-design/graphs/es/utils/create-fetch-loading.js","../../node_modules/@ant-design/graphs/es/utils/close-fetch-loading.js","../../node_modules/@ant-design/graphs/es/utils/global.js","../../node_modules/@ant-design/graphs/es/utils/chart-loading.js","../../node_modules/@ant-design/graphs/es/errorBoundary/index.js","../../node_modules/@ant-design/graphs/es/plugins/minimap.js","../../node_modules/@ant-design/graphs/es/plugins/tooltip.js","../../node_modules/@ant-design/graphs/es/plugins/components/base.js","../../node_modules/@ant-design/graphs/es/plugins/components/menu/index.js","../../node_modules/@ant-design/graphs/es/plugins/menu.js","../../node_modules/@ant-design/graphs/es/hooks/useFullscreen.js","../../node_modules/@ant-design/graphs/es/plugins/components/toolbar/index.js","../../node_modules/@ant-design/graphs/es/plugins/toolbar.js","../../node_modules/@ant-design/graphs/es/hooks/useGraphs.js","../../node_modules/@ant-design/graphs/es/hooks/useProps.js","../../node_modules/@ant-design/graphs/es/layout/radial-sector.js","../../node_modules/@ant-design/graphs/es/components/radial-graph/events.js","../../node_modules/@ant-design/graphs/es/components/radial-graph/index.js","../../src/pages/traceCpt/Dependencies/utils.tsx","../../src/pages/traceCpt/Dependencies/index.tsx","../../src/pages/traceCpt/locale/en_US.ts","../../src/pages/traceCpt/locale/zh_CN.ts","../../src/pages/traceCpt/locale/index.ts","../../src/pages/traceCpt/Explorer.tsx","../../src/pages/dashboardBuiltin/services.ts","../../src/pages/dashboardBuiltin/Import.tsx","../../src/pages/dashboardBuiltin/Detail.tsx","../../src/pages/dashboardBuiltin/locale/en_US.ts","../../src/pages/dashboardBuiltin/locale/zh_CN.ts","../../src/pages/dashboardBuiltin/locale/index.ts","../../src/pages/dashboardBuiltin/index.tsx","../../src/pages/permissions/services.ts","../../src/pages/permissions/RoleFormModal.tsx","../../src/pages/permissions/Operations.tsx","../../src/pages/permissions/locale/en_US.ts","../../src/pages/permissions/locale/zh_CN.ts","../../src/pages/permissions/locale/index.ts","../../src/pages/permissions/index.tsx","../../src/pages/help/SSOConfigs/services.ts","../../src/pages/help/SSOConfigs/locale/en_US.ts","../../src/pages/help/SSOConfigs/locale/zh_CN.ts","../../src/pages/help/SSOConfigs/locale/index.ts","../../src/pages/help/SSOConfigs/index.tsx","../../src/pages/help/NotificationTpls/services.ts","../../node_modules/dompurify/dist/purify.es.js","../../node_modules/@lezer/html/dist/index.es.js","../../node_modules/@lezer/css/dist/index.es.js","../../node_modules/@codemirror/lang-css/dist/index.js","../../node_modules/@lezer/javascript/dist/index.es.js","../../node_modules/@codemirror/lang-javascript/dist/index.js","../../node_modules/@codemirror/lang-html/dist/index.js","../../src/pages/help/NotificationTpls/Editor/components/FieldWithEditor/index.tsx","../../src/pages/help/NotificationTpls/Editor/HTML.tsx","../../node_modules/@lezer/markdown/dist/index.js","../../node_modules/@codemirror/lang-markdown/dist/index.js","../../src/pages/help/NotificationTpls/Editor/Markdown.tsx","../../src/pages/help/NotificationTpls/FormModal.tsx","../../src/pages/help/NotificationTpls/locale/en_US.ts","../../src/pages/help/NotificationTpls/locale/zh_CN.ts","../../src/pages/help/NotificationTpls/locale/index.ts","../../src/pages/help/NotificationTpls/index.tsx","../../src/pages/help/NotificationSettings/services.ts","../../src/pages/help/NotificationSettings/Webhooks.tsx","../../src/pages/help/NotificationSettings/Script.tsx","../../src/pages/help/NotificationSettings/Channels/AddModal.tsx","../../src/pages/help/NotificationSettings/Channels/EditModal.tsx","../../src/pages/help/NotificationSettings/Channels/index.tsx","../../src/pages/help/NotificationSettings/Contacts/AddModal.tsx","../../src/pages/help/NotificationSettings/Contacts/EditModal.tsx","../../src/pages/help/NotificationSettings/Contacts/index.tsx","../../src/pages/help/NotificationSettings/SMTP/index.tsx","../../src/pages/help/NotificationSettings/locale/en_US.ts","../../src/pages/help/NotificationSettings/locale/zh_CN.ts","../../src/pages/help/NotificationSettings/locale/index.ts","../../src/pages/help/NotificationSettings/index.tsx","../../src/pages/help/migrate/locale/en_US.ts","../../src/pages/help/migrate/locale/zh_CN.ts","../../src/pages/help/migrate/locale/index.ts","../../src/pages/help/migrate/index.tsx","../../src/pages/help/NotificationSettings/IBEX/index.tsx","../../src/pages/collects/List/index.tsx","../../src/pages/collects/Form/utils.ts","../../src/pages/collects/constants.ts","../../src/pages/collects/Form/ValuesSelect.tsx","../../src/pages/collects/Form/Preview.tsx","../../src/pages/collects/Form/index.tsx","../../src/pages/collects/Add.tsx","../../src/pages/collects/Edit.tsx","../../src/pages/collects/locale/en_US.ts","../../src/pages/collects/locale/zh_CN.ts","../../src/pages/collects/locale/index.ts","../../src/pages/collects/index.tsx","../../src/routers/index.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread({}, options, data, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread({}, options, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useContext } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { getI18n, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node && node.children ? node.children : node.props && node.props.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return React.isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (React.isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread(_objectSpread({}, data), combinedTOpts), i18n.language);\n var ast = HTML.parse(\"<0>\".concat(interpolatedString, \"\"));\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content;\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = React.isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n mem.push(child);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n if (wrapTextNodes) {\n mem.push(React.createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, node.content));\n } else {\n mem.push(node.content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context';\nexport function I18nextProvider(_ref) {\n var i18n = _ref.i18n,\n defaultNS = _ref.defaultNS,\n children = _ref.children;\n var value = useMemo(function () {\n return {\n i18n: i18n,\n defaultNS: defaultNS\n };\n }, [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value: value\n }, children);\n}","const en_US = {\n es: {\n index: 'Index',\n index_tip: `\n Support for multiple configuration methods:\n
\n 1. Specify a single index 'gb' to search all documents in the 'gb' index\n
\n 2. Specify multiple indexes 'gb, us' to search all documents in the 'gb' and 'us' indexes\n
\n 3. Specify index prefixes 'g*, u*' to search all documents in any index starting with 'g' or 'u'\n
\n `,\n index_msg: 'Index is required',\n filter: 'Filter',\n time_label: 'Time',\n date_field: 'Date Field',\n date_field_msg: 'Date Field is required',\n interval: 'Interval',\n value: 'Metric',\n terms: {\n more: 'More',\n size: 'Size',\n min_value: 'Min Doc Count',\n },\n raw: {\n limit: 'Limit',\n },\n alert: {\n query: {\n title: 'Queries',\n preview: 'Preview',\n },\n trigger: {\n title: 'Trigger',\n builder: 'Builder',\n code: 'Code',\n label: 'Label',\n },\n prom_eval_interval_tip: 'Every {{num}} seconds, to query the backend storage',\n prom_for_duration_tip:\n 'Usually the duration is greater than the execution frequency. During the duration, PromQL query is executed multiple times according to the execution frequency, and an alert is generated only if it is triggered every time. If the duration is set to 0, an alert is generated as long as the threshold is triggered once during the PromQL query.',\n },\n },\n};\nexport default en_US;\n","const zh_CN = {\n es: {\n index: '索引',\n index_tip: `\n 支持多种配置方式\n <1 />\n 1. 指定单个索引 gb 在 gb 索引中搜索所有的文档\n <1 />\n 2. 指定多个索引 gb,us 在 gb 和 us 索引中搜索所有的文档\n <1 />\n 3. 指定索引前缀 g*,u* 在任何以 g 或者 u 开头的索引中搜索所有的文档\n <1 />\n `,\n index_msg: '索引不能为空',\n filter: '过滤条件',\n time_label: '时间颗粒度',\n date_field: '日期字段',\n date_field_msg: '日期字段不能为空',\n interval: '时间间隔',\n value: '数值提取',\n terms: {\n more: '高级设置',\n size: '匹配个数',\n min_value: '文档最小值',\n },\n raw: {\n limit: '日志条数',\n },\n alert: {\n query: {\n title: '查询统计',\n preview: '机器预览',\n },\n trigger: {\n title: '告警条件',\n builder: '简单模式',\n code: '表达式模式',\n label: '关联 Label',\n },\n prom_eval_interval_tip: '每隔 {{num}} 秒,去查询后端存储',\n prom_for_duration_tip:\n '通常持续时长大于执行频率,在持续时长内按照执行频率多次执行查询,每次都触发才生成告警;如果持续时长置为0,表示只要有一次查询的数据满足告警条件,就生成告警',\n },\n },\n};\nexport default zh_CN;\n","const en_US = {\n business_group: 'Business Group',\n search_placeholder: 'Search',\n nodata: 'No Data',\n btn: {\n add: 'Add',\n create: 'Create',\n modify: 'Modify',\n delete: 'Delete',\n clone: 'Clone',\n detail: 'Detail',\n execute: 'Execute',\n export: 'Export',\n import: 'Import',\n save: 'Save',\n ok: 'Ok',\n cancel: 'Cancel',\n view: 'View',\n more: 'More',\n back: 'Back',\n edit: 'Edit',\n submit: 'Submit',\n operations: 'Actions',\n testAndSave: 'Save & Test',\n batch_operations: 'Batch Actions',\n batch_delete: 'Batch Delete',\n batch_clone: 'Batch Clone',\n batch_modify: 'Batch Modify',\n batch_export: 'Batch Export',\n batch_import: 'Batch Import',\n },\n table: {\n name: 'Name',\n ident: 'Ident',\n tag: 'Tag',\n update_at: 'Update at',\n update_by: 'Updater',\n create_at: 'Create at',\n create_by: 'Creator',\n status: 'Status',\n enabled: 'Enabled',\n note: 'Note',\n operations: 'Actions',\n total: 'Total {{total}} items',\n },\n datasource: {\n name: 'Datasource',\n type: 'Datasource Type',\n id: 'Datasource',\n id_required: 'Please select a datasource',\n empty_modal: {\n title: 'Please contact the administrator to configure the datasource',\n btn1: 'Go to configure',\n btn2: 'OK',\n },\n },\n confirm: {\n delete: 'Are you sure to delete?',\n clone: 'Are you sure to clone?',\n save: 'Are you sure to save?',\n },\n success: {\n submit: 'Submitted Successfully',\n modify: 'Modified Successfully',\n edit: 'Edited Successfully',\n create: 'Created Successfully',\n add: 'Added Successfully',\n delete: 'Deleted Successfully',\n clone: 'Cloned Successfully',\n sort: 'Sorted Successfully',\n import: 'Imported Successfully',\n save: 'Saved Successfully',\n },\n error: {\n clone: 'Cloning Failed',\n import: 'Import Failed',\n },\n time: {\n millisecond: 'Millisecond',\n second: 'Second',\n minute: 'Minute',\n hour: 'Hour',\n weekdays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n },\n severity: {\n 1: 'S1',\n 2: 'S2',\n 3: 'S3',\n },\n\n tpl: 'Self-healing',\n 'tpl.create': 'Create',\n 'tpl.tag.bind': 'Bind tags',\n 'tpl.tag.unbind': 'Unbind tags',\n 'tpl.tag.bind.title': 'Batch bind tags',\n 'tpl.tag.bind.success': 'Successfully binded',\n 'tpl.tag.bind.field': 'tags',\n 'tpl.tag.unbind.title': 'Batch unbind tags',\n 'tpl.tag.unbind.field': 'tags',\n 'tpl.tag.unbind.success': 'Successfully unbinded',\n 'tpl.node.modify': 'Modify node',\n 'tpl.node.modify.title': 'Batch modify node',\n 'tpl.batch.modify.group': 'Batch modify group',\n 'tpl.title': 'Title',\n 'tpl.title.tpl.help': 'Describe the role of the template',\n 'tpl.title.task.help': 'Describe the role of the task',\n 'tpl.tags': 'Tags',\n 'tpl.tags.help': 'Used for classification',\n 'tpl.creator': 'Creator',\n 'tpl.last_updator': 'Last updator',\n 'tpl.last_updated': 'Last updated',\n 'tpl.account.help': 'Execute account, use root with caution',\n 'tpl.batch.help': 'Concurrency, default is 0, indicating full concurrent execution, 1 means sequential execution, 2 means that each time two execute',\n 'tpl.tolerance.help': 'Tolerate several machines failing, the default is 0, which means no tolerance, once failed, immediately suspend',\n 'tpl.timeout.help': 'Timeout for stand-alone script execution, in seconds',\n 'tpl.pause.help': 'Pause after completed, pause multiple hosts, write multiple hosts, separated by commas',\n 'tpl.host.help': 'List of hosts to be executed',\n 'tpl.script.help': 'Script content to be executed',\n 'tpl.args.help': 'Parameters attached to the script, separated by double commas, such as arg1,,arg2,,arg3',\n 'tpl.modify': 'Modify the template',\n 'tpl.create.task': 'Create a new task',\n\n task: 'Execution History',\n 'task.create': 'Create task',\n 'task.title': 'Title',\n 'task.done': 'Done',\n 'task.clone': 'Clone',\n 'task.meta': 'Meta',\n 'task.creator': 'Creator',\n 'task.created': 'Created',\n 'task.only.mine': 'Just mine',\n 'task.host': 'Host',\n 'task.status': 'Status',\n 'task.output': 'Output',\n 'task.refresh': 'Refresh',\n 'task.control.params': 'Control params',\n 'task.account': 'Account',\n 'task.batch': 'Batch',\n 'task.tolerance': 'Tolerance',\n 'task.timeout': 'Timeout',\n 'task.script': 'Script',\n 'task.script.args': 'Script params',\n 'task.pause': 'Pause',\n 'task.host.list': 'Host list',\n 'task.clone.new': 'Clone a new task',\n 'task.temporary.create': 'Create temporary task',\n 'task.save.temporarily': 'Save temporarily',\n 'task.save.execute': 'Save and execute',\n 'task.tip.title': 'Tips',\n 'task.tip.content':\n 'If your role is an administrator, you can execute the script on any machine; otherwise, you can only execute the script on the machines under the business group with administrative rights',\n\n 'last.7.days': 'Last 7 days',\n 'last.15.days': 'Last 15 days',\n 'last.30.days': 'Last 30 days',\n 'last.60.days': 'Last 60 days',\n 'last.90.days': 'Last 90 days',\n\n 'msg.submit.success': 'Successfully submited',\n 'msg.modify.success': 'Successfully modified',\n 'msg.create.success': 'Successfully created',\n 'msg.add.success': 'Successfully created',\n 'msg.delete.success': 'Successfully deleted',\n 'msg.clone.success': 'Successfully cloned',\n 'msg.clone.error': 'Cloning failed',\n 'msg.sort.success': 'Successfully sorted',\n};\nexport default en_US;\n","const zh_CN = {\n business_group: '业务组',\n search_placeholder: '搜索',\n nodata: '暂无数据',\n btn: {\n add: '新增',\n create: '创建',\n modify: '修改',\n delete: '删除',\n clone: '克隆',\n detail: '详情',\n execute: '查询',\n export: '导出',\n import: '导入',\n save: '保存',\n ok: '确定',\n cancel: '取消',\n view: '查看',\n more: '更多操作',\n back: '返回',\n edit: '编辑',\n submit: '提交',\n operations: '操作',\n testAndSave: '测试并保存',\n batch_operations: '批量操作',\n batch_delete: '批量删除',\n batch_clone: '批量克隆',\n batch_modify: '批量修改',\n batch_export: '批量导出',\n batch_import: '批量导入',\n },\n table: {\n name: '名称',\n ident: '标识',\n tag: '标签',\n update_at: '更新时间',\n update_by: '更新人',\n create_at: '创建时间',\n create_by: '创建者',\n status: '状态',\n enabled: '启用',\n note: '备注',\n operations: '操作',\n total: '共 {{total}} 条',\n },\n datasource: {\n name: '数据源',\n type: '数据源类型',\n id: '关联数据源',\n id_required: '请选择数据源',\n empty_modal: {\n title: '暂无数据源配置,请联系管理员去添加数据源',\n btn1: '前往配置',\n btn2: '知道了',\n },\n },\n confirm: {\n delete: '确认删除吗?',\n clone: '确认克隆吗?',\n save: '确认保存吗?',\n },\n success: {\n submit: '提交成功',\n modify: '修改成功',\n edit: '编辑成功',\n create: '创建成功',\n add: '添加成功',\n delete: '删除成功',\n clone: '克隆成功',\n sort: '排序成功',\n import: '导入成功',\n save: '保存成功',\n },\n error: {\n clone: '克隆失败',\n import: '导入失败',\n },\n time: {\n millisecond: '毫秒',\n second: '秒',\n minute: '分钟',\n hour: '小时',\n weekdays: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n },\n severity: {\n 1: '一级报警',\n 2: '二级报警',\n 3: '三级报警',\n },\n\n // 临时把 task 的翻译放在这里\n tpl: '自愈脚本',\n 'tpl.create': '创建',\n 'tpl.tag.bind': '绑定标签',\n 'tpl.tag.unbind': '解绑标签',\n 'tpl.tag.bind.title': '批量绑定标签',\n 'tpl.tag.bind.field': '待绑定的标签',\n 'tpl.tag.bind.success': '批量绑定标签成功',\n 'tpl.tag.unbind.title': '批量解绑标签',\n 'tpl.tag.unbind.field': '待解绑的标签',\n 'tpl.tag.unbind.success': '批量解绑标签成功',\n 'tpl.node.modify': '修改节点',\n 'tpl.node.modify.title': '批量修改节点',\n 'tpl.batch.modify.group': '批量修改所属分组',\n 'tpl.title': '标题',\n 'tpl.title.tpl.help': '标题,说明这个脚本的作用',\n 'tpl.title.task.help': '标题,说明这个任务的作用',\n 'tpl.tags': '标签',\n 'tpl.tags.help': '标签,用于分类',\n 'tpl.creator': '创建人',\n 'tpl.last_updator': '更新人',\n 'tpl.last_updated': '更新时间',\n 'tpl.account.help': '执行账号,慎用root,除非要代表操作系统意志',\n 'tpl.batch.help': '并发度,默认是0,表示全并发执行,1表示顺序执行,2表示每次执行2台',\n 'tpl.tolerance.help': '容忍几台机器失败,默认是0,表示一台都不容忍,只要失败了,立马暂停',\n 'tpl.timeout.help': '单机脚本执行的超时时间,单位是秒',\n 'tpl.pause.help': '暂停点,做完某台之后暂停一下,要暂停多台,写多个 host,逗号分隔',\n 'tpl.host.help': '要执行的机器列表',\n 'tpl.script.help': '要执行的脚本内容',\n 'tpl.args.help': '附于脚本之后的参数,多个参数之间用双逗号,,分隔,比如arg1,,arg2,,arg3',\n 'tpl.modify': '编辑脚本',\n 'tpl.create.task': '创建任务',\n\n task: '执行历史',\n 'task.create': '创建任务',\n 'task.title': '标题',\n 'task.done': '是否完成',\n 'task.clone': '克隆任务',\n 'task.meta': '元信息',\n 'task.creator': '创建人',\n 'task.created': '创建时间',\n 'task.only.mine': '只看自己',\n 'task.host': 'Host',\n 'task.status': '状态',\n 'task.output': '输出',\n 'task.refresh': '刷新',\n 'task.control.params': '控制参数',\n 'task.account': '执行账号',\n 'task.batch': '并发度',\n 'task.tolerance': '容忍度',\n 'task.timeout': '超时时间',\n 'task.script': '脚本内容',\n 'task.script.args': '脚本参数',\n 'task.pause': '暂停点',\n 'task.host.list': '机器列表',\n 'task.clone.new': '克隆一个新任务',\n 'task.temporary.create': '创建临时任务',\n 'task.save.temporarily': '保存暂不执行',\n 'task.save.execute': '保存立刻执行',\n 'task.tip.title': '提示信息',\n 'task.tip.content': '如果你的角色是管理员,则可以在任意机器执行脚本;否则,只能对有管理权限的业务组下的机器执行脚本',\n\n 'last.7.days': '最近 7 天',\n 'last.15.days': '最近 15 天',\n 'last.30.days': '最近 30 天',\n 'last.60.days': '最近 60 天',\n 'last.90.days': '最近 90 天',\n\n 'msg.submit.success': '提交成功',\n 'msg.modify.success': '修改成功',\n 'msg.create.success': '创建成功',\n 'msg.add.success': '添加成功',\n 'msg.delete.success': '删除成功',\n 'msg.clone.success': '克隆成功',\n 'msg.clone.error': '克隆失败',\n 'msg.sort.success': '排序成功',\n};\nexport default zh_CN;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport * as datasource from './datasource';\nimport * as common from './common';\n\nconst resources = {\n en_US: {\n common: common.en_US,\n datasource: datasource.en_US,\n },\n zh_CN: {\n common: common.zh_CN,\n datasource: datasource.zh_CN,\n },\n};\n\nexport default resources;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport resources from './locales/resources';\n\ni18n.use(initReactI18next).init({\n defaultNS: 'common',\n resources,\n lng: localStorage.getItem('language') || 'zh_CN',\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport { i18n as i18nInit };\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};\nexports.default = _default;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nvar _default = locale;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _zh_CN = _interopRequireDefault(require(\"rc-picker/lib/locale/zh_CN\"));\n\nvar _zh_CN2 = _interopRequireDefault(require(\"../../time-picker/locale/zh_CN\"));\n\n// 统一合并为完整的 Locale\nvar locale = {\n lang: (0, _extends2[\"default\"])({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeQuarterPlaceholder: ['开始季度', '结束季度'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, _zh_CN[\"default\"]),\n timePickerLocale: (0, _extends2[\"default\"])({}, _zh_CN2[\"default\"])\n}; // should add whitespace between char in Button\n\nlocale.lang.ok = '确定'; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _zh_CN = _interopRequireDefault(require(\"../../date-picker/locale/zh_CN\"));\n\nvar _default = _zh_CN[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _zh_CN = _interopRequireDefault(require(\"rc-pagination/lib/locale/zh_CN\"));\n\nvar _zh_CN2 = _interopRequireDefault(require(\"../date-picker/locale/zh_CN\"));\n\nvar _zh_CN3 = _interopRequireDefault(require(\"../time-picker/locale/zh_CN\"));\n\nvar _zh_CN4 = _interopRequireDefault(require(\"../calendar/locale/zh_CN\"));\n\n/* eslint-disable no-template-curly-in-string */\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: _zh_CN[\"default\"],\n DatePicker: _zh_CN2[\"default\"],\n TimePicker: _zh_CN3[\"default\"],\n Calendar: _zh_CN4[\"default\"],\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nvar _default = localeValues;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nvar _default = locale;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _en_US = _interopRequireDefault(require(\"rc-picker/lib/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../../time-picker/locale/en_US\"));\n\n// Merge into a locale object\nvar locale = {\n lang: (0, _extends2[\"default\"])({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, _en_US[\"default\"]),\n timePickerLocale: (0, _extends2[\"default\"])({}, _en_US2[\"default\"])\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nvar _default = locale;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"../../date-picker/locale/en_US\"));\n\nvar _default = _en_US[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"rc-pagination/lib/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../date-picker/locale/en_US\"));\n\nvar _en_US3 = _interopRequireDefault(require(\"../time-picker/locale/en_US\"));\n\nvar _en_US4 = _interopRequireDefault(require(\"../calendar/locale/en_US\"));\n\n/* eslint-disable no-template-curly-in-string */\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: _en_US[\"default\"],\n DatePicker: _en_US2[\"default\"],\n TimePicker: _en_US3[\"default\"],\n Calendar: _en_US4[\"default\"],\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nvar _default = localeValues;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default2 = _interopRequireDefault(require(\"./default\"));\n\nvar _default = _default2[\"default\"];\nexports[\"default\"] = _default;","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { CommonStoreState } from './commonInterface';\nimport { resourceStoreState } from './businessInterface';\nimport { eventStoreState } from './eventInterface';\nimport { warningStoreState } from './warningInterface';\nimport { IshieldState } from '@/store/warningInterface/shield';\n\nexport type RootState = {\n common: CommonStoreState;\n resource: resourceStoreState;\n strategy: warningStoreState;\n event: eventStoreState;\n shield: IshieldState;\n};\n\nexport interface IContextPayload {\n dispatch: any;\n data: T;\n}\n\nexport interface IContext {\n payload: IContextPayload;\n ref?: React.MutableRefObject;\n open: () => void;\n close: () => void;\n innerContext?: C;\n setInnerContext?: React.Dispatch>;\n}\n\ntype disposer = (() => unknown) | null;\nexport interface IContextWrapperComponent {\n renderContent: (context: IContext) => React.ReactNode;\n renderTrigger: (context: IContext) => React.ReactNode;\n onConfirm: (context: IContext) => Promise;\n onMounted?: (context: IContext) => disposer;\n beforeClose?: (context: IContext) => Promise;\n renderFooter?: (context: IContext) => React.ReactNode;\n payload: IContextPayload;\n}\n\nexport interface IStore {\n namespace: string;\n state: S;\n reducers: R;\n effects: E;\n}\n\nexport enum RequestMethod {\n Get = 'Get',\n Post = 'Post',\n Put = 'Put',\n Delete = 'Delete',\n}\n\nexport type basePagingData = {\n list: [T];\n total: number;\n};\n\nexport type baseFePagingData = [T];\n\nexport type basePagingReq = {\n success: boolean;\n dat: baseFePagingData;\n err: string;\n};\n\nexport type baseFePagingReq = {\n success: boolean;\n dat: baseFePagingData;\n err: string;\n};\n\nexport interface IBasePagingParams {\n limit: number;\n p: number;\n}\n\nexport enum favoriteType {\n Add,\n Delete,\n}\n\nexport enum favoriteFrom {\n Favorite,\n Common,\n}\n\nexport type favoriteGroup = {\n favorite: Array;\n common: Array;\n commonTotal: number;\n currentPage: number;\n};\n\nexport type baseFavoriteItem = {\n id: number;\n isFavorite: boolean;\n create_at: number;\n create_by: number;\n update_at: number;\n update_by: number;\n isBelongIn: favoriteFrom;\n};\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport request from '@/utils/request';\nimport { RequestMethod } from '@/store/common';\n\n// 登录\nexport const authLogin = function (username: string, password: string) {\n return request(`/api/n9e/auth/login`, {\n method: RequestMethod.Post,\n data: { username, password },\n });\n};\n\n// 刷新accessToken\nexport const UpdateAccessToken = function () {\n return request(`/api/n9e/auth/refresh`, {\n method: RequestMethod.Post,\n data: {\n refresh_token: localStorage.getItem('refresh_token'),\n },\n });\n};\n\n// 更改密码\nexport const UpdatePwd = function (oldpass: string, newpass: string) {\n return request(`/api/n9e/self/password`, {\n method: RequestMethod.Put,\n data: { oldpass, newpass },\n });\n};\n\n// 获取csrf token\nexport const GenCsrfToken = function () {\n return request(`/api/n9e/csrf`, {\n method: RequestMethod.Get,\n });\n};\n\n// 退出\nexport const Logout = function () {\n return request(`/api/n9e/auth/logout`, {\n method: RequestMethod.Post,\n });\n};\n\nexport const getRedirectURL = function () {\n return request('/api/n9e/auth/redirect', {\n method: RequestMethod.Get,\n });\n};\n\nexport const authCallback = function (params) {\n return request('/api/n9e/auth/callback', {\n method: RequestMethod.Get,\n params,\n });\n};\n\nexport const getRedirectURLCAS = function () {\n return request('/api/n9e/auth/redirect/cas', {\n method: RequestMethod.Get,\n });\n};\n\nexport const authCallbackCAS = function (params) {\n return request('/api/n9e/auth/callback/cas', {\n method: RequestMethod.Get,\n params,\n });\n};\n\nexport const getRedirectURLOAuth = function () {\n return request('/api/n9e/auth/redirect/oauth', {\n method: RequestMethod.Get,\n });\n};\n\nexport const authCallbackOAuth = function (params) {\n return request('/api/n9e/auth/callback/oauth', {\n method: RequestMethod.Get,\n params,\n });\n};\n\nexport const getSsoConfig = function () {\n return request('/api/n9e/auth/sso-config', {\n method: RequestMethod.Get,\n });\n};\n","/** Request 网络请求工具 更详细的 api 文档\b: https://github.com/umijs/umi-request */\nimport { extend } from 'umi-request';\nimport { notification } from 'antd';\nimport _ from 'lodash';\nimport { UpdateAccessToken } from '@/services/login';\n\n/** 异常处理程序,所有的error都被这里处理,页面无法感知具体error */\nconst errorHandler = (error: Error): Response => {\n // 忽略掉 setting getter-only property \"data\" 的错误\n // 这是 umi-request 的一个 bug,当触发 abort 时 catch callback 里面不能 set data\n if (error.name !== 'AbortError' && error.message !== 'setting getter-only property \"data\"') {\n // @ts-ignore\n if (!error.silence) {\n notification.error({\n message: error.message,\n });\n }\n // 暂时认定只有开启 silence 的时候才需要传递 error 详情以便更加精确的处理错误\n // @ts-ignore\n if (error.silence) {\n throw error;\n } else {\n throw new Error(error.message);\n }\n }\n throw error;\n};\n\n/** 处理后端返回的错误信息 */\nconst processError = (res: any): string => {\n if (res?.error) {\n return _.isString(res?.error) ? res.error : JSON.stringify(res?.error);\n }\n if (res?.err) {\n return _.isString(res?.err) ? res.err : JSON.stringify(res?.err);\n }\n if (res?.errors) {\n return _.isString(res?.errors) ? res.errors : JSON.stringify(res?.errors);\n }\n if (res?.message) {\n return _.isString(res?.message) ? res.message : JSON.stringify(res?.message);\n }\n return JSON.stringify(res);\n};\n\n/** 配置request请求时的默认参数 */\nconst request = extend({\n errorHandler,\n credentials: 'include',\n});\n\nrequest.interceptors.request.use((url, options) => {\n let headers = {\n ...options.headers,\n };\n headers['Authorization'] = `Bearer ${localStorage.getItem('access_token') || ''}`;\n headers['X-Language'] = localStorage.getItem('language') === 'en_US' ? 'en' : 'zh';\n return {\n url,\n options: { ...options, headers },\n };\n});\n\n/**\n * 响应拦截\n */\nrequest.interceptors.response.use(\n async (response, options) => {\n const { status } = response;\n if (status === 200) {\n return response\n .clone()\n .json()\n .then((data) => {\n const { url } = response;\n // TODO: 糟糕的逻辑,后端返回的数据结构不统一,需要兼容\n // /n9e/datasource/ 返回的数据结构是 { error: '', data: [] }\n // proxy/prometheus 返回的数据结构是 { status: 'success', data: {} }\n // proxy/elasticsearch 返回的数据结构是 { ...data }\n // proxy/jeager 返回的数据结构是 { data: [], errors: [] }\n if (\n _.some(['/api/v1', '/api/v2', '/api/n9e/datasource', '/api/n9e/proxy'], (item) => {\n return url.includes(item);\n })\n ) {\n if (!data.error) {\n return { ...data, success: true };\n } else {\n throw {\n name: processError(data),\n message: processError(data),\n silence: options.silence,\n data,\n response,\n };\n }\n } else {\n // n9e 和 n9e-plus 大部分接口返回的数据结构是 { err: '', dat: {} }\n if (data.err === '' || data.status === 'success' || data.error === '') {\n return { ...data, success: true };\n } else {\n throw {\n name: processError(data),\n message: processError(data),\n silence: options.silence,\n data,\n response,\n };\n }\n }\n });\n } else if (status === 401) {\n if (response.url.indexOf('/api/n9e/auth/refresh') > 0) {\n location.href = `/login${location.pathname != '/' ? '?redirect=' + location.pathname + location.search : ''}`;\n } else {\n localStorage.getItem('refresh_token')\n ? UpdateAccessToken().then((res) => {\n console.log('401 err', res);\n if (res.err) {\n location.href = `/login${location.pathname != '/' ? '?redirect=' + location.pathname + location.search : ''}`;\n } else {\n const { access_token, refresh_token } = res.dat;\n localStorage.setItem('access_token', access_token);\n localStorage.setItem('refresh_token', refresh_token);\n location.href = `${location.pathname}${location.search}`;\n }\n })\n : (location.href = `/login${location.pathname != '/' ? '?redirect=' + location.pathname + location.search : ''}`);\n }\n } else {\n return response\n .clone()\n .text()\n .then((data) => {\n let errObj = {};\n try {\n const parsed = JSON.parse(data);\n const errMessage = processError(parsed);\n errObj = {\n name: errMessage,\n message: errMessage,\n data: parsed,\n };\n } catch (error) {\n errObj = {\n name: data,\n message: data,\n };\n }\n throw {\n ...errObj,\n silence: options.silence,\n };\n });\n }\n },\n {\n global: false,\n },\n);\n\nexport default request;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nfunction getApi(path: string) {\n const prefix = '/api/n9e/busi-group';\n return (busiGroup: string | number) => {\n return `${prefix}/${busiGroup}${path}`;\n }\n}\n \nconst api = {\n tasktpls: getApi('/task-tpls'),\n tasktpl: getApi('/task-tpl'),\n tasks: getApi('/tasks'),\n task: getApi('/task'),\n perms: getApi('/builtin-perms'),\n};\n\nexport default api;\n ","import React, { Component } from 'react';\nimport { Spin } from 'antd';\nimport _ from 'lodash';\nimport request from '@/utils/request';\nimport api from '@/utils/api';\n\nexport default class index extends Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n data: [],\n };\n }\n\n componentDidMount = () => {\n this.fetchData();\n document.title = '任务输出';\n document.body.style.backgroundColor = '#fff';\n document.body.style.color = '#000';\n }\n\n componentWillMount = () => {\n document.body.style.backgroundColor = '#f0f2f5';\n document.body.style.color = 'rgba(0, 0, 0, 0.65)';\n }\n\n fetchData() {\n const busiId = _.get(this.props, 'match.params.busiId');\n const taskId = _.get(this.props, 'match.params.taskId');\n const outputType = _.get(this.props, 'match.params.outputType');\n\n if (taskId !== undefined && outputType !== undefined) {\n this.setState({ loading: true });\n request(`${api.task(busiId)}/${taskId}/${outputType}`).then((data) => {\n this.setState({ data: data.dat });\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n }\n\n getOutput() {\n const outputType = _.get(this.props, 'match.params.outputType');\n const { data } = this.state;\n let output = '';\n _.each(data, (item) => {\n output += `${item.host}\\n`;\n output += `${item[outputType]}\\n\\n`;\n });\n return output;\n }\n\n render() {\n const { loading } = this.state;\n const output = this.getOutput();\n return (\n \n
\n          {output}\n        
\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport { Spin } from 'antd';\nimport _ from 'lodash';\nimport request from '@/utils/request';\nimport api from '@/utils/api';\n\nexport default class index extends Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n data: '',\n };\n }\n\n componentDidMount = () => {\n this.fetchData();\n document.title = '任务输出';\n document.body.style.backgroundColor = '#fff';\n document.body.style.color = '#000';\n }\n\n componentWillMount = () => {\n document.body.style.backgroundColor = '#f0f2f5';\n document.body.style.color = 'rgba(0, 0, 0, 0.65)';\n }\n\n fetchData() {\n const busiId = _.get(this.props, 'match.params.busiId');\n const taskId = _.get(this.props, 'match.params.taskId');\n const host = _.get(this.props, 'match.params.host');\n const outputType = _.get(this.props, 'match.params.outputType');\n\n if (taskId !== undefined && host !== undefined) {\n this.setState({ loading: true });\n request(`${api.task(busiId)}/${taskId}/host/${host}/${outputType}`).then((data) => {\n this.setState({ data: data.dat });\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n }\n\n getOutput() {\n const host = _.get(this.props, 'match.params.host');\n const { data } = this.state;\n let output = '';\n output += `${host}\\n`;\n output += `${data}\\n\\n`;\n return output;\n }\n\n render() {\n const { loading } = this.state;\n const output = this.getOutput();\n return (\n \n
\n          {output}\n        
\n
\n );\n }\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nexport const PAGE_SIZE = 15;\nexport const PAGE_SIZE_MAX = 100000;\nexport const PAGE_SIZE_OPTION = 20;\nexport const PAGE_SIZE_OPTION_LARGE = 150;\n\nexport const randomColor = ['pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime'];\n\nexport const priorityColor = ['red', 'orange', 'blue'];\n// 主题色\nexport const chartColor = ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'];\nexport const METRICS = {\n TOTAL: 'total',\n ERROR: 'error',\n LATENCY: 'latency',\n};\n\nexport const chartDefaultOptions = {\n color: chartColor,\n xAxis: { data: [] },\n yAxis: {},\n series: [],\n tooltip: {\n show: true,\n trigger: 'axis',\n textStyle: {\n fontSize: 12,\n lineHeight: 12,\n },\n },\n grid: {\n left: '2%',\n right: '1%',\n top: '20',\n bottom: '20',\n },\n legend: {\n lineStyle: {\n width: 1,\n },\n },\n animation: false,\n};\n\nexport const normalDatasourceCates = [\n {\n value: 'prometheus',\n label: 'Prometheus',\n },\n {\n value: 'elasticsearch',\n label: 'Elasticsearch',\n },\n];\n\nexport const datasourceCates = [\n ...normalDatasourceCates,\n {\n value: 'aliyun-sls',\n label: '阿里云SLS',\n },\n];\n\nexport const datasourceCatesMap = {\n normal: normalDatasourceCates,\n all: datasourceCates,\n};\n\nexport enum DatasourceCateEnum {\n prometheus = 'prometheus',\n elasticsearch = 'elasticsearch',\n aliyunSLS = 'aliyun-sls',\n}\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport _ from 'lodash';\nimport request from '@/utils/request';\nimport { RequestMethod, IBasePagingParams } from '@/store/common';\nimport type { MetricListRes, strategyGroup, strategyStatus, TagKeysRes, TagValuesRes } from '@/store/warningInterface';\nimport { PAGE_SIZE } from '@/utils/constant';\nimport React from 'react';\nimport queryString from 'query-string';\n\n// 获得策略分组列表\nexport const getStrategyGroupList = function (query?: string, p = 1) {\n return request(`/api/n9e/alert-rule-groups`, {\n method: RequestMethod.Get,\n params: {\n query,\n p,\n limit: PAGE_SIZE,\n },\n });\n};\n\n// 添加策略分组\nexport const addStrategyGroup = function (data: strategyGroup) {\n return request(`/api/n9e/alert-rule-groups`, {\n method: RequestMethod.Post,\n data,\n });\n};\n\n// 获取策略分组\nexport const getStrategyGroup = function (id: number) {\n return request(`/api/n9e/alert-rule-group/${id}`, {\n method: RequestMethod.Get,\n });\n};\n\n// 删除策略分组\nexport const deleteStrategyGroup = function (id: number) {\n return request(`/api/n9e/alert-rule-group/${id}`, {\n method: RequestMethod.Delete,\n });\n};\n\n// 更新策略分组\nexport const updateStrategyGroup = function (data: Partial & { id: number }) {\n return request(`/api/n9e/alert-rule-group/${data.id}`, {\n method: RequestMethod.Put,\n data,\n });\n};\n\n//// 获取策略列表\nexport const getStrategyGroupSubList = function (params: { id: number }) {\n return request(`/api/n9e/busi-group/${params.id}/alert-rules`, {\n method: RequestMethod.Get,\n });\n};\n\n// 获取收藏分组\nexport const getFavoritesStrategyGroups = function () {\n return request(`/api/n9e/alert-rule-groups/favorites`, {\n method: RequestMethod.Get,\n });\n};\n\n// 添加收藏分组\nexport const addFavoriteGroup = function (id: number) {\n return request(`/api/n9e/alert-rule-group/${id}/favorites`, {\n method: RequestMethod.Post,\n data: {\n id,\n },\n });\n};\n\n// 删除收藏分组\nexport const deleteFavoriteGroup = function (id: number) {\n return request(`/api/n9e/alert-rule-group/${id}/favorites`, {\n method: RequestMethod.Delete,\n data: {\n id,\n },\n });\n};\n\nexport const getMetrics = function (params = {}) {\n return request(`/api/n9e/prometheus/api/v1/label/__name__/values`, {\n method: RequestMethod.Get,\n params,\n paramsSerializer: function (params) {\n return queryString.stringify(params, { arrayFormat: 'bracket' });\n },\n });\n};\n\nexport const getMetricsDesc = function (data = []) {\n return request(`/api/n9e/metrics/desc`, {\n method: RequestMethod.Post,\n data,\n });\n};\n\nexport const getTagKeys = function (params): Promise {\n return request(`/api/n9e/tag-keys`, {\n method: RequestMethod.Post,\n data: params,\n });\n};\n\nexport const getTagValuesByKey = function (params): Promise {\n return request(`/api/n9e/tag-values`, {\n method: RequestMethod.Post,\n data: params,\n });\n};\n\nexport const getWarningStrategy = function (id): Promise {\n return request(`/api/n9e/alert-rule/${id}`, {\n method: RequestMethod.Get,\n });\n};\n\nexport const addStrategy = function (data: any[], busiId: number) {\n return request(`/api/n9e/busi-group/${busiId}/alert-rules`, {\n method: 'POST',\n data: data,\n });\n};\n\nexport const importStrategy = function (data: any[], busiId: number) {\n return request(`/api/n9e/busi-group/${busiId}/alert-rules/import`, {\n method: 'POST',\n data: data,\n });\n};\n\nexport const EditStrategy = function (data: any[], busiId: number, strategyId: number) {\n return request(`/api/n9e/busi-group/${busiId}/alert-rule/${strategyId}`, {\n method: RequestMethod.Put,\n data: data,\n });\n};\n\nexport const deleteStrategy = function (ids: number[], strategyId: number) {\n return request(`/api/n9e/busi-group/${strategyId}/alert-rules`, {\n method: RequestMethod.Delete,\n data: { ids },\n });\n};\n\nexport const batchDeleteStrategy = function (ruleId, ids: Array) {\n return request(`/api/n9e/alert-rule-group/${ruleId}/alert-rules`, {\n method: RequestMethod.Delete,\n data: { ids },\n });\n};\n\nexport const prometheusQuery = function (data, datasourceValue): Promise {\n return request(`/api/n9e/proxy/${datasourceValue}/api/v1/query`, {\n method: RequestMethod.Get,\n params: data,\n });\n};\n\n/**\n * 批量更新规则\n */\nexport const updateAlertRules = function (\n data: {\n ids: React.Key[];\n fields: any;\n action?: string;\n },\n busiId: number,\n) {\n return request(`/api/n9e/busi-group/${busiId}/alert-rules/fields`, {\n method: RequestMethod.Put,\n data: data,\n });\n};\n\n/**\n * 获取未恢复告警列表\n */\nexport function getBusiGroupsCurAlerts(ids: number[]) {\n return request(`/api/n9e/busi-groups/alertings`, {\n method: RequestMethod.Get,\n params: { ids: ids.join(',') },\n });\n}\n\nexport const getAlertEvents = function (data) {\n return request(`/api/n9e/alert-events`, {\n method: RequestMethod.Get,\n params: data,\n });\n};\n/**\n * 获取全量告警历史页面\n */\nexport const getHistoryEvents = function (data) {\n console.log(data);\n\n return request(`/api/n9e/history-alert-events`, {\n method: RequestMethod.Get,\n params: data,\n });\n};\n// 获取告警详情\nexport function getAlertEventsById(busiId, eventId) {\n return request(`/api/n9e/alert-cur-event/${eventId}`, {\n method: RequestMethod.Get,\n });\n}\n\nexport function getHistoryEventsById(busiId, eventId) {\n return request(`/api/n9e/alert-his-event/${eventId}`, {\n method: RequestMethod.Get,\n });\n}\n/**\n * 批量删除(忽略)告警历史\n */\nexport const deleteAlertEvents = function (ids: Array) {\n return request(`/api/n9e/alert-cur-events`, {\n method: RequestMethod.Delete,\n data: {\n ids,\n },\n });\n};\n\n/**\n * 批量更新告警策略状态\n */\nexport const updateAlertEventsStatus = function (ids: Array, status: strategyStatus) {\n return request(`/api/n9e/alert-rules/status`, {\n method: RequestMethod.Put,\n data: {\n ids,\n status,\n },\n });\n};\n/**\n * 批量更新告警通知接收组+接收人\n */\nexport const updateAlertEventsNotifyGroups = function (ids: Array, notify_groups: string, notify_users: string) {\n return request(`/api/n9e/alert-rules/notify-groups`, {\n method: RequestMethod.Put,\n data: {\n ids,\n notify_groups,\n notify_users,\n },\n });\n};\n/**\n * 批量更新告警通知接收人\n */\nexport const updateAlertEventsNotifyUsers = function (ids: Array, notify_users: string) {\n return request(`/api/n9e/alert-rules/notify-users`, {\n method: RequestMethod.Put,\n data: {\n ids,\n notify_users,\n },\n });\n};\n/**\n * 批量更新告警通知媒介\n */\nexport const updateAlertEventsNotifyChannels = function (ids: Array, notify_channels: string) {\n return request(`/api/n9e/alert-rules/notify-channels`, {\n method: RequestMethod.Put,\n data: {\n ids,\n notify_channels,\n },\n });\n};\n/**\n * 批量更新告警附加标签\n */\nexport const updateAlertEventsAppendTags = function (ids: Array, append_tags: string) {\n return request(`/api/n9e/alert-rules/append-tags`, {\n method: RequestMethod.Put,\n data: {\n ids,\n append_tags,\n },\n });\n};\n\nexport const getBuiltinAlerts = function () {\n return request('/api/n9e/alert-rules/builtin/list', {\n method: RequestMethod.Get,\n });\n};\n\nexport const createBuiltinAlerts = function (name: string, cluster: string, id: number) {\n return request(`/api/n9e/busi-group/${id}/alert-rules/builtin`, {\n method: RequestMethod.Post,\n data: { name, cluster },\n });\n};\n\nexport const getAggrAlerts = function () {\n return request('/api/n9e/alert-aggr-views', {\n method: RequestMethod.Get,\n });\n};\n\nexport const AddAggrAlerts = function (data) {\n return request('/api/n9e/alert-aggr-views', {\n method: RequestMethod.Post,\n data,\n });\n};\n\nexport const updateAggrAlerts = function (data) {\n return request('/api/n9e/alert-aggr-views', {\n method: RequestMethod.Put,\n data,\n });\n};\n\nexport const deleteAggrAlerts = function (ids: number[]) {\n return request('/api/n9e/alert-aggr-views', {\n method: RequestMethod.Delete,\n data: { ids },\n });\n};\n\nexport const getAlertCards = function (params) {\n return request('/api/n9e/alert-cur-events/card', {\n method: RequestMethod.Get,\n params,\n });\n};\n\nexport const getCardDetail = function (ids) {\n return request('/api/n9e/alert-cur-events/card/details', {\n method: RequestMethod.Post,\n data: { ids },\n });\n};\n\nexport const getBrainData = function (params) {\n return request('/api/fc-brain/data', {\n method: RequestMethod.Get,\n params,\n });\n};\n\nexport const getBrainParams = function () {\n return request('/api/fc-brain/params', {\n method: RequestMethod.Get,\n }).then((res) => {\n return res.data;\n });\n};\n\nexport const checkBrainPromql = function (data) {\n return request('/api/fc-brain/promql-check', {\n method: RequestMethod.Post,\n data,\n silence: true,\n }).then((res) => {\n return res.data;\n });\n};\n\nexport const getBrainJobs = function (id) {\n return request('/api/fc-brain/jobs', {\n method: RequestMethod.Get,\n params: {\n id,\n },\n }).then((res) => {\n return res.data;\n });\n};\n\nexport function getBrainLicense() {\n return request('/api/fc-brain/license', {\n method: RequestMethod.Get,\n silence: true,\n });\n}\n\nexport function getDsQuery(datasourceValue: number, requestBody) {\n return request(`/api/n9e/proxy/${datasourceValue}/_msearch`, {\n method: RequestMethod.Post,\n data: requestBody,\n headers: {\n 'Content-Type': 'application/json',\n },\n silence: true,\n }).then((res) => {\n const dat = _.get(res, 'responses');\n return dat;\n });\n}\n\nexport function getLogQuery(params) {\n return request('/api/n9e-plus/log-query', {\n method: RequestMethod.Post,\n data: params,\n headers: {\n 'X-Cluster': 'Default',\n },\n silence: true,\n });\n}\n\nexport function getIndices(datasourceValue: number) {\n return request(`/api/n9e/proxy/${datasourceValue}/_cat/indices`, {\n method: RequestMethod.Get,\n params: {\n format: 'json',\n },\n }).then((res) => {\n return _.sortBy(_.compact(_.map(res, 'index')));\n });\n}\n\nexport function getEventTSQuery(params) {\n return request('/api/n9e-plus/event-ts-query', {\n method: RequestMethod.Post,\n data: params,\n });\n}\n\nexport function getEventLogQuery(params) {\n return request('/api/n9e-plus/event-log-query', {\n method: RequestMethod.Post,\n data: params,\n });\n}\n\nexport function getLogsQuery(params) {\n return request('/api/n9e-plus/logs-query', {\n method: RequestMethod.Post,\n data: params,\n });\n}\n\nexport const getAlertEventList = function (params) {\n return request('/api/n9e/alert-his-events/list', {\n method: RequestMethod.Get,\n params,\n }).then((res) => res?.dat?.list || []);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Tooltip, Modal } from 'antd';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { getBrainLicense } from '@/services/warning';\n\nexport default function License() {\n const [days, setDays] = useState();\n const [rules, setRules] = useState();\n useEffect(() => {\n const now = moment().unix();\n getBrainLicense()\n .then((res) => {\n setDays(_.round((res?.data?.expire - now) / 86400));\n setRules(res?.data?.rules_remaining);\n window.localStorage.setItem('license_rules_remaining', _.toString(res?.data?.rules_remaining));\n })\n .catch((e) => {\n const modal = Modal.error({ closable: false, maskClosable: false, title: 'License证书不存在或已过期,请联系Flashcat技术支持', className: 'license-off' });\n setTimeout(() => {\n modal.destroy();\n }, 10000);\n });\n }, []);\n if (!days || days > 30) return null;\n return (\n
\n \n
还剩 {days} 天到期
\n {rules > 0 ?
还可添加 {rules} 条规则
:
请尽快联系管理员续费
}\n
\n }\n >\n \n 还剩 {days} 天到期\n \n \n \n );\n}\n","import _ from 'lodash';\n\nexport const baseCates = [\n {\n value: 'prometheus',\n label: 'Prometheus',\n type: 'metric',\n },\n {\n value: 'elasticsearch',\n label: 'Elasticsearch',\n type: 'logging',\n },\n];\n\nexport const AdvancedCates = [\n {\n value: 'aliyun-sls',\n label: '阿里云SLS',\n type: 'logging',\n },\n];\n\nconst varCateMap = {\n VITE_IS_SLS_DS: 'aliyun-sls',\n};\n\nexport const getAuthorizedDatasourceCates = () => {\n const datasourceCates = [...baseCates];\n _.forEach(import.meta.env, (value, key) => {\n if (_.endsWith(key, '_DS') && value === 'true') {\n const cate = varCateMap[key];\n if (cate) {\n datasourceCates.push({\n value: cate,\n label: _.find(AdvancedCates, { value: cate })?.label!,\n type: _.find(AdvancedCates, { value: cate })?.type!,\n });\n }\n }\n });\n return datasourceCates;\n};\n","import React from 'react';\nimport _ from 'lodash';\nimport License from './License';\nexport { getAuthorizedDatasourceCates } from './utils';\nexport { License };\n\ninterface IProps {\n var?: string; // 变量名,多个用逗号分隔\n children: React.ReactNode | ((isShow: boolean[]) => React.ReactNode);\n}\n\nexport default function index(props: IProps) {\n let vars: string[] = [];\n if (props.var) {\n if (props.var.indexOf(',') > -1) {\n vars = props.var.split(',');\n } else {\n vars = [props.var];\n }\n const result = _.map(vars, (item) => {\n return import.meta.env[item] === 'true';\n });\n if (_.some(result, (item) => item === true)) {\n if (typeof props.children === 'function') {\n return
{props.children(result)}
;\n }\n return
{props.children}
;\n }\n }\n if (typeof props.children === 'function') {\n return
{props.children([false])}
;\n }\n return null;\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport request from '@/utils/request';\nimport { RequestMethod } from '@/store/common';\n\nconst profileApi = 'api/n9e/self/profile';\n// 修改个人信息\nexport const UpdateProfile = function (data: object) {\n return request(`/${profileApi}`, {\n method: RequestMethod.Put,\n data,\n });\n};\n\nexport const GetProfile = function () {\n return request(`/${profileApi}`, {\n method: RequestMethod.Get,\n });\n};\n\nconst secretApi = 'api/n9e/self/token';\n// 获取个人秘钥\nexport const GetSecret = function () {\n return request(`/${secretApi}`, {\n method: RequestMethod.Get,\n });\n};\n\nexport const UpdateSecret = function (data: object) {\n return request(`/${secretApi}`, {\n method: RequestMethod.Put,\n data,\n });\n};\n\nexport const CreateSecret = function () {\n return request(`/${secretApi}`, {\n method: RequestMethod.Post,\n });\n};\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport _ from 'lodash';\nimport request from '@/utils/request';\nimport { RequestMethod } from '@/store/common';\n\n// 获取数据源列表\nexport function getDatasourceList(pluginTypes?: string[]): Promise<{ name: string; id: number }[]> {\n let url = '/api/n9e/datasource/list';\n if (import.meta.env.VITE_IS_COMMON_DS === 'true') {\n url = '/api/v1/datasource/list';\n }\n return request(url, {\n method: RequestMethod.Post,\n data: {\n p: 1,\n limit: 100, // TODO: 假设 n9e 里面需要选择的数据源不会超过 100 个\n },\n })\n .then((res) => {\n return _.map(\n _.filter(res.data.items || res.data, (item) => {\n return pluginTypes ? _.includes(pluginTypes, item.plugin_type) : true;\n }),\n (item) => {\n return {\n ...item,\n // 兼容 common ds\n plugin_type: item.category ? _.replace(item.plugin_type, `.${item.category}`, '') : item.plugin_type,\n };\n },\n );\n })\n .catch(() => {\n return [];\n });\n}\n\n// 匿名获取数据源列表\nexport function getDatasourceBriefList(): Promise<{ name: string; id: number }[]> {\n const url = '/api/n9e/datasource/brief';\n return request(url, {\n method: RequestMethod.Get,\n })\n .then((res) => {\n return res.dat || [];\n })\n .catch(() => {\n return [];\n });\n}\n\nexport function getBusiGroups(query = '', limit: number = 200) {\n return request(`/api/n9e/busi-groups`, {\n method: RequestMethod.Get,\n params: Object.assign(\n {\n limit,\n },\n query ? { query } : {},\n ),\n });\n}\n\nexport function getPerm(busiGroup: string, perm: 'ro' | 'rw') {\n return request(`/api/n9e/busi-group/${busiGroup}/perm/${perm}`, {\n method: RequestMethod.Get,\n });\n}\n\nexport function getMenuPerm() {\n return request(`/api/n9e/self/perms`, {\n method: RequestMethod.Get,\n });\n}\n","export function resolveHookState(nextState, currentState) {\n if (typeof nextState === 'function') {\n return nextState.length ? nextState(currentState) : nextState();\n }\n return nextState;\n}\n","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useLayoutEffect } from 'react';\nimport { isBrowser } from './misc/util';\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import { useState } from 'react';\nimport { resolveHookState } from '../misc/hookState';\nimport useEffectOnce from '../useEffectOnce';\nimport useIsomorphicLayoutEffect from '../useIsomorphicLayoutEffect';\nexport function createGlobalState(initialState) {\n var store = {\n state: initialState instanceof Function ? initialState() : initialState,\n setState: function (nextState) {\n store.state = resolveHookState(nextState, store.state);\n store.setters.forEach(function (setter) { return setter(store.state); });\n },\n setters: [],\n };\n return function () {\n var _a = useState(store.state), globalState = _a[0], stateSetter = _a[1];\n useEffectOnce(function () { return function () {\n store.setters = store.setters.filter(function (setter) { return setter !== stateSetter; });\n }; });\n useIsomorphicLayoutEffect(function () {\n if (!store.setters.includes(stateSetter)) {\n store.setters.push(stateSetter);\n }\n });\n return [globalState, store.setState];\n };\n}\nexport default createGlobalState;\n","import React, { useState, useEffect, createContext } from 'react';\nimport { Tooltip } from 'antd';\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';\nimport { IMenuProps, isSubMenu, SubMenuProps } from './types';\nimport './index.less';\nimport Item from './menuItem';\nimport SubMenu from './subMenu';\nimport createGlobalState from 'react-use/esm/factory/createGlobalState';\nimport className from 'classnames';\nimport SkimMenu from './skimMenu';\ninterface Props {\n items: IMenuProps[];\n onClick: (key: string) => void;\n collapsed: string | null;\n switchCollapsed: () => void;\n defaultSelectedKeys?: string[];\n selectedKeys?: string[];\n activeMode?: 'click' | 'hover';\n}\n\nexport type { IMenuProps };\n\nexport const useMenuSelect = createGlobalState([]);\nexport const useMenuActive = createGlobalState([]);\n\nexport const Context = createContext<{ activeMode: 'click' | 'hover' }>({\n activeMode: 'hover',\n});\n\nexport default function FcMenu(props: Props) {\n const { items, onClick, collapsed, switchCollapsed, defaultSelectedKeys, selectedKeys, activeMode = 'hover' } = props;\n const [, setMenuActive] = useMenuActive();\n const [menuSelect, setMenuSelect] = useMenuSelect();\n const [shouldClick, setShouldClick] = useState(true);\n\n useEffect(() => {\n setShouldClick(false);\n if (defaultSelectedKeys && !selectedKeys) {\n setMenuActive(defaultSelectedKeys);\n setMenuSelect(defaultSelectedKeys);\n }\n }, []);\n\n useEffect(() => {\n setShouldClick(false);\n if (selectedKeys) {\n setMenuActive(selectedKeys);\n setMenuSelect(selectedKeys);\n }\n }, [selectedKeys]);\n\n useEffect(() => {\n if (shouldClick && menuSelect.length > 0) {\n onClick(menuSelect[menuSelect.length - 1]);\n }\n setShouldClick(true);\n }, [menuSelect]);\n\n return (\n \n {\n if (activeMode === 'hover') {\n setMenuActive([]);\n }\n }}\n >\n
\n {collapsed === '2' ? (\n } placement='rightTop' overlayClassName='fc-skim-menu-tooltip'>\n switchCollapsed()} />\n \n ) : collapsed === '0' ? (\n switchCollapsed()} />\n ) : (\n switchCollapsed()} />\n )}\n
\n {collapsed !== '2' &&\n items\n .filter((item) => !!item)\n .map((item) =>\n isSubMenu(item) ? (\n \n ) : (\n item && \n ),\n )}\n \n
\n );\n}\n","import React from 'react';\n\nexport const RedDot =
;\n\nexport const selectedSvg = (\n \n selected\n \n \n \n \n \n \n);\n","import React from 'react';\nimport { Tooltip, Menu } from 'antd';\nimport { SubMenuProps } from './types';\nimport './index.less';\nimport classNames from 'classnames';\nimport { useMenuSelect, useMenuActive } from './index';\nimport { selectedSvg, RedDot } from './partial';\ninterface Props {\n item: SubMenuProps;\n collapsed: boolean;\n isQuickStart?: boolean;\n}\n\nexport default function FcSubMenu(props: Props) {\n const { item, collapsed, isQuickStart } = props;\n const [menuSelect, setMenuSelect] = useMenuSelect();\n const [menuActive, setMenuActive] = useMenuActive();\n const selected = menuSelect.includes(item.key) && menuSelect.length > 1;\n const hovering = menuActive.includes(item.key);\n const children = item.children || [item];\n const menu = (\n {\n domEvent.stopPropagation();\n setMenuSelect([item.key, key]);\n }}\n selectedKeys={menuSelect}\n >\n {children\n .filter((i) => !!i)\n .map((item) => (\n {item.label}\n ))}\n \n );\n\n const menuWithTitle = (\n
\n {item.label}\n {menu}\n
\n );\n return (\n \n
\n {hovering && (\n <>\n
\n
\n
\n \n )}\n setMenuSelect([item.key, children[0].key])}\n onMouseEnter={() => {\n setMenuActive([item.key]);\n }}\n >\n {selected && selectedSvg}\n {!hovering && selected && RedDot}\n\n \n
\n \n {hovering && item.activeIcon ? item.activeIcon : item.icon}\n \n {!collapsed && {item.label}}\n
\n \n \n \n );\n}\n","import React, { ReactNode, useState } from 'react';\nimport { IMenuProps, MenuItemProps, SubMenuProps } from './types';\nimport './index.less';\nimport { useMenuSelect } from './index';\n\ninterface Props {\n items: IMenuProps[];\n}\n\nexport default function FcMenuItem(props: Props) {\n const { items } = props;\n const [menuSelect, setMenuSelect] = useMenuSelect();\n\n const [hoverSecondMenus, setHoverSecondMenus] = useState();\n\n return (\n
\n
\n {items\n .filter((item) => !!item)\n .map((item: SubMenuProps) => (\n
!item.children && setMenuSelect([item.key])}>\n setHoverSecondMenus(item)}>{item.label}\n
\n ))}\n
\n
\n
\n {hoverSecondMenus &&\n hoverSecondMenus.children &&\n hoverSecondMenus.children\n .filter((item) => !!item)\n .map((item) => (\n
setMenuSelect([hoverSecondMenus.key, item.key])}>\n {item.label}\n
\n ))}\n
\n
\n
\n );\n}\n","var n=[\"zh\",\"ch\",\"sh\",\"z\",\"c\",\"s\",\"b\",\"p\",\"m\",\"f\",\"d\",\"t\",\"n\",\"l\",\"g\",\"k\",\"h\",\"j\",\"q\",\"x\",\"r\",\"y\",\"w\",\"\"],h=[\"j\",\"q\",\"x\"],g=[\"uān\",\"uán\",\"uǎn\",\"uàn\",\"uan\",\"uē\",\"ué\",\"uě\",\"uè\",\"ue\",\"ūn\",\"ún\",\"ǔn\",\"ùn\",\"un\",\"ū\",\"ú\",\"ǔ\",\"ù\",\"u\"],i={\"uān\":\"üān\",\"uán\":\"üán\",\"uǎn\":\"üǎn\",\"uàn\":\"üàn\",uan:\"üan\",\"uē\":\"üē\",\"ué\":\"üé\",\"uě\":\"üě\",\"uè\":\"üè\",ue:\"üe\",\"ūn\":\"ǖn\",\"ún\":\"ǘn\",\"ǔn\":\"ǚn\",\"ùn\":\"ǜn\",un:\"ün\",\"ū\":\"ǖ\",\"ú\":\"ǘ\",\"ǔ\":\"ǚ\",\"ù\":\"ǜ\",u:\"ü\"},u=[\"ia\",\"ian\",\"iang\",\"iao\",\"ie\",\"iu\",\"iong\",\"ua\",\"uai\",\"uan\",\"uang\",\"ue\",\"ui\",\"uo\",\"üan\",\"üe\",\"van\",\"ve\"],z={\"南宫\":\"nán gōng\",\"第五\":\"dì wǔ\",\"万俟\":\"mò qí\",\"司马\":\"sī mǎ\",\"上官\":\"shàng guān\",\"欧阳\":\"ōu yáng\",\"夏侯\":\"xià hóu\",\"诸葛\":\"zhū gě\",\"闻人\":\"wén rén\",\"东方\":\"dōng fāng\",\"赫连\":\"hè lián\",\"皇甫\":\"huáng pǔ\",\"尉迟\":\"yù chí\",\"公羊\":\"gōng yáng\",\"澹台\":\"tán tái\",\"公冶\":\"gōng yě\",\"宗政\":\"zōng zhèng\",\"濮阳\":\"pú yáng\",\"淳于\":\"chún yú\",\"单于\":\"chán yú\",\"太叔\":\"tài shū\",\"申屠\":\"shēn tú\",\"公孙\":\"gōng sūn\",\"仲孙\":\"zhòng sūn\",\"轩辕\":\"xuān yuán\",\"令狐\":\"líng hú\",\"钟离\":\"zhōng lí\",\"宇文\":\"yǔ wén\",\"长孙\":\"zhǎng sūn\",\"慕容\":\"mù róng\",\"鲜于\":\"xiān yú\",\"闾丘\":\"lǘ qiū\",\"司徒\":\"sī tú\",\"司空\":\"sī kōng\",\"亓官\":\"qí guān\",\"司寇\":\"sī kòu\",\"仉督\":\"zhǎng dū\",\"子车\":\"zǐ jū\",\"颛孙\":\"zhuān sūn\",\"端木\":\"duān mù\",\"巫马\":\"wū mǎ\",\"公西\":\"gōng xī\",\"漆雕\":\"qī diāo\",\"乐正\":\"yuè zhèng\",\"壤驷\":\"rǎng sì\",\"公良\":\"gōng liáng\",\"拓跋\":\"tuò bá\",\"夹谷\":\"jiá gǔ\",\"宰父\":\"zǎi fǔ\",\"榖梁\":\"gǔ liáng\",\"段干\":\"duàn gān\",\"百里\":\"bǎi lǐ\",\"东郭\":\"dōng guō\",\"南门\":\"nán mén\",\"呼延\":\"hū yán\",\"羊舌\":\"yáng shé\",\"梁丘\":\"liáng qiū\",\"左丘\":\"zuǒ qiū\",\"东门\":\"dōng mén\",\"西门\":\"xī mén\",\"赵\":\"zhào\",\"钱\":\"qián\",\"孙\":\"sūn\",\"李\":\"lǐ\",\"周\":\"zhōu\",\"吴\":\"wú\",\"郑\":\"zhèng\",\"王\":\"wáng\",\"冯\":\"féng\",\"陈\":\"chén\",\"褚\":\"chǔ\",\"卫\":\"wèi\",\"蒋\":\"jiǎng\",\"沈\":\"shěn\",\"韩\":\"hán\",\"杨\":\"yáng\",\"朱\":\"zhū\",\"秦\":\"qín\",\"尤\":\"yóu\",\"许\":\"xǔ\",\"何\":\"hé\",\"吕\":\"lǚ\",\"施\":\"shī\",\"张\":\"zhāng\",\"孔\":\"kǒng\",\"曹\":\"cáo\",\"严\":\"yán\",\"华\":\"huà\",\"金\":\"jīn\",\"魏\":\"wèi\",\"陶\":\"táo\",\"姜\":\"jiāng\",\"戚\":\"qī\",\"谢\":\"xiè\",\"邹\":\"zōu\",\"喻\":\"yù\",\"柏\":\"bǎi\",\"水\":\"shuǐ\",\"窦\":\"dòu\",\"章\":\"zhāng\",\"云\":\"yún\",\"苏\":\"sū\",\"潘\":\"pān\",\"葛\":\"gě\",\"奚\":\"xī\",\"范\":\"fàn\",\"彭\":\"péng\",\"郎\":\"láng\",\"鲁\":\"lǔ\",\"韦\":\"wéi\",\"昌\":\"chāng\",\"马\":\"mǎ\",\"苗\":\"miáo\",\"凤\":\"fèng\",\"花\":\"huā\",\"方\":\"fāng\",\"俞\":\"yú\",\"任\":\"rèn\",\"袁\":\"yuán\",\"柳\":\"liǔ\",\"酆\":\"fēng\",\"鲍\":\"bào\",\"史\":\"shǐ\",\"唐\":\"táng\",\"费\":\"fèi\",\"廉\":\"lián\",\"岑\":\"cén\",\"薛\":\"xuē\",\"雷\":\"léi\",\"贺\":\"hè\",\"倪\":\"ní\",\"汤\":\"tāng\",\"滕\":\"téng\",\"殷\":\"yīn\",\"罗\":\"luó\",\"毕\":\"bì\",\"郝\":\"hǎo\",\"邬\":\"wū\",\"安\":\"ān\",\"常\":\"cháng\",\"乐\":\"yuè\",\"于\":\"yú\",\"时\":\"shí\",\"傅\":\"fù\",\"皮\":\"pí\",\"卞\":\"biàn\",\"齐\":\"qí\",\"康\":\"kāng\",\"伍\":\"wǔ\",\"余\":\"yú\",\"元\":\"yuán\",\"卜\":\"bǔ\",\"顾\":\"gù\",\"孟\":\"mèng\",\"平\":\"píng\",\"黄\":\"huáng\",\"和\":\"hé\",\"穆\":\"mù\",\"萧\":\"xiāo\",\"尹\":\"yǐn\",\"姚\":\"yáo\",\"邵\":\"shào\",\"湛\":\"zhàn\",\"汪\":\"wāng\",\"祁\":\"qí\",\"毛\":\"máo\",\"禹\":\"yǔ\",\"狄\":\"dí\",\"米\":\"mǐ\",\"贝\":\"bèi\",\"明\":\"míng\",\"臧\":\"zāng\",\"计\":\"jì\",\"伏\":\"fú\",\"成\":\"chéng\",\"戴\":\"dài\",\"谈\":\"tán\",\"宋\":\"sòng\",\"茅\":\"máo\",\"庞\":\"páng\",\"熊\":\"xióng\",\"纪\":\"jì\",\"舒\":\"shū\",\"屈\":\"qū\",\"项\":\"xiàng\",\"祝\":\"zhù\",\"董\":\"dǒng\",\"梁\":\"liáng\",\"杜\":\"dù\",\"阮\":\"ruǎn\",\"蓝\":\"lán\",\"闵\":\"mǐn\",\"席\":\"xí\",\"季\":\"jì\",\"麻\":\"má\",\"强\":\"qiáng\",\"贾\":\"jiǎ\",\"路\":\"lù\",\"娄\":\"lóu\",\"危\":\"wēi\",\"江\":\"jiāng\",\"童\":\"tóng\",\"颜\":\"yán\",\"郭\":\"guō\",\"梅\":\"méi\",\"盛\":\"shèng\",\"林\":\"lín\",\"刁\":\"diāo\",\"钟\":\"zhōng\",\"徐\":\"xú\",\"邱\":\"qiū\",\"骆\":\"luò\",\"高\":\"gāo\",\"夏\":\"xià\",\"蔡\":\"cài\",\"田\":\"tián\",\"樊\":\"fán\",\"胡\":\"hú\",\"凌\":\"líng\",\"霍\":\"huò\",\"虞\":\"yú\",\"万\":\"wàn\",\"支\":\"zhī\",\"柯\":\"kē\",\"昝\":\"zǎn\",\"管\":\"guǎn\",\"卢\":\"lú\",\"莫\":\"mò\",\"经\":\"jīng\",\"房\":\"fáng\",\"裘\":\"qiú\",\"缪\":\"miào\",\"干\":\"gān\",\"解\":\"xiè\",\"应\":\"yīng\",\"宗\":\"zōng\",\"丁\":\"dīng\",\"宣\":\"xuān\",\"贲\":\"bēn\",\"邓\":\"dèng\",\"郁\":\"yù\",\"单\":\"shàn\",\"杭\":\"háng\",\"洪\":\"hóng\",\"包\":\"bāo\",\"诸\":\"zhū\",\"左\":\"zuǒ\",\"石\":\"shí\",\"崔\":\"cuī\",\"吉\":\"jí\",\"钮\":\"niǔ\",\"龚\":\"gōng\",\"程\":\"chéng\",\"嵇\":\"jī\",\"邢\":\"xíng\",\"滑\":\"huá\",\"裴\":\"péi\",\"陆\":\"lù\",\"荣\":\"róng\",\"翁\":\"wēng\",\"荀\":\"xún\",\"羊\":\"yáng\",\"於\":\"yū\",\"惠\":\"huì\",\"甄\":\"zhēn\",\"曲\":\"qū\",\"家\":\"jiā\",\"封\":\"fēng\",\"芮\":\"ruì\",\"羿\":\"yì\",\"储\":\"chǔ\",\"靳\":\"jìn\",\"汲\":\"jí\",\"邴\":\"bǐng\",\"糜\":\"mí\",\"松\":\"sōng\",\"井\":\"jǐng\",\"段\":\"duàn\",\"富\":\"fù\",\"巫\":\"wū\",\"乌\":\"wū\",\"焦\":\"jiāo\",\"巴\":\"bā\",\"弓\":\"gōng\",\"牧\":\"mù\",\"隗\":\"kuí\",\"山\":\"shān\",\"谷\":\"gǔ\",\"车\":\"chē\",\"侯\":\"hóu\",\"宓\":\"mì\",\"蓬\":\"péng\",\"全\":\"quán\",\"郗\":\"xī\",\"班\":\"bān\",\"仰\":\"yǎng\",\"秋\":\"qiū\",\"仲\":\"zhòng\",\"伊\":\"yī\",\"宫\":\"gōng\",\"宁\":\"nìng\",\"仇\":\"qiú\",\"栾\":\"luán\",\"暴\":\"bào\",\"甘\":\"gān\",\"钭\":\"tǒu\",\"厉\":\"lì\",\"戎\":\"róng\",\"祖\":\"zǔ\",\"武\":\"wǔ\",\"符\":\"fú\",\"刘\":\"liú\",\"景\":\"jǐng\",\"詹\":\"zhān\",\"束\":\"shù\",\"龙\":\"lóng\",\"叶\":\"yè\",\"幸\":\"xìng\",\"司\":\"sī\",\"韶\":\"sháo\",\"郜\":\"gào\",\"黎\":\"lí\",\"蓟\":\"jì\",\"薄\":\"bó\",\"印\":\"yìn\",\"宿\":\"sù\",\"白\":\"bái\",\"怀\":\"huái\",\"蒲\":\"pú\",\"邰\":\"tái\",\"从\":\"cóng\",\"鄂\":\"è\",\"索\":\"suǒ\",\"咸\":\"xián\",\"籍\":\"jí\",\"赖\":\"lài\",\"卓\":\"zhuó\",\"蔺\":\"lìn\",\"屠\":\"tú\",\"蒙\":\"méng\",\"池\":\"chí\",\"乔\":\"qiáo\",\"阴\":\"yīn\",\"鬱\":\"yù\",\"胥\":\"xū\",\"能\":\"nài\",\"苍\":\"cāng\",\"双\":\"shuāng\",\"闻\":\"wén\",\"莘\":\"shēn\",\"党\":\"dǎng\",\"翟\":\"zhái\",\"谭\":\"tán\",\"贡\":\"gòng\",\"劳\":\"láo\",\"逄\":\"páng\",\"姬\":\"jī\",\"申\":\"shēn\",\"扶\":\"fú\",\"堵\":\"dǔ\",\"冉\":\"rǎn\",\"宰\":\"zǎi\",\"郦\":\"lì\",\"雍\":\"yōng\",\"郤\":\"xì\",\"璩\":\"qú\",\"桑\":\"sāng\",\"桂\":\"guì\",\"濮\":\"pú\",\"牛\":\"niú\",\"寿\":\"shòu\",\"通\":\"tōng\",\"边\":\"biān\",\"扈\":\"hù\",\"燕\":\"yān\",\"冀\":\"jì\",\"郏\":\"jiá\",\"浦\":\"pǔ\",\"尚\":\"shàng\",\"农\":\"nóng\",\"温\":\"wēn\",\"别\":\"bié\",\"庄\":\"zhuāng\",\"晏\":\"yàn\",\"柴\":\"chái\",\"瞿\":\"qú\",\"阎\":\"yán\",\"充\":\"chōng\",\"慕\":\"mù\",\"连\":\"lián\",\"茹\":\"rú\",\"习\":\"xí\",\"宦\":\"huàn\",\"艾\":\"ài\",\"鱼\":\"yú\",\"容\":\"róng\",\"向\":\"xiàng\",\"古\":\"gǔ\",\"易\":\"yì\",\"慎\":\"shèn\",\"戈\":\"gē\",\"廖\":\"liào\",\"庾\":\"yǔ\",\"终\":\"zhōng\",\"暨\":\"jì\",\"居\":\"jū\",\"衡\":\"héng\",\"步\":\"bù\",\"都\":\"dū\",\"耿\":\"gěng\",\"满\":\"mǎn\",\"弘\":\"hóng\",\"匡\":\"kuāng\",\"国\":\"guó\",\"文\":\"wén\",\"寇\":\"kòu\",\"广\":\"guǎng\",\"禄\":\"lù\",\"阙\":\"quē\",\"东\":\"dōng\",\"欧\":\"ōu\",\"殳\":\"shū\",\"沃\":\"wò\",\"利\":\"lì\",\"蔚\":\"wèi\",\"越\":\"yuè\",\"夔\":\"kuí\",\"隆\":\"lóng\",\"师\":\"shī\",\"巩\":\"gǒng\",\"厍\":\"shè\",\"聂\":\"niè\",\"晁\":\"cháo\",\"勾\":\"gōu\",\"敖\":\"áo\",\"融\":\"róng\",\"冷\":\"lěng\",\"訾\":\"zǐ\",\"辛\":\"xīn\",\"阚\":\"kàn\",\"那\":\"nā\",\"简\":\"jiǎn\",\"饶\":\"ráo\",\"空\":\"kōng\",\"曾\":\"zēng\",\"母\":\"mǔ\",\"沙\":\"shā\",\"乜\":\"niè\",\"养\":\"yǎng\",\"鞠\":\"jū\",\"须\":\"xū\",\"丰\":\"fēng\",\"巢\":\"cháo\",\"关\":\"guān\",\"蒯\":\"kuǎi\",\"相\":\"xiàng\",\"查\":\"zhā\",\"后\":\"hòu\",\"荆\":\"jīng\",\"红\":\"hóng\",\"游\":\"yóu\",\"竺\":\"zhú\",\"权\":\"quán\",\"逯\":\"lù\",\"盖\":\"gài\",\"益\":\"yì\",\"桓\":\"huán\",\"公\":\"gōng\",\"牟\":\"móu\",\"哈\":\"hǎ\",\"言\":\"yán\",\"福\":\"fú\"},s={\"líng\":[12295,20278,20940,21026,22265,22397,22796,22984,23112,23361,23738,24446,25493,26148,26382,26563,26818,27386,27422,27872,28137,28586,28789,29167,29223,29393,29618,29708,29940,30346,30769,31102,31202,31451,31533,32055,32190,32491,32656,32666,32718,32838,33330,33491,33777,34020,34054,34166,34505,34897,35052,35397,36297,36584,36632,37187,37309,37428,37634,38083,38301,38517,38646,38666,38679,38683,38685,38728,39382,39807,39914,40110,40210,40496,40567,40610,40801,40802,40836,40855],\"yī\":[19968,20042,20234,20381,21307,21530,21695,22123,22769,22777,22785,23259,23300,24332,25558,25742,27321,27593,27938,28175,28458,29823,30057,31054,31125,31270,32324,34524,34916,35689,36791,37116,37291,37541,38129,40406,40549,40671,40691],\"dīng zhēng\":[19969],\"kǎo qiǎo yú\":[19970],\"qī\":[19971,20507,20699,20932,22017,22660,23096,24765,24956,24957,25114,25471,26578,26724,26748,26866,27071,27450,27791,28114,28422,32042,32192,33803,35076,35526,36809,37098,37850,38667,39756,40328],\"shàng\":[19972,23577,23578,24678,32212,32497],\"xià\":[19973,19979,20068,22327,22799,22803,25047,26810,30108,30577,32581,37820,37868],\"hǎn\":[19974,21898,28011,32597,35907],\"wàn mò\":[19975],\"zhàng\":[19976,20183,22663,23938,24080,24115,24155,25177,26454,28081,30190,30252,30260,30613,31872,32960,33081,36076,36134,38556],\"sān\":[19977,21377,21441,24334,27637,27638,27647,29337,39702],\"shàng shǎng shang\":[19978],\"qí jī\":[19980,20854,22855],\"bù fǒu\":[19981],\"yǔ yù yú\":[19982],\"miǎn\":[19983,20589,20813,20885,21193,21204,21909,23081,24848,27717,27796,28238,30540,32236,32517,33148,33858,38758,39864],\"gài\":[19984,20066,21251,21252,25124,27010,27113,27114,28297,28433,29890,33890,37411,38041],\"chǒu\":[19985,19986,20404,21532,26493,30597,30657,37276,39767],\"zhuān\":[19987,21440,23269,23554,23560,29820,29966,30742,30935,30938,34788,35567,37151,38995,39067,40004],\"qiě jū\":[19988],\"pī\":[19989,20243,20286,22140,22383,23727,25013,25209,25259,28811,29385,29395,30738,30919,30996,30997,31195,31200,32794,35966,37043,37402,37471,37524,37635,37645,38713,39379,39660,39806],\"shì\":[19990,19991,20106,20107,20181,20365,20895,21183,21218,21323,21609,21980,22124,22763,22893,23317,23460,24066,24335,24337,24338,24640,24643,25146,25325,25555,26159,26160,26558,26623,26683,28584,28882,29046,30466,30478,30497,30551,31034,31035,31598,31789,33296,33299,35179,35222,35270,35298,35430,35475,35553,35610,35797,35877,36016,36147,36606,36732,36893,36990,37320,37322,37323,37424,37443,37501,38088,39166,39193,39197,39280,39960],\"qiū\":[19992,2e4,22389,23197,24664,24695,27e3,31179,31180,31312,31693,32231,33833,34322,34479,34677,34775,34852,36261,37041,38822,38823,39948,39949,40133,40342,40537,40861],\"bǐng\":[19993,23643,24626,25254,26142,26170,26564,26821,28851,31104,31177,31263,33514,34499,37044,37429,38467,38790,39173,39200,39292],\"yè\":[19994,20145,20727,22711,22812,23978,23979,25268,25433,25819,25834,25835,26196,26308,26309,26327,26355,26357,26556,26557,26989,27906,28082,28594,28904,29121,29207,29837,30371,30641,30648,30991,33099,33865,35585,35858,37050,37172,37745,37943,38757,38760,38913,39029,39203,39233,39308,39516,40314,40456],\"cóng\":[19995,20174,21474,23107,23406,24467,24468,24470,24752,27191,27401,28121,28743,29212,29742,34242,35508,36072,36073,37661],\"dōng\":[19996,20530,20908,21658,22508,23741,23852,24474,26168,26481,27681,27693,28087,31511,33523,33732,34624,39831,39903,40327,40363,40491,40725],\"sī\":[19997,20460,20952,21422,21496,21661,22070,22109,23204,24285,24662,25749,26031,26962,27840,28556,29133,31127,31136,31169,31993,32114,32230,32415,32524,32627,34156,34386,34547,34596,34692,34774,34804,37488,37551,37750,37889,38198,39096,39124,39462,40421,40502,40758],\"chéng\":[19998,21576,22478,22485,22552,22605,22614,23468,23800,24809,25074,25104,25215,25392,25473,25576,26536,26838,27225,27289,27910,28311,28546,29685,29689,30075,31243,31386,31596,32126,33069,33663,35488,35802,37077,37234,37614,38102,39468,39886],\"diū\":[19999,20002,37545,38117],\"liǎng\":[20001,20004,20841,21858,25498,32201,33084,34621,35058,39753,39758],\"yǒu\":[20003,21347,21451,26756,28277,29270,31113,32657,32840,33475,33696,34575,37193,37546,38101,40669],\"yán\":[20005,21427,21873,21926,22196,22633,22747,22759,22925,23032,23083,23086,23721,23890,23891,24012,24022,24023,24310,25541,26134,26956,27280,27369,27413,27839,28814,28815,29439,29698,30416,30878,31605,31799,33690,34053,34404,34578,35328,35329,35374,35453,35744,37076,38278,38331,38379,38414,38991,38996,39068,40573,40611],\"bìng\":[20006,20341,20482,20641,22442,25682,26660,30149,31369,31453,35457,38736,39849],\"sàng sāng\":[20007],\"gǔn\":[20008,24771,28378,28414,30937,32196,32498,34008,34057,34926,34974,36645,36746,39820,39872,40103],\"jiū\":[20009,21244,21886,25578,25579,26427,31350,31998,32416,33819,36211,38404,39695,39726,40169,40480],\"gè gě\":[20010,20491,21508],\"yā\":[20011,22311,23410,24216,25276,26514,26720,26895,37647,37914,40201,40232,40310,40486,40493],\"pán\":[20012,23227,24139,27075,27904,28682,29247,30424,30436,30928,32271,33968,34784,36434,36451,37788,38838],\"zhōng zhòng\":[20013],\"jǐ\":[20014,22912,24049,25119,25380,25486,25760,25824,27254,27890,29361,33034,34414,34787,39778,40062,40578],\"jiè\":[20015,20171,20511,21814,22586,23622,23626,23701,24206,24483,25106,26960,29335,29600,29758,30028,30029,30117,30734,34471,34550,34936,35119,35489,35819,37765,39601,39786],\"fēng\":[20016,20217,20561,20732,20968,20972,20974,22950,23543,23553,23791,23792,23862,26539,26963,27282,27811,27816,28194,28739,28925,29326,29478,29714,30127,30219,30461,30748,30904,31688,34356,34562,34861,35920,37175,37190,37586,37821,37856,38155,38715,38730,39116,40631],\"guàn kuàng\":[20017],\"chuàn\":[20018,27724,29588,36055,37351,38031],\"chǎn\":[20019,20135,20865,21111,22213,23932,26101,27984,28411,28763,29986,29987,31749,33927,34118,35522,35650,35719,35844,37855,38130,38323,38369,38416,39587],\"lín\":[20020,20903,22755,23818,23961,26036,26237,26301,26519,28542,28726,29136,29747,29848,30645,30852,30967,31910,31932,32343,32759,33256,36692,36762,36980,37051,37168,37883,38462,38563,38678,39502,40023,40158,40592,40607],\"zhuó\":[20021,21125,21331,21828,22324,22960,23098,25775,25798,25826,26027,26030,26033,26034,26037,26219,26899,27978,27998,28609,28796,28917,29752,30842,31130,31393,31831,31857,32620,33537,34839,34879,35521,35537,35638,35836,37196,37938,38255,40299,40415],\"zhǔ\":[20022,20027,21167,22065,22225,23444,24126,25284,28186,28624,29009,29038,29149,30633,30682,32604,35421,38524,40448,40584],\"bā\":[20023,20168,20843,21485,21749,22847,23708,24052,25420,26419,29584,30116,31494,31889,32659,33453,34438,35933,37343],\"wán\":[20024,21011,23436,23695,25231,25430,27725,28919,29609,29715,31490,32008,32424,32747,33412,36006,38929,39037],\"dān\":[20025,21231,21296,21336,22921,23173,27546,27563,29972,30472,30723,31658,31774,32828,32829,32835,32888,35101,35148,36525,37112,37170,37206,38933],\"wèi wéi\":[20026],\"jǐng dǎn\":[20028],\"lì lí\":[20029],\"jǔ\":[20030,24326,25369,25831,26887,27017,27032,27384,27397,30697,31589,32869,33289,33682,33951,35191,36413,40799,40835],\"piě\":[20031,33508,37893],\"fú\":[20032,20239,20440,20971,21020,21264,21640,21753,22424,23386,23722,24063,24087,24133,24158,24343,24447,24619,25206,26603,26687,26740,27679,27885,28014,28074,28563,28837,29624,30006,30025,30273,31059,31119,31274,31526,31641,32049,32060,32101,32141,32450,32459,32600,32614,32711,33344,33433,33443,33531,33536,33583,33748,33869,34393,34472,34569,34656,34970,34993,35142,35173,35560,35943,36414,36667,36752,37083,37464,37468,38861,38888,39083,39668,39812,39858,40167,40172,40212,40297,40699],\"yí jí\":[20033],\"yì\":[20034,20041,20100,20134,20159,20231,20287,20350,20427,20740,20863,21e3,21139,21166,21210,21225,21255,21587,21613,21625,21768,22216,22299,22340,22460,22520,22869,23253,23313,23537,23673,23748,23975,24095,24096,24134,24281,24322,24328,24331,24441,24518,24584,24639,24722,24847,25014,25036,25087,25233,25401,25953,26131,26233,26304,26318,26457,26509,26861,27023,27128,27277,27485,27540,27562,27577,27589,27970,28005,28019,28249,28322,28521,28602,28727,28808,28978,29088,29092,29116,29146,29153,29169,29512,29620,30064,30123,30188,30231,30238,30257,30292,30410,30614,31315,31465,31698,32266,32374,32377,32462,32546,32681,32703,32714,32716,32755,32764,32820,32900,32906,33161,33222,33367,33402,33413,33477,33823,34042,34191,34265,34269,34329,34377,34612,34720,34922,34979,35028,35035,35129,35196,35378,35379,35405,35427,35516,35695,35696,35739,35758,35793,35811,35850,35929,35931,35959,35990,36096,36295,36726,36920,37009,37139,37303,37364,37408,37808,37951,38226,38257,38435,38591,38700,39248,39365,39515,39551,39598,39848,40322,40323,40333,40385,40394,40423,40446,40451,40541,40546,40659,40824],\"nǎi\":[20035,20535,22902,23341,24316,27670,30099,33407,36858,37346],\"wǔ\":[20036,20116,20213,20237,20398,20533,20763,21320,21838,22953,23084,23285,24209,24289,24548,24579,25006,25664,27494,28501,29075,29310,29597,29687,29798,29970,30868,33310,36492,36821,36892,38490,40289,40521],\"jiǔ\":[20037,20038,20061,20067,22906,26470,27747,28792,29590,32036,33295,37202,38265,38893,38894],\"tuō zhé\":[20039,26452,39346],\"me mó ma yāo\":[20040],\"zhī\":[20043,20481,21358,24053,25624,25903,26624,26772,26917,27056,27713,27868,30135,31063,31084,31187,31257,32149,32930,32977,32989,33026,33437,34357,34584,34940,38587,40183,40242,40709],\"wū wù\":[20044],\"zhà\":[20045,21668,23473,25662,27048,28320,30148,34481,35408,35784,37281,38661],\"hū\":[20046,20079,21282,21291,21628,21823,22033,22400,23523,24160,24573,24794,26130,27473,27864,28148,28409,28864,33528,34381,34390,35644,36580,36727,38608],\"fá\":[20047,20240,20640,22394,22433,22690,22978,26672,27980,30594,31529,31567,32602,32624,32632,34245,38309,38400],\"lè yuè yào lào\":[20048,27138],\"yín\":[20049,21535,22102,22170,22273,22432,22820,23148,23493,23806,23839,23855,27309,27557,27903,28139,28379,28878,29374,29434,29836,30797,30866,33654,34089,35348,35354,35361,35518,37150,37405,37504,38134,38698,40419,40806],\"pīng\":[20050,20444,23049,28036,30009,30767,32864,33397,38953],\"pāng\":[20051,28354,33006,33174,38641,38710],\"qiáo\":[20052,20392,20689,23286,24980,26725,27095,27189,27211,27381,29342,30631,30810,30980,33613,33630,34126,34286,35673,36267,37896,38802,38845,39014],\"hǔ\":[20053,29733,33792,34382,34397,37695,39921],\"guāi\":[20054],\"chéng shèng\":[20055,20056,23053],\"yǐ\":[20057,20059,20197,20506,20591,23327,23866,24050,24225,25158,25914,25980,26065,26070,27301,30691,30994,31510,33315,33380,33505,33506,34433,34712,34811,35071,36390,36642,36697,36888,37199,37332,37400,37487,38023,38999,40166,40814],\"háo yǐ\":[20058],\"niè miē\":[20060],\"qǐ\":[20062,20225,21551,21784,21843,21844,21855,23117,23674,26462,26856,29592,30400,32186,32494,33425,35564,36215,37012,38361],\"yě\":[20063,20918,22050,22492,22724,28444,37326],\"xí\":[20064,21946,23219,23949,24109,26938,27268,28445,32722,33990,34989,35186,35233,35275,35637,36248,37067,37812,38576,38699,39105,39473,39485,39528,39996,40155],\"xiāng\":[20065,21410,24258,24512,27007,27392,28248,29910,31269,31665,32215,32515,33207,33431,33835,33881,34188,35140,37111,37129,37130,37141,38002,38262,39321,39524,39591,40028,40600],\"shū\":[20070,20495,20496,20789,21460,23005,23575,25234,25491,25669,25860,26360,26530,26803,27166,27530,27571,27641,27642,28113,28717,28930,30094,30095,32019,32128,32446,33298,33789,34092,36360,36567,36664,36755,37123,38478,39835,40296],\"dǒu\":[20071,25238,26515,34474,37380,38439,38497],\"shǐ\":[20072,20351,20824,21490,22987,23465,23630,27009,30690,31542,35925,37442,39387,39542],\"jī\":[20073,20703,20987,21001,21007,21086,21501,21799,21918,21976,22064,22334,22522,22716,23020,23632,23878,23879,25731,25802,26398,26426,26501,27181,27231,27588,28608,29316,29585,29859,30072,30079,30314,30710,30959,31215,31309,31492,31571,31637,31754,32193,32641,32647,32648,32813,32908,33448,34368,35209,35210,35663,35684,35749,36075,36087,36173,36347,36369,36491,36536,37512,37668,37910,37959,37977,38574,38622,38847,38898,39138,39249,39269,39765,40174,40335,40378,40388,40452,40481,40782,40783,40785],\"náng\":[20074,22178,27420,34864,39266],\"jiā\":[20075,20339,20642,21152,22025,25272,26551,26780,27616,27847,27971,28025,29324,29491,29640,30146,31539,31960,32798,33141,33901,34952,35949,35985,36303,36838,37483,37813,38227,40208,40602],\"jù\":[20076,20520,20534,20855,21095,21127,21230,22503,22526,22729,22998,23654,23656,23712,24040,24042,24583,24807,24883,25029,25084,25298,25312,26139,27499,27952,28605,28844,28901,29323,31212,31405,31414,31796,31892,32799,32858,34401,34487,35406,35765,35942,36317,36382,36486,36989,37037,37301,37445,37947,38044,39094,39123,39375,39828],\"shí\":[20077,21313,22488,22610,23036,23454,23455,23508,23526,23765,23925,26102,26105,26178,27055,28252,28321,28859,31055,31437,34432,34645,36795,36936,37456,39136,39267,39830,39971,40101,40747,40749],\"mǎo\":[20078,20871,21359,23745,25148,26164,27862,31543,34025,37466,38086],\"mǎi\":[20080,22058,33644,34130,36023,40438],\"luàn\":[20081,20098,37344],\"rǔ\":[20083,25833,27741,32919,36785,37135],\"xué\":[20084,23398,23416,23747,23976,25992,27894,28585,29154,31348,33555,34965,36357,40445,40500],\"yǎn\":[20085,20456,20547,20796,20822,20823,21411,21428,22110,23373,23875,24024,24026,24327,24861,25133,25162,25217,25513,25564,26350,26940,27327,27783,28215,28436,29744,29975,30524,32616,33810,34648,34893,35095,36541,36931,37118,38546,39017,39751,39768,39947,40352,40673,40676,40684,40685,40694,40756,40761,40820,40849],\"fǔ\":[20086,20428,20443,20463,24220,24355,25242,25290,25771,26023,26920,28367,28964,29995,30425,31776,33104,33105,34565,36628,36741,37081,37340,37345,38429,38955,39732,40700],\"shā\":[20087,21798,26432,26732,27578,27630,29440,30183,30722,30832,32023,32378,32433,34097,35039,37801,38121,38327,39679,39782,39882,39883,40104],\"nǎ\":[20088,38635],\"qián\":[20089,20097,20209,20546,21069,22680,23178,23698,25297,25518,27049,27244,27500,28507,28508,28659,28746,31645,33893,34388,36577,37392,37463,37549,37666,37766,38052,38065,38067,38764,39450,39453,39980,40660,40666],\"suǒ\":[20090,21794,21993,25152,26267,28305,28345,29712,29713,29795,32034,35112,37782,37819,37825,38145],\"yú\":[20091,20110,20112,20227,20313,22563,22572,22948,23067,23087,23089,23337,23859,23886,23899,24858,25205,25540,26079,26977,26992,27014,27428,27464,27487,27510,28180,28189,28257,28417,28574,29263,29427,29591,29593,29788,29877,30402,30574,31404,31485,31813,32685,33140,33278,33281,33286,33349,33584,33838,33848,34125,34331,34398,34422,34643,34744,34919,35093,35238,35278,35547,35619,35840,36400,36671,36701,36926,37016,37201,37725,38533,38611,38633,39192,39296,39455,39596,39619,39770,39779,39869,39922,39941,40060,40416,40454,40821],\"zhù\":[20092,20267,20295,20303,22398,22712,22772,23872,25280,26492,26609,27174,27574,27880,28855,30128,30493,31069,31081,31450,31599,31672,31723,31767,32053,32056,32443,32668,32741,33486,33671,34496,35387,36015,36142,36307,36596,37458,37619,37956,38136,39349,39376,39547],\"zhě\":[20093,32773,35126,35189,36205,36407,37754,38167],\"qián gān\":[20094],\"zhì luàn\":[20095],\"guī\":[20096,22317,22955,23215,23266,23296,24112,24402,25707,26909,27131,27132,27383,27512,29674,29808,29853,29900,30344,30625,30789,33573,34348,35215,35268,37053,37068,38312,38394,39465,39734,39737],\"lǐn lìn\":[20099],\"jué\":[20101,20915,21012,21122,21303,21413,22090,23378,23379,23835,23851,23973,24399,24992,25008,25092,25225,25367,25496,25899,26743,27227,27228,27438,27666,27770,28749,28979,29094,29201,29236,29237,29527,29571,29606,29608,29647,29812,30234,30669,30689,30724,32085,32118,32477,33220,33461,34141,34152,34419,34792,34793,35286,35310,35324,35363,35662,35776,35890,35996,36221,36233,36471,36521,37388,37901,37917,38017,38242,40194,40195,40418],\"le liǎo\":[20102],\"gè mā\":[20103],\"yǔ yú\":[20104,25049],\"zhēng\":[20105,20290,20967,22979,23196,23781,23837,23842,24449,24496,28833,28893,29229,29424,29465,30309,30480,30529,30556,31581,31631,31708,32839,33024,33976,36397,37478,37658,37875,39687],\"èr\":[20108,21045,21665,24333,24336,27186,35456,36014,36019,36144,39670],\"chù\":[20109,20631,20746,24629,25015,25616,26038,27484,29695,29729,30679,31436,32064,32460,33221,35302,35320,35926,37136,38310,40668],\"kuī\":[20111,21042,23743,24011,30420,31397,31418,32871,34407,38362,39005],\"yún\":[20113,20253,21243,21248,22249,22936,24874,25251,26112,27218,27780,28066,28339,28560,29065,30023,31184,31612,31700,32028,32284,32429,32792,33464,33975,34131,37095,37142,37574,38642],\"hù\":[20114,20913,21952,22171,23135,23277,23278,23733,24077,24342,24601,25142,25143,25144,25149,25160,25252,26120,27124,27789,27818,28396,29097,29920,31068,31503,31748,31888,32148,34096,35703,35952,37152,37721,38912,40047,40160,40184,40460,40561],\"qí\":[20115,21080,22524,23696,23699,23822,23900,24877,25489,25993,25994,26050,26071,26826,26827,27313,27328,27495,28103,28637,29449,29570,29734,29738,29826,30054,30119,30849,30869,31041,31048,31098,31141,31442,31791,31793,31823,31928,32165,32166,32949,33040,33229,33385,33450,33793,33813,34162,34244,34308,34449,34458,34548,34589,34590,34727,34832,35072,36573,37183,37358,37665,38172,38509,38926,39040,39438,39439,39481,39568,39569,39696,39743,39893,39981,40111,40141,40312,40320,40594,40609],\"jǐng\":[20117,20742,21037,21060,22355,23441,24156,25004,26299,27532,27755,27756,28555,29828,29855,29861,31357,32956,34812,35686,38449,38938,38968],\"sì\":[20118,20288,20385,20777,20821,21987,22235,22994,23088,23392,23546,24051,26614,27065,27740,27863,27876,27917,27936,28056,28675,29293,31040,31145,31458,31525,32796,32898,32902,34172,35223,35972,37362,37430,37435,39140,39164,39282,39391,39427,39543],\"suì\":[20119,23320,23681,23895,26078,27286,27506,27507,28603,29035,29159,29874,30741,30862,31071,31149,31298,31319,31327,32320,32336,32376,35162,35510,35682,35847,36069,36995,37894,37929,38567,38882],\"gèn\":[20120,20121,25583,25604,33563],\"yà\":[20122,20124,20473,20916,21148,22292,22304,22497,23045,23149,25568,27689,27692,29373,30737,31247,32848,35198,35200,35357,35766,36711,36819,40830],\"xiē suò\":[20123],\"qí zhāi\":[20125,40778],\"yā yà\":[20126,21387,22445,22739,38100],\"jí qì\":[20127,28943],\"tóu\":[20128,25237,38957,39600],\"wáng wú\":[20129],\"kàng háng gāng\":[20130],\"dà\":[20131,30484],\"jiāo\":[20132,20716,23047,23308,23783,23957,23971,24973,26898,27975,28550,28966,30977,31322,31781,33014,33184,33202,33581,33582,34121,34400,34527,34797,36324,36679,37066,37902,39509,39556,39851,40091,40257,40422,40430,40554],\"hài\":[20133,21968,23475,27686,39168,39258,39405,39412,39559],\"hēng pēng\":[20136],\"mǔ\":[20137,22982,23764,25287,27597,29281,29299,30018,30022,30034,30045,30046,30062,30762,32991,36359,37479],ye:[20138],\"xiǎng\":[20139,20143,21709,24819,26193,34435,34817,38911,39144,39177,39255,39287,39837,39895,40054,40094],\"jīng\":[20140,20144,20834,22357,22361,23131,24778,26060,26061,26230,27256,27902,28039,29444,30555,31188,31241,31923,31934,32076,32147,32161,32857,33096,33550,33606,33610,33729,33871,39514,39912,40120,40321,40324,40598,40608,40753],\"tíng\":[20141,20572,23159,23881,24237,24311,26975,27059,31603,32868,33691,33910,34579,34639,35562,37010,38662,40750],\"liàng\":[20142,21928,24738,26238,28280,35538,35845,36620,36635,36742,37700],\"qīn qìng\":[20146,35242],\"bó\":[20147,20194,20412,20720,21338,24091,24893,25066,25388,25615,27394,28001,28159,28196,29055,29268,29403,29917,31028,31201,31636,31769,31978,32969,33046,33162,33334,33354,33825,33895,34991,35151,35182,35592,36387,37091,37432,37457,37581,37787,37998,38073,38082,38216,39226,39310,39323,39326,39361,39406,39539,39622,40275,40513],\"yòu\":[20148,20305,20326,20369,21448,21491,21706,21760,22271,23031,23461,23775,24188,29398,31056,34484,35480,35825,35969,36854,37229,37321,40748],\"xiè\":[20149,20275,20574,20592,20673,21352,21368,22119,22638,22801,23199,23633,23655,24296,24482,25032,26284,26800,27021,27053,27899,27945,28203,28581,28681,28707,28794,28839,28840,29166,29205,29548,31044,31164,31951,32050,32079,32108,32370,32392,32449,32567,34210,34212,34809,34831,35081,35131,35613,35874,36510,36994,38782,38896,40770,40792,40795,40805],\"dǎn dàn\":[20150,39358],\"lián\":[20151,21126,21298,21299,22009,22098,22849,22889,23294,24088,24265,24604,24976,28063,28451,28610,28627,28718,29073,29163,31806,31842,31848,32314,32756,32852,32872,32875,32878,32879,33217,33714,34030,34197,34698,34826,35042,35123,35229,35632,36453,36830,36899,37772,37934,38256,39697,39985,40098],\"duǒ\":[20152,21722,22194,22517,23836,26421,26422,32158,32525,36243,36529,36530,36547],\"wěi mén\":[20153,26006],\"rén\":[20154,20155,20161,22764,24520,24526,26418,31170,33442,39772,40256],\"jí\":[20156,20157,20235,20342,20590,21337,21363,21373,21450,21469,21513,22578,22601,23006,23241,23692,23924,23983,24438,24547,24613,24881,25122,25572,26497,26840,26987,26997,27081,27293,27547,27762,28242,28503,30142,30240,30349,31496,31679,31821,32026,32423,33164,33381,33978,34112,34170,34637,34703,35147,35289,35899,36374,36432,36516,36655,36698,36753,37062,37537,37715,37878,38598,38631,38709,40545],\"wáng\":[20158,20220,20838,33699,34463],\"shén shí\":[20160],\"lè\":[20162,21499,24519,27707,27856,29583,30771,31765,33403,38430,38903,39182,39987,40051,40147],\"dīng\":[20163,21486,24068,29582,30100,30447,32821,34416,38762],\"zè\":[20164,23857,24194,25425,26115,26135,27716],\"jǐn jìn\":[20165,20677,23268],\"pú pū\":[20166],\"chóu qiú\":[20167],\"zhǎng\":[20169,24165,25484,30979],\"jīn\":[20170,22587,24062,24781,26020,27941,29650,29755,29857,30747,31563,33621,34943,35167,35284,37329,37330,37375,38021,40566,40645],\"bīng\":[20172,20178,20853,20907,20912,25508,27703,37618],\"réng\":[20173,31037,33471,36792,38526],\"fó\":[20175,22386,26811],\"jīn sǎn\":[20176],\"lún\":[20177,20262,20374,20523,22261,22279,23144,23832,23833,26822,27814,28138,30958,33088,33749,34598,36378,36650,36718,37632,38511,39913],\"cāng\":[20179,20218,20489,20948,23906,27815,28356,28664,29514,33329,33369,33485,33980,34725,40487],\"zǎi zǐ zī\":[20180],\"tā\":[20182,22604,23427,27033,28347,29280,31042,35103,36287,36962],\"fù\":[20184,20585,20613,20904,21103,21648,22399,22797,22919,23142,23181,23316,23500,24489,26929,31060,31139,31438,32238,32283,32538,33145,33839,34151,34489,34519,34652,34670,34973,35079,35204,35206,35331,35394,35747,36e3,36070,36091,36127,36171,36185,36212,36665,37713,37730,38428,38468,39333,39385,39544,39826,39954,40075,40134],\"xiān\":[20185,20186,20321,20682,20722,20808,22037,22910,23667,24303,24570,25016,25472,26297,26484,27673,29655,31046,31176,31868,32330,32398,32406,33518,35132,35187,36345,36462,36506,37232,37697,38184,38895,38897,39334,40059,40369],\"tuō chà duó\":[20187],\"hóng\":[20188,21552,22444,22917,23042,23439,23446,24344,24395,27759,27859,27946,28004,28209,28482,29586,29596,30804,31441,31460,31690,31904,32024,32045,32139,32430,32707,32733,32830,33520,33645,33874,33875,35897,35900,37404,37495,37584,38286,38387,38672,38687,38787,39775,40251,40511,40649,40652],\"tóng\":[20189,20319,21699,23746,23773,24221,24420,26189,26312,26704,27651,28021,28540,29341,29534,30510,30643,30780,31217,31461,31905,33191,33596,34450,35447,36200,37230,37462,37493,37509,38108,39175,39846,40086],\"rèn\":[20190,20205,20995,20996,22922,23001,23675,23683,25192,29283,31053,32009,32029,32077,32427,32436,32917,33101,34941,34997,35346,35469,35748,35761,36564,36715,37395,38765,38769,38860,38887,39146,39169,39274],\"qiān\":[20191,20325,20681,21315,22322,22903,23407,23693,24749,24838,24947,25190,25322,25652,25729,25872,25873,25875,26436,27343,27736,27751,29301,29309,31439,31614,31805,31830,31844,31873,33418,33598,34440,35120,35536,35609,35878,35896,36801,36983,37370,37382,37467,37874,38030,38433,38854,38981,39467,39582,39708,39709,40302,40528],\"gǎn hàn\":[20192],\"yì gē\":[20193],\"dài\":[20195,20386,21447,22408,22509,23729,24082,24102,24111,24118,24279,24608,25140,26307,26571,27526,28731,29619,29767,29977,31780,32063,32255,32464,33372,34675,34955,35190,36003,36151,36443,36561,36570,36585,36714,36840,38708,38726,40207,40667,40689],\"lìng líng lǐng\":[20196],\"chào\":[20198,32790,35288],\"cháng zhǎng\":[20199,20815,38263,38271],\"sā\":[20200],\"cháng\":[20201,20607,20767,22039,22160,23270,23581,24120,24476,29818,29946,29982,32928,33144,33171,33484,33799,38264,40040,40127],\"yí\":[20202,20359,20736,20893,21276,21670,22319,22839,23016,23440,23452,23463,23538,23763,23980,23991,24056,24411,24412,24413,24414,24609,24670,25157,26246,26648,26924,26936,27778,27935,29098,29941,30157,31227,31747,31822,32672,33008,33811,34534,34708,35322,35643,36029,36155,36320,36859,36986,37844,38921,38948,38949,38986,39056,39284,39847,40250],\"mù\":[20203,20969,21215,22675,24149,24153,24916,24917,26286,26287,26408,26968,27619,27792,28817,29287,29383,30446,30566,31302,33362,33500,33711,34462,37484,38076,38638,38658],\"men mén\":[20204],\"fǎn\":[20206,21453,27214,36820],\"chào miǎo\":[20207],\"yǎng áng\":[20208],\"zhòng\":[20210,20247,22585,22933,23185,29382,30526,31052,31575,33597,34459,34886,34934,35557],\"pǐ pí\":[20211],\"wò\":[20212,20563,21351,23177,24132,25569,26947,27779,28197,28643,29889,30595,30826,32927,33115,33253,40823,40844],\"jiàn\":[20214,20468,20581,20717,21073,21091,21105,21133,21134,21138,21140,22713,23499,24314,24484,25846,26068,26967,27645,27914,28071,28567,29294,29652,30647,30965,30976,31661,31947,32349,33137,33270,33328,33382,33616,34214,35256,35539,35563,35675,35855,36046,36068,36145,36253,36341,36368,36410,36702,37492,37747,37749,37937,37969,37970,37996,38003,38190,38291,39198,39279],\"jià jiè jie\":[20215],\"yǎo fó\":[20216],\"rèn rén\":[20219],\"fèn bīn\":[20221],\"dī\":[20222,20302,21874,22494,22564,23739,24445,27136,28404,30974,31210,32669,34971,36230,38532,38830],\"fǎng\":[20223,20515,26058,26121,26136,29932,30470,32033,32442,33323,35370,35775,39651,40365],\"zhōng\":[20224,21027,22928,24146,24440,24544,26570,27767,27848,28802,30405,31846,32066,32456,33327,34080,34585,34724,34749,34931,34935,36465,37409,37758,37912,38047,38202,40228,40744],\"pèi\":[20226,20329,23029,24084,26046,26054,27803,28031,29678,34012,36705,36756,37197,38664,39351],\"diào\":[20228,21514,24340,25481,30265,30404,31374,31413,31464,35339,37347,37407,37553,37629,37955,38035,38110,38655,39777],\"dùn\":[20229,28513,28822,29129,30462,30744,30903,36402,36871,36929,36975,37389,38045],\"wěn\":[20230,21006,21563,21573,25222,26749,31283,31311,31337,32010,32947,33047],\"xǐn\":[20232],\"kàng\":[20233,21279,22245,25239,28821,37415,38058],\"ài\":[20236,20734,22631,22738,23250,23329,24859,25043,26279,26326,29233,29815,29862,30375,30649,30777,30795,30861,31001,34182,35706,36089,37952,38552,38729,39218,39332,40043,40241],\"jì qí\":[20238,34234],\"xiū xǔ\":[20241],\"jìn yín\":[20242],\"dǎn\":[20244,21008,25762,29612,29933,32030,32966,33213,34932,36071,36181,40661],\"fū\":[20245,21579,23056,23413,23555,24612,25071,25975,26057,29598,30726,31235,31583,31952,32146,32932,33178,33602,33652,34925,36282,36311,37022,37148,37212,37383,40617,40620,40625,40632],\"tǎng\":[20246,20645,20795,22507,25091,26349,29219,30680,36538,37810,38018,38219],\"yōu\":[20248,20778,21606,22168,23795,24189,24551,24736,24962,25912,27340,28410,28672,32395,32682,32816,36876,37182,40576],\"huǒ\":[20249,22821,28779,29047,37033,37413,38060],\"huì kuài\":[20250,26371,27981,29871],\"yǔ\":[20251,20417,20451,20554,20660,21292,22131,22276,22281,23431,23513,23679,23996,24254,25383,25940,26014,26944,29760,30224,31076,31161,31333,31411,32701,33287,33837,35984,37125,38952,40588,40812,40841],\"cuì\":[20252,21851,24560,24756,27635,28140,28960,30121,30209,31425,31883,31929,32035,32183,32710,32736,33027,33030,33082,33196,33205,33230,33795,35146,38983],\"sǎn\":[20254,20632,31972,32342,39242,39315],\"wěi\":[20255,20266,20553,20605,20702,20784,23059,23530,23843,23945,24491,24839,25444,26256,26806,27943,27992,28200,28828,29010,29477,29614,29771,30207,32239,32428,33138,33353,33435,33479,33649,33806,33894,33933,34111,34620,35529,35839,36371,37729,38865,38873,38881,38890,38944,39097,39593,39594,39595,39850,40084],\"chuán zhuàn\":[20256,20659],\"chē jū\":[20257,20453,36554,36710],\"yá\":[20258,21393,21395,22544,23688,23829,23830,28079,28420,29273,29601,29706,30554,31500,33469,34460,34905,40790],\"qiàn\":[20259,20436,20521,20761,21003,22733,23345,24723,26824,26912,27111,27424,27465,30360,31695,31711,32308,33441,33960,34099,36644],\"shāng\":[20260,20663,21830,22674,24943,27527,27556,28403,28449,29109,34063,34730,35294,35316,35626,39738],\"chāng\":[20261,20480,23100,26124,26905,28112,29462,29737,33750,35054,37673,38176,38326,38410,39911,40115,40730],\"chen cāng\":[20263],\"xùn\":[20264,20378,21314,22080,24058,24061,24455,24891,27529,27582,27739,28512,29413,34120,35338,35347,35353,35757,35759,36805,36863,36874,36956,37954,39016,39348,39535],\"xìn\":[20265,22239,23390,33066,33291,34885,35371,37313,38432,38998],\"chǐ\":[20268,20360,21366,21498,22417,24677,27503,32827,32916,32995,34439,35053,35115,35913,37497,40786,40831],\"xián xuán\":[20269],\"nú nǔ\":[20270],\"bǎi bó\":[20271],\"gū gù\":[20272],\"nǐ\":[20273,20320,20766,23412,25311,25836,26062,26226,29396,33512,34239,38572],\"nì ní\":[20274],\"bàn\":[20276,21150,21322,22981,24593,25198,29923,31194,32070,32458,36774,37473,38781],\"xù\":[20277,20368,21206,21207,21369,21465,22463,22779,23167,24207,24676,25933,25944,26093,26155,26370,27090,27440,27528,27775,27776,27947,28294,28469,28490,28869,28924,29030,29533,29676,30434,30593,31288,32110,32154,32210,32214,32396,32490,32493,32851,32863,33988,34266,35385,36041,37207,38922,40046],\"zhòu\":[20279,20733,20881,21610,21650,21678,23449,26172,26205,29955,30385,30394,31808,31826,31829,31897,32002,32272,32419,32457,32964,33646,33892,35403,37198,39374,39519,39588],\"shēn\":[20280,20353,20831,21627,22548,22973,23072,23678,23799,25183,25938,26321,26587,27680,28145,29130,29637,29985,29991,30003,30482,30775,31356,31862,31864,31938,32051,32453,32601,32615,33888,34017,34072,34195,35025,35383,35445,35804,36523,39402,39891,39925,39994,40121,40290],\"qū\":[20281,20297,21284,21631,22373,23624,23702,23732,23943,24968,25278,25978,27968,28992,31067,31553,31916,32992,34502,34512,34986,35259,35416,35790,36237,36527,36544,38457,39366,39368,39493,39537,39671,39804,39992,40011,40332,40623,40628,40633,40674],\"sì cì\":[20282],\"bēng\":[20283,22051,22879,23849,23917,38285],\"sì shì\":[20284],\"jiā qié gā\":[20285],\"yǐ chì\":[20289],\"diàn tián\":[20291,38079],\"hān gàn\":[20292],\"mài\":[20293,21154,21233,21334,21787,22770,33032,34887,36067,36808,36993,38689,38690,40613,40614],\"dàn\":[20294,20708,21846,21847,21887,22089,22186,24078,25018,26086,26598,27694,27786,27897,28129,29402,30093,30298,31147,31390,33093,33807,34014,34507,34577,35291,35345,35477,35806,36105,38702,39204,39247,39411,39655,40224],\"bù\":[20296,21199,21541,21656,22487,22496,24067,24269,24598,24721,27493,27496,27497,29951,31728,33657,34048,36356,37096,37110,37384,38042,39202],\"bǐ\":[20298,20478,21269,22838,22947,24444,26428,26560,27604,27614,27800,30101,31189,31508,31558,31875,32859,33325,35983,37145],\"zhāo shào\":[20299],\"cǐ\":[20300,27492,27866,30345],\"wèi\":[20301,21355,21619,21890,22683,23206,24944,25024,26410,28205,29023,29101,29338,29484,30031,32237,32635,32963,33535,33739,34287,34358,34655,34737,34907,34910,35133,35586,35718,35727,35859,36503,36507,36558,36682,37839,38696,39207,39221,39254,39759,39815,40154],\"zuǒ\":[20304,24038,32339],\"yǎng\":[20306,20639,20859,22385,23711,24899,25065,25857,27687,27697,28852,30162,30306,31010,32059,34630,36590,39178,39386],\"tǐ tī\":[20307,39636],\"zhàn\":[20308,20577,23960,25112,25126,25136,26632,26719,26855,28251,31449,32187,32509,33754,34360,34405,34406,35687,36687,39503],\"hé hē hè\":[20309],\"bì\":[20310,21639,21716,22006,22354,22555,22721,22896,22972,23138,23318,24065,24163,24164,24199,24243,24294,24330,24379,24380,24387,24517,24621,24842,24846,25949,25987,26768,27605,27606,27609,28258,28375,28397,28535,29007,29082,29428,29528,29529,29644,29863,30016,30050,30122,30201,30202,30357,30564,30887,31578,31621,31622,31718,31731,31882,32188,32298,32372,32636,33143,33534,33628,33798,33822,34006,34045,34109,34204,34572,34960,35141,35166,35171,35313,35414,35792,36017,36116,36177,36344,36437,36483,36484,36991,37042,37160,37162,37453,37838,37940,38091,38279,38281,38303,38381,38491,38880,39158,39238,39325,39388,39494,39616,39763,39813,40413,40425,40714],\"tuó\":[20311,22376,22582,23726,27094,27216,27825,30755,30756,30882,32061,35409,36302,37217,38436,38464,38465,39389,39390,39464,39506,39517,39548,39808,40213,40501,40713,40717,40743],\"shé\":[20312,33292,34421,34533],\"yì dié\":[20314,26163,27846,36604],\"fó fú bì bó\":[20315],\"zuò zuō\":[20316],\"gōu\":[20317,27807,28317,30144,31709,31804,32241,32529,34983,35104,37390,37476,38057,38834,38877],\"nìng\":[20318,20395,20543,23509,27870,28573,28632],\"qú\":[20322,21164,25141,26026,27403,27412,27661,28141,28744,29216,29846,29865,30319,30962,31847,32071,32970,33246,33731,33867,34134,34343,34781,34871,34876,34896,34914,36515,36581,38010,40221,40476,40498,40745],\"yōng yòng\":[20323],\"wǎ\":[20324,21651,30745,37047],\"kǎ\":[20327,22448,33001,35011,37490],\"bāo\":[20328,21241,21253,23394,29042,31523,32990,33502,34132,35046,35090,35139,38337,40793,40837],\"huái huí\":[20330],\"gé hè\":[20331],\"lǎo\":[20332,21694,24645,26675,29419,29679,30803,32769,32770,33622,34543,36689,37536,38097,39857],\"xiáng\":[20333,24224,26649,31077,32116,32724,35443,36333],\"gé\":[20334,21260,21572,21981,22629,24837,25356,25663,27077,27338,28358,33160,33269,33558,35297,35581,36661,36693,38307,38401,38548,38839,38864,38874,39444,39612,39855],\"yáng\":[20335,21175,22431,23864,24457,25196,25562,25965,26104,26140,26264,26472,26954,27915,28800,29660,30113,30221,30523,34520,35577,36656,37722,38038,38438,38451,38525,38711,39098,39119,39953,40249,40457],\"bǎi\":[20336,25453,25670,25850,26658,30334,31457,31912,35180],\"fǎ\":[20337,23772,27861,28747,30749,37701],\"mǐng\":[20338,20949,23027,24911,37225],\"èr nài\":[20340],\"hěn\":[20343,24456,29408,35434],\"huó\":[20344,27963],\"guǐ\":[20345,21286,21293,21420,22429,23037,23428,24203,24234,24657,26231,28224,30328,31082,31755,34539,34785,35300,35437,35809,36556,36712,38482,39740],\"quán\":[20346,20840,21875,22498,23038,23761,24015,25331,25660,26435,27006,27177,27402,27849,27940,28278,29303,29320,29780,30154,30786,31564,32275,33603,33906,34615,34872,35296,35438,35808,36327,36385,36615,36737,37275,37523,38120,38350,39028,39079,39401,39457,39688,39937,40136,40804],\"tiāo\":[20347,24227,26091,31079,32846],\"jiǎo\":[20348,20748,23362,25378,25605,25759,25785,25898,25963,25981,25983,26184,26270,26322,28762,29150,29409,29868,30350,30374,32094,32400,32478,33139,33259,34780,35665,36043,36363,37496,38128,39171,39290,40014,40867],\"cì\":[20349,21054,24219,26431,26664,27425,32088,33574,33727,34515,34694,36060,36176],\"xíng\":[20352,21009,21720,22411,23065,24418,27920,30798,34549,37026,37065,37379,37494,37522,38040,38095,38473,38488,39219],\"tuō\":[20354,21635,21660,22315,25176,25301,25302,27729,33067,33073,33676,34981,35351,35756,39141,39270,39776,39861],\"kǎn\":[20355,20568,20890,22350,24770,30733,33712,36641,36695,38993],\"zhí\":[20356,20516,20540,22516,22519,23018,23298,25120,25191,25709,26893,27188,28116,28432,30452,31107,32119,32310,32832,32844,32887,33201,34777,36310,36399,36448,36497,36548,37342,39357],\"gāi\":[20357,22419,23007,23760,26192,30049,31092,33604,35442,35813,35941,36037,36044,36165,38484],\"lái\":[20358,20459,20488,23811,23821,24242,26469,26814,26870,28062,28150,29453,29724,31577,31618,33713,33802,36904,37106,37688,38140,39435,39904,40326,40627],\"kuǎ\":[20361,21685,22446,37529],\"gōng\":[20362,20844,21151,21265,21268,22632,23467,23470,24037,24138,24339,24685,25915,26459,30909,31996,31999,32945,35301,35317,36524,36531,39672,40852,40858],\"lì\":[20363,20432,20458,20616,20782,20791,20947,21033,21147,21169,21237,21382,21385,21412,21423,21426,21459,21519,21590,21774,21811,22182,22215,22364,22619,22754,23091,23151,23668,23718,24743,24759,24900,25150,25646,26278,26310,26334,26424,26533,26627,26647,26651,27306,27348,27370,27408,27508,27511,27813,27828,28054,28327,28671,28701,29199,29345,29441,29653,29806,29893,29905,29925,30124,30178,30311,30445,30553,30725,30778,30782,30975,31018,31019,31024,31154,31197,31435,31520,31717,31890,31901,31986,33079,33480,33560,33620,33669,33673,33946,33950,34294,34488,34510,34528,34599,34679,34823,34851,35400,35720,36210,36706,36707,36729,37192,37469,38582,38583,38643,38722,38731,39681,40168,40215,40389,40604],\"yīn\":[20364,20944,21905,22142,22233,22240,22420,22553,23035,23139,24852,24903,26678,27684,27911,28341,28646,30230,31115,31221,31555,32106,32248,33589,33937,34093,35008,35570,37542,38111,38345,38437,38452,38512,38523,38530,38674,38688,38791,38899,38910,39408,39555,40791],\"mǐ\":[20366,23370,24365,25929,27939,28211,28758,31859,31886,32651,33042,33416,33886,34077,37540],\"zhū\":[20367,26666,27104,27237,27367,27371,27929,28532,28710,29482,29664,30787,31228,32081,33585,34127,34523,34667,34857,35006,35461,35576,35803,35832,35948,36326,37054,37526,38114,39407,39842,39930,40248,40708],\"ān\":[20370,20579,23189,23433,23766,24245,26697,27688,30438,30443,33124,33780,33851,33866,34029,35485,35571,35865,38796,38797,38909,39331,39839,40298,40341,40524],\"lù\":[20371,20679,21198,21216,22309,22388,22646,23101,23757,24280,24404,24405,25134,25693,26882,27162,28117,28133,28172,28425,28510,29741,29840,29994,30429,30569,30793,31103,31108,31249,31307,31635,31759,31788,31797,31798,31833,31926,34061,34135,34370,34736,36034,36162,36258,36335,36379,36439,36613,36678,36738,36760,36911,37249,37636,37682,37684,37876,38520,39428,39484,39909,40252,40294,40305,40442,40557,40575,40595],\"móu\":[20372,21178,24648,30520,34513,35584,35851,36366,37738,40254,40624],\"ér\":[20373,20799,20816,20818,23759,26669,27919,31915,32780,33017,33611,35003,36608,36700,38481,38573,39669,39838,40085,40239,40504],\"dòng tǒng tóng\":[20375],\"chà\":[20376,22908,23033,23700,27722,35435,35815],\"chì\":[20377,20666,21189,21201,21489,21883,24435,24668,24919,24975,25048,25270,25941,26021,26456,28225,28795,28861,28926,29118,30163,30200,30235,32708,32709,32740,32744,33119,36196,36265,36971,37459,38644,39149,39276,40338,40408],\"gòng gōng\":[20379,20849],\"zhōu\":[20380,21608,21900,24030,24479,27954,28109,28863,28880,29656,30698,33311,35589,35704,35788,36057,36178,36616,36630,36736,36913,37102,37506,38668,39410,39430,40259,40508],\"rú\":[20382,20754,22149,22914,23340,23418,24100,26328,26695,28202,28641,31566,33593,34144,34231,34657,34837,35005,35174,37018,37305,37539,38135,39020,39077,40044,40209,40253],\"jiàn cún\":[20383],\"xiá\":[20384,20448,21283,23777,23805,25966,26247,26585,28832,28890,29390,29421,29433,29672,29781,30806,30820,30892,31083,31594,32278,32712,33309,33338,34168,36206,36676,36758,36944,37724,37771,38492,38527,38686,39458,39803,40375,40672],\"lǚ\":[20387,20406,20770,21525,21570,23649,23650,23653,25364,25435,26053,26784,28946,31075,31238,31341,32125,32311,32533,33154,33168,35099,35128,37080,37569,38109],ta:[20388],\"jiǎo yáo\":[20389,20709,24506],\"zhēn\":[20390,20597,23498,24103,24106,24128,25656,26015,26722,26984,27035,27196,27549,27976,28254,28519,28597,29513,29645,29646,29799,29956,30494,30495,30759,30890,31087,31118,31131,31668,32983,33275,33908,33942,33985,34237,35998,36126,36675,36937,37209,37341,37441,37681,37756,38024,40053],\"cè zè zhāi\":[20391,20596],\"kuài\":[20393,20744,20983,21721,22130,22310,22359,22602,24028,24293,24555,26077,27443,29423,29546,31607,31977,33037,33214,37072,37174,40032,40089],\"chái\":[20394,20757,21901,26612,29362,31073,35962],\"nóng\":[20396,20738,20892,21725,22117,27266,27393,27987,28611,29174,31151,31230,31328,33043,33215,34173,35163,35688,36786,36787,37298,39710],\"jǐn\":[20397,20760,21370,21418,24057,27135,28428,29822,32039,32202,33771,34035,35641,35880,37670,38182,39241,39313],\"hóu hòu\":[20399,30694],\"jiǒng\":[20400,20690,20879,22247,27842,28547,28847,28913,29018,29019,29106,29147,31384,32151,35111,36837,36872,38984,39054],\"chěng tǐng\":[20401],\"zhèn zhēn\":[20402,25557],\"zuò\":[20403,20570,21777,22352,23709,23710,24231,31066,31987,32985,33859,33860,34009,34959,38460],\"qīn\":[20405,20819,23175,23898,23956,27453,34942,35483,38054,38985,39416,39566,39868],\"jú\":[20407,21881,23109,23616,24008,26888,27224,27878,28119,28264,28951,29329,29386,31927,33738,34332,36252,36348,36459,36610,37113,38320,39414,39527,40281,40308,40362,40752,40755],\"shù dōu\":[20408],\"tǐng\":[20409,22306,23063,25402,28047,28918,29693,33057,33351,35476,38962,39051],\"shèn\":[20410,24892,24910,26138,28033,28183,28402,30214,30254,30488,31091,32958,32962,33060,33102,34563,34564,37600],\"tuì tuó\":[20411],\"nán\":[20413,21891,23066,25257,26260,26511,26591,26976,30007,30040,33710,33843,36950],\"xiāo\":[20414,21715,22069,22203,22210,23115,23471,23477,24232,24391,25585,26541,26549,26783,27385,27466,27594,28040,28487,28703,28785,28786,28875,28935,29447,29538,30170,30175,30813,30819,31385,31659,31768,31787,32131,32481,32731,33198,33831,34157,34376,34387,34754,34767,34800,34856,36355,36877,37559,38144,38660,39093,39501,39553,39623,39632,39752,40222,40245,40397,40494],\"biàn pián\":[20415,32246,32527],\"tuǐ\":[20416,33151,36422,39613],\"xì\":[20418,21304,21324,21612,22669,23619,23635,23661,24549,24620,24644,26910,28509,28511,28569,29058,29332,30966,31114,32048,32140,32280,32454,32484,33283,33284,34158,34409,34891,35236,36201,36231,37092,37363,38411,38553,38559,38716,39228,39273,39721,40662],\"cù\":[20419,23208,25009,29469,30212,30255,31751,32300,33064,34079,35470,36247,36391,36415,36441,36468,36469,37259,39011,40704],\"é\":[20420,22254,23077,23753,23784,23785,28048,29684,30354,30539,30912,33706,35355,35472,35660,35769,36823,37387,37608,38151,38943,38989,39069,39780,40285,40286,40517],\"qiú\":[20421,21492,21778,22234,23863,24047,24048,25167,26754,27535,27628,27714,27731,27845,27991,28269,29034,29360,29580,29699,29830,30387,30426,32012,32127,32909,33409,33677,34412,34415,34551,35032,35283,35305,35332,35333,36053,36167,36878,36881,36946,37195,37338,37371,37558,38916,39810,39876,39997,40765],\"xú\":[20422,24464,31121],\"guàng kuāng\":[20423],\"kù\":[20424,21950,22195,24211,24235,24292,30228,32093,32468,34996,35044,35122,37239],\"wù\":[20425,21153,21209,21247,21372,22366,22626,22886,23162,23524,23676,23689,23912,24546,24734,24735,24750,25098,25188,26212,26444,28329,28944,29059,29289,30182,30713,31417,31877,34305,35492,35823,37576,38434,38550,38654,38682,38695,38768,39446,39579,40361,40540,40767,40768],\"jùn\":[20426,20737,21569,22472,23535,23803,25039,25411,25887,26201,26846,29127,29690,30063,31459,31647,34592,36048,37089,38486,39189,39298,39423,39567,40276,40277,40280],\"liáng\":[20429,22682,26753,26891,27153,31918,31921,31975,33391,36652,36748],\"zǔ\":[20430,21800,29244,31062,32068,32452,35419,35781,37818,38459,38779],\"qiào xiào\":[20431],\"yǒng\":[20433,21191,21192,21647,22471,22606,23921,24430,24634,24703,24704,24805,24849,24889,24898,26593,26640,27704,27891,28263,29996,34553,35424,36362,36404,39890,40108],\"hùn\":[20434,20529,22274,23585,24897,25485,28343,28957,30580,35304,35554,35816],\"jìng\":[20435,20665,22659,22924,23129,23143,24362,24371,24452,24465,25964,26324,26737,26807,27972,28702,29517,30153,30169,31454,31455,31467,31478,31480,33003,33051,33686,35497,36353,36851,36885,37857,38236,38742,38745,38748,40283],\"sàn\":[20437,38288],\"pěi\":[20438],\"sú\":[20439],\"xī\":[20441,20694,20846,20958,21349,21376,21560,21775,21821,22075,22095,22193,22805,22874,23302,23305,23638,23904,24007,24076,24454,24495,24687,24713,24725,24769,24796,26132,26206,26224,26227,26342,26512,26744,27069,27176,27200,27447,27685,27728,28e3,28101,28179,28330,28911,28929,28936,28959,29060,29064,29081,29113,29114,29115,29160,29204,29306,29312,29344,29351,29707,30236,30361,30542,30630,30717,30802,30926,30978,31232,31352,31416,31902,31974,32198,32357,32690,32725,32726,32952,32953,33181,33342,33667,33765,33952,34597,34693,34763,34869,35199,35321,35325,35327,35654,35903,35904,35944,35951,35989,36197,37020,37134,37189,37295,37368,37675,37869,37898,38004,38177,38581,39183,39246,39291,39889,40279,40450,40759],\"lǐ\":[20442,23052,23778,23794,26446,27418,28012,28583,29702,31036,31150,31924,35023,35041,35914,36902,37008,37300,37616,38146,39881,40039,40049,40100,40162],\"bǎo\":[20445,22562,23212,23453,23514,23539,23542,29668,32229,33862,34293,35091,36082,38732,39161,39165,39281,39362,40181,40199,40488],\"yú shù yù\":[20446],\"sì qí\":[20447],\"xìn shēn\":[20449],\"xiū\":[20450,20462,21691,24229,27143,28876,32670,33049,33065,33273,35973,37533,37760,39117,39240,39312,39652,39673,39860,40003,40258,40506],\"dì\":[20452,20569,20672,22474,22673,22700,23075,24093,24607,26099,26762,28941,29587,29963,30513,30535,30898,31094,31128,31532,32224,32532,33123,33730,33922,34069,34627,34669,34734,35558,35867,36406,36882,36883,36958,36976,37482],\"chóu\":[20454,20756,23334,24774,24833,25060,26662,29181,30068,30087,30359,31264,31609,31820,32082,32162,32504,33751,35446,35726,35728,36364,36490,37223,37228,37307,38612,38624,38630],\"zhì\":[20455,20587,20776,21046,21141,22401,23073,23512,24089,24092,24159,24226,24228,24268,24408,24463,24477,24535,24558,25061,25067,25347,25370,25527,25711,25842,26072,26186,26234,26633,26702,26813,27341,27355,27835,27959,28365,28382,28399,28492,28676,28825,29099,29438,29464,29839,29894,30164,30179,31017,31057,31209,31223,31258,31290,31305,31378,32041,32251,32622,32720,33187,33267,33268,33430,34541,34975,34976,35069,35231,35287,35311,35318,35468,35921,35922,36013,36074,36100,36136,36157,36337,36396,36499,36618,36734,37061,37517,37589,37973,38106,38183,38495,38578,38601,39396,39469,39482,39495,39576,39919,40217,40409,40503],\"liǎ liǎng\":[20457],\"jiǎn\":[20461,20537,20745,20943,21098,22591,24383,24389,25129,25132,25315,25400,25441,25536,25791,26535,26604,26776,26816,26908,27298,28187,28245,28733,29776,30545,30652,30839,30897,30982,31509,31591,31616,31777,32120,32365,32742,33575,34246,34834,35045,35143,35145,35194,35395,35591,35629,35710,35883,36284,36423,37911,39691,39950,40568,40571,40572],\"huò\":[20464,21663,22191,22207,22895,24416,24785,25110,25837,26084,26340,27316,27790,28273,28694,29554,30312,30483,30672,31096,31117,31339,31394,32815,33243,33383,33719,33958,34303,34838,35595,36008,36135,37699,37962,38252,38616,38669,38723,38852],\"jù jū\":[20465,25454,37624,38191],\"xiào\":[20466,20634,21177,21682,21742,21880,22027,22056,22063,23389,25928,25989,25990,27479,28045,29117,31505,35432,35487],\"pái\":[20467,24472,29260,29348,29445,31792,31794,36651],\"biào\":[20469,39998,40148],\"chù tì\":[20470],\"fèi\":[20471,21077,21406,21536,23645,24223,24259,24290,26162,26314,27360,27832,28663,29394,30280,32954,33801,36027,36153,37928,38212,38507,38725,40739],\"fèng\":[20472,20964,22857,28247,28968,29e3,36085,36183,40175,40179,40204],\"ǎn\":[20474,21813,22511,25566,32623,37544,38133],\"bèi\":[20475,20493,20573,20601,20633,20675,22791,24726,24811,24834,24970,26113,26774,28953,29292,29333,29384,29437,29692,29746,30874,31129,31954,33501,34003,34557,35097,35997,36125,36592,36649,36744,37046,37093,37121,37575,37950,38049,38785,38836],\"yù\":[20476,20773,21893,21929,21947,22495,22537,22954,23255,23507,23786,23950,24253,24423,24481,24840,24958,25131,26161,26843,26844,26859,27378,27406,27421,27442,27603,28020,28143,28394,28495,28582,28778,28980,29020,29135,29152,29225,29425,29508,29577,29721,30217,30290,30753,30818,30834,30983,30998,31004,31142,31191,31266,31286,31741,31838,31858,31894,32206,32621,32895,32896,33352,33419,33420,33567,33966,34019,34041,34167,34316,34591,34606,34988,35029,35465,35565,35709,35861,35947,36553,36621,36915,36935,36985,37057,37287,37434,37578,37669,37933,38064,38334,38408,38628,38705,38928,39044,39147,39239,39275,39341,39496,39533,39728,39729,39739,39754,40010,40191,40229,40231,40234,40274,40440,40466,40518,40556],\"xīn\":[20477,22138,22945,23324,24286,24515,24516,24571,24798,26032,26133,26490,27427,27462,28824,30458,34218,35362,36763,37028,37386,37573,37995,38156,39336,39339],\"hǔ chí\":[20479],\"jiù\":[20483,20710,21267,21275,21302,21417,21646,23601,24260,24271,24272,24934,25412,25937,26087,26601,26622,26709,27405,27559,30106,33276,33285,33290,39910,40434,40555,40596,40808],\"yáo\":[20484,20636,21954,22426,22575,23002,23217,23591,23597,23779,23970,23972,24493,25594,25622,25671,25727,26266,27043,28391,28881,29243,29498,29671,29796,29814,30936,31377,31407,31408,32948,34344,35616,35617,35875,36602,36730,36953,36965,37006,39012,39099,39126,39174,39194,39977,40025,40144],\"cuì zú\":[20485],\"liǎng liǎ\":[20486],\"wǎn\":[20487,21773,23113,24779,25405,26202,26213,26217,26236,26778,26880,29740,30073,30358,30412,30871,32169,32176,32510,33048,33814,36384,36627,37588],\"zǒng\":[20490,20588,20655,23928,24635,24803,25460,25603,25696,29162,32207,32235,32258,32317,34007],\"guān\":[20492,20851,23448,26874,30237,30287,31396,33924,38306,38359,38364,39973,40030,40143],\"tiǎn\":[20494,21818,24541,24767,26218,27524,28127,30547,33094,33300,35237,35277,36063,37674,39170],\"mén\":[20497,25194,25451,29834,33755,34379,37702,38036,38272,38277,38376],\"dǎo dào\":[20498],\"tán tàn\":[20499,22510],\"juè jué\":[20500],\"chuí\":[20501,22402,22464,25462,25637,26712,26864,27084,31648,33092,33753,37656,37786,38180,38514,38976],\"xìng\":[20502,22995,23134,23353,24184,24615,24763,26447,28076,32200,33238,33607,33685,33877],\"péng\":[20503,20656,22620,22643,24376,24969,25408,26379,26842,26902,27173,30844,31261,31484,31735,32388,33192,33411,34028,34325,34778,34779,34998,36643,37643,37981,38904,38908,39471,39676,39685,39700,40300,40527],\"tǎng cháng\":[20504],\"hòu\":[20505,21402,21518,22421,22560,24460,27913,33577,35934,36869,37064,39836,40031,40078,40088],\"tì\":[20508,21059,22159,22164,23625,23644,24716,24720,24789,24790,25147,25510,26367,26385,27474,27554,28053,29899,31545,31818,34201,35077,36886,36919,39664,39680,39684],\"gàn\":[20509,20942,24185,27046,27274,28134,28776,30448,32058,32448,35404,36113,36195,39597],\"liàng jìng\":[20510,38739],\"suī\":[20512,21752,22794,28374,28617,30509,30562,33429,33661,33662,34429,38614,38806],\"chàng chāng\":[20513],\"jié\":[20514,20604,20625,21030,21031,21052,21163,21180,21353,21354,23125,23211,23377,23690,23848,23909,23995,24e3,24175,25130,25463,25526,25838,26117,26466,26480,26688,26717,26988,26998,27044,27905,28368,28500,29412,30571,30989,31469,31680,32687,33709,34037,34531,34576,34840,34846,34877,34929,35002,35344,35440,35505,35750,36373,36860,37475,37755,38268,38945,39834,40082],\"kǒng kōng\":[20517],\"juàn\":[20518,21173,22854,24955,26698,28099,29431,29543,30519,30538,30560,32109,32121,32482,32613,32642,33091,34088,37124,39179],\"zōng\":[20519,22571,23447,23887,23893,24830,26401,26837,26934,29095,29475,30955,32195,32746,33113,33916,34668,35957,36392,36394,36452,37712,37953,39436,39459,39572,39683,39689,39735,39918,39932],\"ní\":[20522,22381,22527,23612,23636,24617,28131,29450,31870,32867,34477,34618,35308,35982,36316,36631,37107,37422,38092,38675,39324,39906,40117,40593,40815],\"zhuō\":[20524,25305,25417,26700,26802,26817,26867,27093,28095,31399,37935],\"wō wēi\":[20525],\"luǒ\":[20526,21062,26346,30256,30323,33245,33999,34819,35064,36534],\"sōng\":[20527,20935,23040,23847,23913,24250,25021,26494,26496,26537,26583,26789,27303,28126,28621,30841,33752,39686],\"lèng\":[20528,22542,24867,30550,36380],\"zì\":[20531,21082,23383,24675,28173,28460,29304,30501,30502,32980,33022,33258,33569,33634],\"bèn\":[20532,22348,25465,25770,28160,31528,36905],\"cǎi\":[20536,21835,23111,24425,25505,26828,27613,30572,32181,36340,36393],\"zhài\":[20538,20661,23528,30261,30758],\"yē\":[20539,21524,22094,25832,26253,26928,27467,28529,34862],\"shà\":[20541,21820,21922,27459,31633,32732,32739,33808,38319,38670],\"qīng\":[20542,20670,21375,22282,23496,27682,27691,28152,28165,34619,36605,36629,36731,37100,37638,37963,38737,38738,39894],\"yīng\":[20544,22052,22111,22198,23156,23190,23240,23344,23366,23422,24869,25732,25878,26400,26716,27185,27387,28214,29008,29681,29787,29838,29908,29959,29974,30884,31023,32211,32403,32492,32552,32578,32579,32588,33210,33521,33722,34337,34663,34867,35118,35707,36047,36552,37965,38195,38681,38906,40236,40337,40359,40367,40426,40441,40462,40474,40550,40560],\"chēng chèn\":[20545,29231],\"ruǎn\":[20548,26378,29772,29888,30877,31005,33117,36575,36653,36719,38446],\"zhòng tóng\":[20549],\"chǔn\":[20550,24823,30582,33846,34850,36080],\"jiǎ jià\":[20551],\"jì jié\":[20552],\"bǐng bìng\":[20555],\"ruò\":[20556,21458,23926,24369,26953,28971,29191,31660,31707,33979,37120,39961,39983,40376],\"tí\":[20557,21399,21884,21953,23865,28477,29765,30588,31157,31242,32249,32519,32612,34139,35078,35605,36263,36420,36431,37261,37719,38988,39064,39456,39863,39927,40128,40284,40420,40520],\"wēi\":[20558,21361,21940,23041,23193,23990,24013,24494,24836,25547,25595,26931,26994,28326,28883,29032,29168,30291,32261,33896,33907,34183,34610,34651,35235,35444,36918,38535,38536,38714,39939,39940,40130],\"piān\":[20559,22248,23205,26948,29327,31687,32745,37698],\"yàn\":[20560,21388,21421,21761,21933,22152,22181,22576,22943,23026,23306,23359,23476,24421,24422,25957,26191,26277,26325,26339,28383,28750,28756,28775,28777,28948,28976,28977,29078,29124,29290,29458,30746,30831,33395,33398,33399,35214,35267,35326,35578,35724,35742,35866,35891,35923,35924,36107,36119,36189,36549,37184,37245,37308,37317,38593,39181,39260,39440,39443,39476,39511,39520,39564,39731,40171,40200,40243,40387,40432,40798],\"tǎng dàng\":[20562],\"è\":[20564,21262,21374,21380,21597,21666,22121,22441,22538,22574,23691,23871,24261,24746,24853,25145,25212,25636,25657,25820,27374,27486,27514,28226,29735,30728,30736,30790,33133,33482,33852,34138,34437,34625,35240,35556,35725,35860,35935,36571,36598,36717,36940,36943,36987,37122,37418,37716,37993,38199,38440,38456,38942,38990,39066,39187,39209,39295,39952,39978,40055,40132,40346,40535,40771,40822],\"xié\":[20565,21232,21327,21332,21963,22437,22858,24650,24886,25337,25658,25783,25813,25847,25884,26012,26090,29057,29170,32138,32243,32256,32556,32723,32961,33029,33031,33035,33166,34658,34938,35181,35559,35735,35856,38795,38837,40868],\"chě\":[20566,25199,25766],\"shěng\":[20567,28219,30490],\"chā\":[20571,21967,25184,25407,25554,25591,30080,33279,33366,37535,37732,38200,39223],\"huáng\":[20575,20976,21924,22573,22708,23187,23858,24488,24822,27003,28255,29004,29530,29789,29852,30272,30343,30970,31316,31681,31783,33358,33887,34647,34789,35579,36266,36945,37728,37892,38205,38541,38905,39213,39452,39945,40017,40135,40428,40643,40644],\"yǎo\":[20576,21676,23161,23438,23686,26483,26620,27034,28308,29397,31365,31368,33280,33517,38340,39445,40405,40809],\"chǒu qiào\":[20578],\"yóu\":[20580,23588,24238,24611,27787,27833,27999,28216,29369,29494,29495,30001,30115,31198,32940,33692,33720,34133,34480,34659,35367,36623,36662,36912,36938,37038,37109,37438,38080,39360,39799,39819,40063,40073],\"xū\":[20582,22687,23213,23299,26952,27432,27476,29176,30110,30449,32135,32259,32379,32997,34150,34391,34394,34395,34641,35015,35343,35377,35549,35651,35870,37968,38656,38920,39035,39036,39497,39706,39750,39766],\"zhā\":[20583,21747,25263,25363,25592,25699,27165,28195,30390,35312,35655,40772,40775],\"cī\":[20584,30133,34816,36224,39604,39626,40825],\"bī\":[20586,23620,26949,27636,35917,36924,39951,40126,40278],\"xún\":[20593,22106,23547,23563,23755,24033,24309,24490,24642,25559,25907,26092,26442,26642,26730,27187,27957,27988,28527,29125,29142,29667,29845,30019,32003,33600,34803,35426,35810,37161,40015,40024,40095],\"cāi sī\":[20594],\"duān\":[20595,23183,31471,35085,37748],\"ǒu\":[20598,21528,22036,32806,33122,34117,34261],\"tōu\":[20599,20600,37742],\"zán zá zǎ\":[20602],\"lǚ lóu\":[20603,20674],\"fèn\":[20606,20712,22859,22894,24325,24575,24868,24996,28725,30611,31182,31914,31966,33209,40029,40124],\"kuǐ guī\":[20608],\"sǒu\":[20609,21468,21471,22014,27362,30605,34222,34282],\"zhì sī tí\":[20610],\"sù\":[20611,20723,21961,22608,22609,22809,23242,24875,24991,27041,27150,27157,27536,27869,28049,28335,28344,28506,28517,29578,29663,29851,31756,31899,31903,32032,32292,32899,32901,33158,34060,34263,35307,35380,35606,35785,35873,36250,36444,36895,36961,36972,37577,39191,39500,39573,40016,40427,40532],\"xiā\":[20612,28998,30606,35898,39084,39957],\"yuàn yuán\":[20614,23195],\"rǒng\":[20615,20887,23426,27652,36597],\"nù\":[20617,24594],\"yùn\":[20618,23381,24701,24818,24864,24909,26527,33130,34164,34176,34292,34314,35102,35999,36816,36939,37075,37126,37213,37270,37278,38871,38878,38901,38907,39211],\"gòu jiǎng\":[20619],\"mà\":[20620,22044,27050,30576,31043,31137,32629,38273,39393,39554,39701],\"bàng\":[20621,22621,26834,29604,31254,33365,33953,34607,35607,35876,37770,38225],\"diān\":[20622,21415,23918,24005,24019,24020,25474,25895,25921,27079,28359,30315,30322,36430,39002,39003,39072,40827],\"táng\":[20623,21776,21882,22371,22530,22616,25642,26848,27062,28303,28447,29051,29805,30916,31135,31702,31939,31958,31963,33157,33179,33998,34711,34739,36207,36412,37132,37283,37781,38554,39225,39236,40374],\"hào\":[20624,21728,24655,26122,26150,26215,26272,26276,26285,26317,28009,28111,28564,28751,28765,30355,30364,30366,30369,30373,32791,32853,34179,34399,37143,39013,39074,39965],\"xī xì\":[20626],\"shān\":[20627,21024,21034,21116,22328,23665,25403,25639,26613,27270,28536,28568,29053,29414,29642,31512,32319,32692,32694,33056,33314,33439,34923,36314,36565,37014,38282,39877],\"qiàn jiān\":[20628],\"què jué\":[20629,22470],\"cāng chen\":[20630],\"róng\":[20635,23222,23238,23339,23481,23797,23896,23992,25102,25608,26343,26628,27029,27054,27061,27623,28342,28700,28927,29076,29416,29794,31297,32104,32466,32674,32924,33561,33592,33635,33993,34686,34701,34702,34833,35107,37780,38229,39397],\"tà tàn\":[20637],\"suō\":[20638,21766,21965,21990,23057,25677,26731,26797,30531,31761,31764,32679,33679,34001,36246,39867],\"dǎi\":[20643,27513],\"zài\":[20644,20750,20877,22312,25175,27909,36617,37224],\"gǔ\":[20646,21476,21842,23603,24882,27030,27070,27753,28104,28658,28692,29295,30391,30396,30444,30653,31296,32607,32662,32929,33077,33228,34211,34506,34865,35393,35778,36674,36903,37431,38068,39222,39305,40723,40724],\"bīn\":[20647,23486,24428,25996,26901,28392,28626,28657,28661,28693,32381,32548,34408,35945,35955,36051,36052,37024,37964,38228,38694,39022],\"chǔ\":[20648,20786,26485,26904,26970,26990,27290,28619,29876,30784,30990,31111,34389,40813,40828],\"nuó\":[20649,20794,25386,26779,27232],\"cān càn\":[20650],\"lěi\":[20651,20769,21437,22418,22593,22744,22760,27344,28741,30295,30667,30922,31016,32786,34124,34174,34271,34365,34845,35460,35716,35796,38008,40467],\"cuī\":[20652,20951,22676,23828,23903,24923,25703,27057,29525,30954,37849],\"yōng\":[20653,21960,22665,22725,23262,24248,24305,24949,25317,25793,28413,28745,29253,30152,30293,30320,33219,37013,37114,37144,37854,38235,38605,38621,39252,40005,40153,40411],\"zāo cáo\":[20654],\"sǒng\":[20657,23927,24578,24730,24879,24939,31462,32824,32883,39415],\"ào\":[20658,22387,22407,22714,22881,23279,23705,23728,23988,25034,25817,28595,37834,39489,39580],\"qī còu\":[20662],\"chuǎng\":[20664,30946,38358,38383],\"shǎ\":[20667,20749],\"hàn\":[20668,22462,24717,25022,25182,25421,25750,25788,26097,26200,26293,27721,28038,28450,28698,28938,29442,30356,30533,32752,33695,33761,34559,34605,34706,35648,36634,37356,37554,37582,38615,38967,38980,39060,39419,40382],\"zhāng\":[20669,23260,24352,24373,24432,24926,26290,27167,28467,29520,29835,31456,31931,34049,34769,36967,37155,37873,39206,39487,40006,40606],\"yān yàn\":[20671,22677,23342],\"piào biāo\":[20676,39584],\"liàn\":[20678,22556,23201,24651,25088,26973,27539,27566,28229,28491,28592,28722,28860,29001,29779,32244,32414,32451,33840,37676,37706,37832,38142,39946],\"màn\":[20680,22657,24148,24930,26364,28459,28599,29107,29516,32309,32550,34052,34352,37156,37853,38232],\"tàn tǎn\":[20683],\"yíng\":[20684,21942,22603,23348,25869,27001,27391,28289,28299,28386,28486,28633,28634,28660,28677,28699,28704,28719,28752,28764,29074,29151,29801,30401,30408,31132,31837,31855,32264,33556,33639,33721,33828,33829,33830,33854,34021,34240,34509,34631,34687,34722,34821,35597,36111,36194,36814,37795],\"dòng\":[20685,20923,20941,21160,21205,23003,25113,25359,26635,26847,28265,30800,33e3,33012,33110,36853,38680,39399],\"zhuàn\":[20686,21869,22208,22559,25776,28791,29777,31686,33118,33923,35144,35668,39244,39316],\"xiàng\":[20687,21224,21521,22190,23008,23953,26319,27233,29670,32575,34771,34902,35152,35937,37900,38917,39033,40012],\"shàn\":[20688,21892,22688,22689,23319,25797,25982,26923,27199,27482,27733,28759,30109,30960,32341,32558,33203,34798,34810,35349,35590,35697,35754,36109,36193,36216,37167,37925,39245,39480,39583,40019,40020,40157],\"tuí tuǐ\":[20691],\"zǔn\":[20692,22082,25753,35664],\"pú\":[20693,21261,22308,22691,28654,29531,29854,30632,31321,33670,33744,33769,33889,33969,33970,36108,37242,37879,38244],\"láo\":[20695,21171,21172,21214,21744,23810,23959,24997,26405,28022,29282,30184,30278,31362,31785,37290,37906,38137,39007,39645],\"chǎng\":[20696,21424,24288,25950,26166,27653,37625],\"guāng\":[20697,20809,21667,22425,23023,27960,28782,28823,28826,28827,28897,29654,33009,33578,36612,37543,40646],\"liáo\":[20698,22073,23293,23525,23534,23582,23658,23930,23962,23963,24299,24960,25977,26296,27217,29536,29849,30103,30274,31426,31773,32346,32557,32842,33163,33195,34260,34783,35906,36095,36440,36797,36988,39113,39630,40431,40553],\"dèng\":[20700,20979,22705,23965,27336,30634,30964,35252,37011,37159,38565],\"chán zhàn zhuàn\":[20701],\"bō\":[20704,23955,25320,25765,25773,27874,28298,29627,30326,30411,30773,30854,31009,32573,33760,34992,36467,37474,38069,39185,39293,39499,40013],\"huì\":[20705,21295,21321,21913,22034,22166,22298,23314,23533,23670,23671,24407,24409,24410,24507,24666,24693,24800,24935,24979,25075,26214,26291,27109,27230,27269,27352,27719,27851,28377,28499,28905,29172,29545,29860,30650,30794,31229,31330,31730,32117,32362,32472,32729,32765,33631,34087,34137,34184,34185,34794,35439,35496,35569,35667,35711,35763,35826,36036,36159,37932,38368,38419,38759,38958,39018,39058,39215],\"chuǎn\":[20706,21912,33307,33608,36403],\"tiě jiàn\":[20707],\"sēng\":[20711,39705],\"xiàn\":[20713,20724,21743,22455,22634,23021,23050,23466,23704,23796,25010,25738,26203,27212,27258,28032,28695,29486,29563,29616,29694,30476,30541,31919,31982,32100,32171,32218,32447,32528,32673,32680,33146,33236,33277,33483,33703,35490,35919,37607,37646,38480,38501,38519,38704,39201,39301,40626,40760],\"yù jú\":[20714],\"è wū\":[20715],\"tóng zhuàng\":[20718],\"lǐn\":[20719,20955,20956,24297,24298,25037,25044,25755,27265,27305,28575,30299,30301],\"gù\":[20721,20933,22266,22540,23827,23854,25925,26767,26845,29311,30204,31099,37678,38178,38599,39015,39038,39901,40116],\"jiāng\":[20725,22723,23004,27263,27565,27743,30037,30085,30995,32366,32560,32734,33587,33857,34193,34688,34751,35911,38849,40002,40137],\"mǐn\":[20726,20922,21025,21188,24751,24829,24845,24924,25003,25279,25923,25935,25967,27887,28515,30399,31522,31549,31778,34848,38292,38313,38389,38397,39989,40152,40701],\"jìn\":[20728,20954,22116,22157,22672,22743,22935,23335,25634,26185,26187,26499,27555,27989,28024,28301,28613,28636,28908,29025,29180,29710,29800,29878,30433,31090,32265,32537,33641,34254,35250,35280,36078,36112,36166,36817,36827,36914,38771,40829],\"jià jie\":[20729],\"qiào\":[20730,23789,24105,25772,27579,31373,31429,35482,35822,36488,38487,38825,38866,39642],\"pì\":[20731,23218,23251,23617,28604,29971,30088,35692,38370,40447,40458],\"sài\":[20735,31802,36093,36187],\"chán tǎn shàn\":[20739],\"dāng dàng\":[20741,24403,38371],\"xuān\":[20743,21927,22599,23191,23459,24835,24843,25550,26125,26244,29002,29014,29764,30587,30670,31140,31662,32743,32766,33841,33842,34002,34175,34300,34320,34646,34825,35552,35580,35678,35862,36562,36713,37753,39421,39962],\"dān dàn\":[20747,25812,30213],\"càn\":[20751,28591,28799,29158,29864,31922,34194,35634],\"bīn bìn\":[20752],\"án àn\":[20753],\"tái\":[20755,22382,23343,25260,25825,27311,28849,28850,31817,33274,34233,36294,37040,39089,39824,40080],\"lán\":[20758,20848,22226,23146,23706,23888,24177,25318,25876,26003,26005,26639,27396,27415,28572,28734,28742,28769,29155,29175,29884,31726,31811,31843,32383,33915,34013,34253,34347,34349,35124,35157,35172,35188,35197,35659,35733,35888,36509,37997,38247,38348,38417,38858],\"nǐ yì ài yí\":[20759],\"méng\":[20762,24170,26330,26406,27223,27308,27659,28309,28635,29965,30015,30431,31006,33384,33684,33804,34116,34427,34673,37171,37176,38719,38720,39021,39259,39885,40463,40562],\"níng\":[20764,20957,21659,22144,23331,26592,27235,27320,29406,29552,32845,32889,34228,37967,39713,40459],\"qióng\":[20765,21357,23430,24824,24972,26703,27241,28970,28973,29026,29069,29756,29898,30552,31351,31353,31406,31430,31547,31559,33340,33557,34257,34285,34537,34540,36217,36331,37019,37518],\"liè\":[20768,20925,21015,21155,21181,22482,22483,23028,23771,24036,25362,25449,26677,27916,27990,28872,28910,29037,29347,29454,29471,29557,32855,33055,33570,34522,36244,36496,36862,39090,39707,39715,39844,40050,40247],\"kuǎng\":[20771,22844,25069],\"bào\":[20772,21245,22577,24513,25253,25265,26323,29190,29350,33762,34403,34475,35961,37451,37988,38087,39602,39665,39825,40077],\"biāo\":[20774,22658,24150,24426,26631,27161,28398,28684,29083,29186,29451,30253,30950,33176,33237,35620,36102,37858,37987,38230,38259,39086,39095,39110,39111,39112,39114,39121,39129,39130,39531,39561,39647],\"zǎn\":[20775,20793,22086,25861,26141,36273,36274],\"háo\":[20779,21989,22071,22097,22158,22741,26883,27612,27627,28640,29510,29524,31443,31815,34461,34836,35705,35946],\"qìng\":[20780,20938,24198,24950,27366,28650,30851,30956,32580,38744],\"chèn\":[20781,22187,27015,27372,30114,34924,35183,35734,35894,36225,36226,40787,40788,40832],\"téng\":[20783,24144,28373,28443,30140,31824,31832,32290,33150,34276,34373,34723,35466,35588,36998,39398,39472,39523,39975],\"lǒng lóng lòng\":[20785],\"chán chàn\":[20787],\"ráng xiāng\":[20788,21239],\"huì xié\":[20790],\"luó\":[20792,25886,26916,27407,29473,29568,31657,31854,32599,32645,33078,33121,33821,34367,34746,35260,36923,37007,37837,38012,38179,38233,39264,39486,39512,39585,40449],\"léi\":[20797,23256,27281,27417,29891,30078,32306,32397,32413,32551,32589,32696,34050,34354,34374,36704,37939,37976,38253,38647,38721,40041,40762],\"nàng nāng\":[20798],\"wù wū\":[20800],\"yǔn\":[20801,21911,22845,25230,27538,27550,29377,30930,33658,36081,37399,38445,38504,38549,38691,39355,40811,40819],\"zān\":[20802,27253,31786,31790,31948,37909,37919,40292],\"yuán\":[20803,20870,21407,21409,21429,22253,22278,22286,22290,22291,22435,22636,23220,23236,25588,27038,27052,27260,27358,27781,28274,28304,28306,29232,29480,29503,31502,32227,32257,32536,32689,33554,34199,34653,34671,34696,34945,35108,35612,36677,36757,37005,37031,37211,37416,37809,39477,39789,40354,40368,40703,40715],\"xiōng\":[20804,20807,20982,21250,21256,21701,24567,24671,27769,27958,33015,33016,33422,35369,35454,35771],\"chōng\":[20805,22019,24545,24963,24999,25679,27798,28026,29675,32639,32704,33282,33375,33594,34909,36438],\"zhào\":[20806,22423,26064,26316,26523,27330,29031,29171,29411,30654,31498,32576,32617,32644,32897,32903,32904,35412,35791,36213,36249,39841],\"duì ruì yuè\":[20810,20812,20817],\"kè\":[20811,21051,21184,21194,22529,23060,23458,24682,24857,27690,28312,30886,32217,32514,33360,34889,35506,35838,37633,38174,39437,39570],\"tù\":[20814,20820,22541,36812,40309],\"dǎng\":[20826,25897,27411,35681,35740,35872,40680],\"dōu\":[20828,20832,21783,27255,31740,34104],\"huǎng\":[20836,22875,24140,24627,24653,26180,28862,29056,32296,35428,35594,35854],\"rù\":[20837,21973,23223,25174,26433,27955,28349,32287,32539,34e3,35109,40176],\"nèi\":[20839,27677,27678,37655],\"yú shù\":[20842],\"liù lù\":[20845],han:[20847,29235],\"tiān\":[20850,22825,23126,28155,37215,38740,38749,40647],\"xīng xìng\":[20852],\"diǎn\":[20856,22200,22860,23152,25951,26915,28857,30872,33959,34119,36398,40670],\"zī cí\":[20857],\"jiān\":[20860,20927,22223,22362,22533,22904,23014,23015,23574,24181,24804,25099,25108,25627,26942,27179,27388,27516,27569,27570,28244,28688,28728,29006,29086,29112,29259,29770,30583,31003,31031,31546,31627,32216,32273,32516,32547,32937,33392,33393,33733,33786,33868,33977,34090,34129,34163,34371,35708,35932,37999,38595,38831,38848,38857,39216,39330,39956,39964,39993,40099,40146,40273,40307,40380,40547,40585],\"shòu\":[20861,21463,21806,22781,22784,23551,25480,29417,29539,29560,30185,30246,32172,32502,33156],\"jì\":[20862,20864,21058,21092,21137,21219,22358,22413,22600,22931,23395,23490,23492,24301,24401,24475,24524,24760,24782,25083,25216,26081,26082,26083,26280,26281,26305,26782,27285,27317,27918,28419,28424,28721,30197,30304,31133,31273,31287,31300,31306,31335,32e3,32153,32318,32331,32380,32487,32489,32637,33262,33456,33549,33572,33898,34015,34055,34186,34318,34350,34363,35034,35136,35244,35274,35336,35352,35467,35745,35760,36321,36349,36447,36857,38469,38555,38657,38717,39525,39589,39675,39742,39773,39781,39898,39933,39990,39999,4e4,40045,40090,40107,40267,40401,40780],\"jiōng\":[20866,20875,22384,22491,25155,34319,34324,39369,39403],\"mào\":[20867,20880,23202,24125,24855,25035,26259,26581,26969,27639,29761,30339,30474,30592,32772,33538,33850,34640,34980,35218,35980,36031,36152,37146,37166],\"rǎn\":[20868,20873,22988,23203,26579,29635,33490,33925],\"nèi nà\":[20869],\"gāng\":[20872,20910,21018,21083,22536,22589,23713,25478,25667,26849,29288,29317,30104,32177,32434,32568,32577,32609,32923,37357,37792],\"cè\":[20874,20876,21397,21408,22824,24257,24699,24827,24993,25927,27979,28204,31527,31574,31582,31604,31651,33629,33815,33844,34011],\"guǎ\":[20878,21072,21102,21479,23521],\"mào mò\":[20882],\"gòu\":[20883,21826,22392,22434,22815,22816,23230,24384,25606,25728,26500,27083,29049,35247,35279,35389,35436,35807,36092,36141,36952,38602],\"xǔ\":[20884,21923,26250,26665,29661,30440,31944,35425,35583,35817,37158,37265],\"mì\":[20886,20906,22055,22611,23483,23494,23770,24130,24142,24166,24637,27027,27154,27329,27752,28135,28405,28446,28631,29072,32643,34084,34588,35219,35220,35227,35269,35600,35879,40719],\"yóu yín\":[20888],\"xiě\":[20889,20905,34267],\"jūn\":[20891,21531,22343,26750,27758,30386,30392,30393,30853,33689,34448,34944,35232,36557,37406,37505,37534,37717,38055,38965,39862,40106,40591],\"mí\":[20894,25823,28720,29218,29461,29564,31074,31152,32315,33982,34252,34346,34364,34990,35448,35598,36855,37274,37310,37311,37316,38270,40461,40586,40587,40603],\"guān guàn\":[20896,35212,35251,35264,35266],\"měng\":[20897,21200,25077,25529,29467,29556,33355,34594,34835,37683,38192,39917,40710],\"zhǒng\":[20898,22618,23600,27505,28996,30215,32959,33131,36405],\"zuì\":[20899,23989,26220,26368,26668,27100,27271,27276,31101,32074,32618,34142,36768,37204,37243,37257,37642],\"yuān\":[20900,21064,22246,23357,23491,26857,28149,28161,28166,28170,28181,28737,30498,32921,33918,33964,34574,34613,39372,40182,40219,40311,40482,40499,40531,40728,40733],\"míng\":[20901,21517,26126,26269,26393,27040,27962,28319,29501,30464,30515,30609,33559,34719,35245,35450,37133,37528,38125,40180,40483],\"kòu\":[20902,21481,23484,23495,25187,25922,28401,31387,31576,31750,34098,34107,37350,40391],\"tài\":[20909,22826,22835,24562,24577,24907,27760,27761,27888,28313,32957,33318,37214,37414,38043],\"féng píng\":[20911,39342],\"chōng chòng\":[20914],\"kuàng\":[20917,22329,22745,23730,25068,26103,26175,26336,26694,27841,29196,30486,30518,30719,30783,31014,31340,32075,32086,32394,32425,36026,36150,36582,37021,37178,37489,37595,37979,40651],\"lěng\":[20919],\"pàn\":[20920,21028,21467,27804,27886,28351,28813,29257,30036,30460,34978,35195,35402,37612,38011,38934,40293],\"fā\":[20921,24386,27831,30330,30332],\"xiǎn\":[20924,23583,23584,23812,23982,24176,25863,26174,27382,27624,28774,28877,29177,29405,29443,29547,29550,29569,31122,31557,31666,34259,34330,34476,34566,35683,36219,36323,37708,38505,38522,38570,38853,38997,39023],\"qià\":[20926,22326,24098,24688,27534,27965,30792,32994,39618],\"jìng chēng\":[20928,20936,28136],\"sōu\":[20929,21974,24256,24267,25436,25628,25673,28338,29504,33368,33936,34699,37131,37273,37802,38204,39100,39125,39231,39306,39466],\"měi\":[20930,23172,23226,23309,23876,25396,27598,27599,28028,28220,29144,32654,36542,37762,38209,40675],\"tú\":[20931,22259,22270,22294,22295,22615,23648,23801,23902,24233,24284,24466,24711,25580,28034,30223,31585,33135,33660,33956,36351,36884,37236,37423,37710,39327,39420,40268,40351,40395,40437],\"zhǔn\":[20934,20950,22523,28310],\"liáng liàng\":[20937,28092,37327],\"diāo\":[20939,20993,21023,21500,22877,24372,24427,27720,29745,30857,31763,34413,34497,35970,37677,38613,39817,39899,40119,40304,40742],\"còu\":[20945,28234,33120,36659,36751],\"ái\":[20946,21824,22026,25457,28336,30284,30353,30362],\"duó\":[20953,21099,22842,22890,30181,36401,37420,37944,38094],\"dú\":[20959,21301,23355,26911,27357,27568,28060,29261,29272,29322,29346,29420,29544,29892,30398,35067,35501,35712,35743,35908,36117,37654,37983,38855,38883,38885,39475,39633,40681,40695],\"jǐ jī\":[20960],\"fán\":[20961,20962,20963,21285,22694,26443,26569,26853,27146,28735,28902,29033,29140,29856,30718,31020,31538,31861,32208,32691,33316,33319,34208,34345,34844,35150,36463,37353,37895,37922,38034,40429],\"jū\":[20965,21258,23093,23150,23621,23820,25221,25398,25516,26798,26896,27275,27625,27633,27843,28090,29401,29722,30141,30752,32605,33106,33357,34587,35070,35530,36308,36376,36537,38513,38606,38816,38827,39378,39545,39816,40225,40331],\"chù chǔ\":[20966,22788],\"zhǐ\":[20970,21159,21675,22336,22375,24075,24649,25210,25351,26088,26547,27490,27750,27802,27924,28157,30139,30731,31049,31190,32025,32440,33463,33547,34274,34937,35175,35368,36286,36601,36725,37231,38447,40697],\"píng\":[20973,20980,21615,22378,22592,23740,24097,24114,24136,24179,24959,24977,26544,27956,28969,29622,29942,29953,31470,31667,31752,32574,33619,33805,34033,34482,34530,35413,35780,36607,36647,37105,39811,40070],\"kǎi\":[20975,20977,21056,21108,22450,22607,24698,24887,24936,26271,33928,36614,37703,37799,38112,38196,38355,38399,39101],\"gān\":[20978,22377,23602,23604,23606,23607,26577,27860,28455,29589,29976,30131,30712,31487,31608,31891,32925,33527,36800,37200,39760],\"kǎn qiǎn\":[20981],\"tū\":[20984,22551,23936,25464,28043,28261,30172,31167,31171,31361,33878,37621,40282,40757],\"āo wā\":[20985],\"chū\":[20986,21021,23680,25716,27019,27159,35993,40803],\"dàng\":[20988,22325,22449,22731,26723,27284,27705,29847,29949,30442,30602,30720,30893,30993,31772,33633,33770,34153,34351,36260,36927,38652],\"hán\":[20989,20990,21547,22277,23074,23506,23841,26199,26770,27995,28085,28559,28947,29696,29981,31592,34604,37015,37039,37601,38867,38889],\"záo\":[20991,38015],\"dāo\":[20992,20994,24521,27672,33312,34729,37334,39771,40061],\"chuāng\":[20997,25680,29262,29269,30126,30241,31379,31383,31419],\"fēn fèn\":[20998],\"qiè qiē\":[20999],\"kān\":[21002,21208,22570,25121,26654,40853,40859],\"cǔn\":[21004,24534],\"chú\":[21005,21416,24174,24282,27249,27337,27365,28353,29331,31720,32801,33467,33954,33965,34573,34805,35936,36238,36464,36487,36501,37455,37604,38148,38500,38607,38619,40373],\"huà huá\":[21010],\"lí\":[21013,21075,21114,21145,21400,21937,22175,22212,23264,23415,24306,24737,26792,26808,26819,28435,28757,29313,29314,29432,29709,29827,29896,30432,30557,31163,31346,31472,31587,31729,31852,31950,32301,32545,32633,33347,33650,33758,34016,34110,34268,34362,34570,34765,34808,34859,35125,35623,35981,37288,37611,37637,37867,37975,38626,39530,39562,39887,39916,40058,40097,40313,40477,40514,40654,40679],\"yuè\":[21014,23347,23684,23731,23997,24689,24709,24742,25097,25224,25459,26376,27198,28729,29210,29605,31039,31156,31703,31814,31845,31856,31908,31925,34341,34446,34447,35500,36234,36288,36291,36493,36559,37381,37470,38e3,38074,38321,38322,38405,40465,40473,40678,40864],\"liú\":[21016,21129,22176,23225,23911,26056,26066,27060,27210,27969,27983,28687,29705,29792,29804,29858,30020,30041,30065,30081,30244,30277,30827,33957,33989,34761,35031,37775,37840,37890,38240,39104,39109,39127,39392,39413,39470,39505,39581,39969,40377,40544,40589],\"zé\":[21017,21063,21863,22038,23271,24123,24152,25246,27149,27509,27810,27854,28333,30367,30612,30688,30987,31654,31744,33332,34102,34828,35159,35630,36094,36188,36846,40453,40794,40816],\"chuàng chuāng\":[21019,21109],\"qù\":[21022,21434,21435,38324,38339,38418,40622,40705],\"bié biè\":[21029,21035],\"páo bào\":[21032],\"chǎn chàn\":[21036,21079,24157],\"guā\":[21038,21120,26736,27460,29041,29916,32973,36411,39082,39091,39463,40240,40505],\"gēng\":[21039,24218,26921,28013,28991,30026,32090,32686,32697,32789,33774,36065,36179,40330,40530],\"dào\":[21040,22133,24764,26913,27300,29182,29913,30423,30428,31282,31291,32411,32767,33364,33791,34908,34911,36551,36947],\"chuàng\":[21041,21071,21081,24582,24884],\"kū\":[21043,21741,22288,22528,26543,26701,30715,31391,36301,37056,39607,39852],\"duò\":[21044,21057,22703,23598,24816,24988,25349,26711,33333,36325,36346,38474,38479,39167,39283,40317],\"shuā shuà\":[21047],\"quàn xuàn\":[21048],\"chà shā\":[21049,21070],\"cì cī\":[21050],\"guì\":[21053,21055,21130,21132,25740,25904,26123,26690,26914,27126,27195,27331,29476,31148,31552,34005,35160,36020,36149,36330,37888,37966,38844,40022,40037],\"lóu\":[21061,23044,23105,24276,27004,27155,28295,28426,29089,32807,32812,33371,33932,34078,34684,34747,35633,36545,36977,38843,39621,39631],\"cuò\":[21065,21074,21405,22798,25387,25514,26852,33693,33697,33996,36906,37564,37679,38153,38169],\"xiāo xuē\":[21066],\"kēi kè\":[21067,23557],\"là lá\":[21068],\"tī\":[21076,26799,36386,37563,38161,40392,40393],\"pōu\":[21078],\"wān\":[21084,22598,22762,24117,24367,24398,28286,28523,28771,30549,34623,35916],\"bāo bō\":[21085,21093],\"duō\":[21087,21636,21702,22153,22810,22811,25479,27634,30035,35056],\"qíng\":[21088,21197,22813,24773,25806,26228,26258,26878,27144,27296,27696,29984,30808,33885,40677],\"yǎn shàn\":[21089],\"dū zhuó\":[21090],\"yān\":[21094,23267,23846,23958,24697,25045,25064,27182,28106,28153,28473,28895,28937,28945,29017,29658,31734,33005,33241,33784,37154,37251,38329,38409,40683],\"huō\":[21096,21136,21529,25865,31220,32800,38186,39454],\"shèng\":[21097,21104,21213,22307,22701,23882,26208,27066,27251,29726,32854,34114,36025,36088],\"duān zhì\":[21100],\"wū\":[21101,21596,21978,22316,23627,24043,24345,26439,27469,27737,27738,27745,27967,28879,31375,31676,34704,35464,35491,35820,37036,37140,37794,38056,39966,40238],\"gē\":[21106,21733,22314,24385,25096,25107,25128,27468,28370,29365,32912,35004,35596,37814,40218,40255,40509],\"dá zhá\":[21107],\"chuán\":[21110,26295,26941,31685,33313,33321,33337,36658,36932],\"tuán zhuān\":[21112,28441,31743],\"lù jiū\":[21113],\"pēng\":[21115,21257,22061,24614,24690,25256,26760,28921,30768,36591,39373],\"piāo\":[21117,21217,24915,26074,29349,32754,34741,39107,39108,39128,39762],\"kōu\":[21118,24388,25248,25715,30477,30616,33444],\"jiǎo chāo\":[21119,21131,21222,25719],\"qiāo\":[21121,21226,22685,24167,25970,27207,27587,29126,30807,30973,32337,36268,36343,36365,36474,36475,37115,37153,37157,37739,37740,37936,38201,38941],\"huá huà\":[21123],\"zhā zhá\":[21124],\"pī pǐ\":[21128,24706],\"tāng\":[21135,22049,32688,34202,34666,36442,38842,40734],\"chán\":[21142,22197,22757,23157,23307,24009,24283,26830,27610,28281,28537,28538,28598,28685,28730,29016,29521,30939,32254,32399,32402,32544,33388,34633,34768,34796,34814,35479,35730,35863,36500,37181,37185,37579,38001,38261,39262,39307],\"zuān\":[21143,36508,36518,37446,37978],\"mó\":[21144,23275,23332,23351,23579,25721,25845,27205,31970,33180,34278,34321,35624,35625,35871,39235,39261,39309,39629,39764,39801],\"zhú\":[21146,26040,26351,27416,28767,28834,28891,29165,29221,30211,31481,31489,31516,33331,33599,34027,34827,34878,36485,36880,36907,38019,40001],\"quàn\":[21149,21223,21240,29302,38863],\"jìn jìng\":[21156,21170,21185],\"kēng\":[21157,22353,29308,30785,30812,35481,37557,37726,37847,38143,38444],\"xié liè\":[21158],\"zhù chú\":[21161],\"nǔ\":[21162,24361,30766,33004],\"shào\":[21165,21362,21736,28530,32057,32164,32461,34961,37045],\"miǎo\":[21168,26474,28156,28218,30471,31186,31694,32242,32520,34256,37e3],\"kǒu\":[21174,21475],\"wā\":[21176,22380,23090,23207,23666,25366,25896,27964,28315,28453,29950,30038,31349,31370,31402,34521,38856,40707],\"kuāng\":[21179,21281,21289,21712,24647,27949,31568,31610,35462,35795,36589,37052],\"hé\":[21182,21642,21853,22976,23750,25926,26359,26567,26945,27644,27827,28088,28206,28565,29062,30380,30407,30409,30413,30418,31166,31701,31866,31917,32750,33743,33794,35208,35384,35429,37059,37339,37452,37961,38305,38356,38402,38422,38824,38940,39172,39288,39802,40534,40615,40789,40833,40866],\"gào\":[21186,21567,21578,23804,31086,31088,31134,31606,35493,35824,37084,37615,38150],\"bó bèi\":[21187],\"láng\":[21190,23247,24266,25999,26745,27028,27139,27444,29436,29701,29807,30816,31234,33350,33992,34571,34690,36532,37074,37086,37571,37807,38162],\"xūn\":[21195,21211,21234,21235,22161,22339,22489,22628,22734,22758,26331,29179,29551,30660,32385,33232,34219,34224,34317,37306],\"juàn juān\":[21196,29945],\"lè lēi\":[21202],\"kài\":[21203,28812,28887,37774],\"wěng yǎng\":[21212],\"qín\":[21220,21994,22105,23964,24200,25027,25028,25446,25810,26035,27278,28607,29665,29748,29753,30269,31165,31206,32825,33449,33465,33766,34707,34820,37401,37419,38594,38770,40185,40301],\"jiàng\":[21221,21278,21280,23929,24348,24374,25726,27364,27930,28400,29343,31969,31976,32115,32475,35645,37233,37284,37292],\"fān\":[21227,23311,24070,24161,24539,24995,26073,26075,32345,32763,34281,36691,39103,39132,40021],\"juān\":[21228,23010,23071,25424,28051,34866,35024,37816,37931,38220,40515],\"tóng dòng\":[21229,28884,29137,29418],\"lǜ\":[21236,22415,23874,24459,24942,27695,28388,28670,29192,31675,32160,32322,33183,33870,34385,37986],\"chè\":[21238,22396,24443,24505,25507,25764,28552,28898,29217,30638,30825,32837,36832,38937],\"sháo\":[21242,29631,38902],\"gōu gòu\":[21246],\"cōng\":[21254,22250,22257,24553,24625,24740,26288,27180,28439,29821,29825,30619,31733,32369,32865,32870,32874,32880,33473,33552,33905,34031,34085,34764,37743,37843,37862,39448,39492,39586],\"táo yáo\":[21259,38518],\"páo\":[21263,21638,22409,24214,29230,29389,34957,35100,36595,38788,40581],\"dá\":[21266,22962,24603,28831,29173,30051,31530,32653,33625,34200,34813,35418,36798,36815,36822,36826,36921,36948,37949,38780,38801,38851,40854,40856],\"huà huā\":[21270],\"běi bèi\":[21271],\"nǎo\":[21272,22452,22550,23248,24700,24745,24817,29785,30895,33041,33075,33126],\"chí shi\":[21273],\"fāng\":[21274,22543,26041,28115,29285,33459,37025,37377,37690,38059,40203],\"zā\":[21277,21634,24064,27806,33244,33250,36810,37460,39795],\"qiè\":[21287,21394,22974,24623,24719,24812,24860,25352,31317,31363,31434,31521,31655,31691,31841,36389,37733,38194,39900],\"zāng cáng\":[21288],\"fěi\":[21290,22876,24753,26832,27047,31706,32737,34140,35513,35837],\"kuì guì\":[21294,21297],\"suǎn\":[21300],\"pǐ\":[21305,22141,22189,22318,24192,30174,30294,33076,33481,37538,40196],\"qū ōu\":[21306,21312],\"kē qià\":[21308],\"yǎn yàn\":[21309,26858],\"biǎn\":[21310,24828,25561,30885,31272,31366,34250,35082,36022,36140,40216],\"nì\":[21311,22532,23263,23354,24772,24885,26165,26289,27708,30500,30568,32268,32978,33147,33193,36870],\"niàn\":[21316,21816,22493,24319,24565,24791,33356],\"sà\":[21317,27346,33038,33832,34159,34217,37394,38561,39087,39122,39354],\"zú\":[21318,21739,23850,26063,31652,36275,36388,38238],\"shēng\":[21319,21583,22768,26008,26119,26363,26529,27525,27881,28262,28986,29298,29636,29983,29989,31444,31513,32882,37454,37727,38441,38494,38521,40319,40746],\"wàn\":[21325,21328,24552,26468,30627,33045,33109,33836,34755,36110,36624,37693],\"huá huà huā\":[21326,33775],\"bēi\":[21329,24754,25593,26479,26734,30403,30865,34275,40303,40526],\"zú cù\":[21330],\"dān shàn chán\":[21333,21934],\"nán nā\":[21335],\"shuài lǜ\":[21339],\"bǔ bo pú\":[21340],\"kuàng guàn\":[21341],\"biàn\":[21342,21464,22793,23749,24321,24487,24557,25219,26154,27763,27764,29603,33361,33476,35213,35546,35722,36769,36775,36776,36777,36779,36782,36783,36941,37318],\"bǔ\":[21343,21754,25429,34917,35036,40468],\"zhàn zhān\":[21344,35249],\"kǎ qiǎ\":[21345],\"lú\":[21346,22183,22406,22746,24208,24300,26341,26534,26636,27368,27896,28696,28809,29200,29561,29576,29904,30439,30673,31834,32401,32591,33002,33242,33326,33339,33387,33446,34310,34854,36708,36723,37417,37994,39025,39045,39359,39639,39794,40056,40072,40469,40492,40696],\"lǔ\":[21348,22647,25523,25796,27152,27257,27347,27660,28407,28571,28674,30837,30944,31326,33379,33386,34046,34383,34396,37824,37930,37989,38245,39791,40065,40565],\"guà\":[21350,21865,25346,25499,32611,35074,35455,35798],\"áng yǎng\":[21356],\"yìn\":[21360,22461,22583,24277,24941,24982,24983,25050,27925,28250,29452,30282,32996,33562,37235,39843],\"què\":[21364,21371,22617,23813,24747,24872,24932,25609,27063,29161,29751,30389,30830,30906,31021,38347,38421,40306,40522],\"luǎn\":[21365],\"juàn juǎn\":[21367,24059],\"chǎng ān hàn\":[21378],\"wěi yán\":[21379],\"tīng\":[21381,21403,21548,24193,24304,24307,27712,28867,28916,32142,32787,32884,32892,32893,38803],\"zhé zhái\":[21383],\"hàn àn\":[21384,23677],\"yǎ\":[21386,21782,24204,30166,30210,34149],\"shè\":[21389,21401,24381,24913,24948,25086,25666,27399,28041,28091,28169,28384,28740,31038,33294,34062,34818,35373,35774,36198,39431,40605],\"dǐ\":[21390,21607,22360,24356,25269,25310,25483,29300,30757,33767,35293,35398,35787,36583,37048,38458,39606,39923],\"zhǎ zhǎi\":[21391],\"páng\":[21392,23246,24222,24492,33152,33341,34691,36868,39967,40145,40846,40848],\"zhì shī\":[21396],\"máng\":[21398,21506,21732,23055,24537,24702,26455,26471,27730,27997,29307,30173,30450,30829,31488,33426,33579,34313,37017,37359,37609,38099,39417],\"zuī\":[21404,27190,32407,34773],\"shà xià\":[21414,24264],\"áo\":[21419,22007,22008,24274,25942,28406,29522,29523,29832,32753,32758,32762,32881,34076,34735,35639,35640,36968,37846,38558,39986,40140,40404,40711],\"lán qiān\":[21425],\"sī mǒu\":[21430],\"gōng hóng\":[21431],\"lín miǎo\":[21432],\"qiú róu\":[21433],\"dū\":[21438,22047,30563,37263],\"xiàn xuán\":[21439,32291],\"cān shēn cēn sān\":[21442,21443,21444,21445],\"ài yǐ\":[21446],\"chā chà chǎ chá\":[21449],\"shuāng\":[21452,23360,23367,27398,31029,33389,38617,38684,39483,39526,39590,40414,40472,40564],\"shōu\":[21454,25910],\"guái\":[21455],\"bá\":[21456,22957,25244,25300,28838,30329,32968,33543,33757,35417,36299,36599,39747,40741],\"fā fà\":[21457],\"zhuó yǐ lì jué\":[21461],\"qǔ\":[21462,23094,31468,34682,35411,40818,40843],\"jiǎ xiá\":[21466,24486],\"wèi yù\":[21470,23561,34074],\"dié\":[21472,22436,22558,23756,24137,24654,24821,25116,26337,27548,27662,29251,29266,29918,30067,30082,30089,30090,30879,32112,32470,32778,32779,32965,33363,33525,34600,34678,35083,35396,35548,35853,36334,36416,36845,38267,39944,40125,40233],\"ruì\":[21473,26520,27757,29790,30591,33454,34443,34617,37555,37613,38160],\"jù gōu\":[21477],\"lìng\":[21478,21604,28841,34342],\"dāo dáo tāo\":[21480],\"zhī zhǐ\":[21482],\"jiào\":[21483,21580,22018,22054,22093,23315,25997,26016,28376,28438,29541,29651,30381,31382,34272,35334,35685,36269,36611,36686,36735,36739,37237,37294,37314],\"zhào shào\":[21484],\"kě kè\":[21487],\"tái tāi\":[21488,33492],\"pǒ\":[21493,23552,31544,31653,37461,38071,39370],\"yè xié\":[21494],\"hào háo\":[21495],\"tàn\":[21497,22022,25506,27470,28256,28845,30899,33301],\"hōng hóng\":[21503],\"miē\":[21504,21673,21750,23405],\"xū yū yù\":[21505],\"chī\":[21507,21735,21931,21988,22084,22939,23224,24424,24434,25691,25889,27558,29947,30196,30305,30517,30621,31518,31898,33013,34473,34733,35381,39761,40223,40260,40497,40656,40797],\"xuān sòng\":[21509],\"yāo\":[21510,21907,22829,22934,24186,26950,27520,31045,33136,33917,35358,36992,40193,40226],\"zǐ\":[21511,22985,22986,23376,26445,26771,27039,27252,28371,30711,31213,31531,31869,32043,32788,34424,35391,37352],\"hé gě\":[21512,40068],\"cùn yīngcùn\":[21515],\"tóng tòng\":[21516],\"tǔ tù\":[21520,21771],\"zhà zhā\":[21522,22867],\"xià hè\":[21523],\"ā yā\":[21526],\"ma má mǎ\":[21527],\"lìn\":[21533,24673,24715,27209,28955,29968,33190,34106,34298,36035,36161,36472,36495,36505,36522,36709,38325],\"tūn\":[21534,26302,26396,28958],\"bǐ pǐ\":[21537],\"qìn\":[21538,21539,21786,25227,25599,25607,25779,27777,28697,33763,34301],\"jiè gè\":[21540],\"fǒu pǐ\":[21542],\"ba bā\":[21543],\"dūn\":[21544,22136,22697,22698,24775,25737,25780,29340,29540,30981,34611,36478,39504],\"fēn\":[21545,24073,26128,26374,26788,26875,27675,31445,32027,32439,32706,33452,34927,35356,36526,37210,37398,38640,39220,39257,39322],\"é huā\":[21546],\"kēng háng\":[21549,22932],\"shǔn\":[21550],\"zhī zī\":[21553],\"yǐn shěn\":[21554],\"wú\":[21555,21556,21577,22706,23807,26791,27206,27595,27926,28015,28961,29688,29841,31078,33436,33571,33665,34154,34568,34801,35669,37082,37593,38139,39875,40272,40417,40512,40751],\"chǎo chāo\":[21557],\"nà nè\":[21558],\"xuè chuò jué\":[21559],\"chuī\":[21561,28810,40865],\"dōu rú\":[21562],\"hǒu\":[21564,29372],\"hōng hǒu ōu\":[21565],\"wú yù\":[21566],\"ya yā\":[21568],\"è e\":[21571],\"dāi\":[21574,25051,29507],\"mèn qǐ\":[21575],\"hōng\":[21581,22173,25544,28788,28888,28962,30817,34216,35335,35902,36579,36663,36703,36720,37735],\"chǐ yīngchǐ\":[21582],\"nà\":[21584,25466,31517,32013,32435,32941,33971,34930,35965,35968,36572,37069,37385,38048,38777,39798],\"tūn tiān\":[21585],\"ḿ\":[21586],\"dāi tǎi\":[21588],\"ǒu ōu òu\":[21589],\"bài bei\":[21591],\"yuán yún yùn\":[21592,21729],\"guō\":[21593,21871,22035,22490,22557,22670,23838,24393,24397,25046,29459,30225,32850,34632,34760,37101,37403,37707,38149],\"huá qì\":[21594],\"qiàng qiāng\":[21595,36292],\"shī\":[21598,22833,23608,23629,24072,24107,26045,27977,28260,28287,28334,28348,28629,29422,29509,29793,32065,33913,33938,33997,34417,34664,35127,35193,35433,35799,37055,37315,37447,37734,39924,39972,40122,40178,40190,40371,40484],\"juǎn\":[21599,22477,33223,33764,37640,38185],\"pěn\":[21600,32760],\"wěn mǐn\":[21601],\"ne ní\":[21602],\"ḿ m̀\":[21603],\"rán\":[21605,22059,28982,29123,32334,32944,34470,34490,34939,34951,34977,39653,39663],\"tiè chè\":[21611],\"qì zhī\":[21614],\"zǐ cī\":[21616],\"guā gū guǎ\":[21617],\"cī zī\":[21618],\"hǒu xǔ gòu\":[21620],\"hē ā á ǎ à a\":[21621],\"náo\":[21622,22802,23793,23977,24014,25376,25747,29489,30791,34546,34799,35401,35658,37891,38105],\"xiā gā\":[21623],\"pēi\":[21624,24588,32935,32986,34883,37253],\"háo xiāo\":[21626],\"mìng\":[21629,25525],\"dá dàn\":[21630],\"zuǐ jǔ\":[21632],\"xián gān\":[21633],\"pǒu\":[21637,21731,29315],\"yǎng yāng\":[21641],\"zǎ zé zhā\":[21643],\"hé hè huó huò hú\":[21644],\"hāi\":[21645],\"dā\":[21649,21714,22112,22710,25645,25752,32823,35105,37789],\"kǎ kā\":[21652],\"gū\":[21653,21762,21763,22993,23284,23396,24044,24045,26599,27245,27837,27858,31250,31519,31629,31643,31696,32603,33533,33735,33776,33991,35290,36593,36594,36721,36764,37220,37426,39829,40227,40490],\"kā gā\":[21654],zuo:[21655],\"lóng\":[21657,22184,23952,24003,24004,26173,26344,26407,26634,27102,27379,28272,28381,28427,29206,29649,29903,30275,30508,30675,30779,31025,31026,31423,31452,32843,32894,32999,33551,34338,34858,34860,35185,35909,37863,37992,38707,38727,39521,40471,40845,40850,40857],\"xiàn xián\":[21662],\"qì\":[21664,21805,22096,22120,22817,24323,24967,25001,26275,26820,27435,27668,27671,27683,27732,27773,27875,28230,28231,28801,29960,30453,30709,30875,30902,30940,30951,32586,33438,33914,34258,34815,35350,35755,36804,37905],\"xì dié\":[21669],\"liē liě lié lie\":[21671],\"zī\":[21672,21982,22997,23039,23388,23411,23414,23856,23915,26661,26900,28100,28285,28363,28588,29574,31116,31222,31906,32014,32199,32213,32387,32513,33546,33586,33880,35566,35864,36018,36039,36160,36164,36220,36241,36262,36636,36666,36750,37137,37421,37657,37759,37793,38193,38211,38974,38975,39661,39892,39974,40123,40325,40722,40781,40796,40839],\"mī\":[21674],\"jī xī qià\":[21677],\"gē luò kǎ lo\":[21679],\"shù xún\":[21680],\"zán zá zǎ zan\":[21681],\"hāi ké\":[21683],\"huī\":[21684,22085,22101,23118,23176,24145,24509,24674,25339,25381,25582,26198,26249,26958,27907,28680,28784,28787,28899,30579,31112,32730,32748,34355,34950,35096,35452,35801,35927,36637,36745,39988,40638],\"huài shì\":[21686],\"táo\":[21687,21845,26691,27310,27950,28120,31097,32175,32505,33796,34602,35050,36847,36867,37252,37630,38784,38793,39232,39395,39434,40727],\"xián\":[21688,21859,23092,23097,23153,23244,23290,23291,24358,25382,25743,28046,28282,28566,29961,30187,30279,30286,32067,32984,33335,34262,34495,34525,34900,34904,35512,35572,36066,36114,36132,36657,37262,37532,37990,38289,38386,40435,40436,40444,40519,40569,40601],\"è àn\":[21689],\"xuān xuǎn\":[21690,28892],\"wāi hé wǒ guǎ guō\":[21692],\"yàn yè yān\":[21693],\"āi\":[21696,21710,22467,28350,37552,37764,38207],\"pǐn\":[21697,27008],\"shěn\":[21698,23158,23352,23457,23479,23529,24350,26315,28182,28683,30635,30692,30695,35262,35360,35543,35717,35842,35849,37029,38947,39787],\"hǒng hōng hòng\":[21700],\"wā wa\":[21703],\"hā hǎ hà\":[21704],\"zāi\":[21705,26685,28221,28328,28797,28798,28886,30581,36083],\"dì diè\":[21707],\"pài\":[21708,27808,27966,28178,28227,33934,37763],\"gén hěn\":[21711],\"yǎ yā\":[21713,38597],\"yuě huì\":[21717,22118],\"nián\":[21718,24180,31178,31205,39822,39920,40071,40118,40263,40655],\"huá huā\":[21719,22057],\"jì jiē zhāi\":[21724,22156],\"mōu\":[21726],\"yō yo\":[21727,21938],\"lòng\":[21730,26759,36122],\"ò ó é\":[21734],\"lī lǐ li\":[21737],\"nǎ na nǎi né něi\":[21738],\"hè\":[21740,22414,22737,23497,24786,28931,28994,29178,29184,30283,30859,32751,35088,35614,36032,36154,36203,38733,38734,38735,40372,40470,40548],\"bō pò bā\":[21745],\"zhé\":[21746,21856,21894,22174,22481,24714,25722,26210,26211,27517,30714,30739,30932,31863,31885,34420,34544,34756,34985,35423,35627,35642,35713,35723,35882,36626,36633,36685,36740,36761,39871],\"liàng láng\":[21748],\"liè lǜ\":[21751],\"hān\":[21755,25e3,34486,35901,37219,38919,39032,39328,39805,40766],\"hēng hng\":[21756],\"gěng\":[21757,22466,23802,25389,26775,32134,32480,32831,33668,37088,39614,39873,40096],\"chuò yuè\":[21758],\"gě jiā\":[21759],\"bei bài\":[21764],\"hán hàn\":[21765],\"chún\":[21767,28017,28283,28387,28440,29321,32020,32431,33059,33724,33939,34036,37255,37269,37662,38489,39897,40329,40529],\"ài āi\":[21769],\"jiá qiǎn\":[21770],\"yán dàn xián\":[21772],\"chē\":[21779,30743,30824,33687,34556],\"wú ńg ń\":[21780],\"zào\":[21781,21795,22122,24933,26765,28790,29040,29157,30337,30338,31427,31432,31753,33345,35679,36270,36481,36896],\"dí\":[21785,21831,22016,22145,23265,24312,25932,25973,26769,28068,28364,29380,31515,31860,31988,33494,33659,34059,34064,34273,35263,35276,35956,36842,38766,38932,39344,39650,40464],\"gòng hǒng gǒng\":[21789,21962],\"dóu\":[21790],\"lào láo\":[21792,22062,24998],\"liǎng yīngliǎng\":[21793],\"huàn\":[21796,21914,22850,22864,23462,23880,24187,24739,24844,25442,25563,25808,25868,26777,27125,28003,28067,28185,28470,28579,28873,28949,29029,29773,30186,30227,30534,32914,34279,35938,36696,36909,39879,39926,39936,40105],\"léng\":[21797,22596,26974,30864,34192],\"wō wěi\":[21801],\"fěng\":[21802,35202,35575,35773],\"yín jìn\":[21803],\"hǔ xià\":[21804],\"wéi\":[21807,22260,22285,22749,23767,23774,23916,24079,24119,24131,24799,26693,27817,27912,28064,28235,28296,28493,28505,28543,28656,29353,30656,32173,32500,34038,35257,36829,36949,37164,37248,37711,38344,38385,38859,38886,39840],\"shuā\":[21808],\"chàng\":[21809,24581,24757,26274,28987,30021,30076,35503,38868,39727],\"ér wā\":[21810],\"qiàng\":[21812,28829,29079,32699],\"yō\":[21815],\"yū\":[21817,28132,30208,30419,31626,32006,32417,36796,36802,36803,38483],\"lài\":[21819,28625,28712,28716,30302,30313,30544,30558,31809,31839,34302,36058,36084,36169,36182,38972,38978,40291],\"tuò\":[21822,23966,26589,27620,27643,31656,31836,33818,34304,36293],\"zhōu zhāo tiào\":[21825],\"kěn\":[21827,22438,22718,24691,25031,32910,32943,32955,35940,37689],\"zhuó zhào\":[21829,28655],\"hēng hèng\":[21832,24729],\"lín lán\":[21833],\"a ā á ǎ à\":[21834],\"qiāng\":[21836,22004,23944,25109,25700,26024,26538,27085,28332,29252,29456,29511,32652,32663,33108,34595,35602,37848,38166,38197],\"tūn zhūn xiāng duǐ\":[21837],\"wèn\":[21839,22927,25598,25653,29882,38382,38992],\"cuì qi\":[21840],\"dié shà jié tì\":[21841],\"yuē wā\":[21848],\"zǐ cǐ\":[21849],\"bǐ tú\":[21850],\"chuò chuài\":[21852],\"yǎ yā è\":[21854],\"fēi\":[21857,23123,23124,25161,26243,28164,29446,32203,32495,35062,38671,38750,38751,39131,39133,39134,39205,39329,39441,39451,39905,40113],\"pí\":[21860,22720,26503,27607,27608,28983,29749,30130,30382,31738,32628,32646,33086,33111,33165,34445,34493,34609,34743,34863,35964,35988,37099,37433,38448,38516,38566,39790,39821,40079,40295,40729],\"shá\":[21861],\"lā la\":[21862],\"yīng qíng\":[21864],\"pā\":[21866,22929,33317,33897,36276],\"zhě shì\":[21867],\"sè\":[21868,21959,25038,25804,26652,27502,28073,28171,28544,28545,28615,28623,28690,29791,29873,30263,31313,31329,31343,32364,35653,36694,37547,37884,38127,39115],\"niè\":[21870,21995,22107,22169,22209,22227,22332,23420,23421,23922,23981,24021,24071,25948,26559,27127,27377,28037,28284,30150,31710,31819,31985,31989,32834,32886,33260,33266,34326,34853,35736,36354,36375,36377,36433,36513,37660,37811,37960,38007,38016,38218,38221,38353,38503,38537,39027,39070,40807],\"luō luó luo\":[21872,22217],\"tān chǎn tuō\":[21876],bo:[21877,34068],\"dìng\":[21878,23450,26903,30708,30855,30880,30968,32866,33114,33827,35330,35746,37664,38189,38977,39139,39268],\"lāng\":[21879],\"án ān\":[21885],\"kā\":[21888,25814],\"yóng yú\":[21889],\"lā lá lǎ\":[21895],\"jiē\":[21896,21948,21983,22566,23192,25509,25522,25809,28253,29039,30102,30158,30308,30342,31224,31277,33083,34644,34903,35631,38454,38542,38786,40347],\"hóu\":[21897,24127,29492,30218,30586,31692,31943,32749,33876,37127,37741,39217,39610,39928],\"dié zhá\":[21899],\"wāi\":[21902,27498,31477],\"nuò rě\":[21903],\"xù huò guó\":[21904],\"zán\":[21906],\"wō ō\":[21908],\"hú\":[21910,22045,22251,22774,22775,22778,23209,24359,25648,26011,26972,27122,28246,28715,28928,29043,29392,29474,29786,29939,31670,32087,32288,32993,33899,34075,34676,34716,34906,35315,37264,37752,38966,39212,39693,39793,39959,40288,40344,40358,40533],\"huàn yuán xuǎn hé\":[21915],\"xǐ\":[21916,22221,22736,23651,24473,24985,26546,27250,27478,28423,29626,29885,30678,31143,32304,33864,33912,34032,34786,35601,36445,36519,37410,37480,37481,40026],\"hē hè yè\":[21917],\"kuì\":[21919,22067,23231,23303,24870,24871,24978,31697,31779,31812,32873,32877,32885,33197,34146,35593,39229,39243,39304],\"zhǒng chuáng\":[21920],\"wéi wèi\":[21921,28858,29234],\"duó zhà\":[21925],\"sāng sàng\":[21930],\"qiáo jiāo\":[21932],\"pèn bēn\":[21935],\"cān sūn qī\":[21936],\"zhā chā\":[21939],\"miāo\":[21941],\"pēn pèn\":[21943],\"kuí\":[21945,22804,22862,24025,25123,25542,26182,26252,26959,26961,27334,29354,30589,33909,34248,34359,34369,34672,36520,36917,37128,37736,37751,38959,39319,39460,39577,39745],\"lou lóu\":[21949],\"zào qiāo\":[21951],\"hè xiāo xiào hù\":[21955],\"á shà\":[21956],\"xiù\":[21957,23723,23744,28340,29659,29703,29843,31168,32137,32333,32353,32483,34705,34966,35086,35087,37561,37861,37885,38152,40773],\"qiāng qiàng\":[21958,25111,25127,36428,36449],\"ài yì\":[21964,33406],\"má mǎ ma\":[21966],\"kè kē\":[21969],\"dā tà\":[21970,37769],\"sǎng\":[21971,25633,30921,35116,37791,39001,39073],\"chēn\":[21972,25275,29723,30603,35523,35603,36061,37108],\"wā gǔ\":[21975],\"pǎng bēng\":[21977],\"xián qiǎn qiān\":[21979],\"lào\":[21984,23274,27247,28061,28551,32802,32814,36540,36546,37226],\"wēng\":[21985,32705,32876,34697,37779,40370,40543],\"wà\":[21986,33149,33155,34972,35178,38884],\"hēi hāi\":[21992],\"hē\":[21996,27441,34842,35382,35779],zi:[21997],\"sǎi\":[21998],\"ǹg ńg ňg\":[21999],\"gě\":[22e3,33336],\"ná\":[22001,25295,25343,37823,38222],\"diǎ\":[22002],\"ài ǎi āi\":[22003],\"tōng\":[22005,27147,28853,34026],\"zuī suī\":[22010],\"zhē zhè zhù zhe\":[22011],\"mò\":[22012,22333,22651,22696,22970,23292,23518,24094,26153,26411,26554,27519,27521,27819,28448,29189,29519,30268,30348,30525,30527,30608,30617,30750,31027,31203,32072,32390,32817,33545,33672,34022,34536,34772,35971,35978,35992,37510,37836,38214,38476,38778,39488,39785,40664,40665],\"sòu\":[22013,30262],\"tǎn\":[22015,22374,24528,25011,25019,26298,27631,29870,33788,34962,35170,37267,37485,38077],\"jiào dǎo\":[22020],\"kǎi gě\":[22021],\"shān càn\":[22023],\"cáo\":[22024,23942,26361,26362,27133,28437,33370,34040,34732,35135,37866],\"piào\":[22028,24497,34056,39491],\"lóu lou\":[22029],\"gǎ\":[22030,23573,29581],\"gǔ jiǎ\":[22031],\"jiāo xiāo\":[22032],\"xū shī\":[22040,22099],\"pó\":[22041,22185,23110,27335,30372,37169],\"dē dēi\":[22042],\"ma má\":[22043],\"lē lei\":[22046],\"gā gá gǎ\":[22048],\"sāi\":[22053,22139,27618,33134,38987,39955],\"zuō chuài\":[22060],\"cháo zhāo\":[22066,26397,40706],\"zuǐ\":[22068,22143,23946,29883],\"fǔ ḿ\":[22072],\"qiáo qiào\":[22074,32761,35887],\"chù xù shòu\":[22076],\"tān chǎn\":[22077],\"dàn tán\":[22078,24382,24392,24788,28601],\"hēi mò\":[22079],\"ě\":[22081,30760,38923,39424,40264],\"fān bo\":[22083],\"chuáng\":[22087,24202,29248],\"cù zā hé\":[22088],\"tūn kuò\":[22091],\"cēng chēng\":[22092],\"dēng\":[22100,23297,28783,29128,29842,30331,31475,31782,33376,35915],\"pū\":[22103,25169,25778,25908,25909,28541,28807,38496],\"juē\":[22104,23657,23659,25767],\"lū\":[22108,22165,25784,25852,35618],\"zhān\":[22113,23742,24777,26051,26076,26540,26676,27617,27656,27658,27838,30651,34205,34501,35392,35449,35691,35893,36232,36997,38298,38673,39142,39256,39513,39769,40035,40455,40559],\"ō\":[22114],\"zhòu zhuó\":[22115],\"jiào qiào chī\":[22125],\"yuàn\":[22126,22964,24616,24895,25534,29783,31120,33489,34895,35051,35089,38498,39e3],\"ǎi ài āi\":[22127],\"yōng yǒng\":[22128,28589],\"jué xué\":[22129],\"pēn pèn fèn\":[22132],\"gá\":[22134,23580,37331,37687,38022],\"hm hěn xīn hèn\":[22135],\"dāng\":[22137,28578,29680,29867,31580,31801,33377,34807,35014,35168],\"làn\":[22146,28389,28651,28866,29143,29185,29211,29220,29907,31991,38020],\"tà\":[22147,22202,23817,25374,25640,25787,27067,27261,27646,28094,28606,28620,31138,31887,35515,35702,36427,36473,36482,36514,36957,37652,38354,38373,38396,38424,38812,38835],\"huō huò ǒ\":[22148],\"hāo\":[22150,33568,33983,34181],\"hè xià\":[22151],\"xiù pì\":[22154],\"zhōu chóu\":[22155,30441,35818],\"mē\":[22162],\"chā cā\":[22163],\"bó pào bào\":[22167],\"me mèi mò\":[22172],\"xié hái\":[22177],\"áo xiāo\":[22179],\"mō\":[22180,25720],\"pín\":[22188,23078,23252,23338,29613,30665,34226,34841,36007,36139,39024,39078],\"mè\":[22192,28665],\"rǎng rāng\":[22199],\"lá\":[22201,26095],\"jiáo jué jiào\":[22204],\"chuò\":[22205,23062,25801,27488,28080,30957,36352,36639,36749,36789,36790,37227,37985,39199,40810,40842],\"huān huàn\":[22206],\"zá cà\":[22211],\"chài\":[22214,34431,34822,34947,35341],\"náng nāng\":[22218],\"zá zàn cān\":[22219],\"sū\":[22220,27375,29990,31267,31308,31395,34311,34323,37221,39874],\"zèng\":[22222,29111,29969,36104,36192,37605,38147],\"zá niè yàn\":[22224],\"nāng\":[22228],\"luó luō luo\":[22230],\"wéi guó\":[22231],\"huí\":[22232,22238,22252,24315,24317,24667,27908,30160,33588,34456,34516,34517,34582,36852,36901,39856],\"nín\":[22236,24744,33036],\"jiǎn nān\":[22237],\"nān\":[22241],\"tuán\":[22242,22243,22296,24945,25247,25718,27314,31984,37828,40402,40443],\"tún dùn\":[22244,22345],\"guó\":[22255,22262,22267,22269,22272,22283,24124,24151,24918,25681,28429,32861,33112,33173,34094,34402,39320],\"kùn\":[22256,28035,30543],\"wéi tōng\":[22258],\"qūn\":[22263,22795,36897],\"rì\":[22264,26085,34933,37412,39353,39538],\"tāi\":[22268,23393,32974],\"pǔ\":[22275,22289,25800,26222,26268,27192,27279,27654,28006,28325,28915,35561,35676,35889,36476,37920,38248],\"quān juàn juān\":[22280,22287],\"chuí chuán\":[22284],\"tuǎn\":[22293,30077,30083],\"lüè\":[22297,25504,30053,30055,31268,37597,37602,38154],\"huán yuán\":[22300],\"luán\":[22301,22302,22897,23048,23372,23402,23423,23782,24018,25371,25891,26347,26686,27410,28390,28772,30324,30325,32649,33044,33248,34378,37550,38014,40265,40478,40510],\"tǔ\":[22303,22305,37367,38029],\"xū wéi\":[22313],\"dì de\":[22320,23987],\"qiān sú\":[22321],\"zhèn\":[22323,22630,25355,25391,26389,26650,30013,30521,32022,32124,32444,35499,36049,36168,37620,37805,37806,38215,38453,38499,38663,40198,40489],\"chǎng cháng\":[22330,22580,22642],\"qí yín\":[22331],\"jiá\":[22335,24550,24669,25118,25204,33061,33626,33698,34545,34554,35020,36338,37071,37087,37583,38103,38956,38960,39050,40246,40266],\"zhǐ zhì\":[22337],\"bǎn\":[22338,23685,26116,26495,29256,29930,31876,33320,34626,37393,38051,38442,39788],\"qǐn\":[22341,23505,23517,23522,26129,26795,31497,34748,36222,37599,38163],\"méi fén\":[22342],\"rǒng kēng\":[22344],\"fāng fáng\":[22346],\"fèn bèn\":[22347],\"tān\":[22349,24633,25674,25849,25892,28393,28760,30251,30321,33297,36010,36138],\"huài pēi pī péi\":[22351],\"dì làn\":[22356],\"tán\":[22363,22704,22709,22727,22748,23122,24987,26137,26311,27011,27264,28525,29122,30192,30969,32584,32590,34283,35527,35674,35680,35848,35885,35994,37103,37296,37663,38979],\"bà\":[22365,22459,22761,24349,27419,28766,29240,30706,35207,38712,39809,40069],\"fén\":[22367,22707,22946,23694,24169,26508,26876,27774,28954,29132,29139,32658,32693,33974,34145,34464,34465,35950,35958,36690,37948,38571,39337,39797,40642,40726,40738],\"zhuì\":[22368,22684,24820,29952,30071,30984,32180,32267,32512,32530,33103,33159,35528,36101,36184,37258,37667,37958],\"pō\":[22369,23717,27900,28300,28497,37337,37882,38027,38935,39047],\"pǎn bàn\":[22370],\"kūn\":[22372,22531,22546,23824,23825,26118,26204,28489,28956,29108,29457,29736,29819,33742,34603,35016,35049,35084,37260,37653,38175,39433,39648,39649,39656,39908,40114,40318,40356,40525],\"diàn\":[22379,22443,22666,22722,22880,23133,24215,24806,25154,27202,27583,28096,28593,29623,29716,30005,30300,31775,34580,37439,38651,38747,39508],\"mù mǔ\":[22390],\"kē kě\":[22391,36603],\"xuè\":[22393,23716,26710,28709,29400,30642,35604,35857,36240],\"dǐ chí\":[22395,26594],\"lā\":[22403,26566,33736,37003],\"lǒng\":[22404,22405,22751,22752,25314,25871,31433,38471,38580],\"mín\":[22410,22980,23735,23823,25450,26107,26108,27665,29641,29720,29725,29769,30203,30463,30727,32205,32225,32535,32608,33504,37425,37641,37746,40214],\"dòng tóng\":[22412,23762,27934],\"cí\":[22416,23336,24904,26572,28648,29633,29943,29958,30913,31008,31072,31949,33576,35422,35789,36765,36766,36772,36781,38604,39162,39176,40220,40383,40384,40538],\"duī\":[22422,22534,22624,30205,30931,37907,37916,40237],\"duò duǒ\":[22427],\"duǒ duò\":[22428,25350],\"chá\":[22430,23519,23894,25661,27086,27307,29497,33580,33590,35431,38763],\"shǎng\":[22439,26188,27145,36062,36120,36175,37631,37851,37980],\"shǒu\":[22440,23432,25163,25164,33359,39318],da:[22447,32360,36342],\"háng\":[22451,26043,26477,31573,32078,32471,33322,33472,34466,35012,36005,36818,38927,39043,39783],\"ān ǎn\":[22453],\"xīng\":[22454,24826,26143,26320,29003,29481,29766,30376,31682,33125,33288,35306,35314,35587,39426,39565,39823,39929],\"yuàn huán\":[22456],\"bāng\":[22457,24110,24135,24154,24171,25440,26758,27996,37030,37035,38820],\"póu fú\":[22458],\"cén\":[22465,23697,28052],\"běng fēng\":[22468],\"dì fáng\":[22469],\"xiá jiā\":[22473],\"mái mán\":[22475],\"làng\":[22476,23808,28010,33943,38316],\"shān yán\":[22479],\"qín jīn\":[22480],\"pǔ bù\":[22484],\"huā\":[22486,23154,26907,30836,31936,33457,33930,34340,35502,37685],\"suì sù\":[22499],\"pí pì\":[22500],\"qīng zhēng\":[22501,40109],\"wǎn wān\":[22502],\"lǔn\":[22504,31248],\"zhēng chéng\":[22505],\"kōng\":[22506,23814,31644,36539,37651,40316],\"cǎi cài\":[22512,23488,37319],\"chù tòu\":[22513],\"běng\":[22514,29739,33782,38811],\"kǎn xiàn\":[22515],\"yì shì\":[22518,37299],\"péi\":[22521,27632,35060,35061,36064,36180,37639,38187,38443,38506],\"sào sǎo\":[22525],\"jǐn qīn jìn\":[22535],\"péng bèng\":[22539],\"qiàn zàn jiàn\":[22545],\"àn\":[22547,23669,23736,25353,26263,26696,33018,33612,35963,35979,37644,38343,38540,40687],\"duò huī\":[22549,22702],\"huán\":[22554,23503,23536,23768,26707,27961,28596,29506,29615,29872,31979,32367,32563,32678,33601,33800,33809,35954,37744,37942,38206,38254,38372,38427,38600,39711,40558],\"bǎo bǔ pù\":[22561],\"máo móu wǔ\":[22565],\"ruán\":[22567,22742,25739],\"ài è yè\":[22568],\"gèng\":[22569,26245],\"méi\":[22579,22650,23186,23883,24510,25879,26522,26626,26757,26979,26995,27089,28228,28232,29028,29496,29611,29691,29762,30473,30530,31126,33028,33058,33116,33530,33683,33919,37119,37238,37767,38213,38665,40357,40539,40692],\"dǔ\":[22581,29757,30585,31491,31716,35241,36077,36172],\"féng\":[22584,32152,33346,36898],\"hèng\":[22588],\"chūn\":[22590,23179,26110,26149,26265,26486,26943,27078,27201,27332,29763,31674,33797,34685,36660,39942,40350],\"jiǎng\":[22594,22870,22888,22892,26728,27123,29518,32809,33177,33931,34083,35611,35762,39004],\"huāng\":[22595,24031,24908,32915,33618,34881],\"duàn\":[22597,26029,26039,26932,27573,27592,28997,29782,30891,31766,31850,32222,32526,33142,33902,36502,37723,38203],\"tǎ\":[22612,22678,29549,29562,39833,39976,40142],\"wěng\":[22613,22883,23905,25882,26273,30600,33994],\"sāi sài sè\":[22622],\"zàng\":[22623,24329,33235,33247,33900,34101,37562],\"tián\":[22625,23623,24684,27834,28233,29875,29979,29980,3e4,30027,30033,30901,30924,32971,38352,38423,40235,40390,40399],\"zhèng\":[22627,24129,25919,35388,35533,35657,35777,35812,37073,37165,38741,40202],\"tián zhèn\":[22635],\"wēn\":[22637,26167,27058,27551,28201,28331,29797,30239,34160,35953,36668,36672,36754,37822,39234,39963,39982,40129],\"liù\":[22639,24263,30943,32719,38625,38692,39230,39736,40410,40552],\"hǎi\":[22640,28023,28920,37244,37282],\"lǎng\":[22641,26390,26391,26404,28922,34018],\"bèng\":[22644,25596,27893,29967,32179,36454,36856,36908,37872,38234],\"chén\":[22645,23480,23576,24561,25936,25974,26216,26335,26645,27140,27785,28993,30222,33251,33566,33664,33680,34095,34236,34740,35366,35574,36569,36784,36839,37378,38472,38515,38659,40400,40590],\"ōu qiū\":[22648],\"qiàn jiàn\":[22649],\"zhuān tuán\":[22652],\"shuǎng\":[22653,24929,28474,29245,32276,37871],\"shú\":[22654,23116,23408,29881,31211,36118,36174],\"lǒu\":[22655,23901,23937,29962,31699,31757],\"chí\":[22656,24347,25345,27744,28454,31486,31554,31630,31722,33548,33614,34483,35608,36030,36223,36383,36831,36833,36933,36959,36978,37705,39347,39536],\"shù\":[22661,24246,24251,24631,24661,25101,26463,26641,27193,27821,28465,28484,28630,31446,31466,32073,33127,33623,33921,34410,34899,35019,35918,36848,37477,37680,37859,38676,40336],\"dì zhì\":[22662,30096],\"kàn\":[22664,23809,30640,30681,30945,34894,39723],\"chěn\":[22667,22822,30838,30876,30947,36098,36283,36408,37718],\"zhǐ zhuó\":[22668],\"qiǎng\":[22671,32328,32358,32677,35137],\"zēng\":[22679,22686,24974,29844,30704,30963,32638,35652,37163,40027],\"qiáng\":[22681,22715,23281,23321,27183,27299,28434,29254,33378,34051,34103,34336],\"kuài tuí\":[22692],\"tuǎn dǒng\":[22693],\"qiáo què\":[22695],\"zūn dūn\":[22699],\"qiāo áo\":[22717],\"yì tú\":[22719],\"xué bó jué\":[22726],\"lǎn\":[22728,23358,23364,23375,25042,25078,25597,25829,25900,27012,27414,28008,28452,28768,32412,32518,32625,35239,35261,35272,37250,39026],\"huài\":[22730,22750,34366],\"rǎng\":[22732,22756,25880,29209],\"làn xiàn\":[22735],\"dǎo\":[22740,23548,23566,23707,23798,23947,23948,23993,25443,25623,25827,27101,31095,31106,31153,36424,38502,38557,38575],\"ruǐ\":[22753,26741,27236,32352,34122,34123,34306,34307],san:[22765],\"zhuàng\":[22766,22767,22773,25758,28939,29366,29376],\"ké qiào\":[22771,27580],\"kǔn\":[22776,22780,24707,25414,26801,30833,31093,31239,31259,32145,35021,38315,38328,38403],\"mǎng\":[22782,28461,33595,33725,33726,34830],\"cún\":[22783,23384],\"zhǐ zhōng\":[22786],\"gǔ yíng\":[22787],\"jiàng xiáng\":[22789,38477],\"páng féng fēng\":[22790],\"zhāi\":[22792,25434,25688,25995,25998,27064,31874,40779],\"xuàn xiòng\":[22800],\"wài\":[22806,39009],\"wǎn yuàn wān yuān\":[22807],\"mǎo wǎn\":[22808],\"mèng\":[22818,22819,23391,26790,30310,38693],\"dà dài\":[22823],\"fū fú\":[22827,22983,26510,31920],\"guài\":[22828,24618,24672],\"yāng\":[22830,22990,25264,27523,27889,31207,32998,37472,37704,38645,40230,40495],\"hāng bèn\":[22831],\"gǎo\":[22832,25630,26482,27072,27073,27322,31233,31294,31295,32286,32543,33746,34241,34291],\"tāo běn\":[22834],\"tóu tou\":[22836],\"yǎn tāo\":[22837],\"kuā kuà\":[22840,35463],\"jiá jiā gā xiá\":[22841],\"huà\":[22843,23155,23295,23301,23819,25702,26489,26528,26726,27116,27194,28549,30011,30059,30069,32355,33305,35441,35545,35694,35805,40650],\"jiā jiá gā xiá\":[22846],\"ēn\":[22848,24681,33981],\"dī tì\":[22851],\"yǎn yān\":[22852,28208],\"pào\":[22853,30129,30384,30770,31007,31022,38756,40621],\"nài\":[22856,26608,28223,32784,33816,35110,37692,40720],\"quān juàn\":[22861,24366,26860],\"zòu\":[22863,25549],\"qì qiè xiè\":[22865],\"kāi\":[22866,24320,25577,37926,38158,38283],\"bēn bèn\":[22868,27853],\"tào\":[22871],\"zàng zhuǎng\":[22872],\"běn\":[22873,26412,26957,30042,32713,33519],\"xùn zhuì\":[22878],\"shē\":[22882,27304,29470,30061,30066,36050,36054,36170,36619],\"hǎ pò tǎi\":[22884],\"ào yù\":[22885,22887,28570],\"yūn\":[22891,27698,27699,33920,33941,34681,36103,36191],\"duǒ chě\":[22898],\"nǚ rǔ\":[22899],\"nú\":[22900,23397,31535,39377,39549],\"dīng dǐng tiǎn\":[22901],\"tā jiě\":[22905],\"nuán\":[22907],\"hǎo hào\":[22909],\"fàn\":[22911,23310,26805,27726,27867,28412,28714,29359,30024,30421,31541,31684,33539,35337,36009,36137,36588,36669,39151,39152,39277],\"shuò\":[22913,25632,26388,27082,28865,29197,30687,33972,37785,37984,38084],\"fēi pèi\":[22915],\"wàng\":[22916,24536,26106,26395,26402],\"zhuāng\":[22918,22941,23076,24196,24210,26729,26761,27137,31911,31962,33624,33674,35013,35037],\"mā\":[22920,23229],\"fū yōu\":[22923],\"hài jiè\":[22926],\"dù\":[22930,22956,26460,27564,28193,31226,33423,33648,34713,34855,34873,37709,38208,38767],\"miào\":[22937,24217,24255,24287,29573,31447],\"fǒu pēi pī\":[22938],\"yuè jué\":[22940],\"niū\":[22942],\"nà nàn\":[22944],\"tuǒ\":[22949,23287,24249,26925,26965,27234,39692,39958,40270],\"wàn yuán\":[22951],\"fáng\":[22952,25151,32938,38450,39796,40066],\"nī\":[22958],\"zhóu\":[22959,30881],\"zhāo\":[22961,24054,25307,26157,37335,37450,37731,38026,39371],\"nǎi nǐ\":[22963],\"tǒu\":[22965,25960,32015,34339,40648],\"xián xuán xù\":[22966],\"zhí yì\":[22967,31175],\"ē\":[22968,22975,23104,23641],\"mèi\":[22969,23194,23504,25274,26048,26151,27820,29021,30167,30491,30584,31065,31683,34654,34946,36298,39741,39749],\"qī qì\":[22971],\"xū xǔ\":[22977,31280],\"shān shàn\":[22989,22999,33515,37348,38032],\"mán\":[22991,24946,27168,34542,34875,35646,39237,39314,39703,39704,39995,40151],\"jiě\":[22992,23182,27294,27601,39159],\"wěi wēi\":[22996],\"pīn\":[23e3,25340,30999,31334,39338,39518],\"huá huó\":[23009],\"jiāo xiáo\":[23011],\"gòu dù\":[23012],\"lǎo mǔ\":[23013],\"nián niàn\":[23017],\"zhěn\":[23019,23634,24363,25262,26147,26517,30043,30137,30485,31289,32285,32293,32540,32836,33817,34967,35030,35225,35386,35786,36587,36728,36788,39383,39698],\"héng\":[23022,24646,24658,28870,29673,33019,34309,34913,37957,40244,40262,40507],\"jūn xún\":[23024],\"kuā hù\":[23025],\"è yà\":[23030],\"xiān shēn\":[23034],\"wá\":[23043],\"ráo rǎo\":[23046,23304],\"shào shāo\":[23051],\"xiē\":[23054,25587,26964,27463,34638,34829],\"wǔ méi mǔ\":[23058],\"chuò lài\":[23061],\"niáng\":[23064,23330,23363],\"nà nuó\":[23068],\"pōu bǐ\":[23069],\"něi suī\":[23070],\"tuì\":[23079,29050,34555,34581,36864,39422],\"mǎn\":[23080,23640,28288,28385,28415,34728,34766,35156,37835],\"wú wù yú\":[23082],\"xī āi\":[23085],\"zhuì shuì\":[23095],\"dōng dòng\":[23099],\"ǎi ái è\":[23102],\"ē ě\":[23103],\"mián\":[23106,23349,23424,26467,26825,27312,27339,30496,30664,30666,30671,32191,32220,32501,33415,34642],\"pǒu péi bù\":[23108],\"biǎo\":[23114,33087,34920,35057,35134,35544,37686],\"fù fàn\":[23119],\"wǒ\":[23120,23121,25105],\"ní nǐ\":[23127,26879],\"quán juàn\":[23128,24787],\"hūn\":[23130,26127,26156,26836,28093,30567,30575,30856,33636,33911,34066,36683,38333,38413],\"qiān jǐn\":[23132],\"wān wà\":[23136],\"lái lài\":[23137,24469,24480],\"zhōu chōu\":[23140],\"chuò nào\":[23141],\"nüè àn\":[23145],\"hùn kūn\":[23147],\"dàng yáng\":[23160],\"nàn\":[23163],\"ruò chuò\":[23164],\"jiǎ\":[23165,23724,26010,26013,27022,27098,27295,29630,30002,32987,37440,38078],\"tōu yú\":[23166,23214],\"yù yú\":[23168],\"wéi wěi\":[23169],\"dì tí\":[23170,29686,33488],\"róu\":[23171,25545,26580,28184,29027,29768,29895,31160,31880,31941,33052,33132,33863,34650,36418,36654,37714,38819,39461,39943,40340],\"ruǎn nèn\":[23174],\"miáo\":[23180,23289,25551,30596,33495,40339,40523],\"yí pèi\":[23184],\"mián miǎn\":[23188],\"tí shì\":[23198,24831],\"duò tuó\":[23200,27826],\"ǎo\":[23210,23228,33401,33466,34948,35158,38266],\"chú zòu\":[23216],\"yìng\":[23221,26144,26254,30828,33185,40038],\"qín shēn\":[23232],\"jià\":[23233,24143,26550,27042,31292,39381,39550],\"sǎo\":[23234],\"zhēn zhěn\":[23235],\"jiē suǒ\":[23237],\"míng mǐng\":[23239],\"niǎo\":[23243,23325,23346,33553,34086,34949,35018,35117,40479],\"tāo\":[23245,24141,24354,24902,25487,25647,27076,28059,28372,28644,29803,32091,32282,32295,32486,35420,35615,36673,38833,38876,38892,39160,39253],\"biáo\":[23249],\"piáo piāo\":[23254,34232],\"xuán\":[23257,24748,25080,26294,27272,28457,29572,29831,29887,30147,34561],\"màn mān\":[23258],\"kāng\":[23261,23931,24247,24951,27130,28462,30730,31301,31968,36543,37870,40007],\"hān nǎn\":[23272],\"nèn\":[23273,23280],\"zhē\":[23276,36974],\"mā má\":[23282],\"piè\":[23283],\"zhǎn\":[23288,23637,25612,26025,26028,29718,30415,30430,36670,37254,39085,39120],\"xiān yǎn jìn\":[23312],\"liǎn\":[23322,25947,25986,29711,29833,32695,33080,33225,34105,34333,34334,35043,35165,37179],\"qióng huán xuān\":[23323],\"dǒng\":[23326,25026,31677,33891,34155,35532],\"cān\":[23328,28236,29208,39137,39184,39490,39574],\"tiǎo\":[23333,23464,26176,26387,31409,33025],\"bí\":[23350,33656,40763],\"liǔ\":[23356,26611,26625,26718,26746,27246,29102,29643,32185,32506,32630,32640,37622,38157],\"qiān xiān\":[23365,27430],\"xié huī\":[23368],\"huān quán\":[23369],\"lí lì\":[23371,40599],\"zhú chuò\":[23374],\"kǒng\":[23380,24656],\"mā zī\":[23382],\"sūn xùn\":[23385,23403],\"bèi bó\":[23387,35478],\"yòu niū\":[23399],\"zhuǎn\":[23400,31473,36681],\"hái\":[23401,39608],\"nāo\":[23404],\"chán càn\":[23409],\"bò\":[23417,27287,34327,35666],\"nái\":[23419,33097],\"níng nìng\":[23425,23501,23511,23516,23527,29999],\"zhái\":[23429],\"tū jiā\":[23434],\"sòng\":[23435,35359,35494,35772,35829,36865,37817,38924,39042,39224],\"ròu\":[23437,32905,35699],\"zhūn\":[23442,31360,34912,35524,35846,36813],\"mì fú\":[23443],\"dàng tàn\":[23445],\"wǎn yuān\":[23451],\"chǒng\":[23456,23541],\"qún\":[23469,23790,24108,32675,32676,35033,35040],\"zǎi\":[23472,23869],\"bǎo shí\":[23474],\"jiā jia jie\":[23478],\"huāng huǎng\":[23482],\"kuān\":[23485,23515,23532,33239,37991,39627,39638],\"sù xiǔ xiù\":[23487],\"jié zǎn\":[23489],\"bìng bǐng\":[23502],\"jìn qǐn\":[23510],\"lóu jù\":[23520],\"xiě xiè\":[23531],\"qīn qìn\":[23540],\"cùn\":[23544,31871],\"duì\":[23545,23550,23565,24636,24989,25055,28647,28713,30867,31051,32144,34225,35656,35701,36699,38431,38510],\"lüè luó\":[23549],\"shè yè yì\":[23556],\"jiāng jiàng qiāng\":[23558],\"jiāng jiàng\":[23559,27974,28479,30074],\"zūn\":[23562,23967,27197,32583,36981,37903,40018,40159,40334,40439],\"shù zhù\":[23564,28557],\"xiǎo\":[23567,26195,26241,26313,30363,30370,31601,31615,31712,35599],\"jié jí\":[23568,35800,38794],\"shǎo shào\":[23569],\"ěr\":[23570,23571,23572,26670,27622,27953,29246,29669,32819,34238,34888,36272,36841,36999,37498,38098,39180,39285,39404],\"wāng yóu\":[23586],\"wāng\":[23587,23593,23594,23595,27754],\"liào\":[23589,23590,24278,25730,26009,28819,31415,37904,38243],\"méng máng lóng páng\":[23592],\"gà\":[23596,39744],\"kuì kuǐ\":[23599],\"tuí\":[23605,24346,31336,34312,36458,38564,38969,38970,38973,39059,39755],\"yǐn\":[23609,23998,24341,26372,27267,27324,27389,28158,28645,30270,30318,31884,34335,34451,34750,35732,36218,36251,36625,37391,38775],\"chǐ chě\":[23610],\"kāo\":[23611,39643],\"jìn jǐn\":[23613],\"wěi yǐ\":[23614],\"niào suī\":[23615],\"céng\":[23618,23652,23954,39507],\"diǎo\":[23628],\"bīng píng bǐng\":[23631],uu:[23639,26338,32833,34418,34634,38375],\"lòu\":[23642,28431,30232,30266,30267,37860,38210,38475],\"shǔ zhǔ\":[23646,23660],\"xiè tì\":[23647],\"chè cǎo\":[23662],\"tún zhūn\":[23663],\"nì jǐ\":[23664],\"hóng lóng\":[23672],\"qǐ kǎi\":[23682,35912],\"áng\":[23687,26114,26171],\"gǎng gāng\":[23703,23831],\"kě\":[23714,25956,28167,28212,28835],\"gǒu\":[23715,29399,29629,31537,32775,32776,32777,33503,35967],\"tiáo\":[23719,23737,27172,31058,31524,33408,33812,34010,34024,34601,36834,37594,37797,38807,39659,39880,39991,40102,40800,40838],\"qū jū\":[23720],\"lǐng\":[23725,23994,38936,39046],\"pò\":[23734,25920,27942,28240,28894,29632,30772,30774,31893,33962,39748],\"bā kè\":[23751],\"luò\":[23752,25694,27931,27932,29334,29662,31551,32409,33638,35451,38610,39409,39558,40261],\"fù niè\":[23754],\"ěn\":[23758],\"zhì shì\":[23769,23867],\"qiǎ\":[23776,36306,37216,38800],\"qiáo jiào\":[23780,30276],\"xié yé\":[23787],\"bū\":[23788,24239,26209,35495,36875,37437,37691,38072,39188,40271],\"chóng\":[23815,23816,29214,34411,34665,34802,35080,38528],\"zú cuì\":[23826,26890],\"líng léng\":[23834],\"dòng dōng\":[23840],\"xiáo\":[23844,27944,28102,35364,35509],\"pí bǐ\":[23845,33432],\"zhǎn chán\":[23853,23939,23940],\"wǎi wēi\":[23860],\"yáng dàng\":[23861],\"shì dié\":[23868],\"yào\":[23870,26332,29070,29183,30661,31358,31380,31556,32768,33374,33647,33903,34220,34277,34958,35230,35407,35729,38783,40386,40542,40764],\"kān zhàn\":[23873],\"hán dǎng\":[23877],\"qiàn kàn\":[23884],\"wù máo\":[23885],\"kě jié\":[23889,23985],\"wēi wěi\":[23892],\"kē\":[23897,26607,26869,27068,27158,29249,29297,29328,29634,30132,30604,30933,31002,31185,31262,31392,33834,34198,34485,34636,36279,36722,37272,37427,38070,38950,38982,39063,39617],\"dàng táng\":[23907],\"róng yíng\":[23908,29187],\"ái kǎi\":[23910],\"kāo qiāo\":[23914],\"cuó\":[23919,23923,30180,30700,33963,34070,34392,40570,40574],\"qiǎn qīn\":[23920],\"dì dié\":[23933],\"cēn\":[23934],\"dǐng\":[23935,33404,34209,37924,38914,39030,40718,40721],\"áo ào\":[23941],\"pǐ pèi\":[23951],\"jiào qiáo\":[23968,28496],\"jué guì\":[23969,40156],\"zhān shàn\":[23974,40163],\"xiè jiè\":[23984],\"guī xī juàn\":[23986],\"rū\":[23999],\"lì liè\":[24001,26841,29188,32159],\"xī guī juàn\":[24002],\"yíng hōng\":[24006],\"yǐng\":[24010,24302,24433,25708,26796,28481,30271,30317,30696,31310,37090,37915,38964,39053,39061,39062],\"chǎo\":[24016,28818,29052,30503,40616],\"cuán\":[24017,27349,27409],\"chuān\":[24027,24029,27674,29775,31359],\"jīng xíng\":[24032],\"cháo\":[24034,24035,26177,28421,28526,29258,31410,32634,35647,36680,37147,40716],\"qiǎo\":[24039,24832,39644],\"gǒng\":[24041,24318,25329,25330,26673,27742,29657,36609,38799],\"chà chā chāi cī\":[24046],\"xiàng hàng\":[24055],\"shuài\":[24069,24101,34752],\"pà\":[24074,24085,24597,34969],\"tǎng nú\":[24081],\"mò wà\":[24083],\"tiē tiě tiè\":[24086],\"zhǒu\":[24090,26221,30107,30573,31634,32920,33783,39902],\"juǎn juàn\":[24099],\"shuì\":[24104,28055,28058,30561,31237,31246,35038],\"chóu dào\":[24113,24172],\"jiǎn jiān sàn\":[24116],\"shà qiè\":[24121],\"qí jì\":[24122,33632],\"shān qiāo shēn\":[24147],\"zhuàng chuáng\":[24162],\"chān chàn\":[24168],\"miè\":[24173,25073,25635,28357,28781,28885,31011,31742,34065,34190,34843,34890,37974,40052,40211],\"gān gàn\":[24178],\"bìng bīng\":[24182,24183],\"jī jǐ\":[24190],\"guǎng ān\":[24191],\"guǎng\":[24195,24291,29367,29559],me:[24197],\"dùn tún\":[24201],\"bài tīng\":[24205],\"yìng yīng\":[24212],\"dǐ de\":[24213],\"dù duó\":[24230],\"máng méng páng\":[24236],\"bìng píng\":[24240],\"chěng\":[24241,24732,30536,36894,39425,39563],\"jī cuò\":[24244],\"qǐng\":[24252,24270,27326,28416,33496,35531,35622,35831,38915,39031],\"guī wěi huì\":[24262],\"jǐn qín\":[24273],\"kuò\":[24275,25193,25313,25844,28662,31560,33855,33856,34526,38346,38420,38697,38815,38841,38869,38946,39712],\"qiáng sè\":[24295,34196],\"yǐn yìn\":[24308,38544,38560,38577,39150,39154,39278],\"pò pǎi\":[24313,36843],\"nòng lòng\":[24324],\"dì tì tuí\":[24351],\"jué zhāng\":[24353],\"mí mǐ\":[24357,24396,38753],\"chāo\":[24360,24586,25220,27433,35372,36229,37396,38046],yi:[24364],\"shāo\":[24368,26067,28903,28988,29138,31602,33348,33847,34161,36622,39678,39865],\"xuān yuān\":[24370],\"qiáng qiǎng jiàng\":[24375,24378],\"tán dàn\":[24377,37256],\"biè\":[24390],\"qiáng jiàng qiǎng\":[24394],\"jì xuě\":[24400],\"tuàn\":[24406,35094],\"yuē\":[24415,26352,26353,30705],\"shān xiǎn\":[24417],\"wén\":[24419,25991,28806,29683,30226,32359,32862,33440,34441,34442,34721,34753,38330,38335,38341,38374,38395,38412,38639,39356,39367,39792,40188,40205,40740],\"péng bāng\":[24429],\"piāo piào\":[24431],\"zhuó bó\":[24436],\"tuǒ yí\":[24437],\"páng fǎng\":[24439],\"wǎng\":[24442,24448,24451,24792,26505,26850,32178,32593,32594,32595,32596,32598,33781,34535,34628,35511,36638,36747,39757],\"cú\":[24450,27522],\"dài dāi\":[24453],\"huái\":[24458,24576,25040,25079,27088,28142,32818,34361,35106,35121,36381],\"wā wàng jiā\":[24461],\"chěng zhèng\":[24462],\"dé děi de\":[24471],\"cóng zòng\":[24478],\"shì tǐ\":[24485],\"tí chí\":[24498,40343,40345],\"dé\":[24499,24503,24692,24755,24810,28098,37696,38173],\"zhǐ zhēng\":[24500,24501],\"bié\":[24502,30335,33666,34498,35154,36457],\"chōng zhǒng\":[24504],\"jiǎo jiào\":[24508,31493,31562],\"lòng lǒng\":[24511],\"qú jù\":[24514,28192,30655,34742],\"dìng tìng\":[24522],\"gǎi\":[24523,25913],\"rěn\":[24525,26656,26659,31225,31252,32155,33615,33653,36533],\"chàn\":[24527,25076,25082,30815,32700,38850,39019],\"tè\":[24529,24925,29305,34776,37617,38141],\"tè tēi tuī\":[24530],\"gān hàn\":[24531,25916],\"yì qì\":[24532],\"tài shì\":[24533],\"xī liě\":[24538],\"yīng yìng\":[24540,25033,35661],\"mǐn wěn mín\":[24542,24543],\"sōng zhōng\":[24554],\"yù shū\":[24556,24710],\"qí shì\":[24559,32774],\"tún zhūn dùn\":[24563],\"qián qín\":[24564,25202],\"hún\":[24566,27985,28222,39195,39300,39746,40754],\"niǔ\":[24568,25197,28804,29379,32016,32445,33701,37397,38062,38773],\"kuáng wǎng\":[24569],\"kāng hàng\":[24572],\"kài xì\":[24574,24894],\"òu\":[24580,24938],\"bǎo bào\":[24585],\"mín mén\":[24587],\"zuò zhà\":[24589],\"zěn\":[24590],\"yàng\":[24591,24665,26679,27096,27171,28478,32661,35399],\"kòu jù\":[24592],\"náo niú\":[24595],\"zhēng zhèng\":[24596,25497,38066,38126],\"tiē zhān\":[24599],\"hù gù\":[24600],\"cū jù zū\":[24602],\"sī sāi\":[24605],\"yóu chóu\":[24606],\"tū dié\":[24610],\"yōu yào\":[24622],\"xuàn\":[24624,26145,26982,27883,28210,28843,29700,30505,30905,32098,32316,32335,32474,34073,34898,34984,36121,37449,37831,38089,38239,39092],\"xù xuè\":[24628],\"bì pī\":[24630],\"xī shù\":[24632],\"nèn nín\":[24641],\"tiāo yáo\":[24652],\"xī qī xù\":[24659],\"xiào jiǎo\":[24660],\"hū kuā\":[24663],\"nǜ\":[24679,26386,34882,34884],\"hèn\":[24680],\"dòng tōng\":[24683],\"quán zhuān\":[24686],\"è wù ě wū\":[24694,24801],\"tòng\":[24696,24927,24965,30171,34901],\"yuān juàn\":[24705],\"qiāo qiǎo\":[24708],\"jiè kè\":[24712],\"hào jiào\":[24718],\"huǐ\":[24724,27283,27584,27585,27591,29164,35693],\"mán mèn\":[24727,38804],\"yī yì\":[24728,34915],\"quān\":[24731,31646,37897],\"kuī lǐ\":[24733],\"yì niàn\":[24741],\"mèn mēn\":[24758],\"guàn\":[24761,24762,24815,24931,25532,25692,27148,27423,27892,28075,28485,28748,29215,29912,30437,31030,31100,32582,32592,36011,36143,36480,36966,37830,38005,40057,40475,40563],\"kōng kǒng\":[24766],\"lǔn lùn\":[24768],\"guǒ\":[24776,26524,26881,27112,31935,32182,33747,34622,35065,35073,36640,39196,39299],\"yuān wǎn\":[24780,31650],\"lán lín\":[24783],\"yù xù\":[24784,28130],\"chuò chuì\":[24793],\"hūn mèn\":[24795],\"chǎng tǎng\":[24797],\"suǒ ruǐ\":[24802],\"cǎn\":[24808,24920,25007,40682,40690],\"cán\":[24813,24921,24922,27531,27544,34453,34629,34870,34874],\"dàn dá\":[24814,24986],\"rě\":[24825],\"yú tōu\":[24841],\"kài qì\":[24850],\"dàng táng shāng yáng\":[24851],\"chén xìn dān\":[24854],\"kè qià\":[24856],\"nuò\":[24862,25062,25063,25535,25638,27026,31276,31332,31953,31973,31983,35582,35834,36419,36925,37737,38168],\"gǎn\":[24863,25792,25954,26751,27204,28553,28600,30383,31174,31240,31540,33417,34918,36214,36245,40036,40161],\"còng sōng\":[24865],\"sāi sī sǐ\":[24866],\"gōng gòng hǒng\":[24873,24912],\"shuò sù\":[24876,27948],\"yáo yào\":[24878],\"huàng\":[24880,26306,27045,28361,30365,30377,37796],\"zhěng\":[24888,25229,25327,25972,26232],\"cǎo\":[24890,33400,33609,39474],\"xì xié\":[24896],\"cǎo sāo\":[24901],\"xù chù\":[24905],\"qiè qiàn\":[24906],\"cáo cóng\":[24914],\"ào áo\":[24928],\"lián liǎn\":[24937,26815,27108,27363],\"jìn qín jǐn\":[24940],\"dì chì\":[24952],\"zhí zhé\":[24953],\"lóu lǚ\":[24954,40412],\"còng\":[24961,35621],\"zhī zhì\":[24964,30693,32340,32455],\"chēng\":[24966,25690,25744,25745,26239,26621,26854,27221,27273,27871,28030,29732,30624,30848,32253,32585,34511,34806,36202,36204,37887,37923,38455,38743,38963,39251],\"biē\":[24971,34380,40009,40150,40712,40862],\"chéng dèng zhèng\":[24981],\"xǐ xī\":[24984],\"duì dùn tūn\":[24990],\"xiāo jiāo\":[24994],\"xián xiàn\":[25002],\"liáo liǎo\":[25005,29134,29198,29202],\"shéng\":[25012,32260,32329,32361,32499,35677],\"náo nǎo náng\":[25017],\"jǐng jìng\":[25020],\"jǐ jiǎo\":[25023],\"xuān huān\":[25025],\"cǎo sāo sào\":[25030],\"mèn\":[25041,25059,26282,28950,29148],\"mèng méng měng\":[25052],\"ài yì nǐ\":[25053],\"méng měng\":[25054,30626,30674],\"qí jī jì\":[25056],\"mǒ\":[25057],\"lán xiàn\":[25058],\"yōu yǒu\":[25070],\"liú liǔ\":[25072,34288],\"ràng\":[25081,35698,35731,35753],\"huān\":[25085,27426,27475,27489,29566,35737,35995,37188,39529,40197,40269],\"nǎn\":[25089,25543,28275,29045,33129,34683,36199],\"mí mó\":[25090],\"gàng zhuàng\":[25093,25094],\"zhuàng gàng\":[25095],\"qu xū\":[25100],\"xì hū\":[25103,25135,25138],\"jiá gā\":[25115],\"zéi\":[25117,34824,36042,36156,39938,40033,40087],\"děng\":[25125,31561],\"hū xì\":[25137],\"chuō\":[25139,36372,36916],\"biǎn piān\":[25153],\"shǎng jiōng\":[25156],\"shàn shān\":[25159],\"cái\":[25165,26448,32404,35009,36001,36130],\"zhā zā zhá\":[25166],\"lè lì cái\":[25168],\"bā pá\":[25170],\"dǎ dá\":[25171],\"rēng\":[25172],\"fǎn fú\":[25173],\"diǎo dí yuē lì\":[25178],\"káng gāng\":[25179],\"yū wū\":[25180],\"yū wū kū\":[25181],\"tuō chǐ yǐ\":[25185],\"gǔ jié xì gē\":[25186],\"dèn\":[25189,25213],\"sǎo sào\":[25195,25475],\"rǎo\":[25200,25854,38562],\"xī chā qì\":[25201],\"bān pān\":[25203],\"bā ào\":[25207],\"xī zhé\":[25208],\"zhì sǔn kǎn\":[25211],\"zhǎo\":[25214,27836,29813],\"kuáng wǎng zài\":[25218],\"hú gǔ\":[25223,40516,40536],\"bǎ bà\":[25226],\"dǎn shěn\":[25228],\"nè nì ruì nà\":[25232],\"zhuā\":[25235,27291,31803,33212,39677],\"póu\":[25236,35026],\"zhé shé zhē\":[25240],\"póu pōu fū\":[25241,25418],\"pāo\":[25243,25291,33068,33826],\"ǎo ào niù\":[25245],\"lūn lún\":[25249,25476],\"qiǎng qiāng chēng\":[25250],\"zhǐ zhǎi\":[25255],\"bù pū\":[25258,26600],\"yǎo tāo\":[25261],\"hē hè qiā\":[25266],\"nǐ ní\":[25267],\"pī pēi\":[25271],\"mǒ mò mā\":[25273],\"chōu\":[25277,29352,29355,30259,31704],\"jiā yá\":[25281],\"fú bì\":[25282,30032,40349],\"zhǎ\":[25283,30504,30751,39866,40093],\"dān dàn dǎn\":[25285],\"chāi cā\":[25286],\"niān\":[25288,34091],\"lā lá lǎ là\":[25289],\"bàn pàn\":[25292],\"pāi\":[25293],\"līn\":[25294],\"guǎi\":[25296,26548,26618],\"tuò tà zhí\":[25299],\"ào ǎo niù\":[25303],\"jū gōu\":[25304],\"pīn pàn fān\":[25306],\"bài bái\":[25308],\"bài\":[25309,25943,31255,31930,34221,36097,36133,38875],\"qiá\":[25316],\"nǐng níng nìng\":[25319],\"zé zhái\":[25321,25799],\"hén\":[25323,30165,38798],\"kuò guā\":[25324],\"jié jiá\":[25326],\"nǐn\":[25328],\"shuān\":[25332,26643,38274,38377],\"cún zùn\":[25333],\"zā zǎn\":[25334,26714],\"kǎo\":[25335,25911,26674,28900,32771],\"yí chǐ hài\":[25336],\"cè sè chuò\":[25338],\"zhuài zhuāi yè\":[25341],\"shí shè\":[25342],\"bāi\":[25344,25520],\"kuò guāng\":[25348],\"nòng\":[25354,25397,40776],\"jiào jiāo\":[25357,25934,25945],\"kuà kū\":[25358],\"ná rú\":[25360],\"tiāo tiǎo\":[25361],\"dié shè\":[25365],\"liě\":[25368,27615],\"yà yǎ\":[25372,25495],\"wō zhuā\":[25373],\"xié jiā\":[25375,25406],\"dǎng dàng\":[25377,25803],\"zhèng zhēng\":[25379,27491,30151],\"āi ái\":[25384],\"tuō shuì\":[25385,25437],\"tǐ tì\":[25390],\"suō shā\":[25393],\"sā shā suō\":[25394],\"kēng qiān\":[25395,25724],\"bàng péng\":[25399],\"ruó ruá\":[25404],\"jiǎo kù\":[25409],\"wǔ wú\":[25410],\"tǒng\":[25413,26742,31570,31593,32113,32130,32479],\"huò chì\":[25415],\"tú shū chá\":[25416],\"lǚ luō\":[25419],\"shāo shào\":[25422,31245],\"niē\":[25423,25553],\"shù sǒng sōu\":[25426],\"yé yú\":[25427],\"jué zhuó\":[25428],\"bù pú zhì\":[25431],\"zùn\":[25432,37516],\"lāo\":[25438,25736,31913],\"sǔn\":[25439,25613,27051,31499,31565,31664,37800,38588],\"wàn wǎn wān yù\":[25445],\"pěng\":[25447,28110,30351],\"shě\":[25448],\"fǔ fù bǔ\":[25452],\"dáo\":[25455],\"luò luǒ wǒ\":[25456],\"juǎn quán\":[25458],\"chēn tiǎn\":[25461],\"niǎn niē\":[25467],\"ruó wěi ré\":[25468],\"zuó\":[25469,26152,31208,31251,31600,33675,37436],\"wò xiá\":[25470],\"qìng qiàn\":[25477],\"póu pǒu\":[25482],\"qiā\":[25488,33884],\"pái pǎi\":[25490],\"qiān wàn\":[25492],\"yè yē\":[25494],\"niè nǐ yì\":[25500],\"huò xù\":[25501],\"yàn shàn yǎn\":[25502],\"zhěng dìng\":[25503],\"kòng\":[25511,38810],\"tuī\":[25512,34039,34284],\"zōu zhōu chōu\":[25515],\"tiàn\":[25517,33306],\"kèn\":[25519,35017,35075],\"pá\":[25521,26487,28502,29228,29750,31586],\"guó guāi\":[25524],\"dǎn shàn\":[25528,25763],\"chān xiān càn shǎn\":[25530],\"sāo\":[25531,25620,28318,32325,32555,34726,39442,39479,39968,40034,40139],\"pèng\":[25533,26922,27120,30896,36395],\"zhēng kēng\":[25537],\"jiū yóu\":[25538],\"jiān jiǎn\":[25539,31835],\"pì chè\":[25546],\"sāi zǒng cāi\":[25548],\"tí dī dǐ\":[25552],\"zǒng sōng\":[25556],\"huáng yóng\":[25560],\"zǎn zuàn\":[25565],\"xū jū\":[25567],\"ké qiā\":[25570],\"chuāi chuǎi chuài tuán zhuī\":[25571],\"dì tì\":[25573],\"lá là\":[25574],\"là\":[25575,26955,28290,29902,30220,32715,33240,34635,34674,34847,36770,36771,37982,38260,39694,39931],\"jiē qì\":[25581],\"chòng dǒng\":[25584],\"dié shé yè\":[25586],\"jiàn qián jiǎn\":[25589],\"yé\":[25590,29239,29242,29784,37603,37761,38104],\"chān\":[25600,25723,25881,35047,35164,35224,35271,36799,37587],\"gē gé\":[25601,25841],\"lǒu lōu\":[25602,25695],\"chōu zǒu\":[25610],\"chuāi\":[25611],\"sūn\":[25614,27074,29426,29499,33642,33984,34165,34206,39143,39153],\"róng náng nǎng\":[25617],\"péng bàng\":[25618],\"cuō\":[25619,29811,30923,36425,36979,37277],\"kē è\":[25621],\"nù nuò nòu\":[25625],\"lā xié xiàn\":[25626],\"qiǔ\":[25629,31959],\"xiǎn xiān\":[25631],\"jié zhé\":[25641],\"pán bān pó\":[25643],\"bān\":[25644,25917,26001,26002,29677,30242,30285,32934,34689,34700,35113,36780,38930,39041],\"zhì nái\":[25649],\"wā wǎ wà\":[25650],\"huá\":[25651,25782,28369,29502,34128,34710,35649,37877,38119,39498,39557,40424],\"qiāng qiǎng chēng\":[25654],\"tián shēn\":[25655],\"ná nuò\":[25659],\"èn\":[25665],\"shè niè\":[25668,25885],\"bìn\":[25672,25839,27553,27567,33169,33231,39628,39637,39657,39682,39699,39714],\"shā sà shǎi\":[25675],\"chǎn sùn\":[25676],\"jiū liú liáo jiǎo náo\":[25678],\"féng pěng\":[25683],\"shuāi\":[25684],\"dì tú zhí\":[25685],\"qì jì chá\":[25686],\"sōu sǒng\":[25687],\"liǎn liàn\":[25689],\"gài xì\":[25697],\"hù chū\":[25698],\"tàng\":[25701,28907,29145,37899],\"nái zhì\":[25704],\"mó mā\":[25705],\"jiāng qiàng\":[25706],\"áo qiáo\":[25710],\"niè chè\":[25712],\"mán màn\":[25713],\"chàn cán\":[25714],\"sè mí sù\":[25717],\"biāo biào\":[25725],\"juē jué\":[25733],\"piē\":[25734,26300,27669,30629],\"piě piē\":[25735],\"zǎn zān zēn qián\":[25741],\"sā sǎ\":[25746],\"hòng\":[25748,35340,35751,38336,39720],\"héng guàng\":[25751],\"niǎn\":[25754,25781,25862,28042,28990,30910,31760,36429,36456,36494,36646,36743],\"chéng zhěng\":[25756],\"huī wéi\":[25757],\"cāo\":[25761,25805,31961],\"xiāo sōu\":[25768],\"liáo liāo\":[25769],\"cuō zuǒ\":[25774],\"wěi tuǒ\":[25777],\"cuān\":[25786,25883,27718,36479,36517,38009,38249],\"qiào yāo jī\":[25789],\"zhuā wō\":[25790],\"lèi léi\":[25794],\"nǎng\":[25795,25902,26345,28770],\"qíng jǐng\":[25807],\"kuǎi\":[25811,33967],\"pǐ bò\":[25815],\"bò bāi\":[25816],\"jù jǐ\":[25818],\"mēng\":[25821],\"sǒu sòu\":[25822],\"xǐng\":[25828,31669,37266],\"cā\":[25830],\"níng nǐng nìng\":[25840],\"zhì jié\":[25843],\"là liè\":[25848,29193],\"sòu sǒu\":[25851],\"lì luò yuè\":[25853],\"tī zhāi zhì\":[25855],\"pān\":[25856,28504,30469,33824],\"lèi\":[25858,27882,28057,28122,31159,31867,32391,34353,37241,37511,37649,38939,38954,39006,39075],\"cā sǎ\":[25859],\"jùn pèi\":[25864],\"lì luò\":[25866,36498],\"là lài\":[25867,27380],\"lú luó\":[25870],\"zǎn cuán\":[25874],\"xiān jiān\":[25877],\"mí mǐ mó\":[25888],\"zǎn cuán zàn zuān\":[25890],\"zuàn\":[25893],\"lì shài\":[25894],\"lì luǒ\":[25901],\"guǐ guì\":[25905],\"jī qī yǐ\":[25906],\"fàng\":[25918],\"wù móu\":[25924],\"chù shōu\":[25930],\"gé guó è\":[25931],\"duó duì\":[25939,25946],\"duō què\":[25952,25962],\"sàn sǎn\":[25955],\"dūn duì\":[25958,38246],\"qī yǐ jī\":[25959],\"xiào xué\":[25961],\"shù shǔ shuò\":[25968,25976],\"ái zhú\":[25969,25971],\"xiòng xuàn\":[25979],\"zhuó zhú\":[25984],\"yì dù\":[25985],\"lí tái\":[25988],\"fěi fēi\":[26e3],\"yǔ zhōng\":[26004],\"dòu dǒu\":[26007],\"wò guǎn\":[26017],\"tǒu tiǎo\":[26018],\"dòu\":[26019,26794,28002,30168,31398,31431,33072,33651,35910,36887,37078,37208,38295,38360,39190,39294,39717,39718,39722,39724,39725],\"yín zhì\":[26022],\"chǎn jiè\":[26042],\"wū yū yú\":[26044],\"yóu liú\":[26047],\"páng bàng\":[26049],\"máo mào\":[26052],\"pī bì\":[26055],\"xuán xuàn\":[26059],\"wú mó\":[26080],\"zǎo\":[26089,26531,26630,26839,28577,29866,34235,34299,34468],\"gā\":[26094],\"gàn hàn\":[26096],\"tái yīng\":[26098],\"xū xù\":[26100],\"tūn zhùn\":[26109],\"wù wǔ\":[26111],\"pò pèi\":[26146],\"zòng\":[26158,29460,30125,30258,31933,31945,31981,32294],\"ǎi\":[26169,27600,30702,34108,34297,35690,36535,38701,38724],\"huàng huǎng\":[26179],\"xuǎn\":[26181,30307,30316,36873,36984],\"xù kuā\":[26183],\"hǒng\":[26190],\"shài\":[26194,26348],\"yūn yùn\":[26197,29044],\"shèng chéng\":[26207,26889,30427],\"jǐng yǐng\":[26223],\"shǎn\":[26225,29068,30546,35234,38275,38378,38485,38493],\"qǐ dù\":[26229],\"ǎn àn yǎn\":[26235],\"wǎng wàng\":[26240],\"zàn\":[26242,26283,29897,29906,29914,31158,35192,35715,35738,36059,36106,36190,36436,37180,37694,37864,39265],\"yùn yūn\":[26248],\"mín mǐn\":[26251],\"dǔ shǔ\":[26255],\"shǔ\":[26257,26329,28539,30297,31980,32626,34213,34223,34295,34560,34868,35169,35177,40042,40048,40653,40736,40737],\"jiǎn lán\":[26261],\"nuǎn\":[26262,29015,39210],\"bào pù\":[26292],\"xī xǐ\":[26303],\"pù bào\":[26333,28689],\"qū qǔ\":[26354,32054],\"gèng gēng\":[26356],\"hū hù\":[26358,38653],\"zēng céng\":[26365,27239],\"céng zēng\":[26366,31474],\"cǎn qián jiàn\":[26369],\"qiè hé\":[26373],\"bì pí\":[26375,31110,31507,35048],\"yǒu yòu\":[26377],\"bān fén\":[26380,40187],\"fú fù\":[26381,27921],\"fěi kū\":[26383,32976],\"qú xù chǔn\":[26384],\"juān zuī\":[26392],\"huāng máng wáng\":[26394],\"qī jī\":[26399],\"tóng chuáng\":[26403,27238],\"zhá\":[26413,29264,31642,34491,35671,37720,38113,38296,38392],\"zhú shù shú\":[26414],\"shù shú zhú\":[26415],\"zhū shú\":[26417],\"pǔ pò pō piáo\":[26420],\"dāo tiáo mù\":[26423],\"guǐ qiú\":[26425],\"xiǔ\":[26429,28395,28483,31956],\"chéng chēng\":[26430],\"zá\":[26434,27823,30776,35149,38609,38620,38629,38900],\"yú wū\":[26437],\"gān gǎn\":[26438],\"chā chà\":[26440],\"shān shā\":[26441],\"cūn\":[26449,30388,31476,33189,36358,37032],\"rèn ér\":[26450,26773],\"sháo biāo\":[26451],\"dì duò\":[26453,26532],\"gū gài\":[26458],\"yí zhì lí duò\":[26461],\"gàng gāng\":[26464],\"tiáo tiāo\":[26465,26781],\"mà mǎ\":[26473],\"sì zhǐ xǐ\":[26475],\"yuán wán\":[26476,34454],\"bèi fèi\":[26478],\"shū duì\":[26488],\"niǔ chǒu\":[26491],\"wò yuè\":[26498,33234],\"máo\":[26502,27611,27650,28213,29286,30683,32606,33541,33542,34661,34762,36574,37205,37502,37672,38170,39654,40348],\"pī mì\":[26504],\"àng\":[26506,30414,37280],\"fāng bìng\":[26507],\"hù dǐ\":[26513],\"xín\":[26516,35153,37908,39733],\"yāo yǎo\":[26518],\"ě è\":[26521],\"zhī qí\":[26525],\"cōng zōng\":[26526,27141],\"xiān zhēn\":[26542],\"tái sì\":[26545],\"gǒu jǔ gōu\":[26552],\"bāo fú\":[26553],\"yì xiè\":[26555,26663],\"tuó duò\":[26561,39345,39364,39534],\"yí duò lí\":[26562],\"nǐ chì\":[26565],\"pán bàn\":[26568,36312],\"yǎng yàng yāng yīng\":[26573],\"fù fū fǔ\":[26574],\"bǎi bó bò\":[26575],\"mǒu\":[26576],\"sháo shào\":[26582],\"zhè\":[26584,27164,27993,28123,34071,34757,36889,40403,40551],\"yòu yóu\":[26586,27390],\"guì jǔ\":[26588],\"zhà zuò\":[26590],\"dié zhì\":[26595,30512],\"zhā zǔ zū\":[26596],\"chá zhā\":[26597,26619],\"āo ào\":[26602,36586],\"bā fú pèi bó biē\":[26605],\"duò zuó wù\":[26606],\"bì bié\":[26610],\"zhù chù\":[26615],\"bēi pēi\":[26616],\"shì fèi\":[26617],\"shān zhà shi cè\":[26629],\"lì yuè\":[26638,27359],\"qì qiè\":[26644,30732],\"qī xī\":[26646,36426],\"guā kuò\":[26653],\"bīng bēn\":[26655],\"xiào jiào\":[26657],\"jiàn zùn\":[26667,35e3],\"yǒu yù\":[26671],\"hé hú\":[26680],\"gēn\":[26681,36319],\"zhī yì\":[26682],\"gé gē\":[26684],\"héng háng\":[26689],\"guàng guāng\":[26692],\"yí tí\":[26699,33617],\"sāng\":[26705,26706,27105],\"jú jié\":[26708],\"yú móu\":[26713],\"ráo náo\":[26721,27208],\"guì huì\":[26727,27292],\"chén zhèn\":[26733],\"tīng yíng\":[26735],po:[26738],\"bèn fàn\":[26739],\"fēng fèng\":[26747,33873],\"sù yìn\":[26752],\"tǐng tìng\":[26755],\"xuān juān xié\":[26763],\"tú chá\":[26764],\"āo yòu\":[26766],\"kuǎn\":[26785,27445,27454,27456],\"shāo sào\":[26786],\"qín chén cén\":[26787],\"lí sì qǐ\":[26793],\"chān yán\":[26804],\"bīn bīng\":[26809,27103,27315],\"táo chóu dào\":[26812],\"cōng sōng\":[26823],\"gùn hùn\":[26829],\"dé zhé\":[26831],\"pái bèi pèi\":[26833],\"bàng pǒu bèi bēi\":[26835],\"dì dài tì\":[26851],\"sēn\":[26862,26926,27118,35138],\"rěn shěn\":[26863],\"léng lēng líng\":[26865],\"fú sù\":[26868],\"zōu sǒu\":[26871],\"zōu\":[26872,31619,32197,35535,35833,37049,37104,37138,37177,38508,39478,39546,39915,40112,40640,40817,40826],\"zhào zhuō\":[26873],\"chēn shēn\":[26877],\"jiē qiè\":[26884],\"yǐ yī\":[26885],\"chóu zhòu diāo\":[26886],\"qiāng kōng\":[26892],\"zhuī chuí\":[26894],\"bēi pí\":[26897],\"mēn\":[26906],\"quān juàn quán\":[26918],\"duǒ chuán\":[26927],\"wěi huī\":[26930],\"jiǎ jiā\":[26933],\"hán jiān\":[26935],\"shèn zhēn\":[26937],\"yàn yà\":[26939],\"zhā chá\":[26946],\"guō kuǎ\":[26951],\"jí zhì\":[26966],\"kǔ hù\":[26971],\"yóu yǒu\":[26978],\"sǒng cōng\":[26980],\"yuán xuàn\":[26981],\"yǎng yàng yīng\":[26983],\"pián\":[26985,33020,33089,36038,36417,39394,39432,39560,39615],\"dié yè\":[26986],\"dùn shǔn\":[26991],\"còu zòu\":[26993],\"dì dǐ shì\":[26996],\"kǎi jiē\":[26999],\"róu ròu\":[27002],\"lè yuè\":[27005],\"wēn yùn\":[27013,38832],\"lǘ\":[27016,27354,27648,33186,34264,38317,38398,39522,39540],\"shén\":[27018,31070,37486,39984],\"bī pi\":[27020],\"zhǎn niǎn zhèn\":[27024],\"fú fù bó\":[27025],\"jiàn jìn\":[27031],\"bǎng bàng\":[27036],\"shā xiè\":[27037,27175],\"nòu\":[27080,32808,37778,37918],\"qiǎn lián xiàn\":[27087],\"gàng\":[27091,28981,28985,31611],\"gāo\":[27092,27129,27248,27356,30590,31705,31957,32660,33263,38879,39227,39640,39641,40398,40433,40731],\"diān zhěn zhēn\":[27097],\"kǎn jiàn\":[27099],\"xí dié\":[27106],\"jī guī\":[27107],\"róng yōng\":[27110],\"tuán shuàn quán\":[27115],\"qì sè\":[27117],\"cuī zhǐ\":[27119],\"yǒu chǎo\":[27121],\"màn wàn\":[27134],\"lí chī\":[27142],\"léi lěi\":[27151,27345,30988],\"cháo jiǎo chāo\":[27156],\"chēng táng\":[27160],\"jiū liáo\":[27163],\"mó mú\":[27169],\"niǎo mù\":[27170],\"héng hèng\":[27178,27243],\"xuě\":[27184,33188,33373,36684,38634,40008,40149],\"fá fèi\":[27203],\"rùn\":[27213,28070,28516,33206,38287,38304,38384],\"zhǎn jiǎn\":[27215],\"shùn\":[27219,30618,30636,33308,34147,38918,39034,39690],\"tuí dūn\":[27220],\"táng chēng\":[27222],\"sù qiū\":[27226],\"tán diàn\":[27229],\"fén fèn fèi\":[27240],\"rǎn yān\":[27242],\"cū chu\":[27259],\"shū qiāo\":[27262],\"píng bò\":[27288],\"zhái shì tú\":[27297],\"biǎo biāo\":[27302],\"qiān lián\":[27318],\"nǐ mí\":[27319],\"jiàn kǎn\":[27323],\"nòu ruǎn rú\":[27325],\"jī jì\":[27333,31144],\"huǎng guǒ gǔ\":[27342],\"lǜ chū\":[27350],\"miè mèi\":[27351],\"ōu\":[27353,27431,27472,27572,27590,29935,29964,33170,34290,35635,35764,37826,40206,40407,40485],\"zhù zhuó\":[27361],\"jué jì\":[27373],\"huái guī\":[27376],\"chán zhàn\":[27395],\"wéi zuì\":[27400],\"cáng\":[27404,38006],\"yù yì\":[27429],\"chù qù xì\":[27434],\"kài ài\":[27436],\"yì yīn\":[27437],\"xì kài\":[27439],\"shuò sòu\":[27446],\"ǎi ēi éi ěi èi\":[27448],\"qī yī\":[27449],\"chuā xū\":[27451],\"chǐ chuài\":[27452],\"kǎn qiàn\":[27455],\"kǎn kè\":[27457],\"chuǎn chuán\":[27458],\"yīn yān\":[27461],\"jìn qūn\":[27471],\"pēn\":[27477],\"xū chuā\":[27480],\"xī shè\":[27481],\"liǎn hān\":[27483],\"zhì chí\":[27501],\"sè shà\":[27504],\"sǐ\":[27515],\"wěn mò\":[27518],\"piǎo\":[27533,30379,30623,37285,39008],\"qíng jìng\":[27537],\"fǒu bó\":[27541],\"zhí shi\":[27542],\"yè yān yàn\":[27543],\"hūn mèi\":[27545],\"chòu\":[27552,33264,36954],\"kuì huì\":[27560,28291,28528],\"cuàn\":[27561,29110,29224,31388,31428,31713,31762],\"yīn yān yǐn\":[27575],\"qìng kēng shēng\":[27576],\"yáo xiáo xiào\":[27581],\"gū gǔ\":[27586,34500],\"guàn wān\":[27596],\"dú dài\":[27602],\"xún xùn\":[27621],\"mú\":[27626,27649],\"dòu nuò\":[27629],\"sāi suī\":[27640],lu:[27655],\"sào\":[27657,30233,30658,39646],\"shì zhī\":[27663],\"dī dǐ\":[27664],\"máng méng\":[27667],\"yáng rì\":[27676],\"shuǐ\":[27700,27701,27706,38294],\"zhěng chéng zhèng\":[27702],\"tǔn\":[27709],\"fán fàn\":[27710],\"guǐ jiǔ\":[27711],\"bīn pà pā\":[27715],\"zhuó què\":[27723],\"dà tài\":[27727],\"pìn\":[27734,29277,32856],\"hàn hán\":[27735,39343],tu:[27746],\"tāng shāng\":[27748,28271],\"zhī jì\":[27749],\"gàn hán cén\":[27765],\"wèn mén\":[27766],\"fāng pāng\":[27768],\"hǔ huǎng\":[27771],\"niú yóu\":[27772],\"hàng\":[27782],\"shěn chén\":[27784],\"dùn zhuàn\":[27788],\"nǜ niǔ\":[27793],\"méi mò\":[27794,27809],\"tà dá\":[27795],\"mì wù\":[27797],\"hóng pāng\":[27799],\"shā shà\":[27801],\"zhuǐ zǐ\":[27805],\"ōu òu\":[27812,28442],\"jǔ jù\":[27822],\"tuō duó\":[27824],\"mǐ lì\":[27829],\"yí chí\":[27830],\"xiè yì\":[27844],\"bó pō\":[27850],\"mì bì\":[27852,31192],\"chù shè\":[27855],\"yōu yòu āo\":[27857],\"pēng píng\":[27865,30801],\"pào pāo\":[27873],\"ní nì\":[27877,31196],\"yuè sà\":[27879],\"jué xuè\":[27884,30118],\"lóng shuāng\":[27895,28711],\"luò pō\":[27898,28668],\"zé shì\":[27901,28580],\"sǎ xǐ\":[27922],\"sè qì zì\":[27923],\"xǐ xiǎn\":[27927],\"kǎo kào\":[27928],\"àn yàn è\":[27933],\"lěi lèi\":[27937],\"qiè jié\":[27951],\"qiǎn jiān\":[27973],\"jì jǐ\":[27982,28168,28639,32426],\"hǔ xǔ\":[27986,28408],\"jùn xùn\":[27994,28652],\"yǐng chéng yíng\":[28007],\"liàn lì\":[28016],\"féng hóng\":[28018,28292],\"jiǒng jiōng\":[28027],\"suī něi\":[28029],\"yǒng chōng\":[28044],\"tūn yūn\":[28050],\"wō guō\":[28065,28198],\"hēng\":[28069,33053],\"zhǎng zhàng\":[28072,28466],\"shòu tāo\":[28077],\"shuàn\":[28078,33128],\"kōng náng\":[28083],\"wò wǎn yuān\":[28084],\"tuō tuò\":[28086],\"wō\":[28089,29479,31389,31401,33716,33845,34583,34680,36370],\"qiè jí\":[28097],\"guǒ guàn\":[28105],\"lín lìn\":[28107,29532,30084],\"tǎng chǎng\":[28108],\"nào chuò zhuō\":[28118],\"péng píng\":[28124],\"féi\":[28125,32933,33107,34608],\"pì pèi\":[28128],\"niǎn shěn\":[28144],\"biāo hǔ\":[28146],\"chún zhūn\":[28147],\"hùn hún\":[28151],\"qiǎn\":[28154,32382,32561,32951,33153,34616,35700,35892,36963,37971],\"wèn mín\":[28162],\"rè ruò luò\":[28163],\"dú dòu\":[28174,28678,35835],\"jiàn jiān\":[28176,28293,28472,28666],\"miǎn shéng\":[28177,28576],\"nuǎn nuán\":[28188],\"qiú wù\":[28190],\"tíng tīng\":[28191],\"dì tí dī\":[28199],\"gǎng jiǎng\":[28207],\"hōng qìng\":[28217],\"tuān\":[28237,29011],\"huì mǐn xū\":[28239],\"xǔ xù\":[28241],\"pén\":[28243,29931,30406,33872],\"mǐn hūn\":[28259],\"tuàn nuǎn\":[28266],\"qiū jiǎo\":[28267,28268],\"yān yīn\":[28270],\"bàn pán\":[28276],\"zhuāng hún\":[28279],\"yàn guì\":[28302],\"lián liǎn nián xián xiàn\":[28307],\"dá tǎ\":[28314],\"liū liù\":[28316,28561,36435],\"lùn\":[28323],\"mǎ\":[28324,29368,29505,29595,29802,30721,30908,36964,37815,39340,39532,39970,40396],\"zhēn qín\":[28337],\"nì niào\":[28346],\"chù xù\":[28352,30044],\"wěng wēng\":[28355],\"hào xuè\":[28360],\"qì xì xiē\":[28362],\"xíng yíng\":[28366],\"zé hào\":[28380],\"piāo piào piǎo\":[28418],\"cóng sǒng\":[28430],\"féng péng\":[28456],\"luò tà\":[28463],\"pēng bēn\":[28464],\"chóng shuāng\":[28468],\"huǒ kuò huò\":[28471],\"liáo liú\":[28475],\"cuǐ cuī\":[28476],\"cóng zǒng\":[28480],\"cóng zōng\":[28488],\"pì piē\":[28494],\"dàng xiàng\":[28498],\"huáng guāng\":[28514],\"liáo lào lǎo\":[28518],\"cōng zòng\":[28520],\"zhí zhì\":[28522],\"tān shàn\":[28524],\"tú zhā\":[28531],\"sàn sǎ\":[28533],\"hēi\":[28534,40657,40658],\"chéng dèng\":[28548,28691],\"cūn cún\":[28554],\"péng pēng\":[28558],\"hòng gǒng\":[28562,37566],\"wàn màn\":[28587],\"kuài huì\":[28590],\"guō wō\":[28612],\"pēn fén\":[28614],\"jí shà\":[28616],\"huì huò\":[28618],\"dǐng tìng\":[28622],\"mǐ nǐ\":[28628],\"bì pì\":[28638],\"cuì zuǐ\":[28642],\"hù huò\":[28649],\"ǎi kài kè\":[28653],\"wěi duì\":[28667,28706],\"zàn cuán\":[28669,28754],\"yǎng yàng\":[28673],\"wǎng wāng\":[28679],\"mò miè\":[28686,30492],\"suǐ\":[28705,33208,39635],\"huái wāi\":[28708],\"zùn jiàn\":[28723],\"yīng yǐng yìng\":[28724],\"ráng ràng\":[28732],\"shuàng\":[28736],\"zhuó jiào zé\":[28738],\"sǎ\":[28753,35375,38776],\"luán luàn\":[28755],\"dǎng tǎng\":[28761],\"xún quán quàn\":[28773],\"huǒ biāo\":[28780],\"zhà yù\":[28793],\"fén bèn\":[28803],\"jiǒng guì\":[28805],\"pàng fēng\":[28816],\"quē\":[28820,32570,32572,33947],\"biān\":[28830,29048,29954,30765,31550,31663,31849,32232,32534,34649,37001,37002,37757,38829,39934,39935,40138],\"zhāo zhào\":[28836],\"zhuō chù\":[28842],\"pào páo bāo\":[28846],\"páo fǒu\":[28848],\"shǎn qián shān\":[28854],\"zhà zhá\":[28856],\"jiǎo yào\":[28868],\"quǎn\":[28871,29356,29357,30030,32163,32507,34375],\"yàng yáng\":[28874],\"lào luò\":[28889],\"huí huǐ\":[28896],\"rè\":[28909,29105],\"fú páo\":[28912],\"xiè chè\":[28914,28942],\"yàn shān\":[28923],\"hūn xūn\":[28932],\"kào\":[28933,29330,37548,38096,38752,39859,39884,40083],\"juān yè\":[28934],\"jùn qū\":[28940],\"tāo dào\":[28952],\"chǎo jù\":[28963],\"wò ài\":[28965],\"zǒng cōng\":[28967],\"xī yì\":[28972],\"xìn xīn\":[28974],\"chāo zhuō\":[28975],\"xiǒng yīng\":[28984,28989],\"kuǐ\":[28995,36332,36446,38925],\"huī yùn xūn\":[28999],\"jiǎo qiāo\":[29005],\"qián shǎn shān\":[29012],\"xī yí\":[29013],\"shà shā\":[29022],\"yè zhá\":[29024],\"yáng yàng\":[29036],\"ēn yūn\":[29054],\"yūn yǔn\":[29061],\"hè xiāo\":[29063],\"xióng\":[29066,29067,38596],\"xūn xùn\":[29071,29195],\"gòng\":[29077,36002,36129],\"liū\":[29080],\"cōng zǒng\":[29084],\"lù āo\":[29085],\"shú shóu\":[29087],\"fēng péng\":[29090],\"cuǐ suī\":[29091],\"tēng\":[29093,33199,40735],\"yùn yù\":[29096],\"áo āo\":[29100],\"hàn rǎn\":[29103],\"ōu ǒu\":[29104],\"huáng huǎng\":[29119],\"chǎn dǎn chàn\":[29120],\"jiāo zhuó qiáo jué\":[29131],\"yàn yān\":[29141],\"tài liè\":[29156],\"āo\":[29194],\"yàn xún\":[29203],\"jué jiào\":[29213,35216,35226,35258,35273],\"lǎn làn\":[29222],\"zhuǎ zhǎo\":[29226],\"zhǎo zhuǎ\":[29227],\"fù fǔ\":[29238],\"diē\":[29241,35130,36300],\"zāng\":[29250,32664,33255,36045,36056,36115,36124,36163,39634],\"piàn piān\":[29255],\"biān miàn\":[29265],\"bǎng\":[29267,32129,32465],\"yǒu yōng\":[29271],\"chēng chèng\":[29274,31424],\"niú\":[29275,29276],\"jiū lè\":[29278],\"mù móu\":[29279],\"māng\":[29284],\"gē qiú\":[29291],\"yòu chōu\":[29296],\"tè zhí\":[29318],\"bēn\":[29319,37659,38171],\"jiān qián\":[29325,29610],\"má\":[29336,30194,34100,34759,40635],\"máo lí\":[29339],\"bá quǎn\":[29358],\"zhuó bào\":[29363],\"àn hān\":[29364],\"kàng gǎng\":[29370],\"pèi fèi\":[29371],\"fān huān\":[29375],\"kuáng\":[29378,29381,35473,35827,36566,36576,40287],\"yí quán chí\":[29387],\"xīng shēng\":[29388],\"tuó yí\":[29391],\"kǔ\":[29404,33510],\"huán huān\":[29407],\"hé mò\":[29410],\"tà shì\":[29415],\"máng dòu\":[29429],\"xī shǐ\":[29430],\"suān\":[29435,30176,37240],\"bài pí\":[29448],\"jiān yàn\":[29455,35939],\"yī yǐ\":[29463],\"yá wèi\":[29466],\"cāi\":[29468],\"māo máo\":[29483,35987],\"chuàn chuān\":[29485],\"tuān tuàn\":[29487,35986],\"yà jiá qiè\":[29488],\"hè xiē gé hài\":[29490],\"biān piàn\":[29493,29553],\"bó pò\":[29500],\"háo gāo\":[29515],\"fén fèn\":[29526],\"yào xiāo\":[29535],\"shuò xī\":[29537],\"gé liè xiē\":[29542],\"nòu rú\":[29555],\"náo nǎo yōu\":[29558],\"ráng\":[29565,29924,31155,31331,31344,34328,36511,39716],\"náo yōu\":[29567],\"lǜ shuài\":[29575],\"wáng wàng\":[29579],\"yáng chàng\":[29594],\"mín wén\":[29599],\"bīn fēn\":[29602],\"mén yǔn\":[29607],\"qiāng cāng\":[29617,29810,31724],\"án gān\":[29621],\"xuán xián\":[29625],\"cī cǐ\":[29628,36304],\"yí tāi\":[29638],\"zǔ jù\":[29639],\"fà\":[29648,29754,34143,39658,39662],\"yín kèn\":[29666],\"huī hún\":[29682],\"xuán qióng\":[29697],\"fú fū\":[29704],\"bǐng pín\":[29717],\"cuì sè\":[29719],\"yù wéi\":[29727],\"tiǎn tiàn\":[29728],\"zhuó zuó\":[29730],\"běng pěi\":[29731],\"guǎn\":[29743,29869,30191,31590,31649,33304,36648,37671,39208,39302,40164],\"hún huī\":[29759],\"xié jiē\":[29774],\"chàng dàng yáng\":[29778],\"tiàn zhèn\":[29809],\"bīn pián\":[29816,29880],\"tú shū\":[29817],\"cuǐ\":[29824,30368,36257],\"zǎo suǒ\":[29829],\"jué qióng\":[29850],\"lú fū\":[29879],\"jì zī\":[29886],\"suí\":[29901,32143,32485,36928,38543,38568,39620],\"mí xǐ\":[29909],\"qióng wěi wèi\":[29911],\"huán yè yà\":[29915],\"bó páo\":[29919],\"zhí hú\":[29921],\"piáo\":[29922,38365],\"wǎ wà\":[29926],\"xiáng hóng\":[29928],\"wèng\":[29934,29973,32587,34169,40774],\"bǎiwǎ\":[29944],\"shèn shén\":[29978],\"ruí\":[29988,32204,34148],\"yòng\":[29992,30781,33498,33935,37279],\"shuǎi\":[29993],\"béng\":[29997,29998],\"yóu zhá\":[30004],\"diàn tián shèng\":[30008],\"tǐng dīng\":[30010,30012],\"zāi zī\":[30014],\"bì qí\":[30017],\"dá fú\":[30039],\"cè jì\":[30047],\"zāi zī tián\":[30048],\"zhì chóu shì\":[30052],\"fān pān\":[30056,30058],\"shē yú\":[30060],\"dāng dàng dǎng\":[30070],\"jiāng qiáng\":[30086],\"pǐ yǎ shū\":[30091],\"jié qiè\":[30092],\"yí nǐ\":[30097],\"nè\":[30098,30514,35365,35767],\"gē yì\":[30105],\"nüè yào\":[30111,30247],\"lì lài\":[30112,30296],\"yǎ xiā\":[30120],\"xuē\":[30134,33926,34203,36773,36778,38772,38846],\"dǎn da\":[30136],\"fá biǎn\":[30138],\"fèi féi\":[30143,30193],\"shān diàn\":[30145],\"téng chóng\":[30155],\"tōng tóng\":[30156],\"wěi yòu yù\":[30159],\"tān shǐ\":[30161],\"pū pù\":[30177,37610],\"bēng péng\":[30189],\"má lìn\":[30195],\"tiǎn diàn\":[30198],\"ān yè è\":[30199],\"kē ē\":[30206],\"zhì chì\":[30216],\"jiǎ xiá xiā\":[30229],\"lěi huì\":[30243],\"chài cuó\":[30245],\"diān chēn\":[30248],\"da dá\":[30249],\"biě biē\":[30250],\"qué\":[30264],\"dàn dān\":[30281],\"guì wēi\":[30288],\"nòng nóng\":[30289],\"biē biě\":[30303],\"bō bǒ\":[30327],\"bái\":[30333],\"jí bī\":[30336],\"de dì dí dī\":[30340],\"pā bà\":[30341],\"gāo háo\":[30347],\"gāo yáo\":[30352],\"lì luò bō\":[30378],\"zhā cǔ\":[30395],\"zhāo zhǎn dǎn\":[30397],\"jiān jiàn\":[30417,30435,37627,38388,38828],\"gài gě hé\":[30422],\"máng wàng\":[30451],\"yuǎn\":[30454,36922,36960],\"tián xián\":[30455],\"xiāng xiàng\":[30456],\"dǔn\":[30457,36280,36489],\"xì pǎn\":[30459],\"shěng xǐng\":[30465],\"yún hùn\":[30467],\"miǎn miàn\":[30468],\"kàn kān\":[30475],\"yìng yāng yǎng\":[30479],\"yǎo āo ǎo\":[30481],\"jū xū kōu\":[30487],\"yí chì\":[30489],\"dié tì\":[30499],\"bǐng fǎng\":[30506],\"pàng pán\":[30507],\"mī mí\":[30511,30599],\"xuàn shùn xún\":[30516],\"tiào\":[30522,31900,31990,35228,36242],\"zhe zhuó zháo zhāo\":[30528],\"qiáo shào xiāo\":[30532],\"cuó zhuài\":[30537],\"gùn\":[30548,35636],\"suì zuì\":[30559],\"pì bì\":[30565,31275,36767],\"yì zé gāo\":[30570],\"xǐng xìng\":[30578],\"guì wèi kuì\":[30598],\"kòu jì\":[30601],\"qióng huán\":[30607],\"mán mén\":[30610,30622],\"diāo dōu\":[30615],\"lou lóu lǘ\":[30620],\"shùn rún\":[30628],\"liào liǎo\":[30637,38028],\"jiàn xián\":[30639],\"wǔ mí\":[30644],\"guì kuì\":[30646],\"nǐng chēng\":[30659],\"huò yuè\":[30662],\"mēng méng\":[30663],\"kuàng guō\":[30668],\"guàn quán\":[30676],\"mǎn mán\":[30677],\"jīn guān qín\":[30684],\"jīn qín guān\":[30685],\"yù xù jué\":[30686],\"jiǎo jiáo\":[30699,30703],\"duǎn\":[30701],\"shí dàn\":[30707],\"gāng qiāng kòng\":[30716],\"huā xū\":[30729],\"pīn bīn fēn\":[30735],\"yán yàn\":[30740,30799],\"luǒ kē\":[30754],\"fú fèi\":[30761,31536],\"zhǔ zhù\":[30763],\"lá lì lā\":[30764],\"kuāng guāng\":[30788],\"gè luò\":[30796],\"shuò shí\":[30805,30889],\"wèi wéi ái\":[30809],\"què kè kù\":[30814],\"mǎng bàng\":[30821],\"luò lòng\":[30822],\"yǒng tóng\":[30823],\"nüè\":[30840,34384],\"kēng kěng\":[30843],\"yān yǎn\":[30845],\"zhuì chuí duǒ\":[30846],\"kōng kòng\":[30847],\"zòng cóng\":[30850],\"jiān zhàn\":[30858],\"lù liù\":[30860,38470],\"què xī\":[30863],\"lún lǔn lùn\":[30870],\"náo gāng\":[30873],\"jié yà\":[30883],\"wèi wěi\":[30888],\"tí dī\":[30894],\"chá chā\":[30900],\"qiāo què\":[30907],\"sù xiè\":[30911],\"liú liù\":[30914,36955,37798,39311],\"sī tí\":[30915],\"bàng páng\":[30917],\"huá kě gū\":[30918],\"wěi kuǐ\":[30920],\"xiá qià yà\":[30925],\"lián qiān\":[30927],\"wèi ái gài\":[30929],\"lá lā\":[30934],\"áo qiāo\":[30941],\"pēng pèng\":[30942,38299],\"yīn yǐn\":[30948],\"lěi léi\":[30949],\"mó mò\":[30952],\"qì zhú\":[30953],\"láo luò\":[30961],\"pán bō\":[30971],\"jí shé\":[30972],\"hé qiāo qiào\":[30985],\"kè huò\":[30986],\"què hú\":[30992],\"è qì\":[31e3],\"cǎ\":[31012,31032],\"xián xín\":[31013],\"léi lěi lèi\":[31015],\"yán yǎn\":[31033],\"qí zhǐ\":[31047,34452],\"bēng fāng\":[31050],\"bì mì\":[31061],\"suàn\":[31064,31495,31597,31639,33948],\"piào piāo\":[31080],\"jì zhài\":[31085],\"shuì lèi\":[31089],\"jìn jīn\":[31105],\"chán shàn\":[31109],\"yáng shāng\":[31123],\"zhī zhǐ tí\":[31124],\"shàn chán\":[31146],\"yú yù ǒu\":[31162],\"zǐ zì\":[31172],\"chá ná\":[31173],\"zhòng zhǒng chóng\":[31181],\"hào mào\":[31183],\"kù kū\":[31193],\"zū\":[31199,33861],\"chèng\":[31204,31338],\"huó kuò\":[31214,31219],\"chēng chèn chèng\":[31216,31281],\"shì zhì\":[31218,37556],\"fù pū\":[31231],\"xùn zè\":[31236],\"tú shǔ\":[31244],\"zhùn zhǔn\":[31253],\"jī qí\":[31256,32168,35309],\"léng líng\":[31260],\"zuì zú sū\":[31265],\"xì qiè\":[31271,37060],\"zhǒng zhòng\":[31278],\"zōng zǒng\":[31279],\"xián jiān liàn\":[31284],\"zī jiū\":[31285],\"jī qǐ\":[31293],\"ròng\":[31299],\"shān cǎn cēn\":[31303],\"mén méi\":[31304],\"jǐ jì\":[31318],\"xiāo rào\":[31320],\"zhuō bó\":[31323],\"tóng zhǒng zhòng\":[31324],\"zuō\":[31325],\"biāo pāo\":[31342,34280],\"zhuō jué\":[31345],\"cuán zàn\":[31347],\"kōng kòng kǒng\":[31354],\"yū yǔ\":[31355],\"zhǎi\":[31364,37465],\"báo\":[31367,38649],\"kū zhú\":[31371],\"jiào liáo liù\":[31372],\"wā guī\":[31376],\"tiǎo yáo\":[31381],\"xūn yìn\":[31400],\"yà yē\":[31403],\"tián diān yǎn\":[31412],\"chāo kē\":[31420],\"kuǎn cuàn\":[31421,31422],\"chù qì\":[31440],\"qǔ kǒu\":[31448],\"jìng zhěn\":[31463],\"kǎn kàn\":[31479],\"zhú dǔ\":[31482],\"lè jīn\":[31483],\"zhuì ruì\":[31501],\"háng hàng\":[31504],\"cén jìn hán\":[31506],\"dā xiá nà\":[31514],\"zé zuó\":[31534],\"lóng lǒng\":[31548,31725,31840,36504,40851],\"zhù zhú\":[31569,31689],\"dá dā\":[31572,33605],\"shāi\":[31579,31721,31745,31853],\"yún jūn\":[31584],\"láng làng\":[31588,37070,38406],\"zhì zhǐ\":[31595],o:[31613],\"póu bù fú pú\":[31617],\"pái bēi\":[31620],\"gè\":[31623,34428,37499,38124],\"tái chí\":[31624],\"guǎi dài\":[31625],\"zhào dào\":[31628],\"jīng qìng\":[31632],\"lín lǐn\":[31638],\"jùn qūn\":[31640],\"shī yí\":[31671,37366],\"yuē yào chuò\":[31673],\"xiāo shuò qiào\":[31678],\"gōng gǎn lǒng\":[31714],\"páng péng\":[31715],\"zhuó huò\":[31719],\"jiǎn jiān\":[31727],\"dí zhú\":[31732],\"zān cēn cǎn\":[31736],\"zhuàn suǎn zuàn\":[31737],\"piǎo biāo\":[31739],\"guó guì\":[31746],\"cè jí\":[31758],\"mì miè\":[31770],\"shāi sī\":[31771],\"sǔn zhuàn\":[31784],\"gàn gǎn\":[31795],\"bò bǒ\":[31800],\"bó bù\":[31807],shi:[31810],\"zhēn jiān\":[31816],\"zhuàn zuǎn\":[31825],\"fān pān biān\":[31827],\"sǒu shǔ\":[31828],\"zuǎn\":[31851,32356,32386,32393,32408,32565],\"nǚ\":[31865,37369,38037],\"shā chǎo\":[31878],\"kāng jīng\":[31879],\"fěn\":[31881,40698],\"cū\":[31895,35285,40577,40580,40612],\"nián zhān\":[31896],\"cè sè\":[31907],\"zhōu yù\":[31909],\"shēn sǎn\":[31937],\"biān biǎn\":[31940,33849],\"miàn\":[31942,38754,38755,40618,40619,40629,40634],\"hú hū hù\":[31946],\"gǔ gòu\":[31955],\"mí méi\":[31964],\"sǎn shēn\":[31965,31971],\"zāo\":[31967,36455,36973,37289],\"mì sī\":[31992],\"jiū jiǔ\":[31994],\"xì jì\":[31995,32363],\"zhēng zhěng\":[31997],\"chà chǎ\":[32001,34921],\"yuē yāo\":[32004,32422],\"hóng gōng\":[32005,32418],\"hé gē\":[32007,32421],\"wén wèn\":[32011,32441],\"fóu\":[32017],\"jì jié jiè\":[32018],\"pī pí bǐ\":[32021,32432],\"jīn jìn\":[32031],\"zhā zā\":[32037,32046],\"hā\":[32038],\"fū fù\":[32040],\"chōu chóu\":[32044],\"lèi léi lěi\":[32047],\"bō bì\":[32052],\"tiǎn zhěn\":[32062],\"jiōng jiǒng\":[32069],\"jié jiē\":[32080,32467,33410],\"guà kuā\":[32083],\"bǎi mò\":[32084],\"gēng huán\":[32089],\"jié xié\":[32092],\"quán shuān\":[32095],\"gǎi ǎi\":[32096],\"luò lào\":[32097,32476],\"bīng bēng pēng\":[32099],\"gěi jǐ\":[32102,32473],\"tóng tōng dòng\":[32103],\"tiào diào dào\":[32105],\"lěi lèi léi\":[32107],\"gāi hài\":[32111],\"chī zhǐ\":[32122],\"wèn miǎn mán wàn\":[32123],\"huán huàn wàn\":[32132],\"qīn xiān\":[32133],\"tì tí\":[32136],\"yán xiàn\":[32150],\"zōng zèng zòng\":[32156],\"chēn lín\":[32157],\"zhǔn zhùn\":[32167],\"qiàn qīng zhēng\":[32170],\"qìng qǐ\":[32174],\"lún guān\":[32184,32438],\"chuò chāo\":[32189,32496],\"tián tǎn chān\":[32194],\"lǜ lù\":[32209,32511],\"ruǎn ruàn\":[32219],\"jí qī\":[32221],\"zhòng chóng\":[32223,37325],\"miáo máo\":[32226],\"xiè yè\":[32228],\"huǎn\":[32233,32531],\"gēng gèng\":[32234,32262],\"tōu xū shū\":[32240],\"zōng zòng\":[32245,32332],\"yùn gǔn\":[32247],\"guā wō\":[32250],\"yùn yūn wēn\":[32252,32277],\"bāng bàng\":[32269],\"gǔ hú\":[32270,40379],\"cī cuò suǒ\":[32274],\"cuī shuāi\":[32279],\"róng rǒng ròng\":[32281],\"zài zēng\":[32289],\"cài\":[32297,33756,34081],\"féng fèng\":[32299],\"suō sù\":[32302,32553],\"yǎn yǐn\":[32303,37203],\"zòng zǒng\":[32305,32437],\"zhuàn juàn\":[32307],\"mò mù\":[32312,33707],\"piǎo piāo\":[32313,32549],\"fán pó\":[32321],\"bēng bèng\":[32323],\"móu miù miào liǎo\":[32326],\"yáo yóu zhòu\":[32327],\"zēng zèng\":[32338,32559],\"jú jué\":[32344],\"chuō chuò\":[32347],\"zūn zǔn\":[32348],\"rào\":[32350,32469,36982],\"chǎn chán\":[32351],\"huì huí\":[32354,32523,34289],\"qiāo sāo zǎo\":[32368],\"jiǎo zhuó\":[32371,32564],\"dàn tán chán\":[32373],\"nǒng\":[32375],\"pú fú\":[32384],\"yào lì\":[32389],\"rǎng xiāng\":[32405],\"lí sǎ xǐ lǐ\":[32410],\"xiān qiàn\":[32420],\"jīng jìng\":[32463],\"tí tì\":[32488],\"bēng běng bèng\":[32503],\"zōng zèng\":[32508],\"jī qī\":[32521],\"wēn yùn yūn\":[32522],\"fèng féng\":[32541],\"shuāi cuī suī\":[32542],\"miù móu liáo miào mù\":[32554],\"qiāo sāo\":[32562],\"fǒu\":[32566,32569,32571,38636,40192],\"bà ba pí\":[32610,32631],\"guà guǎi\":[32619],\"yáng xiáng\":[32650,32655],\"měi gāo\":[32665],\"yì xī\":[32667],\"qiǎng qiān\":[32671],\"qiāng kòng\":[32683],\"qián xián yán\":[32684],\"nóu\":[32698],\"hóng gòng\":[32702],\"pī bì pō\":[32717],\"qú yù\":[32721],\"ké\":[32727],\"qiào qiáo\":[32728],\"zhái dí\":[32735],\"dào zhōu\":[32738],\"hóu qú\":[32757],\"shuǎ\":[32781],\"ruǎn nuò\":[32782],\"ér nài\":[32783],\"zhuān duān\":[32785],\"pá bà\":[32793],\"chí sì\":[32795],\"qù chú\":[32797],\"lún lǔn\":[32803],\"jí jiè\":[32804],\"tāng tǎng\":[32805],\"pǎng\":[32810,35243],\"zhá zé\":[32811],\"yē yé\":[32822],\"yún yíng\":[32826],\"wà tuǐ zhuó\":[32841],\"ér nǜ\":[32847],\"tiē zhé\":[32849],\"dǐ zhì\":[32860],\"qié\":[32890],\"nǐ jiàn\":[32891],\"lèi lē\":[32907],\"cào\":[32911,35161,37173,40732],\"bó dí\":[32913],\"xiào xiāo\":[32918],\"dù dǔ\":[32922],\"chāi\":[32926,37365,38039],\"hán qín hàn\":[32931],\"pàng pán pàn\":[32936,32982],\"zhūn chún\":[32939],\"āng\":[32942,39599],\"yù yō\":[32946],\"pí bǐ bì\":[32950],\"fèi bì\":[32967],\"bèi bēi\":[32972],\"fèi zǐ\":[32975],\"píng pēng\":[32979,33529],\"fū fú zhǒu\":[32981],\"shèng shēng\":[32988],\"kuà\":[33007,36328,39611],\"gǎi hǎi\":[33010],\"gē gé gā\":[33011],\"néng nài\":[33021],\"guī kuì\":[33023],\"mài mò\":[33033],\"zāng zàng\":[33039],\"jiǎo jué\":[33050,35282],\"cuǒ\":[33054],\"de te\":[33062],\"zuī juān\":[33063],\"něi\":[33070,33095,39186,39297,39870,39896],\"pú fǔ\":[33071],\"niào\":[33074],\"shuí\":[33085],\"guò\":[33090,36942,37945],\"là xī\":[33098],\"yān ā\":[33100],\"gāo gào\":[33167],\"lù biāo\":[33172],\"chuái\":[33175],\"zhuān chuán chún zhuǎn\":[33182],\"chuài\":[33194,36409],\"fán pán\":[33200],\"wǔ hū\":[33204],\"shān dàn\":[33211],\"tún\":[33216,33227,34508,35928,35930,36568,38677,39145,39272,39784,40064,40663],\"bì bei\":[33218],\"là gé\":[33224],\"sào sāo\":[33226],\"nào\":[33233,38297,38393,39719],\"ní luán\":[33249],\"qiān xián\":[33252],\"guàng jiǒng\":[33254],\"guǎng jiǒng\":[33257],\"chòu xiù\":[33261],\"mián biān\":[33265],\"dié zhí\":[33271],\"zhī jìn\":[33272],\"shè shě\":[33293],\"pù\":[33302,33303],\"bān bō pán\":[33324],\"kuā\":[33343],\"gèn gěn\":[33390],\"sè shǎi\":[33394],\"fú bó\":[33396],\"jiāo qiú\":[33405],\"chāi chā\":[33414],\"sháo què\":[33421],\"hù xià\":[33424],\"zì zǐ\":[33427],\"huì hū\":[33428],\"tún chūn\":[33434],\"jiè gài\":[33445],\"xù zhù\":[33447],\"yuán yán\":[33451],\"xīn xìn\":[33455],\"lún huā\":[33458],\"wù hū\":[33460],\"gōu gǒu\":[33462],\"mào máo\":[33468],\"fèi fú\":[33470],\"chán yín\":[33474],\"qiē\":[33478],\"sū sù\":[33487],\"tiáo sháo\":[33493],\"lì jī\":[33497],\"kē hē\":[33499],\"jù qǔ\":[33507],\"ruò rě\":[33509],\"zhù níng\":[33511],\"pā bó\":[33513],\"xiú\":[33516],\"zhǎ zuó\":[33522],\"jū chá\":[33524],\"nié\":[33526],\"shēng ruí\":[33532],\"qié jiā\":[33540],\"zǐ cí\":[33544],\"qiàn xī\":[33564],\"chǎi\":[33565],\"fá pèi\":[33591],\"ráo\":[33627,34136,35155,39250,39286],\"yíng xíng\":[33637],\"qián xún\":[33640,34113],\"yìn yīn\":[33643],\"hé hè\":[33655],\"shā suō\":[33678],\"péng fēng\":[33681],\"shēn xīn\":[33688],\"wǎn guān guǎn\":[33694],\"yóu sù\":[33700],\"shāo xiāo\":[33702,34552],\"làng liáng\":[33704],\"piǎo fú\":[33705],\"wèn wǎn miǎn\":[33708],\"shì shí\":[33715,33940],\"tù tú\":[33717],\"xiān liǎn\":[33718,34207],\"wǎn yù\":[33728],\"zōu chù\":[33734],\"lù lǜ\":[33737],\"jūn jùn\":[33740],\"niè rěn\":[33741],\"zī zì zāi\":[33745],\"tú tù\":[33759],\"jiē shà\":[33768],\"qiáo zhǎo\":[33772],\"tái zhī chí\":[33773],\"fēi fěi\":[33778,34586],\"qín qīn jīn\":[33779],\"zū jù\":[33785,33961],\"lǐn má\":[33787],\"tián tiàn\":[33790],\"tiē\":[33820,36028,36148],\"luò là lào luō\":[33853],\"zhù zhuó zhe\":[33879],\"shèn rèn\":[33882],\"gě gé\":[33883],\"jùn suǒ\":[33904],\"kuì kuài\":[33929],\"rú ná\":[33944],\"méng mēng měng\":[33945],\"yuán huán\":[33949],\"xú shú\":[33955],\"xí xì\":[33973],\"mì míng\":[33986],\"sōu sǒu\":[33987],\"gài gě hé hài\":[33995],\"yǎo zhuó\":[34004],\"diào tiáo dí\":[34023],\"xū qiū fū\":[34034],\"zí jú\":[34043],\"liǎo lù\":[34044],xu:[34047],\"hàn hǎn\":[34058],\"màn wàn mán\":[34067],\"pó bò\":[34082],\"fān fán bō\":[34115],\"hóng hòng\":[34171],\"yù ào\":[34177,38569],\"xí xiào\":[34178],\"báo bó bò\":[34180],\"cí zī\":[34187],\"wàn luàn\":[34189],\"kǎo hāo\":[34215],\"yuǎn wěi\":[34227],\"zhòu chóu\":[34229],\"wō mái\":[34230],\"xiāo hào\":[34243],\"yù xù xū\":[34247],\"jiè jí\":[34249],\"diào zhuó\":[34251],\"cáng zàng\":[34255],\"lǎ\":[34270],\"chú zhū\":[34296],\"pín píng\":[34315],\"gān hán\":[34423],\"hóng jiàng\":[34425],\"huī huǐ\":[34426],\"xiā há\":[34430],\"mǎ mà mā\":[34434],\"fāng bàng\":[34436],\"bàng bèng\":[34444],\"jué quē\":[34455],\"qín qián\":[34457],\"gōng zhōng\":[34467],\"fǔ fù\":[34469],\"dài dé\":[34478],\"gǒu qú xù\":[34492],\"bǒ pí\":[34494],\"shé yí\":[34503],\"tiě\":[34504,37444,37525,37921,37941,38081,39510],\"gé luò\":[34514],\"máng bàng\":[34518],\"yì xǔ\":[34529],\"há gé\":[34532],\"qiè ní\":[34538],\"é yǐ\":[34558],\"zhē zhé\":[34567],\"là zhà\":[34593],\"suò\":[34614,36900],\"yóu qiú\":[34660],\"xiā hā\":[34662],\"xī qī\":[34695],\"bī pí\":[34709],\"nài něng\":[34714],\"hé xiá\":[34715],\"guì huǐ\":[34717],\"mǎ mā mà\":[34718],\"shì zhē\":[34731],\"zhì dié\":[34738],\"jiàn chán\":[34745],\"ma má mò\":[34758],\"mǎng měng\":[34770],\"biē bié\":[34782],\"bēn fèi\":[34790],\"láo liáo\":[34791],\"yín xún\":[34795],\"lí lǐ\":[34849],\"xuè xiě\":[34880],\"xíng háng hàng héng\":[34892],\"shuāi cuī\":[34928],\"tuó tuō\":[34953],\"lǐng líng\":[34954],\"bào páo pào\":[34956],\"jù jiē\":[34963],\"hè kè\":[34964],\"yí yì\":[34968,36004],\"nà jué\":[34982],\"bèi pī\":[34987],\"chǐ nuǒ\":[34994],\"chǐ qǐ duǒ nuǒ\":[34995],\"jiá qiā jié\":[34999],\"bó mò\":[35001],\"guī guà\":[35007],\"liè liě\":[35010],\"chéng chěng\":[35022],\"jiē gé\":[35027],\"dāo chóu\":[35055],\"shang cháng\":[35059],\"yuān gǔn\":[35063],\"yǎn ān\":[35066],\"tì xī\":[35068],\"fù fú\":[35092],\"chǔ zhǔ\":[35098],\"tuì tùn\":[35114],\"lǎi\":[35184],\"yào yāo\":[35201],\"qín tán\":[35203],\"jiàn xiàn\":[35211,35265],\"piǎn\":[35217,35550,35869,36021],\"piē miè\":[35221],\"yíng yǐng\":[35246],\"qù qū\":[35248,35255,35281],\"jiàn biǎn\":[35253],\"luó luǎn\":[35254],\"zī zuǐ\":[35292],\"huà xiè\":[35295],\"jiě jiè xiè\":[35299,35303],\"xué hù\":[35319],\"lì lù\":[35323],\"tǎo\":[35342,35752],\"zhùn\":[35376],\"zī zǐ\":[35390],\"yí dài\":[35410,35794],\"xiòng\":[35415,35783],\"diào tiǎo\":[35458],\"yí chǐ chì\":[35459],\"lǎng làng\":[35471],\"ēi éi ěi èi xī\":[35474,35830],\"shuà\":[35484],\"yǔ yù\":[35486,35821,38632],\"shuō shuì yuè\":[35498,35828],\"shuí shéi\":[35504,35841],\"qū juè\":[35507],\"chī lài\":[35514],\"nì ná\":[35517],\"diào tiáo\":[35519],\"pǐ bēi\":[35520],\"jì jī\":[35525],\"zé zuò zhǎ cuò\":[35534],\"chù jí\":[35540],\"háo xià\":[35541],\"lùn lún\":[35542,35770],\"shì dì\":[35551],\"huà guā\":[35555],\"xǐ shāi āi\":[35568],\"nán nàn\":[35573,38627],\"miù\":[35628,35884],\"zèn\":[35670,35886],\"shí zhì\":[35672,35782],\"juàn xuān\":[35714],\"yí tuī\":[35721],\"zhán\":[35741],\"xǔ hǔ\":[35768],\"xiáng yáng\":[35814],\"tiáo diào zhōu\":[35843],\"chén shèn\":[35852],\"mí mèi\":[35868],\"màn mán\":[35881],\"gǔ yù\":[35895],\"huō huò huá\":[35905],\"zhì zhài\":[35960],\"huān huán\":[35974],\"kěn kūn\":[35975],\"mò hé\":[35976],\"mò hé háo\":[35977],\"jù lóu\":[35991],\"zé zhài\":[36012,36131],\"dài tè\":[36024],\"bì bēn\":[36033],\"jiǎ gǔ jià\":[36040],\"xiōng mín\":[36079],\"càng\":[36086],\"zhuàn zuàn\":[36090,36186],\"wàn zhuàn\":[36099],\"gàn gòng zhuàng\":[36123],\"yuán yùn\":[36128],\"bēn bì\":[36146],\"jiǎ gǔ\":[36158],\"zǒu\":[36208,36209,39888],\"dié tú\":[36227],\"jū qiè\":[36228],\"qū cù\":[36235,36264],\"jí jié\":[36236],\"guā huó\":[36239],\"què qì jí\":[36254],\"tàng tāng\":[36255],\"chuō zhuó\":[36256],\"qù cù\":[36259],\"yuè tì\":[36271],\"bō bào\":[36277],\"kuà wù\":[36278],\"guì jué\":[36281],\"fāng fàng páng\":[36285],\"páo bà\":[36289],\"qí qǐ\":[36290],\"jiàn chén\":[36296],\"pǎo páo\":[36305],\"diǎn diē tiē\":[36309],\"jū jù qiè\":[36313],\"bǒ\":[36315],\"luò lì\":[36318],\"dài duò duō chí\":[36322],\"zhuǎi\":[36329],\"bèng pián\":[36336],\"tiào táo\":[36339],\"shū chōu\":[36350],\"liàng liáng\":[36361],\"tà tā\":[36367],\"chǎ\":[36421,37972,38258],\"dí zhí\":[36450],\"dēng dèng\":[36460,37913,38251],\"cèng\":[36461],\"dūn cún\":[36466],\"juě jué\":[36470],\"liāo\":[36477],\"xiè sǎ\":[36512],\"tǐ\":[36528,36550,39605],\"yà zhá gá\":[36555],\"xìn xiàn\":[36560],\"fàn guǐ\":[36563],\"zhuàn zhuǎn\":[36578],\"zhóu zhòu\":[36600,36724],\"bú\":[36688,37293,40170],\"zhuǎn zhuàn zhuǎi\":[36716],\"zǎi zài\":[36733],\"niǎn zhǎn\":[36759],\"biān bian\":[36793],\"dào biān\":[36794],\"yǐ yí\":[36806,36836,36849],\"guò guo guō\":[36807],\"wàng kuāng\":[36811],\"hái huán\":[36824],\"zhè zhèi\":[36825],\"yuǎn yuàn\":[36828],\"zhì lì\":[36835],\"zhù wǎng\":[36844],\"zhuī duī\":[36861],\"shì kuò\":[36866],\"tòu\":[36879],\"tōng tòng\":[36890],\"guàng\":[36891],\"dǎi dài\":[36910],\"suì suí\":[36930],\"tí dì\":[36934],\"yí wèi\":[36951],\"shì dí zhé\":[36969],\"cà\":[36970],\"huán hái\":[36996],\"lí chí\":[37004],\"kàng háng\":[37023],\"nà nèi nā\":[37027],\"xié yá yé yú xú\":[37034],\"gāi hái\":[37058],\"huán xún\":[37063],\"chī xī\":[37079],\"hǎo\":[37085],\"lì zhí\":[37094],\"xiáo ǎo\":[37097],\"dōu dū\":[37117],\"liǎo\":[37149,38269],\"zàn cuán cuó\":[37186,37191],\"dīng dǐng\":[37194],\"cù zuò\":[37218],\"fā pō\":[37222],\"shāi shī\":[37246],\"niàng\":[37247,37304],\"qiú chōu\":[37268],\"pō fā\":[37271,37297],\"chǎn chěn\":[37286],\"yàn liǎn xiān\":[37302],\"niàng niáng\":[37312],\"lǐ li\":[37324],\"lí xǐ xī\":[37328],\"liǎo liào\":[37333],\"dīng dìng\":[37336,38025],\"qiǎo jiǎo\":[37349],\"yú huá\":[37354],\"huá wū\":[37355],\"rì rèn jiàn\":[37360,37372],\"dì dài\":[37361],\"pī zhāo\":[37373],\"yá yé\":[37374],\"bǎ pá\":[37376,38063],\"tā tuó\":[37448,38090],\"běi\":[37491],\"bǐng píng\":[37500],\"hā kē\":[37503,38122],\"chòng\":[37507,38131],\"xiǎng jiōng\":[37508],\"yù sì\":[37513],\"xù huì\":[37514],\"rén rěn\":[37515],\"shàn shuò\":[37519],\"chì lì\":[37520],\"xiǎn xǐ\":[37521,38115],\"hóu xiàng\":[37527],\"diào tiáo yáo\":[37530],\"xiān kuò tiǎn guā\":[37531,37565,38118],\"zhé niè\":[37560],\"zhōng yōng\":[37567],\"tōu tù dòu\":[37568],\"méi méng\":[37570],\"wàn jiǎn\":[37572,37803],\"tǐng dìng\":[37580,38116],\"juān jiān cuān\":[37585],\"sī tuó\":[37590],\"juān xuān juàn\":[37591],\"wú huá wū\":[37592],\"zhuó chuò\":[37596],\"xíng xìng jīng\":[37598],\"jū jú\":[37606,38164],\"zuì niè\":[37623],\"yuān yuǎn wǎn wān\":[37626],\"gāng gàng\":[37628,38050],\"zhuī\":[37648,38181,39429,39571,40315],\"ā\":[37650,38165],\"cuō chā\":[37768],\"suǒ sè\":[37773],\"yáo zú\":[37776],\"yè tà gé\":[37777],\"qiāng chēng\":[37783],\"gé lì\":[37784,38217,39730],\"bī pī bì\":[37790],\"gǎo hào\":[37804],\"zú chuò\":[37827],\"xiū xiù\":[37829],\"shòu sōu\":[37833],\"dí dī\":[37841,38237],\"qiāo sǎn càn\":[37842],\"lù áo\":[37845],\"tāng táng\":[37852],\"jiàn zàn\":[37865],\"huì suì ruì\":[37880],\"qiǎng qiāng\":[37881,38250],\"sǎn xiàn sà\":[37886],\"jiǎn jiàn\":[37927,38159],\"dāng chēng\":[37946,38107],\"zuān zuàn\":[38013],\"sà xì\":[38033],\"yào yuè\":[38053],\"tǒu dǒu\":[38061],\"zuàn zuān\":[38075],\"qiān yán\":[38085],\"pí pī\":[38093],\"yáo diào tiáo\":[38123],\"tāng tàng\":[38132],\"pù pū\":[38138],\"tán xiān\":[38188],\"liù liú\":[38223],\"hào gǎo\":[38224],\"táng tāng\":[38231],\"tán chán xín\":[38241],\"huò shǎn\":[38276],\"hàn bì\":[38280,38380],\"kāng kàng\":[38284,38390],\"xián jiàn jiān jiǎn\":[38290],\"xiā xiǎ\":[38293],\"xiǎ kě\":[38300],\"biàn guān\":[38302],\"hé gé\":[38308,39052],\"hòng xiàng\":[38311],\"sē xī\":[38314],\"tíng tǐng\":[38318],\"è yān\":[38332,38415],\"hòng juǎn xiàng\":[38338],\"bǎn pàn\":[38342],\"dū shé\":[38349,38407],\"què quē\":[38357],\"tāng táng chāng\":[38363],\"kàn hǎn\":[38366,38426],\"xì sè tà\":[38367],\"mēn mèn\":[38391],\"quē què\":[38425],\"yán diàn\":[38461],\"ā ē\":[38463],\"bēi pō pí\":[38466],\"yàn yǎn\":[38529],\"yú yáo shù\":[38531],\"lóng lōng\":[38534],\"duì zhuì\":[38538],\"suí duò\":[38539],\"gāi qí ái\":[38545],\"huī duò\":[38547,38579],\"wěi kuí\":[38551],\"lì dài\":[38584],\"zhuī cuī wéi\":[38585],\"hè hú\":[38586,40366],\"jùn juàn\":[38589,38603],\"nán nàn nuó\":[38590],\"què qiāo qiǎo\":[38592],\"guàn huán\":[38618],\"guī xī\":[38623],\"sè xí\":[38637],\"án\":[38648],\"wù méng\":[38650],\"tèng\":[38703],\"lù lòu\":[38706],\"mái\":[38718],\"jìng liàng\":[38746],\"gé jí\":[38761],\"bǎ\":[38774],\"yāng yàng\":[38789],\"gé tà sǎ\":[38792],\"biān yìng\":[38805],\"qiào shāo\":[38808],\"juān xuān\":[38809],\"shàng zhǎng\":[38813],\"pí bǐng bì bēi\":[38814],la:[38817],\"xiè dié\":[38818],\"ēng\":[38821],\"móu mù\":[38826],\"bì bǐng\":[38840],\"mèi wà\":[38862],\"rǒu\":[38870],\"shè xiè\":[38872],\"yùn wēn\":[38891],\"dùn dú\":[38931,39039],\"duǐ\":[38951],\"luō\":[38961],\"bīn pín\":[38971],\"yóng\":[38994,39065,39979],\"mān\":[39010,39071],\"jǐng gěng\":[39048],\"jié xié jiá\":[39049],\"kē ké\":[39055],\"pín bīn\":[39057],\"chàn zhàn\":[39076],\"fēng fěng\":[39080,39118],\"biāo diū\":[39081],\"bá fú\":[39088],\"sāo sōu\":[39102],\"liù liáo\":[39106],\"shí sì yì\":[39135],\"yǎng juàn\":[39148],\"zhù tǒu\":[39155],\"yí sì\":[39156],\"zuò zé zhā\":[39157],\"tiè\":[39163,39214],\"xiǎng náng\":[39263],\"táng xíng\":[39271],\"gē le\":[39289],\"chā zha\":[39303],\"náng nǎng\":[39317],\"yūn wò\":[39335],\"zhī shì\":[39350],\"xìn jìn\":[39352],\"kuài jué\":[39363],\"zǎng\":[39380,39541],\"tái dài\":[39384],\"xún xuān\":[39400],\"liáng láng\":[39418],\"piàn\":[39447,39449,39575,39800],\"dài tái\":[39552],\"sāo sǎo\":[39578],\"gǔ gū\":[39592],\"bèi mó\":[39603],\"xiāo qiāo\":[39609],\"bǎng pǎng\":[39624],\"bó jué\":[39625],\"bì pǒ\":[39666],\"máo méng\":[39667],\"kuò yuè\":[39674],\"bā bà\":[39774,40067],\"jì cǐ\":[39814],\"bó bà\":[39818],\"zhǎ zhà\":[39827,40074],\"chóu dài\":[39832],\"luò gé\":[39845],\"guī xié wā kuí\":[39853],\"xiān xiǎn\":[39854,40092],\"pū bū\":[39878],\"yì sī\":[39907],\"bà bó\":[40076],\"guī xié\":[40081],\"sāi xǐ\":[40131],\"niǎo diǎo\":[40165],\"diāo zhāo\":[40173],\"gān hàn yàn\":[40177],\"fū guī\":[40186],\"jiān qiān zhān\":[40189],\"hé jiè\":[40353],\"piān biǎn\":[40355],\"chuàn zhì\":[40360],\"cāng qiāng\":[40364],\"sǔn xùn\":[40381],\"biāo páo\":[40579],\"zhù cū\":[40582],\"jūn qún\":[40583,40597],chi:[40630],\"mó me\":[40636],\"mó me ma\":[40637],\"mí mǒ\":[40639],\"dàn shèn\":[40686],\"zhěn yān\":[40688],\"dǎn zhǎn\":[40693],\"miǎn mǐn měng\":[40702],\"hōu\":[40769],\"nàng\":[40777],\"qí jì zī zhāi\":[40784],\"yín kěn yǎn\":[40834],\"yín kěn\":[40840],\"gōng wò\":[40847],\"guī jūn qiū\":[40860,40863]},o=[];Object.keys(s).forEach((function(n){for(var h=0,g=s[n];h5)t(n,5,g,i);else if(h<=1)for(var u=0;u-1){b[h][u].split(\" \").forEach((function(n,h){g[i+z+h]={origin:u[h],result:n,isZh:!0,originPinyin:n}}));var s=n.slice(0,z);t(s,s.length,g,i);var o=n.slice(z+u.length);return t(o,o.length,g,i+z+u.length),{value:void 0}}};for(var y in b[h]){var j=o(y);if(\"object\"==typeof j)return j.value}t(n,h-1,g,i)}},q=function(n,h,g,i){var u=function(h){var u=n.indexOf(h);if(u>-1){z[h].split(\" \").forEach((function(n,z){g[i+u+z]={origin:h[z],result:n,isZh:!0,originPinyin:n}}));var s=n.slice(0,u);q(s,s.length,g,i);var o=n.slice(u+h.length);return q(o,o.length,g,i+u+h.length),{value:void 0}}};for(var s in z){var o=u(s);if(\"object\"==typeof o)return o.value}t(n,h,g,i)},w=function(n,h,g,i,u){var z=d(),s=function(h){var s=n.indexOf(h);if(s>-1){z[h].split(\" \").forEach((function(n,u){g[i+s+u]={origin:h[u],result:n,isZh:!0,originPinyin:n}}));var o=n.slice(0,s);w(o,o.length,g,i,u);var y=n.slice(s+h.length);return w(y,y.length,g,i+s+h.length,u),{value:void 0}}};for(var o in z){var y=s(o);if(\"object\"==typeof y)return y.value}\"surname\"===u?q(n,h,g,i):t(n,h,g,i)},m=function(n){return n.replace(/(ā|á|ǎ|à)/g,\"a\").replace(/(ō|ó|ǒ|ò)/g,\"o\").replace(/(ē|é|ě|è)/g,\"e\").replace(/(ī|í|ǐ|ì)/g,\"i\").replace(/(ū|ú|ǔ|ù)/g,\"u\").replace(/(ǖ|ǘ|ǚ|ǜ)/g,\"ü\").replace(/(ń|ň|ǹ)/g,\"n\")},f=function(u){for(var z=[],s=[],o=0,y=u.split(\" \");o=0;u--){var z=i[u],s=i[u+1];/[\\uD800-\\uDBFF]/.test(z.result)&&/[\\uDC00-\\uDFFF]/.test(s.result)&&(z.origin+=s.origin,z.result+=s.result,z.originPinyin=z.result,s.delete=!0,u--)}return i.filter((function(n){return!n.delete}))}(n,h.mode||\"normal\",!!Object.keys(c).length);return g=function(n,h){var g=h.nonZh;if(\"removed\"===g)return n.filter((function(n){return n.isZh}));if(\"consecutive\"===g){for(var i=n.length-2;i>=0;i--){var u=n[i],z=n[i+1];u.isZh||z.isZh||(u.origin+=z.origin,u.result+=z.result,z.delete=!0)}return n.filter((function(n){return!n.delete}))}return n}(g,h),k(n,h)&&(g=k(n,h)),function(n,h){switch(h.pattern){case\"pinyin\":break;case\"num\":n.forEach((function(n){n.result=p(n.result)}));break;case\"initial\":n.forEach((function(n){n.result=f(n.result).initial}));break;case\"final\":n.forEach((function(n){n.result=f(n.result).final}));break;case\"first\":n.forEach((function(n){n.result=e(n.result)}));break;case\"finalHead\":n.forEach((function(n){n.result=r(n.result).head}));break;case\"finalBody\":n.forEach((function(n){n.result=r(n.result).body}));break;case\"finalTail\":n.forEach((function(n){n.result=r(n.result).tail}))}}(g,h),a(g,h),function(n,h){h.v&&n.forEach((function(n){n.result=n.result.replace(/ü/g,\"v\")}))}(g,h),function(n,h,g){if(h.multiple&&1===j(g)){var i=\"\";n=n.filter((function(n){var h=n.result!==i;return i=n.result,h}))}return\"array\"===h.type?n.map((function(n){return n.result})):\"all\"===h.type?n.map((function(n){var h=n.isZh?n.result:\"\",g=f(h),i=g.initial,u=g.final,z=r(h),s=z.head,o=z.body,y=z.tail;return{origin:n.origin,pinyin:h,initial:i,final:u,first:n.isZh?e(n.result):\"\",finalHead:s,finalBody:o,finalTail:y,num:Number(p(n.originPinyin)),isZh:n.isZh}})):n.map((function(n){return n.result})).join(\" \")}(g,h,n)}var Z=function(n,h){for(var g=[],i=h,u=function(h){if(n[h]===i[0])return i=i.slice(1),g.push(h),\"continue\";var u=E(n[h],{toneType:\"none\",multiple:!0,type:\"array\"}),z=0;return u.forEach((function(n){var h=F(n,i);h>z&&(z=h)})),z&&(i=i.slice(z),g.push(h)),i?void 0:\"break\"},z=0;z void;\n}\n\nexport const QUICKSTART = 'quickstart';\ntype IquickMenuItem = MenuItemProps & { primaryKey: string; primaryLabel: string; stared: boolean };\nconst flattenMenu = (items: IMenuProps[]): IquickMenuItem[] => {\n const localCache = JSON.parse(localStorage.getItem(QUICKSTART) || '{}');\n return items\n .filter((i) => !!i)\n .map((item: SubMenuProps) => {\n if (item.children) {\n return item.children\n .filter((i) => !!i)\n .map((i) => ({\n ...item,\n ...i,\n primaryKey: item.key,\n primaryLabel: item.label,\n children: undefined,\n stared: localCache[i.key],\n }));\n } else {\n return { ...item, stared: localCache[item.key], primaryKey: item.key, primaryLabel: item.label };\n }\n })\n .flat(2);\n};\n\nconst calcVisibleMenuRange = (scrollTop, type: 'menu' | 'starMenu') => {\n const map = { menu: 9, starMenu: 3 };\n const scrollItemNum = Math.floor(scrollTop / 38);\n return [scrollItemNum, scrollItemNum + map[type]];\n};\n\nexport default function Quickstart(props: Props) {\n const { t, i18n } = useTranslation('fc-menu');\n const { visible, onVisibleChange, items } = props;\n const inputRef = useRef(null);\n const ref = useRef(null);\n const starRef = useRef(null);\n const [search, setSearch] = useState('');\n const [menus, setMenus] = useState(flattenMenu(items));\n const recentMenuKeys: string[] = JSON.parse(localStorage.getItem(QUICKSTART + 'recent') || '[]');\n const [lockMouseHover, setLockMouseHover] = useState(false);\n const recentMenus = recentMenuKeys.map((k) => menus.find((item) => item.key === k)).filter((p) => p);\n const [activeIndex, setActiveIndex] = useState(0);\n const [recentActiveIndex, setRecentActiveIndex] = useState(-1);\n const [starActiveIndex, setStarActiveIndex] = useState(-1);\n const displayMenus = menus.filter(\n (menu) =>\n !search ||\n match(menu.label, search) ||\n match(menu.primaryLabel, search) ||\n menu.label.includes(search) ||\n menu.primaryLabel.includes(search),\n );\n const staredMenus = menus.filter((item) => item.stared);\n const handleMenuStar = (key, v, e) => {\n e.stopPropagation();\n const localCache = JSON.parse(localStorage.getItem(QUICKSTART) || '{}');\n localCache[key] = v;\n localStorage.setItem(QUICKSTART, JSON.stringify(localCache));\n setMenus(flattenMenu(items));\n };\n const handleKeyPress = (e) => {\n setLockMouseHover(true);\n switch (e.key) {\n case 'ArrowDown':\n setActiveIndex((activeIndex) => {\n if (activeIndex === -1) return -1;\n const i = activeIndex < displayMenus.length - 1 ? activeIndex + 1 : activeIndex;\n const visibleRange = calcVisibleMenuRange(ref.current.scrollTop, 'menu');\n if (i > visibleRange[1]) {\n ref.current.scrollTop = ref.current.scrollTop + 38;\n }\n return i;\n });\n setStarActiveIndex((starActiveIndex) => {\n if (starActiveIndex === -1) return -1;\n const i = starActiveIndex < staredMenus.length - 1 ? starActiveIndex + 1 : starActiveIndex;\n const visibleRange = calcVisibleMenuRange(starRef.current.scrollTop, 'starMenu');\n if (i > visibleRange[1]) {\n starRef.current.scrollTop = starRef.current.scrollTop + 38;\n }\n return i;\n });\n setRecentActiveIndex((recentActiveIndex) => {\n if (recentActiveIndex === -1) return -1;\n if (recentActiveIndex === recentMenuKeys.length - 1) {\n setStarActiveIndex(0);\n starRef.current.scrollTop = 0;\n return -1;\n }\n return recentActiveIndex < recentMenuKeys.length - 1 ? recentActiveIndex + 1 : recentActiveIndex;\n });\n\n break;\n case 'ArrowUp':\n setActiveIndex((activeIndex) => {\n if (activeIndex === -1) return -1;\n const i = activeIndex == 0 ? 0 : activeIndex - 1;\n const visibleRange = calcVisibleMenuRange(ref.current.scrollTop, 'menu');\n if (i < visibleRange[0]) {\n ref.current.scrollTop = ref.current.scrollTop - 38;\n }\n return i;\n });\n setRecentActiveIndex((recentActiveIndex) => {\n if (recentActiveIndex === -1) return -1;\n return recentActiveIndex == 0 ? 0 : recentActiveIndex - 1;\n });\n setStarActiveIndex((starActiveIndex) => {\n if (starActiveIndex === -1) return -1;\n if (starActiveIndex === 0) {\n starRef.current.scrollTop = 0;\n setRecentActiveIndex(recentMenuKeys.length - 1);\n return -1;\n }\n const i = starActiveIndex == 0 ? 0 : starActiveIndex - 1;\n const visibleRange = calcVisibleMenuRange(starRef.current.scrollTop, 'starMenu');\n if (i < visibleRange[0]) {\n starRef.current.scrollTop = starRef.current.scrollTop - 38;\n }\n return i;\n });\n break;\n case 'ArrowRight':\n if (activeIndex === -1) return;\n setActiveIndex(-1);\n setRecentActiveIndex(0);\n break;\n case 'ArrowLeft':\n if (activeIndex > -1) return;\n setActiveIndex(0);\n setRecentActiveIndex(-1);\n setStarActiveIndex(-1);\n ref.current.scrollTop = 0;\n break;\n case 'Enter':\n if (activeIndex > -1) {\n handleClick(displayMenus[activeIndex]);\n }\n if (recentActiveIndex > -1) {\n handleClick(recentMenus[recentActiveIndex] as IquickMenuItem);\n }\n if (starActiveIndex > -1) {\n handleClick(staredMenus[starActiveIndex]);\n }\n break;\n default:\n break;\n }\n };\n\n const handleClick = (item: IquickMenuItem) => {\n onVisibleChange(item);\n\n localStorage.setItem(\n QUICKSTART + 'recent',\n JSON.stringify([item.key, ...recentMenuKeys.filter((i) => i !== item.key)].slice(0, 5)),\n );\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n return () => {\n document.removeEventListener('keydown', handleKeyPress);\n };\n }, [displayMenus, recentMenuKeys, staredMenus]);\n\n useEffect(() => {\n inputRef.current.focus();\n }, []);\n\n return (\n onVisibleChange()}\n onCancel={() => onVisibleChange()}\n >\n }\n value={search}\n onChange={(e) => {\n setActiveIndex(0);\n setRecentActiveIndex(-1);\n setStarActiveIndex(-1);\n setSearch(e.target.value);\n }}\n />\n
setLockMouseHover(false)}>\n
\n
{t('快捷菜单')}
\n
\n {displayMenus.map((item, i) => (\n {\n if (lockMouseHover) return;\n setActiveIndex(i);\n setStarActiveIndex(-1);\n setRecentActiveIndex(-1);\n }}\n onClick={() => handleClick(item)}\n >\n \n {item.icon}\n {item.primaryLabel}\n {item.label}\n \n {item.stared ? (\n handleMenuStar(item.key, 0, e)} />\n ) : (\n handleMenuStar(item.key, 1, e)} />\n )}\n
\n ))}\n
\n
\n \n
\n
{t('近期使用')}
\n
\n {recentMenus.map((item: IquickMenuItem, i) => (\n {\n if (lockMouseHover) return;\n setRecentActiveIndex(i);\n setActiveIndex(-1);\n setStarActiveIndex(-1);\n }}\n onClick={() => handleClick(item)}\n >\n \n {item.icon}\n {item.primaryLabel}\n {item.label}\n \n {item.stared ? (\n handleMenuStar(item.key, 0, e)} />\n ) : (\n handleMenuStar(item.key, 1, e)} />\n )}\n
\n ))}\n
\n
{t('个人收藏')}
\n
\n {staredMenus.map((item: IquickMenuItem, i) => (\n {\n if (lockMouseHover) return;\n setStarActiveIndex(i);\n setRecentActiveIndex(-1);\n setActiveIndex(-1);\n }}\n onClick={() => handleClick(item)}\n >\n \n {item.icon}\n {item.primaryLabel}\n {item.label}\n \n
\n ))}\n \n \n \n \n );\n}\n","import React, { useState, useEffect, createContext } from 'react';\nimport { Tooltip } from 'antd';\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';\nimport { IMenuProps, SubMenuProps } from './types';\nimport './index.less';\nimport SubMenu from './subMenu';\nimport createGlobalState from 'react-use/esm/factory/createGlobalState';\nimport className from 'classnames';\nimport SkimMenu from './skimMenu';\nimport Quickstart, { QUICKSTART } from './quickstart';\nimport { useTranslation } from 'react-i18next';\nimport en_US from './locales/en_US.json';\nimport zh_HK from './locales/zh_HK.json';\n\ninterface Props {\n items: IMenuProps[];\n onClick: (key: string) => void;\n collapsed: string | null;\n switchCollapsed: () => void;\n defaultSelectedKeys?: string[];\n selectedKeys?: string[];\n quickIcon: React.ReactNode;\n quickActiveIcon?: React.ReactNode;\n fullModeWidth?: number;\n}\n\nexport type { IMenuProps };\n\nexport const useMenuSelect = createGlobalState([]);\nexport const useMenuActive = createGlobalState([]);\n\nvar isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n\nexport default function FcMenu(props: Props) {\n const {\n fullModeWidth,\n items,\n onClick,\n collapsed,\n switchCollapsed,\n defaultSelectedKeys,\n selectedKeys,\n quickIcon,\n quickActiveIcon,\n } = props;\n const [, setMenuActive] = useMenuActive();\n const [menuSelect, setMenuSelect] = useMenuSelect();\n const [shouldClick, setShouldClick] = useState(true);\n const [isQuickPanelVisible, setQuickPanelVisible] = useState(false);\n\n const { t, i18n } = useTranslation('fc-menu');\n\n useEffect(() => {\n i18n.addResourceBundle('en_US', 'fc-menu', en_US, true, true);\n i18n.addResourceBundle('zh_HK', 'fc-menu', zh_HK, true, true);\n }, []);\n\n useEffect(() => {\n if (shouldClick && menuSelect.length > 0) {\n if (menuSelect.includes(QUICKSTART)) {\n setQuickPanelVisible(true);\n } else {\n onClick(menuSelect[menuSelect.length - 1]);\n setMenuActive([]);\n }\n }\n setShouldClick(true);\n }, [menuSelect]);\n\n useEffect(() => {\n setShouldClick(false);\n if (defaultSelectedKeys && !selectedKeys) {\n setMenuSelect(defaultSelectedKeys);\n }\n }, []);\n\n useEffect(() => {\n setShouldClick(false);\n if (selectedKeys) {\n setMenuSelect(selectedKeys);\n }\n }, [selectedKeys]);\n\n const handleKeyPress = (e) => {\n if (e.ctrlKey && e.altKey && e.key === 'k' && !isMac) {\n setQuickPanelVisible(true);\n }\n if (e.metaKey && e.key === 'k' && isMac) {\n setQuickPanelVisible(true);\n }\n if (e.key === 'Escape') {\n setQuickPanelVisible(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n return () => {\n document.removeEventListener('keydown', handleKeyPress);\n };\n }, []);\n\n return (\n {\n setMenuActive([]);\n }}\n >\n
\n {collapsed === '2' ? (\n } placement='rightTop' overlayClassName='fc-skim-menu-tooltip'>\n switchCollapsed()} />\n \n ) : collapsed === '0' ? (\n switchCollapsed()} />\n ) : (\n switchCollapsed()} />\n )}\n
\n {collapsed !== '2' && (\n <>\n
\n
\n
\n \n
\n
\n
\n {items\n .filter((item) => !!item)\n .map(\n (item) => item && ,\n )}\n
\n
\n
\n \n )}\n {isQuickPanelVisible && (\n {\n if (item) {\n setMenuSelect([item.primaryKey, item.key]);\n }\n setQuickPanelVisible(false);\n }}\n items={items}\n />\n )}\n \n );\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { createFromIconfontCN } from '@ant-design/icons';\nconst IconFont = createFromIconfontCN({\n scriptUrl: '/font/iconfont.js',\n});\n\nexport default IconFont;\n","export default \"__VITE_ASSET__b7e5835c__\"","export default \"__VITE_ASSET__54fdb24f__\"","export default \"__VITE_ASSET__4f6e6c30__\"","export default \"__VITE_ASSET__fefe4133__\"","export default \"__VITE_ASSET__3802669d__\"","export default \"__VITE_ASSET__9cacfe92__\"","export default \"__VITE_ASSET__b919bbaa__\"","export default \"__VITE_ASSET__8c2df287__\"","export default \"__VITE_ASSET__ab04f7d0__\"","/// \nimport { ReactComponent as Menu_Search } from './icons/Menu_Search.svg';\nimport { ReactComponent as AlarmManagement } from './icons/AlarmManagement.svg';\nimport { ReactComponent as AlarmSelfhealing } from './icons/AlarmSelfhealing.svg';\nimport { ReactComponent as Dashboard } from './icons/Dashboard.svg';\nimport { ReactComponent as IndexManagement } from './icons/IndexManagement.svg';\nimport { ReactComponent as LinkAnalysis } from './icons/LinkAnalysis.svg';\nimport { ReactComponent as LogAnalysis } from './icons/LogAnalysis.svg';\nimport { ReactComponent as PersonnelOrganization } from './icons/PersonnelOrganization.svg';\nimport { ReactComponent as SystemInformation } from './icons/SystemInformation.svg';\n\nconst menuIcon = {\n Menu_Search,\n AlarmManagement,\n AlarmSelfhealing,\n Dashboard,\n IndexManagement,\n LinkAnalysis,\n LogAnalysis,\n PersonnelOrganization,\n SystemInformation,\n};\n\nexport default menuIcon;\n","const en_US = {\n 仪表盘: 'Dashboard',\n 监控仪表盘: 'Dashboard',\n 内置仪表盘: 'Built-in',\n 时序指标: 'Metrics',\n 即时查询: 'Explorer',\n 快捷视图: 'Quick View',\n 记录规则: 'Record Rule',\n 日志分析: 'Log Analysis',\n 链路追踪: 'Tracing',\n 拓扑分析: 'Dependencies',\n 基础设施: 'Infrastructure',\n 监控机器: 'Host',\n 告警管理: 'Monitors',\n 告警规则: 'Alert Rule',\n 内置规则: 'Built-in',\n 屏蔽规则: 'Mutes',\n 订阅规则: 'Subscriptions',\n 活跃告警: 'Active',\n 历史告警: 'Historical',\n 告警自愈: 'Self-healing',\n 自愈脚本: 'Self-healing',\n 自愈配置: 'Ibex Settings',\n 执行历史: 'Execution History',\n 人员组织: 'Personnel Orgs',\n 用户管理: 'Users',\n 团队管理: 'Teams',\n 业务组管理: 'Business Groups',\n 权限管理: 'Permission',\n 系统配置: 'Configuration',\n 系统版本: 'Version',\n 告警引擎: 'Alert Engines',\n 数据源: 'Data Sources',\n 单点登录: 'SSO',\n 通知模板: 'Notification Template',\n 通知设置: 'Notification Settings',\n};\nexport default en_US;\n","const zh_CN = {\n 仪表盘: '仪表盘',\n 监控仪表盘: '监控仪表盘',\n 内置仪表盘: '内置仪表盘',\n 时序指标: '时序指标',\n 即时查询: '即时查询',\n 快捷视图: '快捷视图',\n 记录规则: '记录规则',\n 日志分析: '日志分析',\n 链路追踪: '链路追踪',\n 拓扑分析: '拓扑分析',\n 基础设施: '基础设施',\n 监控机器: '机器列表',\n 告警管理: '告警管理',\n 告警规则: '告警规则',\n 内置规则: '内置规则',\n 屏蔽规则: '屏蔽规则',\n 订阅规则: '订阅规则',\n 活跃告警: '活跃告警',\n 历史告警: '历史告警',\n 告警自愈: '告警自愈',\n 自愈脚本: '自愈脚本',\n 自愈配置: '自愈配置',\n 执行历史: '执行历史',\n 人员组织: '人员组织',\n 用户管理: '用户管理',\n 团队管理: '团队管理',\n 业务组管理: '业务组管理',\n 权限管理: '权限管理',\n 系统配置: '系统配置',\n 系统版本: '系统版本',\n 告警引擎: '告警引擎',\n 数据源: '数据源',\n 单点登录: '单点登录',\n 通知模板: '通知模板',\n 通知设置: '通知设置',\n};\nexport default zh_CN;\n","import i18next from 'i18next';\nimport en_US from './en_US';\nimport zh_CN from './zh_CN';\n\ni18next.addResourceBundle('en_US', 'menu', en_US);\ni18next.addResourceBundle('zh_CN', 'menu', zh_CN);\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { FloatFcMenu } from '@fc-components/menu';\nimport React, { FC, useState, useEffect, useContext } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport Icon, { AimOutlined } from '@ant-design/icons';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport querystring from 'query-string';\nimport { getMenuPerm } from '@/services/common';\nimport { CommonStateContext } from '@/App';\nimport IconFont from '../IconFont';\nimport menuIcon from './configs';\nimport './menu.less';\nimport './locale';\n\nconst getMenuList = (t) => {\n const menuList = [\n {\n key: 'dashboard',\n icon: ,\n activeIcon: ,\n label: t('仪表盘'),\n children: [\n {\n key: '/dashboards',\n label: t('监控仪表盘'),\n },\n {\n key: '/dashboards-built-in',\n label: t('内置仪表盘'),\n },\n ],\n },\n {\n key: 'alarm',\n icon: ,\n activeIcon: ,\n label: t('告警管理'),\n children: [\n {\n key: '/alert-rules',\n label: t('告警规则'),\n },\n {\n key: '/alert-rules-built-in',\n label: t('内置规则'),\n },\n {\n key: '/alert-mutes',\n label: t('屏蔽规则'),\n },\n {\n key: '/alert-subscribes',\n label: t('订阅规则'),\n },\n {\n key: '/alert-cur-events',\n label: t('活跃告警'),\n },\n {\n key: '/alert-his-events',\n label: t('历史告警'),\n },\n ],\n },\n {\n key: 'metric',\n icon: ,\n activeIcon: ,\n label: t('时序指标'),\n children: [\n {\n key: '/metric/explorer',\n label: t('即时查询'),\n },\n {\n key: '/object/explorer',\n label: t('快捷视图'),\n },\n {\n key: '/recording-rules',\n label: t('记录规则'),\n },\n ],\n },\n {\n key: 'log',\n icon: ,\n activeIcon: ,\n label: t('日志分析'),\n children: [\n {\n key: '/log/explorer',\n label: t('即时查询'),\n },\n ],\n },\n {\n key: 'trace',\n icon: ,\n activeIcon: ,\n label: t('链路追踪'),\n children: [\n {\n key: '/trace/explorer',\n label: t('即时查询'),\n },\n {\n key: '/trace/dependencies',\n label: t('拓扑分析'),\n },\n ],\n },\n {\n key: 'targets',\n icon: ,\n label: t('基础设施'),\n children: [\n {\n key: '/targets',\n label: t('监控机器'),\n },\n ],\n },\n\n {\n key: 'job',\n icon: ,\n activeIcon: ,\n label: t('告警自愈'),\n children: [\n {\n key: '/job-tpls',\n label: t('自愈脚本'),\n },\n {\n key: '/job-tasks',\n label: t('执行历史'),\n },\n {\n key: '/ibex-settings',\n label: t('自愈配置'),\n },\n ],\n },\n {\n key: 'manage',\n icon: ,\n activeIcon: ,\n label: t('人员组织'),\n children: [\n {\n key: '/users',\n label: t('用户管理'),\n },\n {\n key: '/user-groups',\n label: t('团队管理'),\n },\n {\n key: '/busi-groups',\n label: t('业务组管理'),\n },\n {\n key: '/permissions',\n label: t('权限管理'),\n },\n ],\n },\n {\n key: 'help',\n icon: ,\n activeIcon: ,\n label: t('系统配置'),\n children: [\n {\n key: '/help/source',\n label: t('数据源'),\n },\n {\n key: '/help/notification-settings',\n label: t('通知设置'),\n },\n {\n key: '/help/notification-tpls',\n label: t('通知模板'),\n },\n {\n key: '/help/sso',\n label: t('单点登录'),\n },\n {\n key: '/help/servers',\n label: t('告警引擎'),\n },\n {\n key: '/help/migrate',\n label: t('仪表盘迁移'),\n },\n {\n key: '/help/version',\n label: t('系统版本'),\n },\n ],\n },\n ];\n if (import.meta.env['VITE_IS_COLLECT']) {\n const targets = _.find(menuList, (item) => item.key === 'targets');\n if (targets) {\n targets.children?.push({\n key: '/collects',\n label: t('采集配置'),\n });\n }\n }\n return menuList;\n};\n\nconst SideMenu: FC = () => {\n const { t, i18n } = useTranslation('menu');\n const { profile } = useContext(CommonStateContext);\n const [defaultSelectedKeys, setDefaultSelectedKeys] = useState();\n const menuList = getMenuList(t);\n const [menus, setMenus] = useState(menuList);\n const history = useHistory();\n const location = useLocation();\n const { pathname } = location;\n const [collapsed, setCollapsed] = useState<'0' | '1' | '2' | string | null>(localStorage.getItem('menuCollapsed') || '0');\n const switchCollapsed = () => {\n if (!isNaN(Number(collapsed))) {\n const newColl = (Number(collapsed) === 2 ? -1 : Number(collapsed)) + 1 + '';\n setCollapsed(newColl);\n localStorage.setItem('menuCollapsed', newColl);\n } else {\n setCollapsed('1');\n localStorage.setItem('menuCollapsed', '1');\n }\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 500);\n };\n const handleClick = (key) => {\n if ((key as string).startsWith('/')) {\n history.push(key as string);\n }\n };\n const hideSideMenu = () => {\n if (\n location.pathname === '/login' ||\n location.pathname.startsWith('/chart/') ||\n location.pathname.startsWith('/dashboards/share/') ||\n location.pathname === '/callback' ||\n location.pathname.indexOf('/polaris/screen') === 0\n ) {\n return true;\n }\n // 大盘全屏模式下也需要隐藏左侧菜单\n if (location.pathname.indexOf('/dashboard') === 0) {\n const query = querystring.parse(location.search);\n if (query?.viewMode === 'fullscreen') {\n return true;\n }\n return false;\n }\n return false;\n };\n\n useEffect(() => {\n setDefaultSelectedKeys([]);\n for (const item of menuList) {\n if (item && item.key.startsWith('/') && pathname.includes(item.key)) {\n setDefaultSelectedKeys([item?.key]);\n break;\n } else if (item?.children && item.children.length > 0) {\n for (const i of item.children) {\n if (i && (pathname === i.key || pathname.startsWith(i.key + '/'))) {\n setDefaultSelectedKeys([item?.key, i.key!]);\n break;\n }\n }\n }\n }\n }, [pathname]);\n\n useEffect(() => {\n if (profile?.roles?.length > 0) {\n if (profile?.roles.indexOf('Admin') === -1) {\n getMenuPerm().then((res) => {\n const { dat } = res;\n // 过滤掉没有权限的菜单\n const newMenus: any = _.filter(\n _.map(menuList, (menu) => {\n return {\n ...menu,\n children: _.filter(menu.children, (item) => item && dat.includes(item.key)),\n };\n }),\n (item) => {\n return item.children && item.children.length > 0;\n },\n );\n setMenus(newMenus);\n });\n } else {\n setMenus(menuList);\n }\n }\n }, [profile?.roles, i18n.language]);\n\n return hideSideMenu() ? null : (\n \n {collapsed !== '2' && (\n \n
history.push('/metric/explorer')} key='overview'>\n \n
\n \n )}\n }\n quickActiveIcon={}\n />\n \n );\n};\n\nexport default SideMenu;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Button, Result } from 'antd';\nimport React from 'react';\nimport { useHistory } from 'react-router';\n\nconst NotFound: React.FC = () => {\n const history = useHistory();\n return (\n
\n history.replace('/')}>\n 回到首页\n \n }\n />\n
\n );\n};\n\nexport default NotFound;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Button, Result } from 'antd';\nimport React from 'react';\nimport { useHistory } from 'react-router';\n\nconst NotFound: React.FC = () => {\n const history = useHistory();\n return (\n
\n history.go(-2)}>\n 返回上一页\n \n }\n />\n
\n );\n};\n\nexport default NotFound;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useState, useEffect } from 'react';\nimport { Form, Input, Button, message } from 'antd';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { UserOutlined, LockOutlined } from '@ant-design/icons';\nimport { getSsoConfig, getRedirectURL, getRedirectURLCAS, getRedirectURLOAuth, authLogin } from '@/services/login';\nimport './login.less';\n\nimport { useTranslation } from 'react-i18next';\nexport interface DisplayName {\n oidc: string;\n cas: string;\n oauth: string;\n}\nexport default function Login() {\n const { t } = useTranslation();\n const [form] = Form.useForm();\n const history = useHistory();\n const location = useLocation();\n const redirect = location.search && new URLSearchParams(location.search).get('redirect');\n const [displayName, setDis] = useState({\n oidc: 'OIDC',\n cas: 'CAS',\n oauth: 'OAuth',\n });\n\n useEffect(() => {\n getSsoConfig().then((res) => {\n if (res.dat) {\n setDis({\n oidc: res.dat.oidcDisplayName,\n cas: res.dat.casDisplayName,\n oauth: res.dat.oauthDisplayName,\n });\n }\n });\n }, []);\n\n const handleSubmit = async () => {\n try {\n await form.validateFields();\n login();\n } catch {\n console.log(t('输入有误'));\n }\n };\n\n const login = async () => {\n let { username, password } = form.getFieldsValue();\n authLogin(username, password).then((res) => {\n const { dat, err } = res;\n const { access_token, refresh_token } = dat;\n localStorage.setItem('access_token', access_token);\n localStorage.setItem('refresh_token', refresh_token);\n if (!err) {\n window.location.href = redirect || '/metric/explorer';\n }\n });\n };\n\n return (\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n } />\n \n \n } />\n \n\n \n \n \n
\n 其他登录方式:\n {\n getRedirectURL().then((res) => {\n if (res.dat) {\n window.location.href = res.dat;\n } else {\n message.warning('没有配置 OIDC 登录地址!');\n }\n });\n }}\n >\n {displayName.oidc}\n \n   \n {\n getRedirectURLCAS().then((res) => {\n if (res.dat) {\n window.location.href = res.dat.redirect;\n localStorage.setItem('CAS_state', res.dat.state);\n } else {\n message.warning('没有配置 CAS 登录地址!');\n }\n });\n }}\n >\n {displayName.cas}\n \n   \n {\n getRedirectURLOAuth().then((res) => {\n if (res.dat) {\n window.location.href = res.dat;\n } else {\n message.warning('没有配置 OAuth 登录地址!');\n }\n });\n }}\n >\n {displayName.oauth}\n \n
\n \n
\n
\n
\n );\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useState, useEffect, useRef } from 'react';\n\nexport default function Overview() {\n return
;\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router';\nimport queryString from 'query-string';\nimport { authCallback } from '@/services/login';\n\nexport default function index() {\n const location = useLocation();\n const query = queryString.parse(location.search);\n const [err, setErr] = useState();\n\n useEffect(() => {\n authCallback({\n code: query.code,\n state: query.state,\n redirect: query.redirect || '/',\n })\n .then((res) => {\n if (res.err === '') {\n if (res.dat && res.dat.access_token && res.dat.refresh_token) {\n localStorage.setItem('access_token', res.dat.access_token);\n localStorage.setItem('refresh_token', res.dat.refresh_token);\n window.location.href = res.dat.redirect;\n } else {\n console.log(res.dat);\n }\n } else {\n setErr(res.err);\n }\n })\n .catch((res) => {\n setErr(res.message);\n });\n }, []);\n if (err === undefined) return null;\n return (\n \n
\n

第三方登录验证失败

\n
{err}
\n \n
\n \n );\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router';\nimport queryString from 'query-string';\nimport { authCallbackCAS } from '@/services/login';\n\nexport default function index() {\n const location = useLocation();\n const query = queryString.parse(location.search);\n const [err, setErr] = useState();\n\n useEffect(() => {\n authCallbackCAS({\n ticket: query.ticket,\n state: localStorage.getItem(\"CAS_state\"),\n redirect: query.redirect || '/',\n })\n .then((res) => {\n if (res.err === '') {\n if (res.dat && res.dat.access_token && res.dat.refresh_token) {\n localStorage.setItem('access_token', res.dat.access_token);\n localStorage.setItem('refresh_token', res.dat.refresh_token);\n window.location.href = res.dat.redirect;\n localStorage.removeItem(\"CAS_state\");\n } else {\n console.log(res.dat);\n }\n } else {\n setErr(res.err);\n }\n })\n .catch((res) => {\n setErr(res.message);\n });\n }, []);\n if (err === undefined) return null;\n return (\n \n
\n

第三方登录验证失败

\n
{err}
\n \n
\n \n );\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router';\nimport queryString from 'query-string';\nimport { authCallbackOAuth } from '@/services/login';\n\nexport default function index() {\n const location = useLocation();\n const query = queryString.parse(location.search);\n const [err, setErr] = useState();\n\n useEffect(() => {\n authCallbackOAuth({\n code: query.code,\n state: query.state,\n redirect: query.redirect || '/',\n })\n .then((res) => {\n if (res.err === '') {\n if (res.dat && res.dat.access_token && res.dat.refresh_token) {\n localStorage.setItem('access_token', res.dat.access_token);\n localStorage.setItem('refresh_token', res.dat.refresh_token);\n window.location.href = res.dat.redirect;\n } else {\n console.log(res.dat);\n }\n } else {\n setErr(res.err);\n }\n })\n .catch((res) => {\n setErr(res.message);\n });\n }, []);\n if (err === undefined) return null;\n return (\n \n
\n

第三方登录验证失败

\n
{err}
\n \n
\n \n );\n}\n","const en_US = {\n profile: 'Profile',\n logout: 'Logout',\n docs: 'Docs',\n};\nexport default en_US;\n","const zh_CN = {\n profile: '个人信息',\n logout: '退出',\n docs: '文档',\n};\nexport default zh_CN;\n","const zh_HK = {\n profile: '個人信息',\n logout: '退出',\n docs: '文檔',\n};\nexport default zh_HK;\n","import i18next from 'i18next';\nimport en_US from './en_US';\nimport zh_CN from './zh_CN';\nimport zh_HK from './zh_HK';\n\ni18next.addResourceBundle('en_US', 'pageLayout', en_US);\ni18next.addResourceBundle('zh_CN', 'pageLayout', zh_CN);\ni18next.addResourceBundle('zh_HK', 'pageLayout', zh_HK);\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { ReactNode, useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport Icon, { RollbackOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport { Menu, Dropdown } from 'antd';\nimport { DownOutlined } from '@ant-design/icons';\nimport { Logout } from '@/services/login';\nimport AdvancedWrap, { License } from '@/components/AdvancedWrap';\nimport { CommonStateContext } from '@/App';\nimport './index.less';\nimport './locale';\n\ninterface IPageLayoutProps {\n icon?: ReactNode;\n title?: String | JSX.Element;\n children?: ReactNode;\n introIcon?: ReactNode;\n rightArea?: ReactNode;\n customArea?: ReactNode;\n showBack?: Boolean;\n backPath?: string;\n docFn?: Function;\n}\n\nconst PageLayout: React.FC = ({ icon, title, rightArea, introIcon, children, customArea, showBack, backPath, docFn }) => {\n const { t, i18n } = useTranslation('pageLayout');\n const history = useHistory();\n const { profile } = useContext(CommonStateContext);\n\n const menu = (\n \n {\n history.push('/account/profile/info');\n }}\n >\n {t('profile')}\n \n {\n Logout().then(() => {\n localStorage.removeItem('access_token');\n localStorage.removeItem('refresh_token');\n localStorage.removeItem('curBusiId');\n history.push('/login');\n });\n }}\n >\n {t('logout')}\n \n \n );\n\n return (\n
\n {customArea ? (\n
{customArea}
\n ) : (\n
\n
\n
\n {showBack && (\n {\n if (backPath) {\n history.push({\n pathname: backPath,\n });\n } else {\n history.goBack();\n }\n }}\n style={{\n marginRight: '5px',\n }}\n />\n )}\n {icon}\n {title}\n
\n\n
\n {introIcon}\n {docFn && (\n docFn()} style={{ marginRight: 20 }}>\n {t('docs')}\n \n )}\n {/* 整合版本关闭文档链接 */}\n {import.meta.env.VITE_IS_COMMON_DS !== 'true' && (\n
\n \n {t('docs')}\n \n {\n return (\n \n \n \n );\n }}\n />\n
\n )}\n\n {rightArea}\n\n \n \n \n\n {/* 文案完善了再打开 */}\n {\n let language = i18n.language == 'en_US' ? 'zh_CN' : 'en_US';\n i18n.changeLanguage(language);\n localStorage.setItem('language', language);\n }}\n >\n {i18n.language == 'zh_CN' ? 'EN' : '中'}\n \n \n \n \n {profile.nickname || profile.username}\n \n \n \n
\n
\n
\n )}\n {children && children}\n
\n );\n};\n\nexport default PageLayout;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport request from '@/utils/request';\nimport { RequestMethod } from '@/store/common';\n\n// 获取监控对象列表\nexport function getMonObjectList(params) {\n return request(`/api/n9e/targets`, {\n method: RequestMethod.Get,\n params,\n });\n}\n\nexport function bindTags(data) {\n return bindOrUnbindTags(true, data);\n}\n\nexport function unbindTags(data) {\n return bindOrUnbindTags(false, data);\n}\n\n// 获取监控对象标签列表\nexport function getTargetTags(params) {\n return request(`/api/n9e/targets/tags`, {\n method: RequestMethod.Get,\n params,\n });\n}\n\n// 绑定/解绑标签\nexport function bindOrUnbindTags(isBind, data) {\n return request(`/api/n9e/targets/tags`, {\n method: isBind ? RequestMethod.Post : RequestMethod.Delete,\n data,\n });\n}\n\n// 修改/移出业务组\nexport function moveTargetBusi(data) {\n return request(`/api/n9e/targets/bgid`, {\n method: RequestMethod.Put,\n data: Object.assign({ bgid: 0 }, data),\n });\n}\n\n// 修改对象备注\nexport function updateTargetNote(data) {\n return request(`/api/n9e/targets/note`, {\n method: RequestMethod.Put,\n data,\n });\n}\n\n// 删除对象\nexport function deleteTargets(data) {\n return request(`/api/n9e/targets`, {\n method: RequestMethod.Delete,\n data,\n });\n}\n\nexport function getTargetList(data) {\n return request(`/api/n9e/target/list`, {\n method: RequestMethod.Post,\n data,\n });\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nexport const utilValMap = {\n bitsSI: {\n type: 'si',\n base: 'bits',\n },\n bytesSI: {\n type: 'si',\n base: 'bytes',\n },\n bitsIEC: {\n type: 'iec',\n base: 'bits',\n },\n bytesIEC: {\n type: 'iec',\n base: 'bytes',\n },\n};","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n// wiki: https://en.wikipedia.org/wiki/Byte#Multiple-byte_units\nimport _ from 'lodash';\n\ninterface IOptions {\n type: 'si' | 'iec';\n base?: 'bits' | 'bytes';\n decimals: number;\n}\n\nconst defaultOptions: IOptions = {\n type: 'iec',\n base: 'bytes',\n decimals: 2,\n};\n\nconst valueMap = [\n { exp: 0, si: '', iec: '', iecExp: 1 },\n { exp: 3, si: 'k', iec: 'Ki', iecExp: 10 },\n { exp: 6, si: 'M', iec: 'Mi', iecExp: 20 },\n { exp: 9, si: 'G', iec: 'Gi', iecExp: 30 },\n { exp: 12, si: 'T', iec: 'Ti', iecExp: 40 },\n { exp: 15, si: 'P', iec: 'Pi', iecExp: 50 },\n { exp: 18, si: 'E', iec: 'Ei', iecExp: 60 },\n { exp: 21, si: 'Z', iec: 'Zi', iecExp: 70 },\n { exp: 24, si: 'Y', iec: 'Yi', iecExp: 80 },\n];\n\nconst baseUtilMap = {\n bits: 'b',\n bytes: 'B',\n};\n\nexport const config = [\n {\n name: 'Data(SI)',\n type: 'si',\n children: [\n {\n name: 'bits',\n },\n {\n name: 'bytes',\n },\n ],\n },\n {\n name: 'Data(IEC)',\n type: 'iec',\n children: [\n {\n name: 'bits',\n },\n {\n name: 'bytes',\n },\n ],\n },\n];\n\nexport function format(value: number, options = defaultOptions) {\n if (value === null || value === undefined)\n return {\n value: '',\n unit: '',\n text: '',\n stat: '',\n };\n const baseUtil = options.base ? baseUtilMap[options.base] : ''; // 支持\n if ((options.type === 'si' && Math.abs(value) < 1000) || (options.type === 'iec' && Math.abs(value) < 1024)) {\n return {\n value: _.round(value, options.decimals),\n unit: baseUtil,\n text: _.round(value, options.decimals) + baseUtil,\n stat: value,\n };\n }\n\n const baseNum = options.type === 'iec' ? 2 : 10;\n const autoDetectRegex = /(\\d.*\\+)(\\d{1,2})/;\n const autoDetect = value.toExponential();\n const expArray = autoDetect.match(autoDetectRegex);\n\n if (expArray) {\n const expVal = Math.floor(parseInt(_.get(expArray, '[2]')! as string) / 3) * 3;\n const map = _.find(valueMap, { exp: expVal });\n\n if (!map) {\n return {\n value: NaN,\n unit: '',\n text: NaN,\n stat: NaN,\n };\n }\n const unit = _.get(map, options.type);\n const exp = _.get(map, options.type === 'iec' ? 'iecExp' : 'exp');\n const divider = Math.pow(baseNum, exp);\n const newValue = _.round(value / divider, options.decimals);\n\n return {\n value: newValue,\n unit: unit + baseUtil,\n text: newValue + unit + baseUtil,\n stat: value,\n };\n }\n return {\n value: _.round(value, options.decimals),\n unit: '',\n text: _.round(value, options.decimals),\n stat: value,\n };\n}\n\nexport function parse(value: string, options = defaultOptions) {}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { utilValMap } from '../config';\nimport * as byteConverter from './byteConverter';\n\nexport function timeFormatter(val, type: 'seconds' | 'milliseconds', decimals) {\n if (typeof val !== 'number')\n return {\n value: val,\n unit: '',\n text: val,\n stat: val,\n };\n const timeMap = [\n {\n unit: 'years',\n value: 31104000,\n },\n {\n unit: 'months',\n value: 2592000,\n },\n {\n unit: 'weeks',\n value: 604800,\n },\n {\n unit: 'days',\n value: 86400,\n },\n {\n unit: 'hours',\n value: 3600,\n },\n {\n unit: 'mins',\n value: 60,\n },\n ];\n const shortTypeMap = {\n seconds: 's',\n milliseconds: 'ms',\n };\n let newVal = val;\n let unit = shortTypeMap[type];\n _.forEach(timeMap, (item) => {\n const _val = val / item.value / (type === 'milliseconds' ? 1000 : 1);\n if (_val >= 1) {\n newVal = _val;\n unit = item.unit;\n return false;\n }\n });\n if (type === 'milliseconds' && unit === 'ms') {\n const _val = newVal / 1000;\n if (_val >= 1) {\n newVal = _val;\n unit = 's';\n }\n }\n return {\n value: _.round(newVal, decimals),\n unit,\n text: _.round(newVal, decimals) + ' ' + unit,\n stat: val,\n };\n}\n\nconst valueFormatter = ({ unit, decimals = 3, dateFormat = 'YYYY-MM-DD HH:mm:ss' }, val) => {\n if (val === null || val === '' || val === undefined) {\n return {\n value: '',\n unit: '',\n text: '',\n stat: '',\n };\n }\n if (decimals === null) decimals = 3;\n if (typeof val !== 'number') {\n val = _.toNumber(val);\n }\n if (unit) {\n const utilValObj = utilValMap[unit];\n if (utilValObj) {\n const { type, base } = utilValObj;\n return byteConverter.format(val, {\n type,\n base,\n decimals,\n });\n }\n if (unit === 'none') {\n return {\n value: _.round(val, decimals),\n unit: '',\n text: _.round(val, decimals),\n stat: val,\n };\n }\n if (unit === 'percent') {\n return {\n value: _.round(val, decimals),\n unit: '%',\n text: _.round(val, decimals) + '%',\n stat: val,\n };\n }\n if (unit === 'percentUnit') {\n return {\n value: _.round(val * 100, decimals),\n unit: '%',\n text: _.round(val * 100, decimals) + '%',\n stat: val,\n };\n }\n if (unit === 'humantimeSeconds') {\n return {\n value: moment.duration(val, 'seconds').humanize(),\n unit: '',\n text: moment.duration(val, 'seconds').humanize(),\n stat: val,\n };\n }\n if (unit === 'humantimeMilliseconds') {\n return {\n value: moment.duration(val, 'milliseconds').humanize(),\n unit: '',\n text: moment.duration(val, 'milliseconds').humanize(),\n stat: val,\n };\n }\n if (unit === 'seconds') {\n return timeFormatter(val, unit, decimals);\n }\n if (unit === 'milliseconds') {\n return timeFormatter(val, unit, decimals);\n }\n if (unit === 'datetimeSeconds') {\n return {\n value: moment.unix(val).format(dateFormat),\n unit: '',\n text: moment.unix(val).format(dateFormat),\n stat: val,\n };\n }\n if (unit === 'datetimeMilliseconds') {\n return {\n value: moment(val).format(dateFormat),\n unit: '',\n text: moment(val).format(dateFormat),\n stat: val,\n };\n }\n return {\n value: _.round(val, decimals),\n unit: '',\n text: _.round(val, decimals),\n stat: val,\n };\n }\n // 默认返回 SI 不带基础单位\n return byteConverter.format(val, {\n type: 'si',\n decimals,\n });\n};\nexport default valueFormatter;\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * 将文本添加到剪贴板\n */\nexport default function clipboard(text: string): boolean {\n const fakeElem = document.createElement('textarea');\n fakeElem.style.border = '0';\n fakeElem.style.padding = '0';\n fakeElem.style.margin = '0';\n fakeElem.style.position = 'absolute';\n fakeElem.style.left = '-9999px';\n const yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElem.style.top = `${yPosition}px`;\n fakeElem.setAttribute('readonly', '');\n fakeElem.value = text;\n\n document.body.appendChild(fakeElem);\n fakeElem.select();\n let succeeded;\n try {\n succeeded = document.execCommand('copy');\n } catch (err) {\n succeeded = false;\n }\n if (succeeded) {\n document.body.removeChild(fakeElem);\n }\n return succeeded;\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport _ from 'lodash';\nimport { ConfigProvider } from 'antd';\nimport antdZhCN from 'antd/lib/locale/zh_CN';\nimport antdEnUS from 'antd/lib/locale/en_US';\n\nexport interface ModalWrapProps {\n visible: boolean;\n destroy: () => void;\n}\n\nexport default function ModalHOC(Component: React.FC) {\n return function ModalControl(\n config: T & {\n language?: string;\n },\n ) {\n const div = document.createElement('div');\n document.body.appendChild(div);\n\n function destroy() {\n const unmountResult = ReactDOM.unmountComponentAtNode(div);\n if (unmountResult && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n }\n\n const language = config.language ? config.language : window.localStorage.getItem('language') || 'zh_CN';\n\n function render(props: any) {\n ReactDOM.render(\n \n \n \n \n ,\n div,\n );\n }\n\n render({ ...config, visible: true, destroy });\n\n return {\n destroy,\n };\n };\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { List, Modal, Space } from 'antd';\nimport { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons';\nimport ModalHOC, { ModalWrapProps } from '@/components/ModalHOC';\n\ninterface Key {\n name: string;\n visible: boolean;\n}\n\ninterface OrganizeColumnsProps {\n value: Key[];\n onChange: (value: Key[]) => void;\n}\n\nfunction OrganizeColumns(props: OrganizeColumnsProps & ModalWrapProps) {\n const { t } = useTranslation('targets');\n const { value, onChange, visible, destroy } = props;\n const [list, setList] = React.useState(value);\n\n return (\n {\n onChange(list);\n destroy();\n }}\n >\n (\n \n \n {\n const newList = _.cloneDeep(list);\n const index = newList.findIndex((i) => i.name === item.name);\n newList[index].visible = !newList[index].visible;\n setList(newList);\n }}\n >\n {item.visible ? : }\n \n {t(item.name)}\n \n \n )}\n />\n \n );\n}\n\nexport default ModalHOC(OrganizeColumns);\n","import _ from 'lodash';\n\nexport const getDefaultColumnsConfigs = () => {\n let defaultColumnsConfigs = _.map(['tags', 'group_obj', 'target_up', 'mem_util', 'cpu_util', 'offset', 'cpu_num', 'os', 'arch', 'unixtime', 'remote_addr', 'note'], (item) => {\n return {\n name: item,\n visible: true,\n };\n });\n const localColumnsConfigs = localStorage.getItem('targets_columns_configs');\n if (localColumnsConfigs) {\n try {\n defaultColumnsConfigs = _.map(defaultColumnsConfigs, (item) => {\n const localItem = _.find(JSON.parse(localColumnsConfigs), (i) => i.name === item.name);\n if (localItem) {\n item.visible = localItem.visible;\n }\n return item;\n });\n } catch (e) {\n console.error(e);\n }\n }\n return defaultColumnsConfigs;\n};\n\nexport const setDefaultColumnsConfigs = (columnsConfigs) => {\n localStorage.setItem('targets_columns_configs', JSON.stringify(columnsConfigs));\n};\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useState } from 'react';\nimport { Button } from 'antd';\nimport { ReloadOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ninterface Props {\n onClick: () => void;\n className?: string;\n}\nexport default function RefreshIcon(props: Props) {\n const { t } = useTranslation();\n const { onClick, className } = props;\n const [refreshing, setRefreshing] = useState(false);\n\n const handleRefresh = (e) => {\n if (refreshing) return;\n setRefreshing(true);\n onClick();\n setTimeout(() => {\n setRefreshing(false);\n }, 1000);\n };\n\n return (\n }\n >\n );\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useState } from 'react';\nimport { SearchOutlined } from '@ant-design/icons';\nimport { Input, InputProps } from 'antd';\nimport { useTranslation } from 'react-i18next';\ninterface IBaseSearchInputProps extends InputProps {\n onSearch?: (value: string) => unknown;\n}\n\nconst BaseSearchInput: React.FC = ({\n onSearch,\n ...props\n}) => {\n const { t } = useTranslation();\n const [value, setValue] = useState('');\n return (\n }\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n\n if (e.target.value === '') {\n onSearch && onSearch('');\n }\n }}\n onPressEnter={(e) => {\n onSearch && onSearch(value);\n }}\n {...props}\n />\n );\n};\n\nexport default BaseSearchInput;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\ninterface PaginationProps {\n PAGESIZE_KEY: string;\n}\n\nexport default function usePagination(props: PaginationProps) {\n const { PAGESIZE_KEY } = props;\n const [pageSize, setPageSize] = React.useState(Number(localStorage.getItem(PAGESIZE_KEY)) || 10);\n const { t } = useTranslation();\n\n return {\n showSizeChanger: true,\n pageSize,\n pageSizeOptions: ['10', '20', '50', '100'],\n showTotal: (total) => {\n return t('common:table.total', { total });\n },\n onShowSizeChange: (_current, size) => {\n setPageSize(size);\n localStorage.setItem(PAGESIZE_KEY, size.toString());\n },\n };\n}\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport request from '@/utils/request';\nimport { RequestMethod } from '@/store/common';\nimport { CollectCateType, CollectType, PostCollectType, PutCollectType } from './types';\n\nexport const getCollectCates = function (): Promise {\n return request('/api/n9e-plus/builtin-collect-cates', {\n method: RequestMethod.Get,\n }).then((res) => {\n return res.dat || [];\n });\n};\n\nexport const getCollects = function (groupID: number): Promise {\n return request('/api/n9e-plus/collects', {\n method: RequestMethod.Get,\n params: {\n group_id: groupID,\n },\n }).then((res) => {\n return res.dat || [];\n });\n};\n\nexport const getCollect = function (id: number): Promise {\n return request(`/api/n9e-plus/collect/${id}`, {\n method: RequestMethod.Get,\n params: {\n id,\n },\n }).then((res) => {\n return res.dat;\n });\n};\n\nexport const postCollect = function (data: PostCollectType) {\n return request('/api/n9e-plus/collect', {\n method: RequestMethod.Post,\n data,\n });\n};\n\nexport const putCollect = function (id: number, data: PutCollectType) {\n return request(`/api/n9e-plus/collect/${id}`, {\n method: RequestMethod.Put,\n data,\n });\n};\n\nexport const putCollectStatus = function (\n id: number,\n data: {\n id: number;\n disabled: number;\n },\n) {\n return request(`/api/n9e-plus/collect/${id}/status`, {\n method: RequestMethod.Put,\n data,\n });\n};\n\nexport const deleteCollects = function (ids: number[]) {\n return request('/api/n9e-plus/collects', {\n method: RequestMethod.Delete,\n data: {\n ids,\n },\n });\n};\n\nexport const getCollectsByIdent = function (ident: string): Promise {\n return request('/api/n9e-plus/ident-collects', {\n method: RequestMethod.Get,\n params: {\n agent_hostname: ident,\n },\n }).then((res) => {\n return res.dat || [];\n });\n};\n","export interface CollectCateType {\n collect: string;\n favorite: boolean;\n icon_url: string;\n markdown: string;\n name: string;\n}\n\nexport interface QueryType {\n key: string;\n op: string;\n values: string[];\n}\n\nexport enum StatusType {\n Enable = 0,\n UnEnable = 1,\n}\n\nexport interface CollectType {\n cate: string;\n content: string;\n disabled: StatusType;\n group_id: number;\n id: number;\n name: string;\n queries: QueryType[];\n}\n\nexport type PostCollectType = Omit;\nexport type PutCollectType = CollectType;\n","import React, { useEffect, useState } from 'react';\nimport { Drawer } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { Table, Switch, Modal, Space, Button, Row, Col, message, Select } from 'antd';\nimport { ColumnType } from 'antd/lib/table';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { useHistory, Link } from 'react-router-dom';\nimport RefreshIcon from '@/components/RefreshIcon';\nimport SearchInput from '@/components/BaseSearchInput';\nimport usePagination from '@/components/usePagination';\nimport { getCollectsByIdent, getCollectCates, putCollectStatus } from '@/pages/collects/services';\nimport { CollectType, CollectCateType, StatusType } from '@/pages/collects/types';\n\ninterface IProps {\n ident: string;\n visible: boolean;\n setVisible: (visible: boolean) => void;\n}\n\ninterface Filter {\n cate?: string;\n search?: string;\n}\n\nexport default function CollectsDrawer(props: IProps) {\n const { t } = useTranslation('collects');\n const pagination = usePagination({ PAGESIZE_KEY: 'collects-pagesize' });\n const { ident, visible, setVisible } = props;\n const [cates, setCates] = useState([]);\n const [filter, setFilter] = useState({});\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const columns: ColumnType[] = [\n {\n title: t('cate'),\n dataIndex: 'cate',\n render: (text) => {\n const cate = _.find(cates, { name: text });\n return (\n \n \n {text}\n \n );\n },\n },\n {\n title: t('name'),\n dataIndex: 'name',\n render: (text, record) => {\n return (\n \n {text}\n \n );\n },\n },\n {\n title: t('queries'),\n dataIndex: 'queries',\n render: (queries) => {\n return _.map(queries, (query, idx) => {\n return (\n
\n {t(`query.key.${query.key}`)}\n {query.key !== 'all_hosts' && query.op}\n {query.key !== 'all_hosts' && _.join(query.values, ', ')}\n
\n );\n });\n },\n },\n {\n title: t('common:table.update_at'),\n dataIndex: 'update_at',\n width: 120,\n render: (text: string) => {\n return
{moment.unix(Number(text)).format('YYYY-MM-DD HH:mm:ss')}
;\n },\n },\n {\n title: t('common:table.update_by'),\n dataIndex: 'update_by',\n },\n {\n title: t('common:table.enabled'),\n dataIndex: 'disabled',\n render: (disabled, record) => (\n {\n const { id, disabled } = record;\n putCollectStatus(id, {\n id,\n disabled: !disabled ? 1 : 0,\n }).then(() => {\n fetchData();\n });\n }}\n />\n ),\n },\n ];\n const filterData = () => {\n return data.filter((item) => {\n const { cate, search } = filter;\n const lowerCaseQuery = search?.toLowerCase() || '';\n return item.name.toLowerCase().indexOf(lowerCaseQuery) > -1 && ((cate && cate === item.cate) || !cate);\n });\n };\n const filteredData = filterData();\n\n const fetchData = async () => {\n setLoading(true);\n getCollectsByIdent(ident)\n .then((dat) => {\n setData(dat || []);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n if (ident && visible) {\n fetchData();\n }\n }, [ident, visible]);\n\n useEffect(() => {\n if (import.meta.env['VITE_IS_COLLECT']) {\n getCollectCates().then((res) => {\n setCates(res);\n });\n }\n }, []);\n\n return (\n {\n setVisible(false);\n }}\n visible={visible}\n >\n \n \n \n {\n fetchData();\n }}\n />\n {\n setFilter({\n ...filter,\n cate: val,\n });\n }}\n >\n {_.map(cates, (cate) => {\n return (\n \n {cate.name}\n \n );\n })}\n \n {\n setFilter({\n ...filter,\n search: val,\n });\n }}\n allowClear\n />\n \n \n \n \n \n );\n}\n","import React, { useState, useRef } from 'react';\nimport { Table, Tag, Tooltip, Space, Input, Dropdown, Menu, Button, Modal, message } from 'antd';\nimport { ColumnsType } from 'antd/es/table';\nimport { SearchOutlined, DownOutlined, ReloadOutlined, CopyOutlined, ApartmentOutlined } from '@ant-design/icons';\nimport { useAntdTable } from 'ahooks';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport { BusiGroupItem } from '@/store/commonInterface';\nimport { getMonObjectList } from '@/services/targets';\nimport { timeFormatter } from '@/pages/dashboard/Renderer/utils/valueFormatter';\nimport clipboard from './clipboard';\nimport OrganizeColumns from './OrganizeColumns';\nimport { getDefaultColumnsConfigs, setDefaultColumnsConfigs } from './utils';\nimport CollectsDrawer from './CollectsDrawer';\n\nexport const pageSizeOptions = ['10', '20', '50', '100'];\n\nenum OperateType {\n BindTag = 'bindTag',\n UnbindTag = 'unbindTag',\n UpdateBusi = 'updateBusi',\n RemoveBusi = 'removeBusi',\n UpdateNote = 'updateNote',\n Delete = 'delete',\n None = 'none',\n}\n\ninterface ITargetProps {\n id: number;\n cluster: string;\n group_id: number;\n group_obj: object | null;\n ident: string;\n note: string;\n tags: string[];\n update_at: number;\n}\n\ninterface IProps {\n curBusiId: number;\n selectedIdents: string[];\n setSelectedIdents: (selectedIdents: string[]) => void;\n selectedRowKeys: any[];\n setSelectedRowKeys: (selectedRowKeys: any[]) => void;\n refreshFlag: string;\n setRefreshFlag: (refreshFlag: string) => void;\n setOperateType: (operateType: OperateType) => void;\n}\n\nconst GREEN_COLOR = '#3FC453';\nconst YELLOW_COLOR = '#FF9919';\nconst RED_COLOR = '#FF656B';\n\nexport default function List(props: IProps) {\n const { t } = useTranslation('targets');\n const { curBusiId, selectedIdents, setSelectedIdents, selectedRowKeys, setSelectedRowKeys, refreshFlag, setRefreshFlag, setOperateType } = props;\n const isAddTagToQueryInput = useRef(false);\n const [searchVal, setSearchVal] = useState('');\n const [tableQueryContent, setTableQueryContent] = useState('');\n const [columnsConfigs, setColumnsConfigs] = useState<{ name: string; visible: boolean }[]>(getDefaultColumnsConfigs());\n const [collectsDrawerVisible, setCollectsDrawerVisible] = useState(false);\n const [collectsDrawerIdent, setCollectsDrawerIdent] = useState('');\n\n const columns: ColumnsType = [\n {\n title: (\n \n {t('common:table.ident')}\n {\n let tobeCopy = _.map(tableProps.dataSource, (item) => item.ident);\n if (key === 'all') {\n try {\n const result = await featchData({ current: 1, pageSize: tableProps.pagination.total });\n tobeCopy = _.map(result.list, (item) => item.ident);\n } catch (error) {\n console.error(error);\n }\n } else if (key === 'selected') {\n tobeCopy = selectedIdents;\n }\n\n if (_.isEmpty(tobeCopy)) {\n message.warn(t('copy.no_data'));\n return;\n }\n\n const tobeCopyStr = _.join(tobeCopy, '\\n');\n const copySucceeded = clipboard(tobeCopyStr);\n\n if (copySucceeded) {\n message.success(t('ident_copy_success', { num: tobeCopy.length }));\n } else {\n Modal.warning({\n title: t('host.copy.error'),\n content: ,\n });\n }\n }}\n >\n {t('copy.current_page')}\n {t('copy.all')}\n {t('copy.selected')}\n \n }\n >\n \n \n \n ),\n dataIndex: 'ident',\n render: (text) => {\n return (\n \n {text}\n {import.meta.env['VITE_IS_COLLECT'] && (\n \n {\n setCollectsDrawerVisible(true);\n setCollectsDrawerIdent(text);\n }}\n />\n \n )}\n \n );\n },\n },\n ];\n\n _.forEach(columnsConfigs, (item) => {\n if (!item.visible) return;\n if (item.name === 'tags') {\n columns.push({\n title: t('tags'),\n dataIndex: 'tags',\n ellipsis: {\n showTitle: false,\n },\n render(tagArr) {\n const content =\n tagArr &&\n tagArr.map((item) => (\n {\n if (!tableQueryContent.includes(item)) {\n isAddTagToQueryInput.current = true;\n const val = tableQueryContent ? `${tableQueryContent.trim()} ${item}` : item;\n setTableQueryContent(val);\n setSearchVal(val);\n }\n }}\n >\n {item}\n \n ));\n return (\n tagArr && (\n document.body} overlayClassName='mon-manage-table-tooltip'>\n {content}\n \n )\n );\n },\n });\n }\n if (item.name === 'group_obj') {\n columns.push({\n title: t('group_obj'),\n dataIndex: 'group_obj',\n render(groupObj: BusiGroupItem | null) {\n return groupObj ? groupObj.name : t('not_grouped');\n },\n });\n }\n if (item.name === 'target_up') {\n columns.push({\n title: t('target_up'),\n width: 100,\n dataIndex: 'target_up',\n sorter: (a, b) => a.target_up - b.target_up,\n render(text) {\n if (text > 0) {\n return (\n \n UP\n \n );\n } else if (text < 1) {\n return (\n \n DOWN\n \n );\n }\n return null;\n },\n });\n }\n if (item.name === 'mem_util') {\n columns.push({\n title: t('mem_util'),\n width: 100,\n dataIndex: 'mem_util',\n sorter: (a, b) => a.mem_util - b.mem_util,\n render(text, reocrd) {\n if (reocrd.cpu_num === -1) return 'unknown';\n let backgroundColor = GREEN_COLOR;\n if (text > 70) {\n backgroundColor = YELLOW_COLOR;\n }\n if (text > 85) {\n backgroundColor = RED_COLOR;\n }\n return (\n \n {_.floor(text, 1)}%\n \n );\n },\n });\n }\n if (item.name === 'cpu_util') {\n columns.push({\n title: t('cpu_util'),\n width: 100,\n dataIndex: 'cpu_util',\n sorter: (a, b) => a.cpu_util - b.cpu_util,\n render(text, reocrd) {\n if (reocrd.cpu_num === -1) return 'unknown';\n let backgroundColor = GREEN_COLOR;\n if (text > 70) {\n backgroundColor = YELLOW_COLOR;\n }\n if (text > 85) {\n backgroundColor = RED_COLOR;\n }\n return (\n \n {_.floor(text, 1)}%\n \n );\n },\n });\n }\n if (item.name === 'cpu_num') {\n columns.push({\n title: t('cpu_num'),\n width: 100,\n dataIndex: 'cpu_num',\n sorter: (a, b) => a.cpu_num - b.cpu_num,\n render: (val, reocrd) => {\n if (reocrd.cpu_num === -1) return 'unknown';\n return val;\n },\n });\n }\n if (item.name === 'offset') {\n columns.push({\n title: t('offset'),\n width: 100,\n dataIndex: 'offset',\n sorter: (a, b) => a.offset - b.offset,\n render(text, reocrd) {\n if (reocrd.cpu_num === -1) return 'unknown';\n let backgroundColor = RED_COLOR;\n if (text < 2000) {\n backgroundColor = YELLOW_COLOR;\n }\n if (text < 1000) {\n backgroundColor = GREEN_COLOR;\n }\n return (\n \n {timeFormatter(text, 'milliseconds', 2)?.text}\n \n );\n },\n });\n }\n if (item.name === 'os') {\n columns.push({\n title: t('os'),\n width: 100,\n dataIndex: 'os',\n render: (val, reocrd) => {\n if (reocrd.cpu_num === -1) return 'unknown';\n return val;\n },\n });\n }\n if (item.name === 'arch') {\n columns.push({\n title: t('arch'),\n width: 100,\n dataIndex: 'arch',\n render: (val, reocrd) => {\n if (reocrd.cpu_num === -1) return 'unknown';\n return val;\n },\n });\n }\n if (item.name === 'unixtime') {\n columns.push({\n title: t('unixtime'),\n width: 100,\n dataIndex: 'unixtime',\n render: (val, reocrd) => {\n if (reocrd.cpu_num === -1) return 'unknown';\n return moment(val).format('YYYY-MM-DD HH:mm:ss');\n },\n });\n }\n if (item.name === 'remote_addr') {\n columns.push({\n title: t('remote_addr'),\n width: 100,\n dataIndex: 'remote_addr',\n render: (val, reocrd) => {\n if (reocrd.cpu_num === -1) return 'unknown';\n return val;\n },\n });\n }\n if (item.name === 'note') {\n columns.push({\n title: t('common:table.note'),\n dataIndex: 'note',\n ellipsis: {\n showTitle: false,\n },\n render(note) {\n return (\n document.body}>\n {note}\n \n );\n },\n });\n }\n });\n\n const featchData = ({ current, pageSize }): Promise => {\n const query = {\n query: tableQueryContent,\n bgid: curBusiId,\n limit: pageSize,\n p: current,\n };\n return getMonObjectList(query).then((res) => {\n return {\n total: res.dat.total,\n list: res.dat.list,\n };\n });\n };\n\n const showTotal = (total: number) => {\n return t('common:table.total', { total });\n };\n\n const { tableProps } = useAntdTable(featchData, {\n refreshDeps: [tableQueryContent, curBusiId, refreshFlag],\n defaultPageSize: 30,\n });\n\n return (\n
\n
\n \n }\n onClick={() => {\n setRefreshFlag(_.uniqueId('refreshFlag_'));\n }}\n />\n }\n placeholder={t('search_placeholder')}\n value={searchVal}\n onChange={(e) => setSearchVal(e.target.value)}\n onPressEnter={() => {\n setTableQueryContent(searchVal);\n }}\n onBlur={() => {\n setTableQueryContent(searchVal);\n }}\n />\n \n \n {\n OrganizeColumns({\n value: columnsConfigs,\n onChange: (val) => {\n setColumnsConfigs(val);\n setDefaultColumnsConfigs(val);\n },\n });\n }}\n >\n {t('organize_columns.title')}\n \n {\n setOperateType(key as OperateType);\n }}\n >\n {t('bind_tag.title')}\n {t('unbind_tag.title')}\n {t('update_busi.title')}\n {t('remove_busi.title')}\n {t('update_note.title')}\n {t('batch_delete.title')}\n \n }\n >\n \n \n \n
\n ident) : []);\n },\n }}\n pagination={{\n ...tableProps.pagination,\n showTotal: showTotal,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageSizeOptions,\n }}\n scroll={{ x: 'max-content' }}\n />\n \n
\n );\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nvar rowSizeBase = {\n width: '100%',\n height: '10px',\n top: '0px',\n left: '0px',\n cursor: 'row-resize',\n};\nvar colSizeBase = {\n width: '10px',\n height: '100%',\n top: '0px',\n left: '0px',\n cursor: 'col-resize',\n};\nvar edgeBase = {\n width: '20px',\n height: '20px',\n position: 'absolute',\n};\nvar styles = {\n top: __assign(__assign({}, rowSizeBase), { top: '-5px' }),\n right: __assign(__assign({}, colSizeBase), { left: undefined, right: '-5px' }),\n bottom: __assign(__assign({}, rowSizeBase), { top: undefined, bottom: '-5px' }),\n left: __assign(__assign({}, colSizeBase), { left: '-5px' }),\n topRight: __assign(__assign({}, edgeBase), { right: '-10px', top: '-10px', cursor: 'ne-resize' }),\n bottomRight: __assign(__assign({}, edgeBase), { right: '-10px', bottom: '-10px', cursor: 'se-resize' }),\n bottomLeft: __assign(__assign({}, edgeBase), { left: '-10px', bottom: '-10px', cursor: 'sw-resize' }),\n topLeft: __assign(__assign({}, edgeBase), { left: '-10px', top: '-10px', cursor: 'nw-resize' }),\n};\nvar Resizer = /** @class */ (function (_super) {\n __extends(Resizer, _super);\n function Resizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n _this.onTouchStart = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n return _this;\n }\n Resizer.prototype.render = function () {\n return (React.createElement(\"div\", { className: this.props.className || '', style: __assign(__assign({ position: 'absolute', userSelect: 'none' }, styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));\n };\n return Resizer;\n}(React.PureComponent));\nexport { Resizer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport { Resizer } from './resizer';\nvar DEFAULT_SIZE = {\n width: 'auto',\n height: 'auto',\n};\nvar clamp = function (n, min, max) { return Math.max(Math.min(n, max), min); };\nvar snap = function (n, size) { return Math.round(n / size) * size; };\nvar hasDirection = function (dir, target) {\n return new RegExp(dir, 'i').test(target);\n};\n// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.\nvar isTouchEvent = function (event) {\n return Boolean(event.touches && event.touches.length);\n};\nvar isMouseEvent = function (event) {\n return Boolean((event.clientX || event.clientX === 0) &&\n (event.clientY || event.clientY === 0));\n};\nvar findClosestSnap = function (n, snapArray, snapGap) {\n if (snapGap === void 0) { snapGap = 0; }\n var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);\n var gap = Math.abs(snapArray[closestGapIndex] - n);\n return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;\n};\nvar getStringSize = function (n) {\n n = n.toString();\n if (n === 'auto') {\n return n;\n }\n if (n.endsWith('px')) {\n return n;\n }\n if (n.endsWith('%')) {\n return n;\n }\n if (n.endsWith('vh')) {\n return n;\n }\n if (n.endsWith('vw')) {\n return n;\n }\n if (n.endsWith('vmax')) {\n return n;\n }\n if (n.endsWith('vmin')) {\n return n;\n }\n return n + \"px\";\n};\nvar getPixelSize = function (size, parentSize, innerWidth, innerHeight) {\n if (size && typeof size === 'string') {\n if (size.endsWith('px')) {\n return Number(size.replace('px', ''));\n }\n if (size.endsWith('%')) {\n var ratio = Number(size.replace('%', '')) / 100;\n return parentSize * ratio;\n }\n if (size.endsWith('vw')) {\n var ratio = Number(size.replace('vw', '')) / 100;\n return innerWidth * ratio;\n }\n if (size.endsWith('vh')) {\n var ratio = Number(size.replace('vh', '')) / 100;\n return innerHeight * ratio;\n }\n }\n return size;\n};\nvar calculateNewMax = function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {\n maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);\n maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);\n minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);\n minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);\n return {\n maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),\n maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),\n minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),\n minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),\n };\n};\nvar definedProps = [\n 'as',\n 'style',\n 'className',\n 'grid',\n 'snap',\n 'bounds',\n 'boundsByDirection',\n 'size',\n 'defaultSize',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'lockAspectRatio',\n 'lockAspectRatioExtraWidth',\n 'lockAspectRatioExtraHeight',\n 'enable',\n 'handleStyles',\n 'handleClasses',\n 'handleWrapperStyle',\n 'handleWrapperClass',\n 'children',\n 'onResizeStart',\n 'onResize',\n 'onResizeStop',\n 'handleComponent',\n 'scale',\n 'resizeRatio',\n 'snapGap',\n];\n// HACK: This class is used to calculate % size.\nvar baseClassName = '__resizable_base__';\nvar Resizable = /** @class */ (function (_super) {\n __extends(Resizable, _super);\n function Resizable(props) {\n var _this = _super.call(this, props) || this;\n _this.ratio = 1;\n _this.resizable = null;\n // For parent boundary\n _this.parentLeft = 0;\n _this.parentTop = 0;\n // For boundary\n _this.resizableLeft = 0;\n _this.resizableRight = 0;\n _this.resizableTop = 0;\n _this.resizableBottom = 0;\n // For target boundary\n _this.targetLeft = 0;\n _this.targetTop = 0;\n _this.appendBase = function () {\n if (!_this.resizable || !_this.window) {\n return null;\n }\n var parent = _this.parentNode;\n if (!parent) {\n return null;\n }\n var element = _this.window.document.createElement('div');\n element.style.width = '100%';\n element.style.height = '100%';\n element.style.position = 'absolute';\n element.style.transform = 'scale(0, 0)';\n element.style.left = '0';\n element.style.flex = '0 0 100%';\n if (element.classList) {\n element.classList.add(baseClassName);\n }\n else {\n element.className += baseClassName;\n }\n parent.appendChild(element);\n return element;\n };\n _this.removeBase = function (base) {\n var parent = _this.parentNode;\n if (!parent) {\n return;\n }\n parent.removeChild(base);\n };\n _this.ref = function (c) {\n if (c) {\n _this.resizable = c;\n }\n };\n _this.state = {\n isResizing: false,\n width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.width,\n height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.height,\n direction: 'right',\n original: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n backgroundStyle: {\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0)',\n cursor: 'auto',\n opacity: 0,\n position: 'fixed',\n zIndex: 9999,\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n },\n flexBasis: undefined,\n };\n _this.onResizeStart = _this.onResizeStart.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n return _this;\n }\n Object.defineProperty(Resizable.prototype, \"parentNode\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n return this.resizable.parentNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"window\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n if (!this.resizable.ownerDocument) {\n return null;\n }\n return this.resizable.ownerDocument.defaultView;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"propsSize\", {\n get: function () {\n return this.props.size || this.props.defaultSize || DEFAULT_SIZE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"size\", {\n get: function () {\n var width = 0;\n var height = 0;\n if (this.resizable && this.window) {\n var orgWidth = this.resizable.offsetWidth;\n var orgHeight = this.resizable.offsetHeight;\n // HACK: Set position `relative` to get parent size.\n // This is because when re-resizable set `absolute`, I can not get base width correctly.\n var orgPosition = this.resizable.style.position;\n if (orgPosition !== 'relative') {\n this.resizable.style.position = 'relative';\n }\n // INFO: Use original width or height if set auto.\n width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n // Restore original position\n this.resizable.style.position = orgPosition;\n }\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"sizeStyle\", {\n get: function () {\n var _this = this;\n var size = this.props.size;\n var getSize = function (key) {\n if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {\n return 'auto';\n }\n if (_this.propsSize && _this.propsSize[key] && _this.propsSize[key].toString().endsWith('%')) {\n if (_this.state[key].toString().endsWith('%')) {\n return _this.state[key].toString();\n }\n var parentSize = _this.getParentSize();\n var value = Number(_this.state[key].toString().replace('px', ''));\n var percent = (value / parentSize[key]) * 100;\n return percent + \"%\";\n }\n return getStringSize(_this.state[key]);\n };\n var width = size && typeof size.width !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.width)\n : getSize('width');\n var height = size && typeof size.height !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.height)\n : getSize('height');\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Resizable.prototype.getParentSize = function () {\n if (!this.parentNode) {\n if (!this.window) {\n return { width: 0, height: 0 };\n }\n return { width: this.window.innerWidth, height: this.window.innerHeight };\n }\n var base = this.appendBase();\n if (!base) {\n return { width: 0, height: 0 };\n }\n // INFO: To calculate parent width with flex layout\n var wrapChanged = false;\n var wrap = this.parentNode.style.flexWrap;\n if (wrap !== 'wrap') {\n wrapChanged = true;\n this.parentNode.style.flexWrap = 'wrap';\n // HACK: Use relative to get parent padding size\n }\n base.style.position = 'relative';\n base.style.minWidth = '100%';\n base.style.minHeight = '100%';\n var size = {\n width: base.offsetWidth,\n height: base.offsetHeight,\n };\n if (wrapChanged) {\n this.parentNode.style.flexWrap = wrap;\n }\n this.removeBase(base);\n return size;\n };\n Resizable.prototype.bindEvents = function () {\n if (this.window) {\n this.window.addEventListener('mouseup', this.onMouseUp);\n this.window.addEventListener('mousemove', this.onMouseMove);\n this.window.addEventListener('mouseleave', this.onMouseUp);\n this.window.addEventListener('touchmove', this.onMouseMove, {\n capture: true,\n passive: false,\n });\n this.window.addEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.unbindEvents = function () {\n if (this.window) {\n this.window.removeEventListener('mouseup', this.onMouseUp);\n this.window.removeEventListener('mousemove', this.onMouseMove);\n this.window.removeEventListener('mouseleave', this.onMouseUp);\n this.window.removeEventListener('touchmove', this.onMouseMove, true);\n this.window.removeEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.componentDidMount = function () {\n if (!this.resizable || !this.window) {\n return;\n }\n var computedStyle = this.window.getComputedStyle(this.resizable);\n this.setState({\n width: this.state.width || this.size.width,\n height: this.state.height || this.size.height,\n flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,\n });\n };\n Resizable.prototype.componentWillUnmount = function () {\n if (this.window) {\n this.unbindEvents();\n }\n };\n Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {\n var propsSize = this.propsSize && this.propsSize[kind];\n return this.state[kind] === 'auto' &&\n this.state.original[kind] === newSize &&\n (typeof propsSize === 'undefined' || propsSize === 'auto')\n ? 'auto'\n : newSize;\n };\n Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {\n var boundsByDirection = this.props.boundsByDirection;\n var direction = this.state.direction;\n var widthByDirection = boundsByDirection && hasDirection('left', direction);\n var heightByDirection = boundsByDirection && hasDirection('top', direction);\n var boundWidth;\n var boundHeight;\n if (this.props.bounds === 'parent') {\n var parent_1 = this.parentNode;\n if (parent_1) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.parentLeft\n : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.parentTop\n : parent_1.offsetHeight + (this.parentTop - this.resizableTop);\n }\n }\n else if (this.props.bounds === 'window') {\n if (this.window) {\n boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;\n boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;\n }\n }\n else if (this.props.bounds) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.targetLeft\n : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.targetTop\n : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);\n }\n if (boundWidth && Number.isFinite(boundWidth)) {\n maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n }\n if (boundHeight && Number.isFinite(boundHeight)) {\n maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n }\n return { maxWidth: maxWidth, maxHeight: maxHeight };\n };\n Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {\n var scale = this.props.scale || 1;\n var resizeRatio = this.props.resizeRatio || 1;\n var _a = this.state, direction = _a.direction, original = _a.original;\n var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;\n var newWidth = original.width;\n var newHeight = original.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (hasDirection('right', direction)) {\n newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('left', direction)) {\n newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('bottom', direction)) {\n newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n if (hasDirection('top', direction)) {\n newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {\n var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;\n var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;\n var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;\n var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;\n var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (lockAspectRatio) {\n var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;\n var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;\n var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;\n var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;\n var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n }\n else {\n newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.setBoundingClientRect = function () {\n // For parent boundary\n if (this.props.bounds === 'parent') {\n var parent_2 = this.parentNode;\n if (parent_2) {\n var parentRect = parent_2.getBoundingClientRect();\n this.parentLeft = parentRect.left;\n this.parentTop = parentRect.top;\n }\n }\n // For target(html element) boundary\n if (this.props.bounds && typeof this.props.bounds !== 'string') {\n var targetRect = this.props.bounds.getBoundingClientRect();\n this.targetLeft = targetRect.left;\n this.targetTop = targetRect.top;\n }\n // For boundary\n if (this.resizable) {\n var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\n this.resizableLeft = left;\n this.resizableRight = right;\n this.resizableTop = top_1;\n this.resizableBottom = bottom;\n }\n };\n Resizable.prototype.onResizeStart = function (event, direction) {\n if (!this.resizable || !this.window) {\n return;\n }\n var clientX = 0;\n var clientY = 0;\n if (event.nativeEvent && isMouseEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.clientX;\n clientY = event.nativeEvent.clientY;\n }\n else if (event.nativeEvent && isTouchEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.touches[0].clientX;\n clientY = event.nativeEvent.touches[0].clientY;\n }\n if (this.props.onResizeStart) {\n if (this.resizable) {\n var startResize = this.props.onResizeStart(event, direction, this.resizable);\n if (startResize === false) {\n return;\n }\n }\n }\n // Fix #168\n if (this.props.size) {\n if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n this.setState({ height: this.props.size.height });\n }\n if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n this.setState({ width: this.props.size.width });\n }\n }\n // For lockAspectRatio case\n this.ratio =\n typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;\n var flexBasis;\n var computedStyle = this.window.getComputedStyle(this.resizable);\n if (computedStyle.flexBasis !== 'auto') {\n var parent_3 = this.parentNode;\n if (parent_3) {\n var dir = this.window.getComputedStyle(parent_3).flexDirection;\n this.flexDir = dir.startsWith('row') ? 'row' : 'column';\n flexBasis = computedStyle.flexBasis;\n }\n }\n // For boundary\n this.setBoundingClientRect();\n this.bindEvents();\n var state = {\n original: {\n x: clientX,\n y: clientY,\n width: this.size.width,\n height: this.size.height,\n },\n isResizing: true,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),\n direction: direction,\n flexBasis: flexBasis,\n };\n this.setState(state);\n };\n Resizable.prototype.onMouseMove = function (event) {\n var _this = this;\n if (!this.state.isResizing || !this.resizable || !this.window) {\n return;\n }\n if (this.window.TouchEvent && isTouchEvent(event)) {\n try {\n event.preventDefault();\n event.stopPropagation();\n }\n catch (e) {\n // Ignore on fail\n }\n }\n var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;\n var clientX = isTouchEvent(event) ? event.touches[0].clientX : event.clientX;\n var clientY = isTouchEvent(event) ? event.touches[0].clientY : event.clientY;\n var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;\n var parentSize = this.getParentSize();\n var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);\n maxWidth = max.maxWidth;\n maxHeight = max.maxHeight;\n minWidth = max.minWidth;\n minHeight = max.minHeight;\n // Calculate new size\n var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;\n // Calculate max size from boundary settings\n var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);\n if (this.props.snap && this.props.snap.x) {\n newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);\n }\n if (this.props.snap && this.props.snap.y) {\n newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);\n }\n // Calculate new size from aspect ratio\n var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });\n newWidth = newSize.newWidth;\n newHeight = newSize.newHeight;\n if (this.props.grid) {\n var newGridWidth = snap(newWidth, this.props.grid[0]);\n var newGridHeight = snap(newHeight, this.props.grid[1]);\n var gap = this.props.snapGap || 0;\n newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;\n newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;\n }\n var delta = {\n width: newWidth - original.width,\n height: newHeight - original.height,\n };\n if (width && typeof width === 'string') {\n if (width.endsWith('%')) {\n var percent = (newWidth / parentSize.width) * 100;\n newWidth = percent + \"%\";\n }\n else if (width.endsWith('vw')) {\n var vw = (newWidth / this.window.innerWidth) * 100;\n newWidth = vw + \"vw\";\n }\n else if (width.endsWith('vh')) {\n var vh = (newWidth / this.window.innerHeight) * 100;\n newWidth = vh + \"vh\";\n }\n }\n if (height && typeof height === 'string') {\n if (height.endsWith('%')) {\n var percent = (newHeight / parentSize.height) * 100;\n newHeight = percent + \"%\";\n }\n else if (height.endsWith('vw')) {\n var vw = (newHeight / this.window.innerWidth) * 100;\n newHeight = vw + \"vw\";\n }\n else if (height.endsWith('vh')) {\n var vh = (newHeight / this.window.innerHeight) * 100;\n newHeight = vh + \"vh\";\n }\n }\n var newState = {\n width: this.createSizeForCssProperty(newWidth, 'width'),\n height: this.createSizeForCssProperty(newHeight, 'height'),\n };\n if (this.flexDir === 'row') {\n newState.flexBasis = newState.width;\n }\n else if (this.flexDir === 'column') {\n newState.flexBasis = newState.height;\n }\n // For v18, update state sync\n flushSync(function () {\n _this.setState(newState);\n });\n if (this.props.onResize) {\n this.props.onResize(event, direction, this.resizable, delta);\n }\n };\n Resizable.prototype.onMouseUp = function (event) {\n var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;\n if (!isResizing || !this.resizable) {\n return;\n }\n var delta = {\n width: this.size.width - original.width,\n height: this.size.height - original.height,\n };\n if (this.props.onResizeStop) {\n this.props.onResizeStop(event, direction, this.resizable, delta);\n }\n if (this.props.size) {\n this.setState(this.props.size);\n }\n this.unbindEvents();\n this.setState({\n isResizing: false,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: 'auto' }),\n });\n };\n Resizable.prototype.updateSize = function (size) {\n this.setState({ width: size.width, height: size.height });\n };\n Resizable.prototype.renderResizer = function () {\n var _this = this;\n var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;\n if (!enable) {\n return null;\n }\n var resizers = Object.keys(enable).map(function (dir) {\n if (enable[dir] !== false) {\n return (React.createElement(Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));\n }\n return null;\n });\n // #93 Wrap the resize box in span (will not break 100% width/height)\n return (React.createElement(\"div\", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));\n };\n Resizable.prototype.render = function () {\n var _this = this;\n var extendsProps = Object.keys(this.props).reduce(function (acc, key) {\n if (definedProps.indexOf(key) !== -1) {\n return acc;\n }\n acc[key] = _this.props[key];\n return acc;\n }, {});\n var style = __assign(__assign(__assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });\n if (this.state.flexBasis) {\n style.flexBasis = this.state.flexBasis;\n }\n var Wrapper = this.props.as || 'div';\n return (React.createElement(Wrapper, __assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),\n this.state.isResizing && React.createElement(\"div\", { style: this.state.backgroundStyle }),\n this.props.children,\n this.renderResizer()));\n };\n Resizable.defaultProps = {\n as: 'div',\n onResizeStart: function () { },\n onResize: function () { },\n onResizeStop: function () { },\n enable: {\n top: true,\n right: true,\n bottom: true,\n left: true,\n topRight: true,\n bottomRight: true,\n bottomLeft: true,\n topLeft: true,\n },\n style: {},\n grid: [1, 1],\n lockAspectRatio: false,\n lockAspectRatioExtraWidth: 0,\n lockAspectRatioExtraHeight: 0,\n scale: 1,\n resizeRatio: 1,\n snapGap: 0,\n };\n return Resizable;\n}(React.PureComponent));\nexport { Resizable };\n","import React, { useState, useEffect, useContext } from 'react';\nimport { Resizable } from 're-resizable';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport { useHistory } from 'react-router-dom';\nimport { Input } from 'antd';\nimport { LeftOutlined, RightOutlined, SettingOutlined, SearchOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport { getBusiGroups } from '@/services/common';\nimport { CommonStateContext } from '@/App';\nimport './style.less';\n\ninterface IProps {\n curBusiId?: number;\n setCurBusiId?: (id: number, item: any) => void;\n title?: string;\n renderHeadExtra?: () => React.ReactNode;\n}\n\nexport default function index(props: IProps) {\n const { t } = useTranslation();\n const { title = t('business_group'), renderHeadExtra, curBusiId, setCurBusiId } = props;\n const history = useHistory();\n const [collapse, setCollapse] = useState(localStorage.getItem('leftlist') === '1');\n const [width, setWidth] = useState(_.toNumber(localStorage.getItem('leftwidth') || 200));\n const { busiGroups } = useContext(CommonStateContext);\n const [businessGroupData, setBusinessGroupData] = useState<{ id: number; name: string }[]>([]);\n\n useEffect(() => {\n setBusinessGroupData(busiGroups);\n }, [busiGroups]);\n\n return (\n {\n let curWidth = width + d.width;\n if (curWidth < 200) {\n curWidth = 200;\n }\n setWidth(curWidth);\n localStorage.setItem('leftwidth', curWidth.toString());\n }}\n >\n
\n {\n localStorage.setItem('leftlist', !collapse ? '1' : '0');\n setCollapse(!collapse);\n }}\n >\n {!collapse ? : }\n
\n
\n {renderHeadExtra && renderHeadExtra()}\n
\n {title}\n {title === t('business_group') && history.push(`/busi-groups`)} />}\n
\n }\n onPressEnter={(e) => {\n e.preventDefault();\n const value = e.currentTarget.value;\n getBusiGroups(value).then((res) => {\n setBusinessGroupData(res.dat || []);\n });\n }}\n />\n
\n {_.map(businessGroupData, (item) => {\n return (\n {\n if (item.id !== curBusiId) {\n localStorage.setItem('curBusiId', _.toString(item.id));\n setCurBusiId && setCurBusiId(item.id, item);\n }\n }}\n >\n {item.name}\n
\n );\n })}\n
\n \n \n \n );\n}\n","const en_US = {\n title: 'Host List',\n default_filter: 'Default',\n ungrouped_targets: 'Ungrouped hosts',\n all_targets: 'All hosts',\n datasource: 'Datasource',\n search_placeholder: 'Multiple keywords are separated by spaces',\n ident_copy_success: '{{num}} records successfully copied',\n not_grouped: 'Ungrouped',\n tags: 'Tags',\n group_obj: 'Business group',\n target_up: 'Status',\n mem_util: 'Memory',\n cpu_util: 'CPU',\n cpu_num: 'Cores',\n offset: 'Offset',\n os: 'OS',\n arch: 'CPU Arch',\n unixtime: 'Unixtime',\n remote_addr: 'Remote Addr',\n note: 'Note',\n organize_columns: {\n title: 'Organize Columns',\n },\n targets: 'Hosts',\n targets_placeholder: 'Please fill in the hosts, one per line',\n copy: {\n current_page: 'Copy current page',\n all: 'Copy all',\n selected: 'Copy selected',\n no_data: 'No data to copy',\n },\n bind_tag: {\n title: 'Bind tag',\n placeholder: 'Tag format is key=value, separated by enter or space',\n msg1: 'Please fill in at least one tag!',\n msg2: 'Tag format is incorrect, please check!',\n render_tip1: 'Tag length should be less than or equal to 64 bits',\n render_tip2: 'Tag format should be key=value. And key starts with a letter or underscore, and is composed of letters, numbers and underscores.',\n },\n unbind_tag: {\n title: 'Unbind tag',\n placeholder: 'Please select the tag to unbind',\n msg: 'Please fill in at least one tag!',\n },\n update_busi: {\n title: 'Update business group',\n label: 'Business group',\n },\n remove_busi: {\n title: 'Remove business group',\n msg: 'Warning: Remove the business group, the business group manager will no longer have permission to operate these hosts! You may need to clear the tags and notes of this batch of hosts beforehand!',\n btn: 'Remove',\n },\n update_note: {\n title: 'Update note',\n placeholder: 'If the content is empty, the note will be cleared',\n },\n batch_delete: {\n title: 'Batch delete',\n msg: 'Warning: This operation will permanently delete the hosts from the system, very dangerous, be careful!',\n btn: 'Delete',\n },\n};\nexport default en_US;\n","const zh_CN = {\n title: '对象列表',\n default_filter: '预置筛选',\n ungrouped_targets: '未归组对象',\n all_targets: '全部对象',\n datasource: '数据源',\n search_placeholder: '模糊搜索表格内容(多个关键词请用空格分隔)',\n ident_copy_success: '复制成功 {{num}} 条记录',\n not_grouped: '未归组',\n tags: '标签',\n group_obj: '业务组',\n target_up: '状态',\n mem_util: '内存',\n cpu_util: 'CPU',\n cpu_num: '核数',\n offset: '时间偏移',\n os: '操作系统',\n arch: 'CPU架构',\n unixtime: '心跳时间',\n remote_addr: '来源IP',\n note: '备注',\n organize_columns: {\n title: '显示列',\n },\n targets: '监控对象',\n targets_placeholder: '请填写监控对象的指标,一行一个',\n copy: {\n current_page: '复制当前页',\n all: '复制全部',\n selected: '复制所选',\n no_data: '没有可复制的数据',\n },\n bind_tag: {\n title: '绑定标签',\n placeholder: '标签格式为 key=value ,使用回车或空格分隔',\n msg1: '请填写至少一项标签!',\n msg2: '标签格式不正确,请检查!',\n render_tip1: '标签长度应小于等于 64 位',\n render_tip2: '标签格式应为 key=value。且 key 以字母或下划线开头,由字母、数字和下划线组成。',\n },\n unbind_tag: {\n title: '解绑标签',\n placeholder: '请选择要解绑的标签',\n msg: '请填写至少一项标签!',\n },\n update_busi: {\n title: '修改业务组',\n label: '归属业务组',\n },\n remove_busi: {\n title: '移出业务组',\n msg: '提示信息:移出所属业务组,该业务组的管理人员将不再有权限操作这些监控对象!您可能需要提前清空这批监控对象的标签和备注信息!',\n btn: '移出',\n },\n update_note: {\n title: '修改备注',\n placeholder: '内容如果为空,表示清空备注信息',\n },\n batch_delete: {\n title: '批量删除',\n msg: '提示信息:该操作会把监控对象从系统内中彻底删除,非常危险,慎重操作!',\n btn: '删除',\n },\n};\nexport default zh_CN;\n","import i18next from 'i18next';\nimport en_US from './en_US';\nimport zh_CN from './zh_CN';\n\ni18next.addResourceBundle('en_US', 'targets', en_US);\ni18next.addResourceBundle('zh_CN', 'targets', zh_CN);\n","/*\n * Copyright 2022 Nightingale Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport React, { useEffect, useState, useCallback, useContext } from 'react';\nimport { Modal, Tag, Form, Input, Alert, Select, Tooltip } from 'antd';\nimport { DatabaseOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport _, { debounce } from 'lodash';\nimport classNames from 'classnames';\nimport { bindTags, unbindTags, moveTargetBusi, updateTargetNote, deleteTargets, getTargetTags } from '@/services/targets';\nimport PageLayout from '@/components/pageLayout';\nimport { getBusiGroups } from '@/services/common';\nimport { CommonStateContext } from '@/App';\nimport List from './List';\nimport BusinessGroup from './BusinessGroup';\nimport './locale';\nimport './index.less';\n\nexport { BusinessGroup };\n\nenum OperateType {\n BindTag = 'bindTag',\n UnbindTag = 'unbindTag',\n UpdateBusi = 'updateBusi',\n RemoveBusi = 'removeBusi',\n UpdateNote = 'updateNote',\n Delete = 'delete',\n None = 'none',\n}\n\ninterface OperateionModalProps {\n operateType: OperateType;\n setOperateType: any;\n idents: string[];\n reloadList: () => void;\n}\n\nconst { TextArea } = Input;\n\nconst OperationModal: React.FC = ({ operateType, setOperateType, idents, reloadList }) => {\n const { t } = useTranslation('targets');\n const { busiGroups } = useContext(CommonStateContext);\n const [form] = Form.useForm();\n const [confirmLoading, setConfirmLoading] = useState(false);\n const [identList, setIdentList] = useState(idents);\n const [tagsList, setTagsList] = useState([]);\n const detailProp = operateType === OperateType.UnbindTag ? tagsList : busiGroups;\n\n // 绑定标签弹窗内容\n const bindTagDetail = () => {\n // 校验单个标签格式是否正确\n function isTagValid(tag) {\n const contentRegExp = /^[a-zA-Z_][\\w]*={1}[^=]+$/;\n return {\n isCorrectFormat: contentRegExp.test(tag.toString()),\n isLengthAllowed: tag.toString().length <= 64,\n };\n }\n\n // 渲染标签\n function tagRender(content) {\n const { isCorrectFormat, isLengthAllowed } = isTagValid(content.value);\n return isCorrectFormat && isLengthAllowed ? (\n \n {content.value}\n \n ) : (\n \n \n {content.value}\n \n \n );\n }\n\n // 校验所有标签格式\n function isValidFormat() {\n return {\n validator(_, value) {\n const isInvalid = value.some((tag) => {\n const { isCorrectFormat, isLengthAllowed } = isTagValid(tag);\n if (!isCorrectFormat || !isLengthAllowed) {\n return true;\n }\n });\n return isInvalid ? Promise.reject(new Error(t('bind_tag.msg2'))) : Promise.resolve();\n },\n };\n }\n\n return {\n operateTitle: t('bind_tag.title'),\n requestFunc: bindTags,\n isFormItem: true,\n render() {\n return (\n \n ({ label: tag, value: tag }))} />\n \n );\n },\n };\n };\n\n // 移出业务组弹窗内容\n const removeBusiDetail = () => {\n return {\n operateTitle: t('remove_busi.title'),\n requestFunc: moveTargetBusi,\n isFormItem: false,\n render() {\n return ;\n },\n };\n };\n\n // 修改备注弹窗内容\n const updateNoteDetail = () => {\n return {\n operateTitle: t('update_note.title'),\n requestFunc: updateTargetNote,\n isFormItem: true,\n render() {\n return (\n \n \n \n );\n },\n };\n };\n\n // 批量删除弹窗内容\n const deleteDetail = () => {\n return {\n operateTitle: t('batch_delete.title'),\n requestFunc: deleteTargets,\n isFormItem: false,\n render() {\n return ;\n },\n };\n };\n\n // 修改业务组弹窗内容\n const updateBusiDetail = (busiGroups) => {\n return {\n operateTitle: t('update_busi.title'),\n requestFunc: moveTargetBusi,\n isFormItem: true,\n render() {\n return (\n \n ({\n label: name,\n value: id,\n }))}\n optionFilterProp='label'\n filterOption={false}\n onSearch={handleSearch}\n onFocus={() => {\n getBusiGroups('').then((res) => {\n setFilteredBusiGroups(res.dat || []);\n });\n }}\n onClear={() => {\n getBusiGroups('').then((res) => {\n setFilteredBusiGroups(res.dat || []);\n });\n }}\n />\n \n );\n },\n };\n };\n\n const operateDetail = {\n bindTagDetail,\n unbindTagDetail,\n updateBusiDetail,\n removeBusiDetail,\n updateNoteDetail,\n deleteDetail,\n noneDetail: () => ({\n operateTitle: '',\n requestFunc() {\n return Promise.resolve();\n },\n isFormItem: false,\n render() {},\n }),\n };\n const { operateTitle, requestFunc, isFormItem, render } = operateDetail[`${operateType}Detail`](detailProp);\n const [filteredBusiGroups, setFilteredBusiGroups] = useState(busiGroups);\n function formatValue() {\n const inputValue = form.getFieldValue('idents');\n const formattedIdents = inputValue.split(/[ ,\\n]+/).filter((value) => value);\n const formattedValue = formattedIdents.join('\\n');\n // 自动格式化表单内容\n if (inputValue !== formattedValue) {\n form.setFieldsValue({\n idents: formattedValue,\n });\n }\n // 当对象标识变更时,更新标识数组\n if (identList.sort().join('\\n') !== formattedIdents.sort().join('\\n')) {\n setIdentList(formattedIdents);\n }\n }\n\n // 提交表单\n function submitForm() {\n form.validateFields().then((data) => {\n setConfirmLoading(true);\n data.idents = data.idents.split('\\n');\n requestFunc(data)\n .then(() => {\n setOperateType(OperateType.None);\n reloadList();\n form.resetFields();\n setConfirmLoading(false);\n })\n .catch(() => setConfirmLoading(false));\n });\n }\n\n // 初始化展示所有业务组\n useEffect(() => {\n if (!filteredBusiGroups.length) {\n setFilteredBusiGroups(busiGroups);\n }\n }, [busiGroups]);\n\n const fetchBusiGroup = (e) => {\n getBusiGroups(e).then((res) => {\n setFilteredBusiGroups(res.dat || []);\n });\n };\n const handleSearch = useCallback(debounce(fetchBusiGroup, 800), []);\n\n // 点击批量操作时,初始化默认监控对象列表\n useEffect(() => {\n if (operateType !== OperateType.None) {\n setIdentList(idents);\n form.setFieldsValue({\n idents: idents.join('\\n'),\n });\n }\n }, [operateType, idents]);\n\n // 解绑标签时,根据输入框监控对象动态获取标签列表\n useEffect(() => {\n if (operateType === OperateType.UnbindTag && identList.length) {\n getTargetTags({ idents: identList.join(',') }).then(({ dat }) => {\n // 删除多余的选中标签\n const curSelectedTags = form.getFieldValue('tags') || [];\n form.setFieldsValue({\n tags: curSelectedTags.filter((tag) => dat.includes(tag)),\n });\n\n setTagsList(dat);\n });\n }\n }, [operateType, identList]);\n\n return (\n {\n setOperateType(OperateType.None);\n form.resetFields();\n }}\n >\n {/* 基础展示表单项 */}\n
\n \n